uclibc-git-20140613.patch 4.5 MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381273822738327384273852738627387273882738927390273912739227393273942739527396273972739827399274002740127402274032740427405274062740727408274092741027411274122741327414274152741627417274182741927420274212742227423274242742527426274272742827429274302743127432274332743427435274362743727438274392744027441274422744327444274452744627447274482744927450274512745227453274542745527456274572745827459274602746127462274632746427465274662746727468274692747027471274722747327474274752747627477274782747927480274812748227483274842748527486274872748827489274902749127492274932749427495274962749727498274992750027501275022750327504275052750627507275082750927510275112751227513275142751527516275172751827519275202752127522275232752427525275262752727528275292753027531275322753327534275352753627537275382753927540275412754227543275442754527546275472754827549275502755127552275532755427555275562755727558275592756027561275622756327564275652756627567275682756927570275712757227573275742757527576275772757827579275802758127582275832758427585275862758727588275892759027591275922759327594275952759627597275982759927600276012760227603276042760527606276072760827609276102761127612276132761427615276162761727618276192762027621276222762327624276252762627627276282762927630276312763227633276342763527636276372763827639276402764127642276432764427645276462764727648276492765027651276522765327654276552765627657276582765927660276612766227663276642766527666276672766827669276702767127672276732767427675276762767727678276792768027681276822768327684276852768627687276882768927690276912769227693276942769527696276972769827699277002770127702277032770427705277062770727708277092771027711277122771327714277152771627717277182771927720277212772227723277242772527726277272772827729277302773127732277332773427735277362773727738277392774027741277422774327744277452774627747277482774927750277512775227753277542775527756277572775827759277602776127762277632776427765277662776727768277692777027771277722777327774277752777627777277782777927780277812778227783277842778527786277872778827789277902779127792277932779427795277962779727798277992780027801278022780327804278052780627807278082780927810278112781227813278142781527816278172781827819278202782127822278232782427825278262782727828278292783027831278322783327834278352783627837278382783927840278412784227843278442784527846278472784827849278502785127852278532785427855278562785727858278592786027861278622786327864278652786627867278682786927870278712787227873278742787527876278772787827879278802788127882278832788427885278862788727888278892789027891278922789327894278952789627897278982789927900279012790227903279042790527906279072790827909279102791127912279132791427915279162791727918279192792027921279222792327924279252792627927279282792927930279312793227933279342793527936279372793827939279402794127942279432794427945279462794727948279492795027951279522795327954279552795627957279582795927960279612796227963279642796527966279672796827969279702797127972279732797427975279762797727978279792798027981279822798327984279852798627987279882798927990279912799227993279942799527996279972799827999280002800128002280032800428005280062800728008280092801028011280122801328014280152801628017280182801928020280212802228023280242802528026280272802828029280302803128032280332803428035280362803728038280392804028041280422804328044280452804628047280482804928050280512805228053280542805528056280572805828059280602806128062280632806428065280662806728068280692807028071280722807328074280752807628077280782807928080280812808228083280842808528086280872808828089280902809128092280932809428095280962809728098280992810028101281022810328104281052810628107281082810928110281112811228113281142811528116281172811828119281202812128122281232812428125281262812728128281292813028131281322813328134281352813628137281382813928140281412814228143281442814528146281472814828149281502815128152281532815428155281562815728158281592816028161281622816328164281652816628167281682816928170281712817228173281742817528176281772817828179281802818128182281832818428185281862818728188281892819028191281922819328194281952819628197281982819928200282012820228203282042820528206282072820828209282102821128212282132821428215282162821728218282192822028221282222822328224282252822628227282282822928230282312823228233282342823528236282372823828239282402824128242282432824428245282462824728248282492825028251282522825328254282552825628257282582825928260282612826228263282642826528266282672826828269282702827128272282732827428275282762827728278282792828028281282822828328284282852828628287282882828928290282912829228293282942829528296282972829828299283002830128302283032830428305283062830728308283092831028311283122831328314283152831628317283182831928320283212832228323283242832528326283272832828329283302833128332283332833428335283362833728338283392834028341283422834328344283452834628347283482834928350283512835228353283542835528356283572835828359283602836128362283632836428365283662836728368283692837028371283722837328374283752837628377283782837928380283812838228383283842838528386283872838828389283902839128392283932839428395283962839728398283992840028401284022840328404284052840628407284082840928410284112841228413284142841528416284172841828419284202842128422284232842428425284262842728428284292843028431284322843328434284352843628437284382843928440284412844228443284442844528446284472844828449284502845128452284532845428455284562845728458284592846028461284622846328464284652846628467284682846928470284712847228473284742847528476284772847828479284802848128482284832848428485284862848728488284892849028491284922849328494284952849628497284982849928500285012850228503285042850528506285072850828509285102851128512285132851428515285162851728518285192852028521285222852328524285252852628527285282852928530285312853228533285342853528536285372853828539285402854128542285432854428545285462854728548285492855028551285522855328554285552855628557285582855928560285612856228563285642856528566285672856828569285702857128572285732857428575285762857728578285792858028581285822858328584285852858628587285882858928590285912859228593285942859528596285972859828599286002860128602286032860428605286062860728608286092861028611286122861328614286152861628617286182861928620286212862228623286242862528626286272862828629286302863128632286332863428635286362863728638286392864028641286422864328644286452864628647286482864928650286512865228653286542865528656286572865828659286602866128662286632866428665286662866728668286692867028671286722867328674286752867628677286782867928680286812868228683286842868528686286872868828689286902869128692286932869428695286962869728698286992870028701287022870328704287052870628707287082870928710287112871228713287142871528716287172871828719287202872128722287232872428725287262872728728287292873028731287322873328734287352873628737287382873928740287412874228743287442874528746287472874828749287502875128752287532875428755287562875728758287592876028761287622876328764287652876628767287682876928770287712877228773287742877528776287772877828779287802878128782287832878428785287862878728788287892879028791287922879328794287952879628797287982879928800288012880228803288042880528806288072880828809288102881128812288132881428815288162881728818288192882028821288222882328824288252882628827288282882928830288312883228833288342883528836288372883828839288402884128842288432884428845288462884728848288492885028851288522885328854288552885628857288582885928860288612886228863288642886528866288672886828869288702887128872288732887428875288762887728878288792888028881288822888328884288852888628887288882888928890288912889228893288942889528896288972889828899289002890128902289032890428905289062890728908289092891028911289122891328914289152891628917289182891928920289212892228923289242892528926289272892828929289302893128932289332893428935289362893728938289392894028941289422894328944289452894628947289482894928950289512895228953289542895528956289572895828959289602896128962289632896428965289662896728968289692897028971289722897328974289752897628977289782897928980289812898228983289842898528986289872898828989289902899128992289932899428995289962899728998289992900029001290022900329004290052900629007290082900929010290112901229013290142901529016290172901829019290202902129022290232902429025290262902729028290292903029031290322903329034290352903629037290382903929040290412904229043290442904529046290472904829049290502905129052290532905429055290562905729058290592906029061290622906329064290652906629067290682906929070290712907229073290742907529076290772907829079290802908129082290832908429085290862908729088290892909029091290922909329094290952909629097290982909929100291012910229103291042910529106291072910829109291102911129112291132911429115291162911729118291192912029121291222912329124291252912629127291282912929130291312913229133291342913529136291372913829139291402914129142291432914429145291462914729148291492915029151291522915329154291552915629157291582915929160291612916229163291642916529166291672916829169291702917129172291732917429175291762917729178291792918029181291822918329184291852918629187291882918929190291912919229193291942919529196291972919829199292002920129202292032920429205292062920729208292092921029211292122921329214292152921629217292182921929220292212922229223292242922529226292272922829229292302923129232292332923429235292362923729238292392924029241292422924329244292452924629247292482924929250292512925229253292542925529256292572925829259292602926129262292632926429265292662926729268292692927029271292722927329274292752927629277292782927929280292812928229283292842928529286292872928829289292902929129292292932929429295292962929729298292992930029301293022930329304293052930629307293082930929310293112931229313293142931529316293172931829319293202932129322293232932429325293262932729328293292933029331293322933329334293352933629337293382933929340293412934229343293442934529346293472934829349293502935129352293532935429355293562935729358293592936029361293622936329364293652936629367293682936929370293712937229373293742937529376293772937829379293802938129382293832938429385293862938729388293892939029391293922939329394293952939629397293982939929400294012940229403294042940529406294072940829409294102941129412294132941429415294162941729418294192942029421294222942329424294252942629427294282942929430294312943229433294342943529436294372943829439294402944129442294432944429445294462944729448294492945029451294522945329454294552945629457294582945929460294612946229463294642946529466294672946829469294702947129472294732947429475294762947729478294792948029481294822948329484294852948629487294882948929490294912949229493294942949529496294972949829499295002950129502295032950429505295062950729508295092951029511295122951329514295152951629517295182951929520295212952229523295242952529526295272952829529295302953129532295332953429535295362953729538295392954029541295422954329544295452954629547295482954929550295512955229553295542955529556295572955829559295602956129562295632956429565295662956729568295692957029571295722957329574295752957629577295782957929580295812958229583295842958529586295872958829589295902959129592295932959429595295962959729598295992960029601296022960329604296052960629607296082960929610296112961229613296142961529616296172961829619296202962129622296232962429625296262962729628296292963029631296322963329634296352963629637296382963929640296412964229643296442964529646296472964829649296502965129652296532965429655296562965729658296592966029661296622966329664296652966629667296682966929670296712967229673296742967529676296772967829679296802968129682296832968429685296862968729688296892969029691296922969329694296952969629697296982969929700297012970229703297042970529706297072970829709297102971129712297132971429715297162971729718297192972029721297222972329724297252972629727297282972929730297312973229733297342973529736297372973829739297402974129742297432974429745297462974729748297492975029751297522975329754297552975629757297582975929760297612976229763297642976529766297672976829769297702977129772297732977429775297762977729778297792978029781297822978329784297852978629787297882978929790297912979229793297942979529796297972979829799298002980129802298032980429805298062980729808298092981029811298122981329814298152981629817298182981929820298212982229823298242982529826298272982829829298302983129832298332983429835298362983729838298392984029841298422984329844298452984629847298482984929850298512985229853298542985529856298572985829859298602986129862298632986429865298662986729868298692987029871298722987329874298752987629877298782987929880298812988229883298842988529886298872988829889298902989129892298932989429895298962989729898298992990029901299022990329904299052990629907299082990929910299112991229913299142991529916299172991829919299202992129922299232992429925299262992729928299292993029931299322993329934299352993629937299382993929940299412994229943299442994529946299472994829949299502995129952299532995429955299562995729958299592996029961299622996329964299652996629967299682996929970299712997229973299742997529976299772997829979299802998129982299832998429985299862998729988299892999029991299922999329994299952999629997299982999930000300013000230003300043000530006300073000830009300103001130012300133001430015300163001730018300193002030021300223002330024300253002630027300283002930030300313003230033300343003530036300373003830039300403004130042300433004430045300463004730048300493005030051300523005330054300553005630057300583005930060300613006230063300643006530066300673006830069300703007130072300733007430075300763007730078300793008030081300823008330084300853008630087300883008930090300913009230093300943009530096300973009830099301003010130102301033010430105301063010730108301093011030111301123011330114301153011630117301183011930120301213012230123301243012530126301273012830129301303013130132301333013430135301363013730138301393014030141301423014330144301453014630147301483014930150301513015230153301543015530156301573015830159301603016130162301633016430165301663016730168301693017030171301723017330174301753017630177301783017930180301813018230183301843018530186301873018830189301903019130192301933019430195301963019730198301993020030201302023020330204302053020630207302083020930210302113021230213302143021530216302173021830219302203022130222302233022430225302263022730228302293023030231302323023330234302353023630237302383023930240302413024230243302443024530246302473024830249302503025130252302533025430255302563025730258302593026030261302623026330264302653026630267302683026930270302713027230273302743027530276302773027830279302803028130282302833028430285302863028730288302893029030291302923029330294302953029630297302983029930300303013030230303303043030530306303073030830309303103031130312303133031430315303163031730318303193032030321303223032330324303253032630327303283032930330303313033230333303343033530336303373033830339303403034130342303433034430345303463034730348303493035030351303523035330354303553035630357303583035930360303613036230363303643036530366303673036830369303703037130372303733037430375303763037730378303793038030381303823038330384303853038630387303883038930390303913039230393303943039530396303973039830399304003040130402304033040430405304063040730408304093041030411304123041330414304153041630417304183041930420304213042230423304243042530426304273042830429304303043130432304333043430435304363043730438304393044030441304423044330444304453044630447304483044930450304513045230453304543045530456304573045830459304603046130462304633046430465304663046730468304693047030471304723047330474304753047630477304783047930480304813048230483304843048530486304873048830489304903049130492304933049430495304963049730498304993050030501305023050330504305053050630507305083050930510305113051230513305143051530516305173051830519305203052130522305233052430525305263052730528305293053030531305323053330534305353053630537305383053930540305413054230543305443054530546305473054830549305503055130552305533055430555305563055730558305593056030561305623056330564305653056630567305683056930570305713057230573305743057530576305773057830579305803058130582305833058430585305863058730588305893059030591305923059330594305953059630597305983059930600306013060230603306043060530606306073060830609306103061130612306133061430615306163061730618306193062030621306223062330624306253062630627306283062930630306313063230633306343063530636306373063830639306403064130642306433064430645306463064730648306493065030651306523065330654306553065630657306583065930660306613066230663306643066530666306673066830669306703067130672306733067430675306763067730678306793068030681306823068330684306853068630687306883068930690306913069230693306943069530696306973069830699307003070130702307033070430705307063070730708307093071030711307123071330714307153071630717307183071930720307213072230723307243072530726307273072830729307303073130732307333073430735307363073730738307393074030741307423074330744307453074630747307483074930750307513075230753307543075530756307573075830759307603076130762307633076430765307663076730768307693077030771307723077330774307753077630777307783077930780307813078230783307843078530786307873078830789307903079130792307933079430795307963079730798307993080030801308023080330804308053080630807308083080930810308113081230813308143081530816308173081830819308203082130822308233082430825308263082730828308293083030831308323083330834308353083630837308383083930840308413084230843308443084530846308473084830849308503085130852308533085430855308563085730858308593086030861308623086330864308653086630867308683086930870308713087230873308743087530876308773087830879308803088130882308833088430885308863088730888308893089030891308923089330894308953089630897308983089930900309013090230903309043090530906309073090830909309103091130912309133091430915309163091730918309193092030921309223092330924309253092630927309283092930930309313093230933309343093530936309373093830939309403094130942309433094430945309463094730948309493095030951309523095330954309553095630957309583095930960309613096230963309643096530966309673096830969309703097130972309733097430975309763097730978309793098030981309823098330984309853098630987309883098930990309913099230993309943099530996309973099830999310003100131002310033100431005310063100731008310093101031011310123101331014310153101631017310183101931020310213102231023310243102531026310273102831029310303103131032310333103431035310363103731038310393104031041310423104331044310453104631047310483104931050310513105231053310543105531056310573105831059310603106131062310633106431065310663106731068310693107031071310723107331074310753107631077310783107931080310813108231083310843108531086310873108831089310903109131092310933109431095310963109731098310993110031101311023110331104311053110631107311083110931110311113111231113311143111531116311173111831119311203112131122311233112431125311263112731128311293113031131311323113331134311353113631137311383113931140311413114231143311443114531146311473114831149311503115131152311533115431155311563115731158311593116031161311623116331164311653116631167311683116931170311713117231173311743117531176311773117831179311803118131182311833118431185311863118731188311893119031191311923119331194311953119631197311983119931200312013120231203312043120531206312073120831209312103121131212312133121431215312163121731218312193122031221312223122331224312253122631227312283122931230312313123231233312343123531236312373123831239312403124131242312433124431245312463124731248312493125031251312523125331254312553125631257312583125931260312613126231263312643126531266312673126831269312703127131272312733127431275312763127731278312793128031281312823128331284312853128631287312883128931290312913129231293312943129531296312973129831299313003130131302313033130431305313063130731308313093131031311313123131331314313153131631317313183131931320313213132231323313243132531326313273132831329313303133131332313333133431335313363133731338313393134031341313423134331344313453134631347313483134931350313513135231353313543135531356313573135831359313603136131362313633136431365313663136731368313693137031371313723137331374313753137631377313783137931380313813138231383313843138531386313873138831389313903139131392313933139431395313963139731398313993140031401314023140331404314053140631407314083140931410314113141231413314143141531416314173141831419314203142131422314233142431425314263142731428314293143031431314323143331434314353143631437314383143931440314413144231443314443144531446314473144831449314503145131452314533145431455314563145731458314593146031461314623146331464314653146631467314683146931470314713147231473314743147531476314773147831479314803148131482314833148431485314863148731488314893149031491314923149331494314953149631497314983149931500315013150231503315043150531506315073150831509315103151131512315133151431515315163151731518315193152031521315223152331524315253152631527315283152931530315313153231533315343153531536315373153831539315403154131542315433154431545315463154731548315493155031551315523155331554315553155631557315583155931560315613156231563315643156531566315673156831569315703157131572315733157431575315763157731578315793158031581315823158331584315853158631587315883158931590315913159231593315943159531596315973159831599316003160131602316033160431605316063160731608316093161031611316123161331614316153161631617316183161931620316213162231623316243162531626316273162831629316303163131632316333163431635316363163731638316393164031641316423164331644316453164631647316483164931650316513165231653316543165531656316573165831659316603166131662316633166431665316663166731668316693167031671316723167331674316753167631677316783167931680316813168231683316843168531686316873168831689316903169131692316933169431695316963169731698316993170031701317023170331704317053170631707317083170931710317113171231713317143171531716317173171831719317203172131722317233172431725317263172731728317293173031731317323173331734317353173631737317383173931740317413174231743317443174531746317473174831749317503175131752317533175431755317563175731758317593176031761317623176331764317653176631767317683176931770317713177231773317743177531776317773177831779317803178131782317833178431785317863178731788317893179031791317923179331794317953179631797317983179931800318013180231803318043180531806318073180831809318103181131812318133181431815318163181731818318193182031821318223182331824318253182631827318283182931830318313183231833318343183531836318373183831839318403184131842318433184431845318463184731848318493185031851318523185331854318553185631857318583185931860318613186231863318643186531866318673186831869318703187131872318733187431875318763187731878318793188031881318823188331884318853188631887318883188931890318913189231893318943189531896318973189831899319003190131902319033190431905319063190731908319093191031911319123191331914319153191631917319183191931920319213192231923319243192531926319273192831929319303193131932319333193431935319363193731938319393194031941319423194331944319453194631947319483194931950319513195231953319543195531956319573195831959319603196131962319633196431965319663196731968319693197031971319723197331974319753197631977319783197931980319813198231983319843198531986319873198831989319903199131992319933199431995319963199731998319993200032001320023200332004320053200632007320083200932010320113201232013320143201532016320173201832019320203202132022320233202432025320263202732028320293203032031320323203332034320353203632037320383203932040320413204232043320443204532046320473204832049320503205132052320533205432055320563205732058320593206032061320623206332064320653206632067320683206932070320713207232073320743207532076320773207832079320803208132082320833208432085320863208732088320893209032091320923209332094320953209632097320983209932100321013210232103321043210532106321073210832109321103211132112321133211432115321163211732118321193212032121321223212332124321253212632127321283212932130321313213232133321343213532136321373213832139321403214132142321433214432145321463214732148321493215032151321523215332154321553215632157321583215932160321613216232163321643216532166321673216832169321703217132172321733217432175321763217732178321793218032181321823218332184321853218632187321883218932190321913219232193321943219532196321973219832199322003220132202322033220432205322063220732208322093221032211322123221332214322153221632217322183221932220322213222232223322243222532226322273222832229322303223132232322333223432235322363223732238322393224032241322423224332244322453224632247322483224932250322513225232253322543225532256322573225832259322603226132262322633226432265322663226732268322693227032271322723227332274322753227632277322783227932280322813228232283322843228532286322873228832289322903229132292322933229432295322963229732298322993230032301323023230332304323053230632307323083230932310323113231232313323143231532316323173231832319323203232132322323233232432325323263232732328323293233032331323323233332334323353233632337323383233932340323413234232343323443234532346323473234832349323503235132352323533235432355323563235732358323593236032361323623236332364323653236632367323683236932370323713237232373323743237532376323773237832379323803238132382323833238432385323863238732388323893239032391323923239332394323953239632397323983239932400324013240232403324043240532406324073240832409324103241132412324133241432415324163241732418324193242032421324223242332424324253242632427324283242932430324313243232433324343243532436324373243832439324403244132442324433244432445324463244732448324493245032451324523245332454324553245632457324583245932460324613246232463324643246532466324673246832469324703247132472324733247432475324763247732478324793248032481324823248332484324853248632487324883248932490324913249232493324943249532496324973249832499325003250132502325033250432505325063250732508325093251032511325123251332514325153251632517325183251932520325213252232523325243252532526325273252832529325303253132532325333253432535325363253732538325393254032541325423254332544325453254632547325483254932550325513255232553325543255532556325573255832559325603256132562325633256432565325663256732568325693257032571325723257332574325753257632577325783257932580325813258232583325843258532586325873258832589325903259132592325933259432595325963259732598325993260032601326023260332604326053260632607326083260932610326113261232613326143261532616326173261832619326203262132622326233262432625326263262732628326293263032631326323263332634326353263632637326383263932640326413264232643326443264532646326473264832649326503265132652326533265432655326563265732658326593266032661326623266332664326653266632667326683266932670326713267232673326743267532676326773267832679326803268132682326833268432685326863268732688326893269032691326923269332694326953269632697326983269932700327013270232703327043270532706327073270832709327103271132712327133271432715327163271732718327193272032721327223272332724327253272632727327283272932730327313273232733327343273532736327373273832739327403274132742327433274432745327463274732748327493275032751327523275332754327553275632757327583275932760327613276232763327643276532766327673276832769327703277132772327733277432775327763277732778327793278032781327823278332784327853278632787327883278932790327913279232793327943279532796327973279832799328003280132802328033280432805328063280732808328093281032811328123281332814328153281632817328183281932820328213282232823328243282532826328273282832829328303283132832328333283432835328363283732838328393284032841328423284332844328453284632847328483284932850328513285232853328543285532856328573285832859328603286132862328633286432865328663286732868328693287032871328723287332874328753287632877328783287932880328813288232883328843288532886328873288832889328903289132892328933289432895328963289732898328993290032901329023290332904329053290632907329083290932910329113291232913329143291532916329173291832919329203292132922329233292432925329263292732928329293293032931329323293332934329353293632937329383293932940329413294232943329443294532946329473294832949329503295132952329533295432955329563295732958329593296032961329623296332964329653296632967329683296932970329713297232973329743297532976329773297832979329803298132982329833298432985329863298732988329893299032991329923299332994329953299632997329983299933000330013300233003330043300533006330073300833009330103301133012330133301433015330163301733018330193302033021330223302333024330253302633027330283302933030330313303233033330343303533036330373303833039330403304133042330433304433045330463304733048330493305033051330523305333054330553305633057330583305933060330613306233063330643306533066330673306833069330703307133072330733307433075330763307733078330793308033081330823308333084330853308633087330883308933090330913309233093330943309533096330973309833099331003310133102331033310433105331063310733108331093311033111331123311333114331153311633117331183311933120331213312233123331243312533126331273312833129331303313133132331333313433135331363313733138331393314033141331423314333144331453314633147331483314933150331513315233153331543315533156331573315833159331603316133162331633316433165331663316733168331693317033171331723317333174331753317633177331783317933180331813318233183331843318533186331873318833189331903319133192331933319433195331963319733198331993320033201332023320333204332053320633207332083320933210332113321233213332143321533216332173321833219332203322133222332233322433225332263322733228332293323033231332323323333234332353323633237332383323933240332413324233243332443324533246332473324833249332503325133252332533325433255332563325733258332593326033261332623326333264332653326633267332683326933270332713327233273332743327533276332773327833279332803328133282332833328433285332863328733288332893329033291332923329333294332953329633297332983329933300333013330233303333043330533306333073330833309333103331133312333133331433315333163331733318333193332033321333223332333324333253332633327333283332933330333313333233333333343333533336333373333833339333403334133342333433334433345333463334733348333493335033351333523335333354333553335633357333583335933360333613336233363333643336533366333673336833369333703337133372333733337433375333763337733378333793338033381333823338333384333853338633387333883338933390333913339233393333943339533396333973339833399334003340133402334033340433405334063340733408334093341033411334123341333414334153341633417334183341933420334213342233423334243342533426334273342833429334303343133432334333343433435334363343733438334393344033441334423344333444334453344633447334483344933450334513345233453334543345533456334573345833459334603346133462334633346433465334663346733468334693347033471334723347333474334753347633477334783347933480334813348233483334843348533486334873348833489334903349133492334933349433495334963349733498334993350033501335023350333504335053350633507335083350933510335113351233513335143351533516335173351833519335203352133522335233352433525335263352733528335293353033531335323353333534335353353633537335383353933540335413354233543335443354533546335473354833549335503355133552335533355433555335563355733558335593356033561335623356333564335653356633567335683356933570335713357233573335743357533576335773357833579335803358133582335833358433585335863358733588335893359033591335923359333594335953359633597335983359933600336013360233603336043360533606336073360833609336103361133612336133361433615336163361733618336193362033621336223362333624336253362633627336283362933630336313363233633336343363533636336373363833639336403364133642336433364433645336463364733648336493365033651336523365333654336553365633657336583365933660336613366233663336643366533666336673366833669336703367133672336733367433675336763367733678336793368033681336823368333684336853368633687336883368933690336913369233693336943369533696336973369833699337003370133702337033370433705337063370733708337093371033711337123371333714337153371633717337183371933720337213372233723337243372533726337273372833729337303373133732337333373433735337363373733738337393374033741337423374333744337453374633747337483374933750337513375233753337543375533756337573375833759337603376133762337633376433765337663376733768337693377033771337723377333774337753377633777337783377933780337813378233783337843378533786337873378833789337903379133792337933379433795337963379733798337993380033801338023380333804338053380633807338083380933810338113381233813338143381533816338173381833819338203382133822338233382433825338263382733828338293383033831338323383333834338353383633837338383383933840338413384233843338443384533846338473384833849338503385133852338533385433855338563385733858338593386033861338623386333864338653386633867338683386933870338713387233873338743387533876338773387833879338803388133882338833388433885338863388733888338893389033891338923389333894338953389633897338983389933900339013390233903339043390533906339073390833909339103391133912339133391433915339163391733918339193392033921339223392333924339253392633927339283392933930339313393233933339343393533936339373393833939339403394133942339433394433945339463394733948339493395033951339523395333954339553395633957339583395933960339613396233963339643396533966339673396833969339703397133972339733397433975339763397733978339793398033981339823398333984339853398633987339883398933990339913399233993339943399533996339973399833999340003400134002340033400434005340063400734008340093401034011340123401334014340153401634017340183401934020340213402234023340243402534026340273402834029340303403134032340333403434035340363403734038340393404034041340423404334044340453404634047340483404934050340513405234053340543405534056340573405834059340603406134062340633406434065340663406734068340693407034071340723407334074340753407634077340783407934080340813408234083340843408534086340873408834089340903409134092340933409434095340963409734098340993410034101341023410334104341053410634107341083410934110341113411234113341143411534116341173411834119341203412134122341233412434125341263412734128341293413034131341323413334134341353413634137341383413934140341413414234143341443414534146341473414834149341503415134152341533415434155341563415734158341593416034161341623416334164341653416634167341683416934170341713417234173341743417534176341773417834179341803418134182341833418434185341863418734188341893419034191341923419334194341953419634197341983419934200342013420234203342043420534206342073420834209342103421134212342133421434215342163421734218342193422034221342223422334224342253422634227342283422934230342313423234233342343423534236342373423834239342403424134242342433424434245342463424734248342493425034251342523425334254342553425634257342583425934260342613426234263342643426534266342673426834269342703427134272342733427434275342763427734278342793428034281342823428334284342853428634287342883428934290342913429234293342943429534296342973429834299343003430134302343033430434305343063430734308343093431034311343123431334314343153431634317343183431934320343213432234323343243432534326343273432834329343303433134332343333433434335343363433734338343393434034341343423434334344343453434634347343483434934350343513435234353343543435534356343573435834359343603436134362343633436434365343663436734368343693437034371343723437334374343753437634377343783437934380343813438234383343843438534386343873438834389343903439134392343933439434395343963439734398343993440034401344023440334404344053440634407344083440934410344113441234413344143441534416344173441834419344203442134422344233442434425344263442734428344293443034431344323443334434344353443634437344383443934440344413444234443344443444534446344473444834449344503445134452344533445434455344563445734458344593446034461344623446334464344653446634467344683446934470344713447234473344743447534476344773447834479344803448134482344833448434485344863448734488344893449034491344923449334494344953449634497344983449934500345013450234503345043450534506345073450834509345103451134512345133451434515345163451734518345193452034521345223452334524345253452634527345283452934530345313453234533345343453534536345373453834539345403454134542345433454434545345463454734548345493455034551345523455334554345553455634557345583455934560345613456234563345643456534566345673456834569345703457134572345733457434575345763457734578345793458034581345823458334584345853458634587345883458934590345913459234593345943459534596345973459834599346003460134602346033460434605346063460734608346093461034611346123461334614346153461634617346183461934620346213462234623346243462534626346273462834629346303463134632346333463434635346363463734638346393464034641346423464334644346453464634647346483464934650346513465234653346543465534656346573465834659346603466134662346633466434665346663466734668346693467034671346723467334674346753467634677346783467934680346813468234683346843468534686346873468834689346903469134692346933469434695346963469734698346993470034701347023470334704347053470634707347083470934710347113471234713347143471534716347173471834719347203472134722347233472434725347263472734728347293473034731347323473334734347353473634737347383473934740347413474234743347443474534746347473474834749347503475134752347533475434755347563475734758347593476034761347623476334764347653476634767347683476934770347713477234773347743477534776347773477834779347803478134782347833478434785347863478734788347893479034791347923479334794347953479634797347983479934800348013480234803348043480534806348073480834809348103481134812348133481434815348163481734818348193482034821348223482334824348253482634827348283482934830348313483234833348343483534836348373483834839348403484134842348433484434845348463484734848348493485034851348523485334854348553485634857348583485934860348613486234863348643486534866348673486834869348703487134872348733487434875348763487734878348793488034881348823488334884348853488634887348883488934890348913489234893348943489534896348973489834899349003490134902349033490434905349063490734908349093491034911349123491334914349153491634917349183491934920349213492234923349243492534926349273492834929349303493134932349333493434935349363493734938349393494034941349423494334944349453494634947349483494934950349513495234953349543495534956349573495834959349603496134962349633496434965349663496734968349693497034971349723497334974349753497634977349783497934980349813498234983349843498534986349873498834989349903499134992349933499434995349963499734998349993500035001350023500335004350053500635007350083500935010350113501235013350143501535016350173501835019350203502135022350233502435025350263502735028350293503035031350323503335034350353503635037350383503935040350413504235043350443504535046350473504835049350503505135052350533505435055350563505735058350593506035061350623506335064350653506635067350683506935070350713507235073350743507535076350773507835079350803508135082350833508435085350863508735088350893509035091350923509335094350953509635097350983509935100351013510235103351043510535106351073510835109351103511135112351133511435115351163511735118351193512035121351223512335124351253512635127351283512935130351313513235133351343513535136351373513835139351403514135142351433514435145351463514735148351493515035151351523515335154351553515635157351583515935160351613516235163351643516535166351673516835169351703517135172351733517435175351763517735178351793518035181351823518335184351853518635187351883518935190351913519235193351943519535196351973519835199352003520135202352033520435205352063520735208352093521035211352123521335214352153521635217352183521935220352213522235223352243522535226352273522835229352303523135232352333523435235352363523735238352393524035241352423524335244352453524635247352483524935250352513525235253352543525535256352573525835259352603526135262352633526435265352663526735268352693527035271352723527335274352753527635277352783527935280352813528235283352843528535286352873528835289352903529135292352933529435295352963529735298352993530035301353023530335304353053530635307353083530935310353113531235313353143531535316353173531835319353203532135322353233532435325353263532735328353293533035331353323533335334353353533635337353383533935340353413534235343353443534535346353473534835349353503535135352353533535435355353563535735358353593536035361353623536335364353653536635367353683536935370353713537235373353743537535376353773537835379353803538135382353833538435385353863538735388353893539035391353923539335394353953539635397353983539935400354013540235403354043540535406354073540835409354103541135412354133541435415354163541735418354193542035421354223542335424354253542635427354283542935430354313543235433354343543535436354373543835439354403544135442354433544435445354463544735448354493545035451354523545335454354553545635457354583545935460354613546235463354643546535466354673546835469354703547135472354733547435475354763547735478354793548035481354823548335484354853548635487354883548935490354913549235493354943549535496354973549835499355003550135502355033550435505355063550735508355093551035511355123551335514355153551635517355183551935520355213552235523355243552535526355273552835529355303553135532355333553435535355363553735538355393554035541355423554335544355453554635547355483554935550355513555235553355543555535556355573555835559355603556135562355633556435565355663556735568355693557035571355723557335574355753557635577355783557935580355813558235583355843558535586355873558835589355903559135592355933559435595355963559735598355993560035601356023560335604356053560635607356083560935610356113561235613356143561535616356173561835619356203562135622356233562435625356263562735628356293563035631356323563335634356353563635637356383563935640356413564235643356443564535646356473564835649356503565135652356533565435655356563565735658356593566035661356623566335664356653566635667356683566935670356713567235673356743567535676356773567835679356803568135682356833568435685356863568735688356893569035691356923569335694356953569635697356983569935700357013570235703357043570535706357073570835709357103571135712357133571435715357163571735718357193572035721357223572335724357253572635727357283572935730357313573235733357343573535736357373573835739357403574135742357433574435745357463574735748357493575035751357523575335754357553575635757357583575935760357613576235763357643576535766357673576835769357703577135772357733577435775357763577735778357793578035781357823578335784357853578635787357883578935790357913579235793357943579535796357973579835799358003580135802358033580435805358063580735808358093581035811358123581335814358153581635817358183581935820358213582235823358243582535826358273582835829358303583135832358333583435835358363583735838358393584035841358423584335844358453584635847358483584935850358513585235853358543585535856358573585835859358603586135862358633586435865358663586735868358693587035871358723587335874358753587635877358783587935880358813588235883358843588535886358873588835889358903589135892358933589435895358963589735898358993590035901359023590335904359053590635907359083590935910359113591235913359143591535916359173591835919359203592135922359233592435925359263592735928359293593035931359323593335934359353593635937359383593935940359413594235943359443594535946359473594835949359503595135952359533595435955359563595735958359593596035961359623596335964359653596635967359683596935970359713597235973359743597535976359773597835979359803598135982359833598435985359863598735988359893599035991359923599335994359953599635997359983599936000360013600236003360043600536006360073600836009360103601136012360133601436015360163601736018360193602036021360223602336024360253602636027360283602936030360313603236033360343603536036360373603836039360403604136042360433604436045360463604736048360493605036051360523605336054360553605636057360583605936060360613606236063360643606536066360673606836069360703607136072360733607436075360763607736078360793608036081360823608336084360853608636087360883608936090360913609236093360943609536096360973609836099361003610136102361033610436105361063610736108361093611036111361123611336114361153611636117361183611936120361213612236123361243612536126361273612836129361303613136132361333613436135361363613736138361393614036141361423614336144361453614636147361483614936150361513615236153361543615536156361573615836159361603616136162361633616436165361663616736168361693617036171361723617336174361753617636177361783617936180361813618236183361843618536186361873618836189361903619136192361933619436195361963619736198361993620036201362023620336204362053620636207362083620936210362113621236213362143621536216362173621836219362203622136222362233622436225362263622736228362293623036231362323623336234362353623636237362383623936240362413624236243362443624536246362473624836249362503625136252362533625436255362563625736258362593626036261362623626336264362653626636267362683626936270362713627236273362743627536276362773627836279362803628136282362833628436285362863628736288362893629036291362923629336294362953629636297362983629936300363013630236303363043630536306363073630836309363103631136312363133631436315363163631736318363193632036321363223632336324363253632636327363283632936330363313633236333363343633536336363373633836339363403634136342363433634436345363463634736348363493635036351363523635336354363553635636357363583635936360363613636236363363643636536366363673636836369363703637136372363733637436375363763637736378363793638036381363823638336384363853638636387363883638936390363913639236393363943639536396363973639836399364003640136402364033640436405364063640736408364093641036411364123641336414364153641636417364183641936420364213642236423364243642536426364273642836429364303643136432364333643436435364363643736438364393644036441364423644336444364453644636447364483644936450364513645236453364543645536456364573645836459364603646136462364633646436465364663646736468364693647036471364723647336474364753647636477364783647936480364813648236483364843648536486364873648836489364903649136492364933649436495364963649736498364993650036501365023650336504365053650636507365083650936510365113651236513365143651536516365173651836519365203652136522365233652436525365263652736528365293653036531365323653336534365353653636537365383653936540365413654236543365443654536546365473654836549365503655136552365533655436555365563655736558365593656036561365623656336564365653656636567365683656936570365713657236573365743657536576365773657836579365803658136582365833658436585365863658736588365893659036591365923659336594365953659636597365983659936600366013660236603366043660536606366073660836609366103661136612366133661436615366163661736618366193662036621366223662336624366253662636627366283662936630366313663236633366343663536636366373663836639366403664136642366433664436645366463664736648366493665036651366523665336654366553665636657366583665936660366613666236663366643666536666366673666836669366703667136672366733667436675366763667736678366793668036681366823668336684366853668636687366883668936690366913669236693366943669536696366973669836699367003670136702367033670436705367063670736708367093671036711367123671336714367153671636717367183671936720367213672236723367243672536726367273672836729367303673136732367333673436735367363673736738367393674036741367423674336744367453674636747367483674936750367513675236753367543675536756367573675836759367603676136762367633676436765367663676736768367693677036771367723677336774367753677636777367783677936780367813678236783367843678536786367873678836789367903679136792367933679436795367963679736798367993680036801368023680336804368053680636807368083680936810368113681236813368143681536816368173681836819368203682136822368233682436825368263682736828368293683036831368323683336834368353683636837368383683936840368413684236843368443684536846368473684836849368503685136852368533685436855368563685736858368593686036861368623686336864368653686636867368683686936870368713687236873368743687536876368773687836879368803688136882368833688436885368863688736888368893689036891368923689336894368953689636897368983689936900369013690236903369043690536906369073690836909369103691136912369133691436915369163691736918369193692036921369223692336924369253692636927369283692936930369313693236933369343693536936369373693836939369403694136942369433694436945369463694736948369493695036951369523695336954369553695636957369583695936960369613696236963369643696536966369673696836969369703697136972369733697436975369763697736978369793698036981369823698336984369853698636987369883698936990369913699236993369943699536996369973699836999370003700137002370033700437005370063700737008370093701037011370123701337014370153701637017370183701937020370213702237023370243702537026370273702837029370303703137032370333703437035370363703737038370393704037041370423704337044370453704637047370483704937050370513705237053370543705537056370573705837059370603706137062370633706437065370663706737068370693707037071370723707337074370753707637077370783707937080370813708237083370843708537086370873708837089370903709137092370933709437095370963709737098370993710037101371023710337104371053710637107371083710937110371113711237113371143711537116371173711837119371203712137122371233712437125371263712737128371293713037131371323713337134371353713637137371383713937140371413714237143371443714537146371473714837149371503715137152371533715437155371563715737158371593716037161371623716337164371653716637167371683716937170371713717237173371743717537176371773717837179371803718137182371833718437185371863718737188371893719037191371923719337194371953719637197371983719937200372013720237203372043720537206372073720837209372103721137212372133721437215372163721737218372193722037221372223722337224372253722637227372283722937230372313723237233372343723537236372373723837239372403724137242372433724437245372463724737248372493725037251372523725337254372553725637257372583725937260372613726237263372643726537266372673726837269372703727137272372733727437275372763727737278372793728037281372823728337284372853728637287372883728937290372913729237293372943729537296372973729837299373003730137302373033730437305373063730737308373093731037311373123731337314373153731637317373183731937320373213732237323373243732537326373273732837329373303733137332373333733437335373363733737338373393734037341373423734337344373453734637347373483734937350373513735237353373543735537356373573735837359373603736137362373633736437365373663736737368373693737037371373723737337374373753737637377373783737937380373813738237383373843738537386373873738837389373903739137392373933739437395373963739737398373993740037401374023740337404374053740637407374083740937410374113741237413374143741537416374173741837419374203742137422374233742437425374263742737428374293743037431374323743337434374353743637437374383743937440374413744237443374443744537446374473744837449374503745137452374533745437455374563745737458374593746037461374623746337464374653746637467374683746937470374713747237473374743747537476374773747837479374803748137482374833748437485374863748737488374893749037491374923749337494374953749637497374983749937500375013750237503375043750537506375073750837509375103751137512375133751437515375163751737518375193752037521375223752337524375253752637527375283752937530375313753237533375343753537536375373753837539375403754137542375433754437545375463754737548375493755037551375523755337554375553755637557375583755937560375613756237563375643756537566375673756837569375703757137572375733757437575375763757737578375793758037581375823758337584375853758637587375883758937590375913759237593375943759537596375973759837599376003760137602376033760437605376063760737608376093761037611376123761337614376153761637617376183761937620376213762237623376243762537626376273762837629376303763137632376333763437635376363763737638376393764037641376423764337644376453764637647376483764937650376513765237653376543765537656376573765837659376603766137662376633766437665376663766737668376693767037671376723767337674376753767637677376783767937680376813768237683376843768537686376873768837689376903769137692376933769437695376963769737698376993770037701377023770337704377053770637707377083770937710377113771237713377143771537716377173771837719377203772137722377233772437725377263772737728377293773037731377323773337734377353773637737377383773937740377413774237743377443774537746377473774837749377503775137752377533775437755377563775737758377593776037761377623776337764377653776637767377683776937770377713777237773377743777537776377773777837779377803778137782377833778437785377863778737788377893779037791377923779337794377953779637797377983779937800378013780237803378043780537806378073780837809378103781137812378133781437815378163781737818378193782037821378223782337824378253782637827378283782937830378313783237833378343783537836378373783837839378403784137842378433784437845378463784737848378493785037851378523785337854378553785637857378583785937860378613786237863378643786537866378673786837869378703787137872378733787437875378763787737878378793788037881378823788337884378853788637887378883788937890378913789237893378943789537896378973789837899379003790137902379033790437905379063790737908379093791037911379123791337914379153791637917379183791937920379213792237923379243792537926379273792837929379303793137932379333793437935379363793737938379393794037941379423794337944379453794637947379483794937950379513795237953379543795537956379573795837959379603796137962379633796437965379663796737968379693797037971379723797337974379753797637977379783797937980379813798237983379843798537986379873798837989379903799137992379933799437995379963799737998379993800038001380023800338004380053800638007380083800938010380113801238013380143801538016380173801838019380203802138022380233802438025380263802738028380293803038031380323803338034380353803638037380383803938040380413804238043380443804538046380473804838049380503805138052380533805438055380563805738058380593806038061380623806338064380653806638067380683806938070380713807238073380743807538076380773807838079380803808138082380833808438085380863808738088380893809038091380923809338094380953809638097380983809938100381013810238103381043810538106381073810838109381103811138112381133811438115381163811738118381193812038121381223812338124381253812638127381283812938130381313813238133381343813538136381373813838139381403814138142381433814438145381463814738148381493815038151381523815338154381553815638157381583815938160381613816238163381643816538166381673816838169381703817138172381733817438175381763817738178381793818038181381823818338184381853818638187381883818938190381913819238193381943819538196381973819838199382003820138202382033820438205382063820738208382093821038211382123821338214382153821638217382183821938220382213822238223382243822538226382273822838229382303823138232382333823438235382363823738238382393824038241382423824338244382453824638247382483824938250382513825238253382543825538256382573825838259382603826138262382633826438265382663826738268382693827038271382723827338274382753827638277382783827938280382813828238283382843828538286382873828838289382903829138292382933829438295382963829738298382993830038301383023830338304383053830638307383083830938310383113831238313383143831538316383173831838319383203832138322383233832438325383263832738328383293833038331383323833338334383353833638337383383833938340383413834238343383443834538346383473834838349383503835138352383533835438355383563835738358383593836038361383623836338364383653836638367383683836938370383713837238373383743837538376383773837838379383803838138382383833838438385383863838738388383893839038391383923839338394383953839638397383983839938400384013840238403384043840538406384073840838409384103841138412384133841438415384163841738418384193842038421384223842338424384253842638427384283842938430384313843238433384343843538436384373843838439384403844138442384433844438445384463844738448384493845038451384523845338454384553845638457384583845938460384613846238463384643846538466384673846838469384703847138472384733847438475384763847738478384793848038481384823848338484384853848638487384883848938490384913849238493384943849538496384973849838499385003850138502385033850438505385063850738508385093851038511385123851338514385153851638517385183851938520385213852238523385243852538526385273852838529385303853138532385333853438535385363853738538385393854038541385423854338544385453854638547385483854938550385513855238553385543855538556385573855838559385603856138562385633856438565385663856738568385693857038571385723857338574385753857638577385783857938580385813858238583385843858538586385873858838589385903859138592385933859438595385963859738598385993860038601386023860338604386053860638607386083860938610386113861238613386143861538616386173861838619386203862138622386233862438625386263862738628386293863038631386323863338634386353863638637386383863938640386413864238643386443864538646386473864838649386503865138652386533865438655386563865738658386593866038661386623866338664386653866638667386683866938670386713867238673386743867538676386773867838679386803868138682386833868438685386863868738688386893869038691386923869338694386953869638697386983869938700387013870238703387043870538706387073870838709387103871138712387133871438715387163871738718387193872038721387223872338724387253872638727387283872938730387313873238733387343873538736387373873838739387403874138742387433874438745387463874738748387493875038751387523875338754387553875638757387583875938760387613876238763387643876538766387673876838769387703877138772387733877438775387763877738778387793878038781387823878338784387853878638787387883878938790387913879238793387943879538796387973879838799388003880138802388033880438805388063880738808388093881038811388123881338814388153881638817388183881938820388213882238823388243882538826388273882838829388303883138832388333883438835388363883738838388393884038841388423884338844388453884638847388483884938850388513885238853388543885538856388573885838859388603886138862388633886438865388663886738868388693887038871388723887338874388753887638877388783887938880388813888238883388843888538886388873888838889388903889138892388933889438895388963889738898388993890038901389023890338904389053890638907389083890938910389113891238913389143891538916389173891838919389203892138922389233892438925389263892738928389293893038931389323893338934389353893638937389383893938940389413894238943389443894538946389473894838949389503895138952389533895438955389563895738958389593896038961389623896338964389653896638967389683896938970389713897238973389743897538976389773897838979389803898138982389833898438985389863898738988389893899038991389923899338994389953899638997389983899939000390013900239003390043900539006390073900839009390103901139012390133901439015390163901739018390193902039021390223902339024390253902639027390283902939030390313903239033390343903539036390373903839039390403904139042390433904439045390463904739048390493905039051390523905339054390553905639057390583905939060390613906239063390643906539066390673906839069390703907139072390733907439075390763907739078390793908039081390823908339084390853908639087390883908939090390913909239093390943909539096390973909839099391003910139102391033910439105391063910739108391093911039111391123911339114391153911639117391183911939120391213912239123391243912539126391273912839129391303913139132391333913439135391363913739138391393914039141391423914339144391453914639147391483914939150391513915239153391543915539156391573915839159391603916139162391633916439165391663916739168391693917039171391723917339174391753917639177391783917939180391813918239183391843918539186391873918839189391903919139192391933919439195391963919739198391993920039201392023920339204392053920639207392083920939210392113921239213392143921539216392173921839219392203922139222392233922439225392263922739228392293923039231392323923339234392353923639237392383923939240392413924239243392443924539246392473924839249392503925139252392533925439255392563925739258392593926039261392623926339264392653926639267392683926939270392713927239273392743927539276392773927839279392803928139282392833928439285392863928739288392893929039291392923929339294392953929639297392983929939300393013930239303393043930539306393073930839309393103931139312393133931439315393163931739318393193932039321393223932339324393253932639327393283932939330393313933239333393343933539336393373933839339393403934139342393433934439345393463934739348393493935039351393523935339354393553935639357393583935939360393613936239363393643936539366393673936839369393703937139372393733937439375393763937739378393793938039381393823938339384393853938639387393883938939390393913939239393393943939539396393973939839399394003940139402394033940439405394063940739408394093941039411394123941339414394153941639417394183941939420394213942239423394243942539426394273942839429394303943139432394333943439435394363943739438394393944039441394423944339444394453944639447394483944939450394513945239453394543945539456394573945839459394603946139462394633946439465394663946739468394693947039471394723947339474394753947639477394783947939480394813948239483394843948539486394873948839489394903949139492394933949439495394963949739498394993950039501395023950339504395053950639507395083950939510395113951239513395143951539516395173951839519395203952139522395233952439525395263952739528395293953039531395323953339534395353953639537395383953939540395413954239543395443954539546395473954839549395503955139552395533955439555395563955739558395593956039561395623956339564395653956639567395683956939570395713957239573395743957539576395773957839579395803958139582395833958439585395863958739588395893959039591395923959339594395953959639597395983959939600396013960239603396043960539606396073960839609396103961139612396133961439615396163961739618396193962039621396223962339624396253962639627396283962939630396313963239633396343963539636396373963839639396403964139642396433964439645396463964739648396493965039651396523965339654396553965639657396583965939660396613966239663396643966539666396673966839669396703967139672396733967439675396763967739678396793968039681396823968339684396853968639687396883968939690396913969239693396943969539696396973969839699397003970139702397033970439705397063970739708397093971039711397123971339714397153971639717397183971939720397213972239723397243972539726397273972839729397303973139732397333973439735397363973739738397393974039741397423974339744397453974639747397483974939750397513975239753397543975539756397573975839759397603976139762397633976439765397663976739768397693977039771397723977339774397753977639777397783977939780397813978239783397843978539786397873978839789397903979139792397933979439795397963979739798397993980039801398023980339804398053980639807398083980939810398113981239813398143981539816398173981839819398203982139822398233982439825398263982739828398293983039831398323983339834398353983639837398383983939840398413984239843398443984539846398473984839849398503985139852398533985439855398563985739858398593986039861398623986339864398653986639867398683986939870398713987239873398743987539876398773987839879398803988139882398833988439885398863988739888398893989039891398923989339894398953989639897398983989939900399013990239903399043990539906399073990839909399103991139912399133991439915399163991739918399193992039921399223992339924399253992639927399283992939930399313993239933399343993539936399373993839939399403994139942399433994439945399463994739948399493995039951399523995339954399553995639957399583995939960399613996239963399643996539966399673996839969399703997139972399733997439975399763997739978399793998039981399823998339984399853998639987399883998939990399913999239993399943999539996399973999839999400004000140002400034000440005400064000740008400094001040011400124001340014400154001640017400184001940020400214002240023400244002540026400274002840029400304003140032400334003440035400364003740038400394004040041400424004340044400454004640047400484004940050400514005240053400544005540056400574005840059400604006140062400634006440065400664006740068400694007040071400724007340074400754007640077400784007940080400814008240083400844008540086400874008840089400904009140092400934009440095400964009740098400994010040101401024010340104401054010640107401084010940110401114011240113401144011540116401174011840119401204012140122401234012440125401264012740128401294013040131401324013340134401354013640137401384013940140401414014240143401444014540146401474014840149401504015140152401534015440155401564015740158401594016040161401624016340164401654016640167401684016940170401714017240173401744017540176401774017840179401804018140182401834018440185401864018740188401894019040191401924019340194401954019640197401984019940200402014020240203402044020540206402074020840209402104021140212402134021440215402164021740218402194022040221402224022340224402254022640227402284022940230402314023240233402344023540236402374023840239402404024140242402434024440245402464024740248402494025040251402524025340254402554025640257402584025940260402614026240263402644026540266402674026840269402704027140272402734027440275402764027740278402794028040281402824028340284402854028640287402884028940290402914029240293402944029540296402974029840299403004030140302403034030440305403064030740308403094031040311403124031340314403154031640317403184031940320403214032240323403244032540326403274032840329403304033140332403334033440335403364033740338403394034040341403424034340344403454034640347403484034940350403514035240353403544035540356403574035840359403604036140362403634036440365403664036740368403694037040371403724037340374403754037640377403784037940380403814038240383403844038540386403874038840389403904039140392403934039440395403964039740398403994040040401404024040340404404054040640407404084040940410404114041240413404144041540416404174041840419404204042140422404234042440425404264042740428404294043040431404324043340434404354043640437404384043940440404414044240443404444044540446404474044840449404504045140452404534045440455404564045740458404594046040461404624046340464404654046640467404684046940470404714047240473404744047540476404774047840479404804048140482404834048440485404864048740488404894049040491404924049340494404954049640497404984049940500405014050240503405044050540506405074050840509405104051140512405134051440515405164051740518405194052040521405224052340524405254052640527405284052940530405314053240533405344053540536405374053840539405404054140542405434054440545405464054740548405494055040551405524055340554405554055640557405584055940560405614056240563405644056540566405674056840569405704057140572405734057440575405764057740578405794058040581405824058340584405854058640587405884058940590405914059240593405944059540596405974059840599406004060140602406034060440605406064060740608406094061040611406124061340614406154061640617406184061940620406214062240623406244062540626406274062840629406304063140632406334063440635406364063740638406394064040641406424064340644406454064640647406484064940650406514065240653406544065540656406574065840659406604066140662406634066440665406664066740668406694067040671406724067340674406754067640677406784067940680406814068240683406844068540686406874068840689406904069140692406934069440695406964069740698406994070040701407024070340704407054070640707407084070940710407114071240713407144071540716407174071840719407204072140722407234072440725407264072740728407294073040731407324073340734407354073640737407384073940740407414074240743407444074540746407474074840749407504075140752407534075440755407564075740758407594076040761407624076340764407654076640767407684076940770407714077240773407744077540776407774077840779407804078140782407834078440785407864078740788407894079040791407924079340794407954079640797407984079940800408014080240803408044080540806408074080840809408104081140812408134081440815408164081740818408194082040821408224082340824408254082640827408284082940830408314083240833408344083540836408374083840839408404084140842408434084440845408464084740848408494085040851408524085340854408554085640857408584085940860408614086240863408644086540866408674086840869408704087140872408734087440875408764087740878408794088040881408824088340884408854088640887408884088940890408914089240893408944089540896408974089840899409004090140902409034090440905409064090740908409094091040911409124091340914409154091640917409184091940920409214092240923409244092540926409274092840929409304093140932409334093440935409364093740938409394094040941409424094340944409454094640947409484094940950409514095240953409544095540956409574095840959409604096140962409634096440965409664096740968409694097040971409724097340974409754097640977409784097940980409814098240983409844098540986409874098840989409904099140992409934099440995409964099740998409994100041001410024100341004410054100641007410084100941010410114101241013410144101541016410174101841019410204102141022410234102441025410264102741028410294103041031410324103341034410354103641037410384103941040410414104241043410444104541046410474104841049410504105141052410534105441055410564105741058410594106041061410624106341064410654106641067410684106941070410714107241073410744107541076410774107841079410804108141082410834108441085410864108741088410894109041091410924109341094410954109641097410984109941100411014110241103411044110541106411074110841109411104111141112411134111441115411164111741118411194112041121411224112341124411254112641127411284112941130411314113241133411344113541136411374113841139411404114141142411434114441145411464114741148411494115041151411524115341154411554115641157411584115941160411614116241163411644116541166411674116841169411704117141172411734117441175411764117741178411794118041181411824118341184411854118641187411884118941190411914119241193411944119541196411974119841199412004120141202412034120441205412064120741208412094121041211412124121341214412154121641217412184121941220412214122241223412244122541226412274122841229412304123141232412334123441235412364123741238412394124041241412424124341244412454124641247412484124941250412514125241253412544125541256412574125841259412604126141262412634126441265412664126741268412694127041271412724127341274412754127641277412784127941280412814128241283412844128541286412874128841289412904129141292412934129441295412964129741298412994130041301413024130341304413054130641307413084130941310413114131241313413144131541316413174131841319413204132141322413234132441325413264132741328413294133041331413324133341334413354133641337413384133941340413414134241343413444134541346413474134841349413504135141352413534135441355413564135741358413594136041361413624136341364413654136641367413684136941370413714137241373413744137541376413774137841379413804138141382413834138441385413864138741388413894139041391413924139341394413954139641397413984139941400414014140241403414044140541406414074140841409414104141141412414134141441415414164141741418414194142041421414224142341424414254142641427414284142941430414314143241433414344143541436414374143841439414404144141442414434144441445414464144741448414494145041451414524145341454414554145641457414584145941460414614146241463414644146541466414674146841469414704147141472414734147441475414764147741478414794148041481414824148341484414854148641487414884148941490414914149241493414944149541496414974149841499415004150141502415034150441505415064150741508415094151041511415124151341514415154151641517415184151941520415214152241523415244152541526415274152841529415304153141532415334153441535415364153741538415394154041541415424154341544415454154641547415484154941550415514155241553415544155541556415574155841559415604156141562415634156441565415664156741568415694157041571415724157341574415754157641577415784157941580415814158241583415844158541586415874158841589415904159141592415934159441595415964159741598415994160041601416024160341604416054160641607416084160941610416114161241613416144161541616416174161841619416204162141622416234162441625416264162741628416294163041631416324163341634416354163641637416384163941640416414164241643416444164541646416474164841649416504165141652416534165441655416564165741658416594166041661416624166341664416654166641667416684166941670416714167241673416744167541676416774167841679416804168141682416834168441685416864168741688416894169041691416924169341694416954169641697416984169941700417014170241703417044170541706417074170841709417104171141712417134171441715417164171741718417194172041721417224172341724417254172641727417284172941730417314173241733417344173541736417374173841739417404174141742417434174441745417464174741748417494175041751417524175341754417554175641757417584175941760417614176241763417644176541766417674176841769417704177141772417734177441775417764177741778417794178041781417824178341784417854178641787417884178941790417914179241793417944179541796417974179841799418004180141802418034180441805418064180741808418094181041811418124181341814418154181641817418184181941820418214182241823418244182541826418274182841829418304183141832418334183441835418364183741838418394184041841418424184341844418454184641847418484184941850418514185241853418544185541856418574185841859418604186141862418634186441865418664186741868418694187041871418724187341874418754187641877418784187941880418814188241883418844188541886418874188841889418904189141892418934189441895418964189741898418994190041901419024190341904419054190641907419084190941910419114191241913419144191541916419174191841919419204192141922419234192441925419264192741928419294193041931419324193341934419354193641937419384193941940419414194241943419444194541946419474194841949419504195141952419534195441955419564195741958419594196041961419624196341964419654196641967419684196941970419714197241973419744197541976419774197841979419804198141982419834198441985419864198741988419894199041991419924199341994419954199641997419984199942000420014200242003420044200542006420074200842009420104201142012420134201442015420164201742018420194202042021420224202342024420254202642027420284202942030420314203242033420344203542036420374203842039420404204142042420434204442045420464204742048420494205042051420524205342054420554205642057420584205942060420614206242063420644206542066420674206842069420704207142072420734207442075420764207742078420794208042081420824208342084420854208642087420884208942090420914209242093420944209542096420974209842099421004210142102421034210442105421064210742108421094211042111421124211342114421154211642117421184211942120421214212242123421244212542126421274212842129421304213142132421334213442135421364213742138421394214042141421424214342144421454214642147421484214942150421514215242153421544215542156421574215842159421604216142162421634216442165421664216742168421694217042171421724217342174421754217642177421784217942180421814218242183421844218542186421874218842189421904219142192421934219442195421964219742198421994220042201422024220342204422054220642207422084220942210422114221242213422144221542216422174221842219422204222142222422234222442225422264222742228422294223042231422324223342234422354223642237422384223942240422414224242243422444224542246422474224842249422504225142252422534225442255422564225742258422594226042261422624226342264422654226642267422684226942270422714227242273422744227542276422774227842279422804228142282422834228442285422864228742288422894229042291422924229342294422954229642297422984229942300423014230242303423044230542306423074230842309423104231142312423134231442315423164231742318423194232042321423224232342324423254232642327423284232942330423314233242333423344233542336423374233842339423404234142342423434234442345423464234742348423494235042351423524235342354423554235642357423584235942360423614236242363423644236542366423674236842369423704237142372423734237442375423764237742378423794238042381423824238342384423854238642387423884238942390423914239242393423944239542396423974239842399424004240142402424034240442405424064240742408424094241042411424124241342414424154241642417424184241942420424214242242423424244242542426424274242842429424304243142432424334243442435424364243742438424394244042441424424244342444424454244642447424484244942450424514245242453424544245542456424574245842459424604246142462424634246442465424664246742468424694247042471424724247342474424754247642477424784247942480424814248242483424844248542486424874248842489424904249142492424934249442495424964249742498424994250042501425024250342504425054250642507425084250942510425114251242513425144251542516425174251842519425204252142522425234252442525425264252742528425294253042531425324253342534425354253642537425384253942540425414254242543425444254542546425474254842549425504255142552425534255442555425564255742558425594256042561425624256342564425654256642567425684256942570425714257242573425744257542576425774257842579425804258142582425834258442585425864258742588425894259042591425924259342594425954259642597425984259942600426014260242603426044260542606426074260842609426104261142612426134261442615426164261742618426194262042621426224262342624426254262642627426284262942630426314263242633426344263542636426374263842639426404264142642426434264442645426464264742648426494265042651426524265342654426554265642657426584265942660426614266242663426644266542666426674266842669426704267142672426734267442675426764267742678426794268042681426824268342684426854268642687426884268942690426914269242693426944269542696426974269842699427004270142702427034270442705427064270742708427094271042711427124271342714427154271642717427184271942720427214272242723427244272542726427274272842729427304273142732427334273442735427364273742738427394274042741427424274342744427454274642747427484274942750427514275242753427544275542756427574275842759427604276142762427634276442765427664276742768427694277042771427724277342774427754277642777427784277942780427814278242783427844278542786427874278842789427904279142792427934279442795427964279742798427994280042801428024280342804428054280642807428084280942810428114281242813428144281542816428174281842819428204282142822428234282442825428264282742828428294283042831428324283342834428354283642837428384283942840428414284242843428444284542846428474284842849428504285142852428534285442855428564285742858428594286042861428624286342864428654286642867428684286942870428714287242873428744287542876428774287842879428804288142882428834288442885428864288742888428894289042891428924289342894428954289642897428984289942900429014290242903429044290542906429074290842909429104291142912429134291442915429164291742918429194292042921429224292342924429254292642927429284292942930429314293242933429344293542936429374293842939429404294142942429434294442945429464294742948429494295042951429524295342954429554295642957429584295942960429614296242963429644296542966429674296842969429704297142972429734297442975429764297742978429794298042981429824298342984429854298642987429884298942990429914299242993429944299542996429974299842999430004300143002430034300443005430064300743008430094301043011430124301343014430154301643017430184301943020430214302243023430244302543026430274302843029430304303143032430334303443035430364303743038430394304043041430424304343044430454304643047430484304943050430514305243053430544305543056430574305843059430604306143062430634306443065430664306743068430694307043071430724307343074430754307643077430784307943080430814308243083430844308543086430874308843089430904309143092430934309443095430964309743098430994310043101431024310343104431054310643107431084310943110431114311243113431144311543116431174311843119431204312143122431234312443125431264312743128431294313043131431324313343134431354313643137431384313943140431414314243143431444314543146431474314843149431504315143152431534315443155431564315743158431594316043161431624316343164431654316643167431684316943170431714317243173431744317543176431774317843179431804318143182431834318443185431864318743188431894319043191431924319343194431954319643197431984319943200432014320243203432044320543206432074320843209432104321143212432134321443215432164321743218432194322043221432224322343224432254322643227432284322943230432314323243233432344323543236432374323843239432404324143242432434324443245432464324743248432494325043251432524325343254432554325643257432584325943260432614326243263432644326543266432674326843269432704327143272432734327443275432764327743278432794328043281432824328343284432854328643287432884328943290432914329243293432944329543296432974329843299433004330143302433034330443305433064330743308433094331043311433124331343314433154331643317433184331943320433214332243323433244332543326433274332843329433304333143332433334333443335433364333743338433394334043341433424334343344433454334643347433484334943350433514335243353433544335543356433574335843359433604336143362433634336443365433664336743368433694337043371433724337343374433754337643377433784337943380433814338243383433844338543386433874338843389433904339143392433934339443395433964339743398433994340043401434024340343404434054340643407434084340943410434114341243413434144341543416434174341843419434204342143422434234342443425434264342743428434294343043431434324343343434434354343643437434384343943440434414344243443434444344543446434474344843449434504345143452434534345443455434564345743458434594346043461434624346343464434654346643467434684346943470434714347243473434744347543476434774347843479434804348143482434834348443485434864348743488434894349043491434924349343494434954349643497434984349943500435014350243503435044350543506435074350843509435104351143512435134351443515435164351743518435194352043521435224352343524435254352643527435284352943530435314353243533435344353543536435374353843539435404354143542435434354443545435464354743548435494355043551435524355343554435554355643557435584355943560435614356243563435644356543566435674356843569435704357143572435734357443575435764357743578435794358043581435824358343584435854358643587435884358943590435914359243593435944359543596435974359843599436004360143602436034360443605436064360743608436094361043611436124361343614436154361643617436184361943620436214362243623436244362543626436274362843629436304363143632436334363443635436364363743638436394364043641436424364343644436454364643647436484364943650436514365243653436544365543656436574365843659436604366143662436634366443665436664366743668436694367043671436724367343674436754367643677436784367943680436814368243683436844368543686436874368843689436904369143692436934369443695436964369743698436994370043701437024370343704437054370643707437084370943710437114371243713437144371543716437174371843719437204372143722437234372443725437264372743728437294373043731437324373343734437354373643737437384373943740437414374243743437444374543746437474374843749437504375143752437534375443755437564375743758437594376043761437624376343764437654376643767437684376943770437714377243773437744377543776437774377843779437804378143782437834378443785437864378743788437894379043791437924379343794437954379643797437984379943800438014380243803438044380543806438074380843809438104381143812438134381443815438164381743818438194382043821438224382343824438254382643827438284382943830438314383243833438344383543836438374383843839438404384143842438434384443845438464384743848438494385043851438524385343854438554385643857438584385943860438614386243863438644386543866438674386843869438704387143872438734387443875438764387743878438794388043881438824388343884438854388643887438884388943890438914389243893438944389543896438974389843899439004390143902439034390443905439064390743908439094391043911439124391343914439154391643917439184391943920439214392243923439244392543926439274392843929439304393143932439334393443935439364393743938439394394043941439424394343944439454394643947439484394943950439514395243953439544395543956439574395843959439604396143962439634396443965439664396743968439694397043971439724397343974439754397643977439784397943980439814398243983439844398543986439874398843989439904399143992439934399443995439964399743998439994400044001440024400344004440054400644007440084400944010440114401244013440144401544016440174401844019440204402144022440234402444025440264402744028440294403044031440324403344034440354403644037440384403944040440414404244043440444404544046440474404844049440504405144052440534405444055440564405744058440594406044061440624406344064440654406644067440684406944070440714407244073440744407544076440774407844079440804408144082440834408444085440864408744088440894409044091440924409344094440954409644097440984409944100441014410244103441044410544106441074410844109441104411144112441134411444115441164411744118441194412044121441224412344124441254412644127441284412944130441314413244133441344413544136441374413844139441404414144142441434414444145441464414744148441494415044151441524415344154441554415644157441584415944160441614416244163441644416544166441674416844169441704417144172441734417444175441764417744178441794418044181441824418344184441854418644187441884418944190441914419244193441944419544196441974419844199442004420144202442034420444205442064420744208442094421044211442124421344214442154421644217442184421944220442214422244223442244422544226442274422844229442304423144232442334423444235442364423744238442394424044241442424424344244442454424644247442484424944250442514425244253442544425544256442574425844259442604426144262442634426444265442664426744268442694427044271442724427344274442754427644277442784427944280442814428244283442844428544286442874428844289442904429144292442934429444295442964429744298442994430044301443024430344304443054430644307443084430944310443114431244313443144431544316443174431844319443204432144322443234432444325443264432744328443294433044331443324433344334443354433644337443384433944340443414434244343443444434544346443474434844349443504435144352443534435444355443564435744358443594436044361443624436344364443654436644367443684436944370443714437244373443744437544376443774437844379443804438144382443834438444385443864438744388443894439044391443924439344394443954439644397443984439944400444014440244403444044440544406444074440844409444104441144412444134441444415444164441744418444194442044421444224442344424444254442644427444284442944430444314443244433444344443544436444374443844439444404444144442444434444444445444464444744448444494445044451444524445344454444554445644457444584445944460444614446244463444644446544466444674446844469444704447144472444734447444475444764447744478444794448044481444824448344484444854448644487444884448944490444914449244493444944449544496444974449844499445004450144502445034450444505445064450744508445094451044511445124451344514445154451644517445184451944520445214452244523445244452544526445274452844529445304453144532445334453444535445364453744538445394454044541445424454344544445454454644547445484454944550445514455244553445544455544556445574455844559445604456144562445634456444565445664456744568445694457044571445724457344574445754457644577445784457944580445814458244583445844458544586445874458844589445904459144592445934459444595445964459744598445994460044601446024460344604446054460644607446084460944610446114461244613446144461544616446174461844619446204462144622446234462444625446264462744628446294463044631446324463344634446354463644637446384463944640446414464244643446444464544646446474464844649446504465144652446534465444655446564465744658446594466044661446624466344664446654466644667446684466944670446714467244673446744467544676446774467844679446804468144682446834468444685446864468744688446894469044691446924469344694446954469644697446984469944700447014470244703447044470544706447074470844709447104471144712447134471444715447164471744718447194472044721447224472344724447254472644727447284472944730447314473244733447344473544736447374473844739447404474144742447434474444745447464474744748447494475044751447524475344754447554475644757447584475944760447614476244763447644476544766447674476844769447704477144772447734477444775447764477744778447794478044781447824478344784447854478644787447884478944790447914479244793447944479544796447974479844799448004480144802448034480444805448064480744808448094481044811448124481344814448154481644817448184481944820448214482244823448244482544826448274482844829448304483144832448334483444835448364483744838448394484044841448424484344844448454484644847448484484944850448514485244853448544485544856448574485844859448604486144862448634486444865448664486744868448694487044871448724487344874448754487644877448784487944880448814488244883448844488544886448874488844889448904489144892448934489444895448964489744898448994490044901449024490344904449054490644907449084490944910449114491244913449144491544916449174491844919449204492144922449234492444925449264492744928449294493044931449324493344934449354493644937449384493944940449414494244943449444494544946449474494844949449504495144952449534495444955449564495744958449594496044961449624496344964449654496644967449684496944970449714497244973449744497544976449774497844979449804498144982449834498444985449864498744988449894499044991449924499344994449954499644997449984499945000450014500245003450044500545006450074500845009450104501145012450134501445015450164501745018450194502045021450224502345024450254502645027450284502945030450314503245033450344503545036450374503845039450404504145042450434504445045450464504745048450494505045051450524505345054450554505645057450584505945060450614506245063450644506545066450674506845069450704507145072450734507445075450764507745078450794508045081450824508345084450854508645087450884508945090450914509245093450944509545096450974509845099451004510145102451034510445105451064510745108451094511045111451124511345114451154511645117451184511945120451214512245123451244512545126451274512845129451304513145132451334513445135451364513745138451394514045141451424514345144451454514645147451484514945150451514515245153451544515545156451574515845159451604516145162451634516445165451664516745168451694517045171451724517345174451754517645177451784517945180451814518245183451844518545186451874518845189451904519145192451934519445195451964519745198451994520045201452024520345204452054520645207452084520945210452114521245213452144521545216452174521845219452204522145222452234522445225452264522745228452294523045231452324523345234452354523645237452384523945240452414524245243452444524545246452474524845249452504525145252452534525445255452564525745258452594526045261452624526345264452654526645267452684526945270452714527245273452744527545276452774527845279452804528145282452834528445285452864528745288452894529045291452924529345294452954529645297452984529945300453014530245303453044530545306453074530845309453104531145312453134531445315453164531745318453194532045321453224532345324453254532645327453284532945330453314533245333453344533545336453374533845339453404534145342453434534445345453464534745348453494535045351453524535345354453554535645357453584535945360453614536245363453644536545366453674536845369453704537145372453734537445375453764537745378453794538045381453824538345384453854538645387453884538945390453914539245393453944539545396453974539845399454004540145402454034540445405454064540745408454094541045411454124541345414454154541645417454184541945420454214542245423454244542545426454274542845429454304543145432454334543445435454364543745438454394544045441454424544345444454454544645447454484544945450454514545245453454544545545456454574545845459454604546145462454634546445465454664546745468454694547045471454724547345474454754547645477454784547945480454814548245483454844548545486454874548845489454904549145492454934549445495454964549745498454994550045501455024550345504455054550645507455084550945510455114551245513455144551545516455174551845519455204552145522455234552445525455264552745528455294553045531455324553345534455354553645537455384553945540455414554245543455444554545546455474554845549455504555145552455534555445555455564555745558455594556045561455624556345564455654556645567455684556945570455714557245573455744557545576455774557845579455804558145582455834558445585455864558745588455894559045591455924559345594455954559645597455984559945600456014560245603456044560545606456074560845609456104561145612456134561445615456164561745618456194562045621456224562345624456254562645627456284562945630456314563245633456344563545636456374563845639456404564145642456434564445645456464564745648456494565045651456524565345654456554565645657456584565945660456614566245663456644566545666456674566845669456704567145672456734567445675456764567745678456794568045681456824568345684456854568645687456884568945690456914569245693456944569545696456974569845699457004570145702457034570445705457064570745708457094571045711457124571345714457154571645717457184571945720457214572245723457244572545726457274572845729457304573145732457334573445735457364573745738457394574045741457424574345744457454574645747457484574945750457514575245753457544575545756457574575845759457604576145762457634576445765457664576745768457694577045771457724577345774457754577645777457784577945780457814578245783457844578545786457874578845789457904579145792457934579445795457964579745798457994580045801458024580345804458054580645807458084580945810458114581245813458144581545816458174581845819458204582145822458234582445825458264582745828458294583045831458324583345834458354583645837458384583945840458414584245843458444584545846458474584845849458504585145852458534585445855458564585745858458594586045861458624586345864458654586645867458684586945870458714587245873458744587545876458774587845879458804588145882458834588445885458864588745888458894589045891458924589345894458954589645897458984589945900459014590245903459044590545906459074590845909459104591145912459134591445915459164591745918459194592045921459224592345924459254592645927459284592945930459314593245933459344593545936459374593845939459404594145942459434594445945459464594745948459494595045951459524595345954459554595645957459584595945960459614596245963459644596545966459674596845969459704597145972459734597445975459764597745978459794598045981459824598345984459854598645987459884598945990459914599245993459944599545996459974599845999460004600146002460034600446005460064600746008460094601046011460124601346014460154601646017460184601946020460214602246023460244602546026460274602846029460304603146032460334603446035460364603746038460394604046041460424604346044460454604646047460484604946050460514605246053460544605546056460574605846059460604606146062460634606446065460664606746068460694607046071460724607346074460754607646077460784607946080460814608246083460844608546086460874608846089460904609146092460934609446095460964609746098460994610046101461024610346104461054610646107461084610946110461114611246113461144611546116461174611846119461204612146122461234612446125461264612746128461294613046131461324613346134461354613646137461384613946140461414614246143461444614546146461474614846149461504615146152461534615446155461564615746158461594616046161461624616346164461654616646167461684616946170461714617246173461744617546176461774617846179461804618146182461834618446185461864618746188461894619046191461924619346194461954619646197461984619946200462014620246203462044620546206462074620846209462104621146212462134621446215462164621746218462194622046221462224622346224462254622646227462284622946230462314623246233462344623546236462374623846239462404624146242462434624446245462464624746248462494625046251462524625346254462554625646257462584625946260462614626246263462644626546266462674626846269462704627146272462734627446275462764627746278462794628046281462824628346284462854628646287462884628946290462914629246293462944629546296462974629846299463004630146302463034630446305463064630746308463094631046311463124631346314463154631646317463184631946320463214632246323463244632546326463274632846329463304633146332463334633446335463364633746338463394634046341463424634346344463454634646347463484634946350463514635246353463544635546356463574635846359463604636146362463634636446365463664636746368463694637046371463724637346374463754637646377463784637946380463814638246383463844638546386463874638846389463904639146392463934639446395463964639746398463994640046401464024640346404464054640646407464084640946410464114641246413464144641546416464174641846419464204642146422464234642446425464264642746428464294643046431464324643346434464354643646437464384643946440464414644246443464444644546446464474644846449464504645146452464534645446455464564645746458464594646046461464624646346464464654646646467464684646946470464714647246473464744647546476464774647846479464804648146482464834648446485464864648746488464894649046491464924649346494464954649646497464984649946500465014650246503465044650546506465074650846509465104651146512465134651446515465164651746518465194652046521465224652346524465254652646527465284652946530465314653246533465344653546536465374653846539465404654146542465434654446545465464654746548465494655046551465524655346554465554655646557465584655946560465614656246563465644656546566465674656846569465704657146572465734657446575465764657746578465794658046581465824658346584465854658646587465884658946590465914659246593465944659546596465974659846599466004660146602466034660446605466064660746608466094661046611466124661346614466154661646617466184661946620466214662246623466244662546626466274662846629466304663146632466334663446635466364663746638466394664046641466424664346644466454664646647466484664946650466514665246653466544665546656466574665846659466604666146662466634666446665466664666746668466694667046671466724667346674466754667646677466784667946680466814668246683466844668546686466874668846689466904669146692466934669446695466964669746698466994670046701467024670346704467054670646707467084670946710467114671246713467144671546716467174671846719467204672146722467234672446725467264672746728467294673046731467324673346734467354673646737467384673946740467414674246743467444674546746467474674846749467504675146752467534675446755467564675746758467594676046761467624676346764467654676646767467684676946770467714677246773467744677546776467774677846779467804678146782467834678446785467864678746788467894679046791467924679346794467954679646797467984679946800468014680246803468044680546806468074680846809468104681146812468134681446815468164681746818468194682046821468224682346824468254682646827468284682946830468314683246833468344683546836468374683846839468404684146842468434684446845468464684746848468494685046851468524685346854468554685646857468584685946860468614686246863468644686546866468674686846869468704687146872468734687446875468764687746878468794688046881468824688346884468854688646887468884688946890468914689246893468944689546896468974689846899469004690146902469034690446905469064690746908469094691046911469124691346914469154691646917469184691946920469214692246923469244692546926469274692846929469304693146932469334693446935469364693746938469394694046941469424694346944469454694646947469484694946950469514695246953469544695546956469574695846959469604696146962469634696446965469664696746968469694697046971469724697346974469754697646977469784697946980469814698246983469844698546986469874698846989469904699146992469934699446995469964699746998469994700047001470024700347004470054700647007470084700947010470114701247013470144701547016470174701847019470204702147022470234702447025470264702747028470294703047031470324703347034470354703647037470384703947040470414704247043470444704547046470474704847049470504705147052470534705447055470564705747058470594706047061470624706347064470654706647067470684706947070470714707247073470744707547076470774707847079470804708147082470834708447085470864708747088470894709047091470924709347094470954709647097470984709947100471014710247103471044710547106471074710847109471104711147112471134711447115471164711747118471194712047121471224712347124471254712647127471284712947130471314713247133471344713547136471374713847139471404714147142471434714447145471464714747148471494715047151471524715347154471554715647157471584715947160471614716247163471644716547166471674716847169471704717147172471734717447175471764717747178471794718047181471824718347184471854718647187471884718947190471914719247193471944719547196471974719847199472004720147202472034720447205472064720747208472094721047211472124721347214472154721647217472184721947220472214722247223472244722547226472274722847229472304723147232472334723447235472364723747238472394724047241472424724347244472454724647247472484724947250472514725247253472544725547256472574725847259472604726147262472634726447265472664726747268472694727047271472724727347274472754727647277472784727947280472814728247283472844728547286472874728847289472904729147292472934729447295472964729747298472994730047301473024730347304473054730647307473084730947310473114731247313473144731547316473174731847319473204732147322473234732447325473264732747328473294733047331473324733347334473354733647337473384733947340473414734247343473444734547346473474734847349473504735147352473534735447355473564735747358473594736047361473624736347364473654736647367473684736947370473714737247373473744737547376473774737847379473804738147382473834738447385473864738747388473894739047391473924739347394473954739647397473984739947400474014740247403474044740547406474074740847409474104741147412474134741447415474164741747418474194742047421474224742347424474254742647427474284742947430474314743247433474344743547436474374743847439474404744147442474434744447445474464744747448474494745047451474524745347454474554745647457474584745947460474614746247463474644746547466474674746847469474704747147472474734747447475474764747747478474794748047481474824748347484474854748647487474884748947490474914749247493474944749547496474974749847499475004750147502475034750447505475064750747508475094751047511475124751347514475154751647517475184751947520475214752247523475244752547526475274752847529475304753147532475334753447535475364753747538475394754047541475424754347544475454754647547475484754947550475514755247553475544755547556475574755847559475604756147562475634756447565475664756747568475694757047571475724757347574475754757647577475784757947580475814758247583475844758547586475874758847589475904759147592475934759447595475964759747598475994760047601476024760347604476054760647607476084760947610476114761247613476144761547616476174761847619476204762147622476234762447625476264762747628476294763047631476324763347634476354763647637476384763947640476414764247643476444764547646476474764847649476504765147652476534765447655476564765747658476594766047661476624766347664476654766647667476684766947670476714767247673476744767547676476774767847679476804768147682476834768447685476864768747688476894769047691476924769347694476954769647697476984769947700477014770247703477044770547706477074770847709477104771147712477134771447715477164771747718477194772047721477224772347724477254772647727477284772947730477314773247733477344773547736477374773847739477404774147742477434774447745477464774747748477494775047751477524775347754477554775647757477584775947760477614776247763477644776547766477674776847769477704777147772477734777447775477764777747778477794778047781477824778347784477854778647787477884778947790477914779247793477944779547796477974779847799478004780147802478034780447805478064780747808478094781047811478124781347814478154781647817478184781947820478214782247823478244782547826478274782847829478304783147832478334783447835478364783747838478394784047841478424784347844478454784647847478484784947850478514785247853478544785547856478574785847859478604786147862478634786447865478664786747868478694787047871478724787347874478754787647877478784787947880478814788247883478844788547886478874788847889478904789147892478934789447895478964789747898478994790047901479024790347904479054790647907479084790947910479114791247913479144791547916479174791847919479204792147922479234792447925479264792747928479294793047931479324793347934479354793647937479384793947940479414794247943479444794547946479474794847949479504795147952479534795447955479564795747958479594796047961479624796347964479654796647967479684796947970479714797247973479744797547976479774797847979479804798147982479834798447985479864798747988479894799047991479924799347994479954799647997479984799948000480014800248003480044800548006480074800848009480104801148012480134801448015480164801748018480194802048021480224802348024480254802648027480284802948030480314803248033480344803548036480374803848039480404804148042480434804448045480464804748048480494805048051480524805348054480554805648057480584805948060480614806248063480644806548066480674806848069480704807148072480734807448075480764807748078480794808048081480824808348084480854808648087480884808948090480914809248093480944809548096480974809848099481004810148102481034810448105481064810748108481094811048111481124811348114481154811648117481184811948120481214812248123481244812548126481274812848129481304813148132481334813448135481364813748138481394814048141481424814348144481454814648147481484814948150481514815248153481544815548156481574815848159481604816148162481634816448165481664816748168481694817048171481724817348174481754817648177481784817948180481814818248183481844818548186481874818848189481904819148192481934819448195481964819748198481994820048201482024820348204482054820648207482084820948210482114821248213482144821548216482174821848219482204822148222482234822448225482264822748228482294823048231482324823348234482354823648237482384823948240482414824248243482444824548246482474824848249482504825148252482534825448255482564825748258482594826048261482624826348264482654826648267482684826948270482714827248273482744827548276482774827848279482804828148282482834828448285482864828748288482894829048291482924829348294482954829648297482984829948300483014830248303483044830548306483074830848309483104831148312483134831448315483164831748318483194832048321483224832348324483254832648327483284832948330483314833248333483344833548336483374833848339483404834148342483434834448345483464834748348483494835048351483524835348354483554835648357483584835948360483614836248363483644836548366483674836848369483704837148372483734837448375483764837748378483794838048381483824838348384483854838648387483884838948390483914839248393483944839548396483974839848399484004840148402484034840448405484064840748408484094841048411484124841348414484154841648417484184841948420484214842248423484244842548426484274842848429484304843148432484334843448435484364843748438484394844048441484424844348444484454844648447484484844948450484514845248453484544845548456484574845848459484604846148462484634846448465484664846748468484694847048471484724847348474484754847648477484784847948480484814848248483484844848548486484874848848489484904849148492484934849448495484964849748498484994850048501485024850348504485054850648507485084850948510485114851248513485144851548516485174851848519485204852148522485234852448525485264852748528485294853048531485324853348534485354853648537485384853948540485414854248543485444854548546485474854848549485504855148552485534855448555485564855748558485594856048561485624856348564485654856648567485684856948570485714857248573485744857548576485774857848579485804858148582485834858448585485864858748588485894859048591485924859348594485954859648597485984859948600486014860248603486044860548606486074860848609486104861148612486134861448615486164861748618486194862048621486224862348624486254862648627486284862948630486314863248633486344863548636486374863848639486404864148642486434864448645486464864748648486494865048651486524865348654486554865648657486584865948660486614866248663486644866548666486674866848669486704867148672486734867448675486764867748678486794868048681486824868348684486854868648687486884868948690486914869248693486944869548696486974869848699487004870148702487034870448705487064870748708487094871048711487124871348714487154871648717487184871948720487214872248723487244872548726487274872848729487304873148732487334873448735487364873748738487394874048741487424874348744487454874648747487484874948750487514875248753487544875548756487574875848759487604876148762487634876448765487664876748768487694877048771487724877348774487754877648777487784877948780487814878248783487844878548786487874878848789487904879148792487934879448795487964879748798487994880048801488024880348804488054880648807488084880948810488114881248813488144881548816488174881848819488204882148822488234882448825488264882748828488294883048831488324883348834488354883648837488384883948840488414884248843488444884548846488474884848849488504885148852488534885448855488564885748858488594886048861488624886348864488654886648867488684886948870488714887248873488744887548876488774887848879488804888148882488834888448885488864888748888488894889048891488924889348894488954889648897488984889948900489014890248903489044890548906489074890848909489104891148912489134891448915489164891748918489194892048921489224892348924489254892648927489284892948930489314893248933489344893548936489374893848939489404894148942489434894448945489464894748948489494895048951489524895348954489554895648957489584895948960489614896248963489644896548966489674896848969489704897148972489734897448975489764897748978489794898048981489824898348984489854898648987489884898948990489914899248993489944899548996489974899848999490004900149002490034900449005490064900749008490094901049011490124901349014490154901649017490184901949020490214902249023490244902549026490274902849029490304903149032490334903449035490364903749038490394904049041490424904349044490454904649047490484904949050490514905249053490544905549056490574905849059490604906149062490634906449065490664906749068490694907049071490724907349074490754907649077490784907949080490814908249083490844908549086490874908849089490904909149092490934909449095490964909749098490994910049101491024910349104491054910649107491084910949110491114911249113491144911549116491174911849119491204912149122491234912449125491264912749128491294913049131491324913349134491354913649137491384913949140491414914249143491444914549146491474914849149491504915149152491534915449155491564915749158491594916049161491624916349164491654916649167491684916949170491714917249173491744917549176491774917849179491804918149182491834918449185491864918749188491894919049191491924919349194491954919649197491984919949200492014920249203492044920549206492074920849209492104921149212492134921449215492164921749218492194922049221492224922349224492254922649227492284922949230492314923249233492344923549236492374923849239492404924149242492434924449245492464924749248492494925049251492524925349254492554925649257492584925949260492614926249263492644926549266492674926849269492704927149272492734927449275492764927749278492794928049281492824928349284492854928649287492884928949290492914929249293492944929549296492974929849299493004930149302493034930449305493064930749308493094931049311493124931349314493154931649317493184931949320493214932249323493244932549326493274932849329493304933149332493334933449335493364933749338493394934049341493424934349344493454934649347493484934949350493514935249353493544935549356493574935849359493604936149362493634936449365493664936749368493694937049371493724937349374493754937649377493784937949380493814938249383493844938549386493874938849389493904939149392493934939449395493964939749398493994940049401494024940349404494054940649407494084940949410494114941249413494144941549416494174941849419494204942149422494234942449425494264942749428494294943049431494324943349434494354943649437494384943949440494414944249443494444944549446494474944849449494504945149452494534945449455494564945749458494594946049461494624946349464494654946649467494684946949470494714947249473494744947549476494774947849479494804948149482494834948449485494864948749488494894949049491494924949349494494954949649497494984949949500495014950249503495044950549506495074950849509495104951149512495134951449515495164951749518495194952049521495224952349524495254952649527495284952949530495314953249533495344953549536495374953849539495404954149542495434954449545495464954749548495494955049551495524955349554495554955649557495584955949560495614956249563495644956549566495674956849569495704957149572495734957449575495764957749578495794958049581495824958349584495854958649587495884958949590495914959249593495944959549596495974959849599496004960149602496034960449605496064960749608496094961049611496124961349614496154961649617496184961949620496214962249623496244962549626496274962849629496304963149632496334963449635496364963749638496394964049641496424964349644496454964649647496484964949650496514965249653496544965549656496574965849659496604966149662496634966449665496664966749668496694967049671496724967349674496754967649677496784967949680496814968249683496844968549686496874968849689496904969149692496934969449695496964969749698496994970049701497024970349704497054970649707497084970949710497114971249713497144971549716497174971849719497204972149722497234972449725497264972749728497294973049731497324973349734497354973649737497384973949740497414974249743497444974549746497474974849749497504975149752497534975449755497564975749758497594976049761497624976349764497654976649767497684976949770497714977249773497744977549776497774977849779497804978149782497834978449785497864978749788497894979049791497924979349794497954979649797497984979949800498014980249803498044980549806498074980849809498104981149812498134981449815498164981749818498194982049821498224982349824498254982649827498284982949830498314983249833498344983549836498374983849839498404984149842498434984449845498464984749848498494985049851498524985349854498554985649857498584985949860498614986249863498644986549866498674986849869498704987149872498734987449875498764987749878498794988049881498824988349884498854988649887498884988949890498914989249893498944989549896498974989849899499004990149902499034990449905499064990749908499094991049911499124991349914499154991649917499184991949920499214992249923499244992549926499274992849929499304993149932499334993449935499364993749938499394994049941499424994349944499454994649947499484994949950499514995249953499544995549956499574995849959499604996149962499634996449965499664996749968499694997049971499724997349974499754997649977499784997949980499814998249983499844998549986499874998849989499904999149992499934999449995499964999749998499995000050001500025000350004500055000650007500085000950010500115001250013500145001550016500175001850019500205002150022500235002450025500265002750028500295003050031500325003350034500355003650037500385003950040500415004250043500445004550046500475004850049500505005150052500535005450055500565005750058500595006050061500625006350064500655006650067500685006950070500715007250073500745007550076500775007850079500805008150082500835008450085500865008750088500895009050091500925009350094500955009650097500985009950100501015010250103501045010550106501075010850109501105011150112501135011450115501165011750118501195012050121501225012350124501255012650127501285012950130501315013250133501345013550136501375013850139501405014150142501435014450145501465014750148501495015050151501525015350154501555015650157501585015950160501615016250163501645016550166501675016850169501705017150172501735017450175501765017750178501795018050181501825018350184501855018650187501885018950190501915019250193501945019550196501975019850199502005020150202502035020450205502065020750208502095021050211502125021350214502155021650217502185021950220502215022250223502245022550226502275022850229502305023150232502335023450235502365023750238502395024050241502425024350244502455024650247502485024950250502515025250253502545025550256502575025850259502605026150262502635026450265502665026750268502695027050271502725027350274502755027650277502785027950280502815028250283502845028550286502875028850289502905029150292502935029450295502965029750298502995030050301503025030350304503055030650307503085030950310503115031250313503145031550316503175031850319503205032150322503235032450325503265032750328503295033050331503325033350334503355033650337503385033950340503415034250343503445034550346503475034850349503505035150352503535035450355503565035750358503595036050361503625036350364503655036650367503685036950370503715037250373503745037550376503775037850379503805038150382503835038450385503865038750388503895039050391503925039350394503955039650397503985039950400504015040250403504045040550406504075040850409504105041150412504135041450415504165041750418504195042050421504225042350424504255042650427504285042950430504315043250433504345043550436504375043850439504405044150442504435044450445504465044750448504495045050451504525045350454504555045650457504585045950460504615046250463504645046550466504675046850469504705047150472504735047450475504765047750478504795048050481504825048350484504855048650487504885048950490504915049250493504945049550496504975049850499505005050150502505035050450505505065050750508505095051050511505125051350514505155051650517505185051950520505215052250523505245052550526505275052850529505305053150532505335053450535505365053750538505395054050541505425054350544505455054650547505485054950550505515055250553505545055550556505575055850559505605056150562505635056450565505665056750568505695057050571505725057350574505755057650577505785057950580505815058250583505845058550586505875058850589505905059150592505935059450595505965059750598505995060050601506025060350604506055060650607506085060950610506115061250613506145061550616506175061850619506205062150622506235062450625506265062750628506295063050631506325063350634506355063650637506385063950640506415064250643506445064550646506475064850649506505065150652506535065450655506565065750658506595066050661506625066350664506655066650667506685066950670506715067250673506745067550676506775067850679506805068150682506835068450685506865068750688506895069050691506925069350694506955069650697506985069950700507015070250703507045070550706507075070850709507105071150712507135071450715507165071750718507195072050721507225072350724507255072650727507285072950730507315073250733507345073550736507375073850739507405074150742507435074450745507465074750748507495075050751507525075350754507555075650757507585075950760507615076250763507645076550766507675076850769507705077150772507735077450775507765077750778507795078050781507825078350784507855078650787507885078950790507915079250793507945079550796507975079850799508005080150802508035080450805508065080750808508095081050811508125081350814508155081650817508185081950820508215082250823508245082550826508275082850829508305083150832508335083450835508365083750838508395084050841508425084350844508455084650847508485084950850508515085250853508545085550856508575085850859508605086150862508635086450865508665086750868508695087050871508725087350874508755087650877508785087950880508815088250883508845088550886508875088850889508905089150892508935089450895508965089750898508995090050901509025090350904509055090650907509085090950910509115091250913509145091550916509175091850919509205092150922509235092450925509265092750928509295093050931509325093350934509355093650937509385093950940509415094250943509445094550946509475094850949509505095150952509535095450955509565095750958509595096050961509625096350964509655096650967509685096950970509715097250973509745097550976509775097850979509805098150982509835098450985509865098750988509895099050991509925099350994509955099650997509985099951000510015100251003510045100551006510075100851009510105101151012510135101451015510165101751018510195102051021510225102351024510255102651027510285102951030510315103251033510345103551036510375103851039510405104151042510435104451045510465104751048510495105051051510525105351054510555105651057510585105951060510615106251063510645106551066510675106851069510705107151072510735107451075510765107751078510795108051081510825108351084510855108651087510885108951090510915109251093510945109551096510975109851099511005110151102511035110451105511065110751108511095111051111511125111351114511155111651117511185111951120511215112251123511245112551126511275112851129511305113151132511335113451135511365113751138511395114051141511425114351144511455114651147511485114951150511515115251153511545115551156511575115851159511605116151162511635116451165511665116751168511695117051171511725117351174511755117651177511785117951180511815118251183511845118551186511875118851189511905119151192511935119451195511965119751198511995120051201512025120351204512055120651207512085120951210512115121251213512145121551216512175121851219512205122151222512235122451225512265122751228512295123051231512325123351234512355123651237512385123951240512415124251243512445124551246512475124851249512505125151252512535125451255512565125751258512595126051261512625126351264512655126651267512685126951270512715127251273512745127551276512775127851279512805128151282512835128451285512865128751288512895129051291512925129351294512955129651297512985129951300513015130251303513045130551306513075130851309513105131151312513135131451315513165131751318513195132051321513225132351324513255132651327513285132951330513315133251333513345133551336513375133851339513405134151342513435134451345513465134751348513495135051351513525135351354513555135651357513585135951360513615136251363513645136551366513675136851369513705137151372513735137451375513765137751378513795138051381513825138351384513855138651387513885138951390513915139251393513945139551396513975139851399514005140151402514035140451405514065140751408514095141051411514125141351414514155141651417514185141951420514215142251423514245142551426514275142851429514305143151432514335143451435514365143751438514395144051441514425144351444514455144651447514485144951450514515145251453514545145551456514575145851459514605146151462514635146451465514665146751468514695147051471514725147351474514755147651477514785147951480514815148251483514845148551486514875148851489514905149151492514935149451495514965149751498514995150051501515025150351504515055150651507515085150951510515115151251513515145151551516515175151851519515205152151522515235152451525515265152751528515295153051531515325153351534515355153651537515385153951540515415154251543515445154551546515475154851549515505155151552515535155451555515565155751558515595156051561515625156351564515655156651567515685156951570515715157251573515745157551576515775157851579515805158151582515835158451585515865158751588515895159051591515925159351594515955159651597515985159951600516015160251603516045160551606516075160851609516105161151612516135161451615516165161751618516195162051621516225162351624516255162651627516285162951630516315163251633516345163551636516375163851639516405164151642516435164451645516465164751648516495165051651516525165351654516555165651657516585165951660516615166251663516645166551666516675166851669516705167151672516735167451675516765167751678516795168051681516825168351684516855168651687516885168951690516915169251693516945169551696516975169851699517005170151702517035170451705517065170751708517095171051711517125171351714517155171651717517185171951720517215172251723517245172551726517275172851729517305173151732517335173451735517365173751738517395174051741517425174351744517455174651747517485174951750517515175251753517545175551756517575175851759517605176151762517635176451765517665176751768517695177051771517725177351774517755177651777517785177951780517815178251783517845178551786517875178851789517905179151792517935179451795517965179751798517995180051801518025180351804518055180651807518085180951810518115181251813518145181551816518175181851819518205182151822518235182451825518265182751828518295183051831518325183351834518355183651837518385183951840518415184251843518445184551846518475184851849518505185151852518535185451855518565185751858518595186051861518625186351864518655186651867518685186951870518715187251873518745187551876518775187851879518805188151882518835188451885518865188751888518895189051891518925189351894518955189651897518985189951900519015190251903519045190551906519075190851909519105191151912519135191451915519165191751918519195192051921519225192351924519255192651927519285192951930519315193251933519345193551936519375193851939519405194151942519435194451945519465194751948519495195051951519525195351954519555195651957519585195951960519615196251963519645196551966519675196851969519705197151972519735197451975519765197751978519795198051981519825198351984519855198651987519885198951990519915199251993519945199551996519975199851999520005200152002520035200452005520065200752008520095201052011520125201352014520155201652017520185201952020520215202252023520245202552026520275202852029520305203152032520335203452035520365203752038520395204052041520425204352044520455204652047520485204952050520515205252053520545205552056520575205852059520605206152062520635206452065520665206752068520695207052071520725207352074520755207652077520785207952080520815208252083520845208552086520875208852089520905209152092520935209452095520965209752098520995210052101521025210352104521055210652107521085210952110521115211252113521145211552116521175211852119521205212152122521235212452125521265212752128521295213052131521325213352134521355213652137521385213952140521415214252143521445214552146521475214852149521505215152152521535215452155521565215752158521595216052161521625216352164521655216652167521685216952170521715217252173521745217552176521775217852179521805218152182521835218452185521865218752188521895219052191521925219352194521955219652197521985219952200522015220252203522045220552206522075220852209522105221152212522135221452215522165221752218522195222052221522225222352224522255222652227522285222952230522315223252233522345223552236522375223852239522405224152242522435224452245522465224752248522495225052251522525225352254522555225652257522585225952260522615226252263522645226552266522675226852269522705227152272522735227452275522765227752278522795228052281522825228352284522855228652287522885228952290522915229252293522945229552296522975229852299523005230152302523035230452305523065230752308523095231052311523125231352314523155231652317523185231952320523215232252323523245232552326523275232852329523305233152332523335233452335523365233752338523395234052341523425234352344523455234652347523485234952350523515235252353523545235552356523575235852359523605236152362523635236452365523665236752368523695237052371523725237352374523755237652377523785237952380523815238252383523845238552386523875238852389523905239152392523935239452395523965239752398523995240052401524025240352404524055240652407524085240952410524115241252413524145241552416524175241852419524205242152422524235242452425524265242752428524295243052431524325243352434524355243652437524385243952440524415244252443524445244552446524475244852449524505245152452524535245452455524565245752458524595246052461524625246352464524655246652467524685246952470524715247252473524745247552476524775247852479524805248152482524835248452485524865248752488524895249052491524925249352494524955249652497524985249952500525015250252503525045250552506525075250852509525105251152512525135251452515525165251752518525195252052521525225252352524525255252652527525285252952530525315253252533525345253552536525375253852539525405254152542525435254452545525465254752548525495255052551525525255352554525555255652557525585255952560525615256252563525645256552566525675256852569525705257152572525735257452575525765257752578525795258052581525825258352584525855258652587525885258952590525915259252593525945259552596525975259852599526005260152602526035260452605526065260752608526095261052611526125261352614526155261652617526185261952620526215262252623526245262552626526275262852629526305263152632526335263452635526365263752638526395264052641526425264352644526455264652647526485264952650526515265252653526545265552656526575265852659526605266152662526635266452665526665266752668526695267052671526725267352674526755267652677526785267952680526815268252683526845268552686526875268852689526905269152692526935269452695526965269752698526995270052701527025270352704527055270652707527085270952710527115271252713527145271552716527175271852719527205272152722527235272452725527265272752728527295273052731527325273352734527355273652737527385273952740527415274252743527445274552746527475274852749527505275152752527535275452755527565275752758527595276052761527625276352764527655276652767527685276952770527715277252773527745277552776527775277852779527805278152782527835278452785527865278752788527895279052791527925279352794527955279652797527985279952800528015280252803528045280552806528075280852809528105281152812528135281452815528165281752818528195282052821528225282352824528255282652827528285282952830528315283252833528345283552836528375283852839528405284152842528435284452845528465284752848528495285052851528525285352854528555285652857528585285952860528615286252863528645286552866528675286852869528705287152872528735287452875528765287752878528795288052881528825288352884528855288652887528885288952890528915289252893528945289552896528975289852899529005290152902529035290452905529065290752908529095291052911529125291352914529155291652917529185291952920529215292252923529245292552926529275292852929529305293152932529335293452935529365293752938529395294052941529425294352944529455294652947529485294952950529515295252953529545295552956529575295852959529605296152962529635296452965529665296752968529695297052971529725297352974529755297652977529785297952980529815298252983529845298552986529875298852989529905299152992529935299452995529965299752998529995300053001530025300353004530055300653007530085300953010530115301253013530145301553016530175301853019530205302153022530235302453025530265302753028530295303053031530325303353034530355303653037530385303953040530415304253043530445304553046530475304853049530505305153052530535305453055530565305753058530595306053061530625306353064530655306653067530685306953070530715307253073530745307553076530775307853079530805308153082530835308453085530865308753088530895309053091530925309353094530955309653097530985309953100531015310253103531045310553106531075310853109531105311153112531135311453115531165311753118531195312053121531225312353124531255312653127531285312953130531315313253133531345313553136531375313853139531405314153142531435314453145531465314753148531495315053151531525315353154531555315653157531585315953160531615316253163531645316553166531675316853169531705317153172531735317453175531765317753178531795318053181531825318353184531855318653187531885318953190531915319253193531945319553196531975319853199532005320153202532035320453205532065320753208532095321053211532125321353214532155321653217532185321953220532215322253223532245322553226532275322853229532305323153232532335323453235532365323753238532395324053241532425324353244532455324653247532485324953250532515325253253532545325553256532575325853259532605326153262532635326453265532665326753268532695327053271532725327353274532755327653277532785327953280532815328253283532845328553286532875328853289532905329153292532935329453295532965329753298532995330053301533025330353304533055330653307533085330953310533115331253313533145331553316533175331853319533205332153322533235332453325533265332753328533295333053331533325333353334533355333653337533385333953340533415334253343533445334553346533475334853349533505335153352533535335453355533565335753358533595336053361533625336353364533655336653367533685336953370533715337253373533745337553376533775337853379533805338153382533835338453385533865338753388533895339053391533925339353394533955339653397533985339953400534015340253403534045340553406534075340853409534105341153412534135341453415534165341753418534195342053421534225342353424534255342653427534285342953430534315343253433534345343553436534375343853439534405344153442534435344453445534465344753448534495345053451534525345353454534555345653457534585345953460534615346253463534645346553466534675346853469534705347153472534735347453475534765347753478534795348053481534825348353484534855348653487534885348953490534915349253493534945349553496534975349853499535005350153502535035350453505535065350753508535095351053511535125351353514535155351653517535185351953520535215352253523535245352553526535275352853529535305353153532535335353453535535365353753538535395354053541535425354353544535455354653547535485354953550535515355253553535545355553556535575355853559535605356153562535635356453565535665356753568535695357053571535725357353574535755357653577535785357953580535815358253583535845358553586535875358853589535905359153592535935359453595535965359753598535995360053601536025360353604536055360653607536085360953610536115361253613536145361553616536175361853619536205362153622536235362453625536265362753628536295363053631536325363353634536355363653637536385363953640536415364253643536445364553646536475364853649536505365153652536535365453655536565365753658536595366053661536625366353664536655366653667536685366953670536715367253673536745367553676536775367853679536805368153682536835368453685536865368753688536895369053691536925369353694536955369653697536985369953700537015370253703537045370553706537075370853709537105371153712537135371453715537165371753718537195372053721537225372353724537255372653727537285372953730537315373253733537345373553736537375373853739537405374153742537435374453745537465374753748537495375053751537525375353754537555375653757537585375953760537615376253763537645376553766537675376853769537705377153772537735377453775537765377753778537795378053781537825378353784537855378653787537885378953790537915379253793537945379553796537975379853799538005380153802538035380453805538065380753808538095381053811538125381353814538155381653817538185381953820538215382253823538245382553826538275382853829538305383153832538335383453835538365383753838538395384053841538425384353844538455384653847538485384953850538515385253853538545385553856538575385853859538605386153862538635386453865538665386753868538695387053871538725387353874538755387653877538785387953880538815388253883538845388553886538875388853889538905389153892538935389453895538965389753898538995390053901539025390353904539055390653907539085390953910539115391253913539145391553916539175391853919539205392153922539235392453925539265392753928539295393053931539325393353934539355393653937539385393953940539415394253943539445394553946539475394853949539505395153952539535395453955539565395753958539595396053961539625396353964539655396653967539685396953970539715397253973539745397553976539775397853979539805398153982539835398453985539865398753988539895399053991539925399353994539955399653997539985399954000540015400254003540045400554006540075400854009540105401154012540135401454015540165401754018540195402054021540225402354024540255402654027540285402954030540315403254033540345403554036540375403854039540405404154042540435404454045540465404754048540495405054051540525405354054540555405654057540585405954060540615406254063540645406554066540675406854069540705407154072540735407454075540765407754078540795408054081540825408354084540855408654087540885408954090540915409254093540945409554096540975409854099541005410154102541035410454105541065410754108541095411054111541125411354114541155411654117541185411954120541215412254123541245412554126541275412854129541305413154132541335413454135541365413754138541395414054141541425414354144541455414654147541485414954150541515415254153541545415554156541575415854159541605416154162541635416454165541665416754168541695417054171541725417354174541755417654177541785417954180541815418254183541845418554186541875418854189541905419154192541935419454195541965419754198541995420054201542025420354204542055420654207542085420954210542115421254213542145421554216542175421854219542205422154222542235422454225542265422754228542295423054231542325423354234542355423654237542385423954240542415424254243542445424554246542475424854249542505425154252542535425454255542565425754258542595426054261542625426354264542655426654267542685426954270542715427254273542745427554276542775427854279542805428154282542835428454285542865428754288542895429054291542925429354294542955429654297542985429954300543015430254303543045430554306543075430854309543105431154312543135431454315543165431754318543195432054321543225432354324543255432654327543285432954330543315433254333543345433554336543375433854339543405434154342543435434454345543465434754348543495435054351543525435354354543555435654357543585435954360543615436254363543645436554366543675436854369543705437154372543735437454375543765437754378543795438054381543825438354384543855438654387543885438954390543915439254393543945439554396543975439854399544005440154402544035440454405544065440754408544095441054411544125441354414544155441654417544185441954420544215442254423544245442554426544275442854429544305443154432544335443454435544365443754438544395444054441544425444354444544455444654447544485444954450544515445254453544545445554456544575445854459544605446154462544635446454465544665446754468544695447054471544725447354474544755447654477544785447954480544815448254483544845448554486544875448854489544905449154492544935449454495544965449754498544995450054501545025450354504545055450654507545085450954510545115451254513545145451554516545175451854519545205452154522545235452454525545265452754528545295453054531545325453354534545355453654537545385453954540545415454254543545445454554546545475454854549545505455154552545535455454555545565455754558545595456054561545625456354564545655456654567545685456954570545715457254573545745457554576545775457854579545805458154582545835458454585545865458754588545895459054591545925459354594545955459654597545985459954600546015460254603546045460554606546075460854609546105461154612546135461454615546165461754618546195462054621546225462354624546255462654627546285462954630546315463254633546345463554636546375463854639546405464154642546435464454645546465464754648546495465054651546525465354654546555465654657546585465954660546615466254663546645466554666546675466854669546705467154672546735467454675546765467754678546795468054681546825468354684546855468654687546885468954690546915469254693546945469554696546975469854699547005470154702547035470454705547065470754708547095471054711547125471354714547155471654717547185471954720547215472254723547245472554726547275472854729547305473154732547335473454735547365473754738547395474054741547425474354744547455474654747547485474954750547515475254753547545475554756547575475854759547605476154762547635476454765547665476754768547695477054771547725477354774547755477654777547785477954780547815478254783547845478554786547875478854789547905479154792547935479454795547965479754798547995480054801548025480354804548055480654807548085480954810548115481254813548145481554816548175481854819548205482154822548235482454825548265482754828548295483054831548325483354834548355483654837548385483954840548415484254843548445484554846548475484854849548505485154852548535485454855548565485754858548595486054861548625486354864548655486654867548685486954870548715487254873548745487554876548775487854879548805488154882548835488454885548865488754888548895489054891548925489354894548955489654897548985489954900549015490254903549045490554906549075490854909549105491154912549135491454915549165491754918549195492054921549225492354924549255492654927549285492954930549315493254933549345493554936549375493854939549405494154942549435494454945549465494754948549495495054951549525495354954549555495654957549585495954960549615496254963549645496554966549675496854969549705497154972549735497454975549765497754978549795498054981549825498354984549855498654987549885498954990549915499254993549945499554996549975499854999550005500155002550035500455005550065500755008550095501055011550125501355014550155501655017550185501955020550215502255023550245502555026550275502855029550305503155032550335503455035550365503755038550395504055041550425504355044550455504655047550485504955050550515505255053550545505555056550575505855059550605506155062550635506455065550665506755068550695507055071550725507355074550755507655077550785507955080550815508255083550845508555086550875508855089550905509155092550935509455095550965509755098550995510055101551025510355104551055510655107551085510955110551115511255113551145511555116551175511855119551205512155122551235512455125551265512755128551295513055131551325513355134551355513655137551385513955140551415514255143551445514555146551475514855149551505515155152551535515455155551565515755158551595516055161551625516355164551655516655167551685516955170551715517255173551745517555176551775517855179551805518155182551835518455185551865518755188551895519055191551925519355194551955519655197551985519955200552015520255203552045520555206552075520855209552105521155212552135521455215552165521755218552195522055221552225522355224552255522655227552285522955230552315523255233552345523555236552375523855239552405524155242552435524455245552465524755248552495525055251552525525355254552555525655257552585525955260552615526255263552645526555266552675526855269552705527155272552735527455275552765527755278552795528055281552825528355284552855528655287552885528955290552915529255293552945529555296552975529855299553005530155302553035530455305553065530755308553095531055311553125531355314553155531655317553185531955320553215532255323553245532555326553275532855329553305533155332553335533455335553365533755338553395534055341553425534355344553455534655347553485534955350553515535255353553545535555356553575535855359553605536155362553635536455365553665536755368553695537055371553725537355374553755537655377553785537955380553815538255383553845538555386553875538855389553905539155392553935539455395553965539755398553995540055401554025540355404554055540655407554085540955410554115541255413554145541555416554175541855419554205542155422554235542455425554265542755428554295543055431554325543355434554355543655437554385543955440554415544255443554445544555446554475544855449554505545155452554535545455455554565545755458554595546055461554625546355464554655546655467554685546955470554715547255473554745547555476554775547855479554805548155482554835548455485554865548755488554895549055491554925549355494554955549655497554985549955500555015550255503555045550555506555075550855509555105551155512555135551455515555165551755518555195552055521555225552355524555255552655527555285552955530555315553255533555345553555536555375553855539555405554155542555435554455545555465554755548555495555055551555525555355554555555555655557555585555955560555615556255563555645556555566555675556855569555705557155572555735557455575555765557755578555795558055581555825558355584555855558655587555885558955590555915559255593555945559555596555975559855599556005560155602556035560455605556065560755608556095561055611556125561355614556155561655617556185561955620556215562255623556245562555626556275562855629556305563155632556335563455635556365563755638556395564055641556425564355644556455564655647556485564955650556515565255653556545565555656556575565855659556605566155662556635566455665556665566755668556695567055671556725567355674556755567655677556785567955680556815568255683556845568555686556875568855689556905569155692556935569455695556965569755698556995570055701557025570355704557055570655707557085570955710557115571255713557145571555716557175571855719557205572155722557235572455725557265572755728557295573055731557325573355734557355573655737557385573955740557415574255743557445574555746557475574855749557505575155752557535575455755557565575755758557595576055761557625576355764557655576655767557685576955770557715577255773557745577555776557775577855779557805578155782557835578455785557865578755788557895579055791557925579355794557955579655797557985579955800558015580255803558045580555806558075580855809558105581155812558135581455815558165581755818558195582055821558225582355824558255582655827558285582955830558315583255833558345583555836558375583855839558405584155842558435584455845558465584755848558495585055851558525585355854558555585655857558585585955860558615586255863558645586555866558675586855869558705587155872558735587455875558765587755878558795588055881558825588355884558855588655887558885588955890558915589255893558945589555896558975589855899559005590155902559035590455905559065590755908559095591055911559125591355914559155591655917559185591955920559215592255923559245592555926559275592855929559305593155932559335593455935559365593755938559395594055941559425594355944559455594655947559485594955950559515595255953559545595555956559575595855959559605596155962559635596455965559665596755968559695597055971559725597355974559755597655977559785597955980559815598255983559845598555986559875598855989559905599155992559935599455995559965599755998559995600056001560025600356004560055600656007560085600956010560115601256013560145601556016560175601856019560205602156022560235602456025560265602756028560295603056031560325603356034560355603656037560385603956040560415604256043560445604556046560475604856049560505605156052560535605456055560565605756058560595606056061560625606356064560655606656067560685606956070560715607256073560745607556076560775607856079560805608156082560835608456085560865608756088560895609056091560925609356094560955609656097560985609956100561015610256103561045610556106561075610856109561105611156112561135611456115561165611756118561195612056121561225612356124561255612656127561285612956130561315613256133561345613556136561375613856139561405614156142561435614456145561465614756148561495615056151561525615356154561555615656157561585615956160561615616256163561645616556166561675616856169561705617156172561735617456175561765617756178561795618056181561825618356184561855618656187561885618956190561915619256193561945619556196561975619856199562005620156202562035620456205562065620756208562095621056211562125621356214562155621656217562185621956220562215622256223562245622556226562275622856229562305623156232562335623456235562365623756238562395624056241562425624356244562455624656247562485624956250562515625256253562545625556256562575625856259562605626156262562635626456265562665626756268562695627056271562725627356274562755627656277562785627956280562815628256283562845628556286562875628856289562905629156292562935629456295562965629756298562995630056301563025630356304563055630656307563085630956310563115631256313563145631556316563175631856319563205632156322563235632456325563265632756328563295633056331563325633356334563355633656337563385633956340563415634256343563445634556346563475634856349563505635156352563535635456355563565635756358563595636056361563625636356364563655636656367563685636956370563715637256373563745637556376563775637856379563805638156382563835638456385563865638756388563895639056391563925639356394563955639656397563985639956400564015640256403564045640556406564075640856409564105641156412564135641456415564165641756418564195642056421564225642356424564255642656427564285642956430564315643256433564345643556436564375643856439564405644156442564435644456445564465644756448564495645056451564525645356454564555645656457564585645956460564615646256463564645646556466564675646856469564705647156472564735647456475564765647756478564795648056481564825648356484564855648656487564885648956490564915649256493564945649556496564975649856499565005650156502565035650456505565065650756508565095651056511565125651356514565155651656517565185651956520565215652256523565245652556526565275652856529565305653156532565335653456535565365653756538565395654056541565425654356544565455654656547565485654956550565515655256553565545655556556565575655856559565605656156562565635656456565565665656756568565695657056571565725657356574565755657656577565785657956580565815658256583565845658556586565875658856589565905659156592565935659456595565965659756598565995660056601566025660356604566055660656607566085660956610566115661256613566145661556616566175661856619566205662156622566235662456625566265662756628566295663056631566325663356634566355663656637566385663956640566415664256643566445664556646566475664856649566505665156652566535665456655566565665756658566595666056661566625666356664566655666656667566685666956670566715667256673566745667556676566775667856679566805668156682566835668456685566865668756688566895669056691566925669356694566955669656697566985669956700567015670256703567045670556706567075670856709567105671156712567135671456715567165671756718567195672056721567225672356724567255672656727567285672956730567315673256733567345673556736567375673856739567405674156742567435674456745567465674756748567495675056751567525675356754567555675656757567585675956760567615676256763567645676556766567675676856769567705677156772567735677456775567765677756778567795678056781567825678356784567855678656787567885678956790567915679256793567945679556796567975679856799568005680156802568035680456805568065680756808568095681056811568125681356814568155681656817568185681956820568215682256823568245682556826568275682856829568305683156832568335683456835568365683756838568395684056841568425684356844568455684656847568485684956850568515685256853568545685556856568575685856859568605686156862568635686456865568665686756868568695687056871568725687356874568755687656877568785687956880568815688256883568845688556886568875688856889568905689156892568935689456895568965689756898568995690056901569025690356904569055690656907569085690956910569115691256913569145691556916569175691856919569205692156922569235692456925569265692756928569295693056931569325693356934569355693656937569385693956940569415694256943569445694556946569475694856949569505695156952569535695456955569565695756958569595696056961569625696356964569655696656967569685696956970569715697256973569745697556976569775697856979569805698156982569835698456985569865698756988569895699056991569925699356994569955699656997569985699957000570015700257003570045700557006570075700857009570105701157012570135701457015570165701757018570195702057021570225702357024570255702657027570285702957030570315703257033570345703557036570375703857039570405704157042570435704457045570465704757048570495705057051570525705357054570555705657057570585705957060570615706257063570645706557066570675706857069570705707157072570735707457075570765707757078570795708057081570825708357084570855708657087570885708957090570915709257093570945709557096570975709857099571005710157102571035710457105571065710757108571095711057111571125711357114571155711657117571185711957120571215712257123571245712557126571275712857129571305713157132571335713457135571365713757138571395714057141571425714357144571455714657147571485714957150571515715257153571545715557156571575715857159571605716157162571635716457165571665716757168571695717057171571725717357174571755717657177571785717957180571815718257183571845718557186571875718857189571905719157192571935719457195571965719757198571995720057201572025720357204572055720657207572085720957210572115721257213572145721557216572175721857219572205722157222572235722457225572265722757228572295723057231572325723357234572355723657237572385723957240572415724257243572445724557246572475724857249572505725157252572535725457255572565725757258572595726057261572625726357264572655726657267572685726957270572715727257273572745727557276572775727857279572805728157282572835728457285572865728757288572895729057291572925729357294572955729657297572985729957300573015730257303573045730557306573075730857309573105731157312573135731457315573165731757318573195732057321573225732357324573255732657327573285732957330573315733257333573345733557336573375733857339573405734157342573435734457345573465734757348573495735057351573525735357354573555735657357573585735957360573615736257363573645736557366573675736857369573705737157372573735737457375573765737757378573795738057381573825738357384573855738657387573885738957390573915739257393573945739557396573975739857399574005740157402574035740457405574065740757408574095741057411574125741357414574155741657417574185741957420574215742257423574245742557426574275742857429574305743157432574335743457435574365743757438574395744057441574425744357444574455744657447574485744957450574515745257453574545745557456574575745857459574605746157462574635746457465574665746757468574695747057471574725747357474574755747657477574785747957480574815748257483574845748557486574875748857489574905749157492574935749457495574965749757498574995750057501575025750357504575055750657507575085750957510575115751257513575145751557516575175751857519575205752157522575235752457525575265752757528575295753057531575325753357534575355753657537575385753957540575415754257543575445754557546575475754857549575505755157552575535755457555575565755757558575595756057561575625756357564575655756657567575685756957570575715757257573575745757557576575775757857579575805758157582575835758457585575865758757588575895759057591575925759357594575955759657597575985759957600576015760257603576045760557606576075760857609576105761157612576135761457615576165761757618576195762057621576225762357624576255762657627576285762957630576315763257633576345763557636576375763857639576405764157642576435764457645576465764757648576495765057651576525765357654576555765657657576585765957660576615766257663576645766557666576675766857669576705767157672576735767457675576765767757678576795768057681576825768357684576855768657687576885768957690576915769257693576945769557696576975769857699577005770157702577035770457705577065770757708577095771057711577125771357714577155771657717577185771957720577215772257723577245772557726577275772857729577305773157732577335773457735577365773757738577395774057741577425774357744577455774657747577485774957750577515775257753577545775557756577575775857759577605776157762577635776457765577665776757768577695777057771577725777357774577755777657777577785777957780577815778257783577845778557786577875778857789577905779157792577935779457795577965779757798577995780057801578025780357804578055780657807578085780957810578115781257813578145781557816578175781857819578205782157822578235782457825578265782757828578295783057831578325783357834578355783657837578385783957840578415784257843578445784557846578475784857849578505785157852578535785457855578565785757858578595786057861578625786357864578655786657867578685786957870578715787257873578745787557876578775787857879578805788157882578835788457885578865788757888578895789057891578925789357894578955789657897578985789957900579015790257903579045790557906579075790857909579105791157912579135791457915579165791757918579195792057921579225792357924579255792657927579285792957930579315793257933579345793557936579375793857939579405794157942579435794457945579465794757948579495795057951579525795357954579555795657957579585795957960579615796257963579645796557966579675796857969579705797157972579735797457975579765797757978579795798057981579825798357984579855798657987579885798957990579915799257993579945799557996579975799857999580005800158002580035800458005580065800758008580095801058011580125801358014580155801658017580185801958020580215802258023580245802558026580275802858029580305803158032580335803458035580365803758038580395804058041580425804358044580455804658047580485804958050580515805258053580545805558056580575805858059580605806158062580635806458065580665806758068580695807058071580725807358074580755807658077580785807958080580815808258083580845808558086580875808858089580905809158092580935809458095580965809758098580995810058101581025810358104581055810658107581085810958110581115811258113581145811558116581175811858119581205812158122581235812458125581265812758128581295813058131581325813358134581355813658137581385813958140581415814258143581445814558146581475814858149581505815158152581535815458155581565815758158581595816058161581625816358164581655816658167581685816958170581715817258173581745817558176581775817858179581805818158182581835818458185581865818758188581895819058191581925819358194581955819658197581985819958200582015820258203582045820558206582075820858209582105821158212582135821458215582165821758218582195822058221582225822358224582255822658227582285822958230582315823258233582345823558236582375823858239582405824158242582435824458245582465824758248582495825058251582525825358254582555825658257582585825958260582615826258263582645826558266582675826858269582705827158272582735827458275582765827758278582795828058281582825828358284582855828658287582885828958290582915829258293582945829558296582975829858299583005830158302583035830458305583065830758308583095831058311583125831358314583155831658317583185831958320583215832258323583245832558326583275832858329583305833158332583335833458335583365833758338583395834058341583425834358344583455834658347583485834958350583515835258353583545835558356583575835858359583605836158362583635836458365583665836758368583695837058371583725837358374583755837658377583785837958380583815838258383583845838558386583875838858389583905839158392583935839458395583965839758398583995840058401584025840358404584055840658407584085840958410584115841258413584145841558416584175841858419584205842158422584235842458425584265842758428584295843058431584325843358434584355843658437584385843958440584415844258443584445844558446584475844858449584505845158452584535845458455584565845758458584595846058461584625846358464584655846658467584685846958470584715847258473584745847558476584775847858479584805848158482584835848458485584865848758488584895849058491584925849358494584955849658497584985849958500585015850258503585045850558506585075850858509585105851158512585135851458515585165851758518585195852058521585225852358524585255852658527585285852958530585315853258533585345853558536585375853858539585405854158542585435854458545585465854758548585495855058551585525855358554585555855658557585585855958560585615856258563585645856558566585675856858569585705857158572585735857458575585765857758578585795858058581585825858358584585855858658587585885858958590585915859258593585945859558596585975859858599586005860158602586035860458605586065860758608586095861058611586125861358614586155861658617586185861958620586215862258623586245862558626586275862858629586305863158632586335863458635586365863758638586395864058641586425864358644586455864658647586485864958650586515865258653586545865558656586575865858659586605866158662586635866458665586665866758668586695867058671586725867358674586755867658677586785867958680586815868258683586845868558686586875868858689586905869158692586935869458695586965869758698586995870058701587025870358704587055870658707587085870958710587115871258713587145871558716587175871858719587205872158722587235872458725587265872758728587295873058731587325873358734587355873658737587385873958740587415874258743587445874558746587475874858749587505875158752587535875458755587565875758758587595876058761587625876358764587655876658767587685876958770587715877258773587745877558776587775877858779587805878158782587835878458785587865878758788587895879058791587925879358794587955879658797587985879958800588015880258803588045880558806588075880858809588105881158812588135881458815588165881758818588195882058821588225882358824588255882658827588285882958830588315883258833588345883558836588375883858839588405884158842588435884458845588465884758848588495885058851588525885358854588555885658857588585885958860588615886258863588645886558866588675886858869588705887158872588735887458875588765887758878588795888058881588825888358884588855888658887588885888958890588915889258893588945889558896588975889858899589005890158902589035890458905589065890758908589095891058911589125891358914589155891658917589185891958920589215892258923589245892558926589275892858929589305893158932589335893458935589365893758938589395894058941589425894358944589455894658947589485894958950589515895258953589545895558956589575895858959589605896158962589635896458965589665896758968589695897058971589725897358974589755897658977589785897958980589815898258983589845898558986589875898858989589905899158992589935899458995589965899758998589995900059001590025900359004590055900659007590085900959010590115901259013590145901559016590175901859019590205902159022590235902459025590265902759028590295903059031590325903359034590355903659037590385903959040590415904259043590445904559046590475904859049590505905159052590535905459055590565905759058590595906059061590625906359064590655906659067590685906959070590715907259073590745907559076590775907859079590805908159082590835908459085590865908759088590895909059091590925909359094590955909659097590985909959100591015910259103591045910559106591075910859109591105911159112591135911459115591165911759118591195912059121591225912359124591255912659127591285912959130591315913259133591345913559136591375913859139591405914159142591435914459145591465914759148591495915059151591525915359154591555915659157591585915959160591615916259163591645916559166591675916859169591705917159172591735917459175591765917759178591795918059181591825918359184591855918659187591885918959190591915919259193591945919559196591975919859199592005920159202592035920459205592065920759208592095921059211592125921359214592155921659217592185921959220592215922259223592245922559226592275922859229592305923159232592335923459235592365923759238592395924059241592425924359244592455924659247592485924959250592515925259253592545925559256592575925859259592605926159262592635926459265592665926759268592695927059271592725927359274592755927659277592785927959280592815928259283592845928559286592875928859289592905929159292592935929459295592965929759298592995930059301593025930359304593055930659307593085930959310593115931259313593145931559316593175931859319593205932159322593235932459325593265932759328593295933059331593325933359334593355933659337593385933959340593415934259343593445934559346593475934859349593505935159352593535935459355593565935759358593595936059361593625936359364593655936659367593685936959370593715937259373593745937559376593775937859379593805938159382593835938459385593865938759388593895939059391593925939359394593955939659397593985939959400594015940259403594045940559406594075940859409594105941159412594135941459415594165941759418594195942059421594225942359424594255942659427594285942959430594315943259433594345943559436594375943859439594405944159442594435944459445594465944759448594495945059451594525945359454594555945659457594585945959460594615946259463594645946559466594675946859469594705947159472594735947459475594765947759478594795948059481594825948359484594855948659487594885948959490594915949259493594945949559496594975949859499595005950159502595035950459505595065950759508595095951059511595125951359514595155951659517595185951959520595215952259523595245952559526595275952859529595305953159532595335953459535595365953759538595395954059541595425954359544595455954659547595485954959550595515955259553595545955559556595575955859559595605956159562595635956459565595665956759568595695957059571595725957359574595755957659577595785957959580595815958259583595845958559586595875958859589595905959159592595935959459595595965959759598595995960059601596025960359604596055960659607596085960959610596115961259613596145961559616596175961859619596205962159622596235962459625596265962759628596295963059631596325963359634596355963659637596385963959640596415964259643596445964559646596475964859649596505965159652596535965459655596565965759658596595966059661596625966359664596655966659667596685966959670596715967259673596745967559676596775967859679596805968159682596835968459685596865968759688596895969059691596925969359694596955969659697596985969959700597015970259703597045970559706597075970859709597105971159712597135971459715597165971759718597195972059721597225972359724597255972659727597285972959730597315973259733597345973559736597375973859739597405974159742597435974459745597465974759748597495975059751597525975359754597555975659757597585975959760597615976259763597645976559766597675976859769597705977159772597735977459775597765977759778597795978059781597825978359784597855978659787597885978959790597915979259793597945979559796597975979859799598005980159802598035980459805598065980759808598095981059811598125981359814598155981659817598185981959820598215982259823598245982559826598275982859829598305983159832598335983459835598365983759838598395984059841598425984359844598455984659847598485984959850598515985259853598545985559856598575985859859598605986159862598635986459865598665986759868598695987059871598725987359874598755987659877598785987959880598815988259883598845988559886598875988859889598905989159892598935989459895598965989759898598995990059901599025990359904599055990659907599085990959910599115991259913599145991559916599175991859919599205992159922599235992459925599265992759928599295993059931599325993359934599355993659937599385993959940599415994259943599445994559946599475994859949599505995159952599535995459955599565995759958599595996059961599625996359964599655996659967599685996959970599715997259973599745997559976599775997859979599805998159982599835998459985599865998759988599895999059991599925999359994599955999659997599985999960000600016000260003600046000560006600076000860009600106001160012600136001460015600166001760018600196002060021600226002360024600256002660027600286002960030600316003260033600346003560036600376003860039600406004160042600436004460045600466004760048600496005060051600526005360054600556005660057600586005960060600616006260063600646006560066600676006860069600706007160072600736007460075600766007760078600796008060081600826008360084600856008660087600886008960090600916009260093600946009560096600976009860099601006010160102601036010460105601066010760108601096011060111601126011360114601156011660117601186011960120601216012260123601246012560126601276012860129601306013160132601336013460135601366013760138601396014060141601426014360144601456014660147601486014960150601516015260153601546015560156601576015860159601606016160162601636016460165601666016760168601696017060171601726017360174601756017660177601786017960180601816018260183601846018560186601876018860189601906019160192601936019460195601966019760198601996020060201602026020360204602056020660207602086020960210602116021260213602146021560216602176021860219602206022160222602236022460225602266022760228602296023060231602326023360234602356023660237602386023960240602416024260243602446024560246602476024860249602506025160252602536025460255602566025760258602596026060261602626026360264602656026660267602686026960270602716027260273602746027560276602776027860279602806028160282602836028460285602866028760288602896029060291602926029360294602956029660297602986029960300603016030260303603046030560306603076030860309603106031160312603136031460315603166031760318603196032060321603226032360324603256032660327603286032960330603316033260333603346033560336603376033860339603406034160342603436034460345603466034760348603496035060351603526035360354603556035660357603586035960360603616036260363603646036560366603676036860369603706037160372603736037460375603766037760378603796038060381603826038360384603856038660387603886038960390603916039260393603946039560396603976039860399604006040160402604036040460405604066040760408604096041060411604126041360414604156041660417604186041960420604216042260423604246042560426604276042860429604306043160432604336043460435604366043760438604396044060441604426044360444604456044660447604486044960450604516045260453604546045560456604576045860459604606046160462604636046460465604666046760468604696047060471604726047360474604756047660477604786047960480604816048260483604846048560486604876048860489604906049160492604936049460495604966049760498604996050060501605026050360504605056050660507605086050960510605116051260513605146051560516605176051860519605206052160522605236052460525605266052760528605296053060531605326053360534605356053660537605386053960540605416054260543605446054560546605476054860549605506055160552605536055460555605566055760558605596056060561605626056360564605656056660567605686056960570605716057260573605746057560576605776057860579605806058160582605836058460585605866058760588605896059060591605926059360594605956059660597605986059960600606016060260603606046060560606606076060860609606106061160612606136061460615606166061760618606196062060621606226062360624606256062660627606286062960630606316063260633606346063560636606376063860639606406064160642606436064460645606466064760648606496065060651606526065360654606556065660657606586065960660606616066260663606646066560666606676066860669606706067160672606736067460675606766067760678606796068060681606826068360684606856068660687606886068960690606916069260693606946069560696606976069860699607006070160702607036070460705607066070760708607096071060711607126071360714607156071660717607186071960720607216072260723607246072560726607276072860729607306073160732607336073460735607366073760738607396074060741607426074360744607456074660747607486074960750607516075260753607546075560756607576075860759607606076160762607636076460765607666076760768607696077060771607726077360774607756077660777607786077960780607816078260783607846078560786607876078860789607906079160792607936079460795607966079760798607996080060801608026080360804608056080660807608086080960810608116081260813608146081560816608176081860819608206082160822608236082460825608266082760828608296083060831608326083360834608356083660837608386083960840608416084260843608446084560846608476084860849608506085160852608536085460855608566085760858608596086060861608626086360864608656086660867608686086960870608716087260873608746087560876608776087860879608806088160882608836088460885608866088760888608896089060891608926089360894608956089660897608986089960900609016090260903609046090560906609076090860909609106091160912609136091460915609166091760918609196092060921609226092360924609256092660927609286092960930609316093260933609346093560936609376093860939609406094160942609436094460945609466094760948609496095060951609526095360954609556095660957609586095960960609616096260963609646096560966609676096860969609706097160972609736097460975609766097760978609796098060981609826098360984609856098660987609886098960990609916099260993609946099560996609976099860999610006100161002610036100461005610066100761008610096101061011610126101361014610156101661017610186101961020610216102261023610246102561026610276102861029610306103161032610336103461035610366103761038610396104061041610426104361044610456104661047610486104961050610516105261053610546105561056610576105861059610606106161062610636106461065610666106761068610696107061071610726107361074610756107661077610786107961080610816108261083610846108561086610876108861089610906109161092610936109461095610966109761098610996110061101611026110361104611056110661107611086110961110611116111261113611146111561116611176111861119611206112161122611236112461125611266112761128611296113061131611326113361134611356113661137611386113961140611416114261143611446114561146611476114861149611506115161152611536115461155611566115761158611596116061161611626116361164611656116661167611686116961170611716117261173611746117561176611776117861179611806118161182611836118461185611866118761188611896119061191611926119361194611956119661197611986119961200612016120261203612046120561206612076120861209612106121161212612136121461215612166121761218612196122061221612226122361224612256122661227612286122961230612316123261233612346123561236612376123861239612406124161242612436124461245612466124761248612496125061251612526125361254612556125661257612586125961260612616126261263612646126561266612676126861269612706127161272612736127461275612766127761278612796128061281612826128361284612856128661287612886128961290612916129261293612946129561296612976129861299613006130161302613036130461305613066130761308613096131061311613126131361314613156131661317613186131961320613216132261323613246132561326613276132861329613306133161332613336133461335613366133761338613396134061341613426134361344613456134661347613486134961350613516135261353613546135561356613576135861359613606136161362613636136461365613666136761368613696137061371613726137361374613756137661377613786137961380613816138261383613846138561386613876138861389613906139161392613936139461395613966139761398613996140061401614026140361404614056140661407614086140961410614116141261413614146141561416614176141861419614206142161422614236142461425614266142761428614296143061431614326143361434614356143661437614386143961440614416144261443614446144561446614476144861449614506145161452614536145461455614566145761458614596146061461614626146361464614656146661467614686146961470614716147261473614746147561476614776147861479614806148161482614836148461485614866148761488614896149061491614926149361494614956149661497614986149961500615016150261503615046150561506615076150861509615106151161512615136151461515615166151761518615196152061521615226152361524615256152661527615286152961530615316153261533615346153561536615376153861539615406154161542615436154461545615466154761548615496155061551615526155361554615556155661557615586155961560615616156261563615646156561566615676156861569615706157161572615736157461575615766157761578615796158061581615826158361584615856158661587615886158961590615916159261593615946159561596615976159861599616006160161602616036160461605616066160761608616096161061611616126161361614616156161661617616186161961620616216162261623616246162561626616276162861629616306163161632616336163461635616366163761638616396164061641616426164361644616456164661647616486164961650616516165261653616546165561656616576165861659616606166161662616636166461665616666166761668616696167061671616726167361674616756167661677616786167961680616816168261683616846168561686616876168861689616906169161692616936169461695616966169761698616996170061701617026170361704617056170661707617086170961710617116171261713617146171561716617176171861719617206172161722617236172461725617266172761728617296173061731617326173361734617356173661737617386173961740617416174261743617446174561746617476174861749617506175161752617536175461755617566175761758617596176061761617626176361764617656176661767617686176961770617716177261773617746177561776617776177861779617806178161782617836178461785617866178761788617896179061791617926179361794617956179661797617986179961800618016180261803618046180561806618076180861809618106181161812618136181461815618166181761818618196182061821618226182361824618256182661827618286182961830618316183261833618346183561836618376183861839618406184161842618436184461845618466184761848618496185061851618526185361854618556185661857618586185961860618616186261863618646186561866618676186861869618706187161872618736187461875618766187761878618796188061881618826188361884618856188661887618886188961890618916189261893618946189561896618976189861899619006190161902619036190461905619066190761908619096191061911619126191361914619156191661917619186191961920619216192261923619246192561926619276192861929619306193161932619336193461935619366193761938619396194061941619426194361944619456194661947619486194961950619516195261953619546195561956619576195861959619606196161962619636196461965619666196761968619696197061971619726197361974619756197661977619786197961980619816198261983619846198561986619876198861989619906199161992619936199461995619966199761998619996200062001620026200362004620056200662007620086200962010620116201262013620146201562016620176201862019620206202162022620236202462025620266202762028620296203062031620326203362034620356203662037620386203962040620416204262043620446204562046620476204862049620506205162052620536205462055620566205762058620596206062061620626206362064620656206662067620686206962070620716207262073620746207562076620776207862079620806208162082620836208462085620866208762088620896209062091620926209362094620956209662097620986209962100621016210262103621046210562106621076210862109621106211162112621136211462115621166211762118621196212062121621226212362124621256212662127621286212962130621316213262133621346213562136621376213862139621406214162142621436214462145621466214762148621496215062151621526215362154621556215662157621586215962160621616216262163621646216562166621676216862169621706217162172621736217462175621766217762178621796218062181621826218362184621856218662187621886218962190621916219262193621946219562196621976219862199622006220162202622036220462205622066220762208622096221062211622126221362214622156221662217622186221962220622216222262223622246222562226622276222862229622306223162232622336223462235622366223762238622396224062241622426224362244622456224662247622486224962250622516225262253622546225562256622576225862259622606226162262622636226462265622666226762268622696227062271622726227362274622756227662277622786227962280622816228262283622846228562286622876228862289622906229162292622936229462295622966229762298622996230062301623026230362304623056230662307623086230962310623116231262313623146231562316623176231862319623206232162322623236232462325623266232762328623296233062331623326233362334623356233662337623386233962340623416234262343623446234562346623476234862349623506235162352623536235462355623566235762358623596236062361623626236362364623656236662367623686236962370623716237262373623746237562376623776237862379623806238162382623836238462385623866238762388623896239062391623926239362394623956239662397623986239962400624016240262403624046240562406624076240862409624106241162412624136241462415624166241762418624196242062421624226242362424624256242662427624286242962430624316243262433624346243562436624376243862439624406244162442624436244462445624466244762448624496245062451624526245362454624556245662457624586245962460624616246262463624646246562466624676246862469624706247162472624736247462475624766247762478624796248062481624826248362484624856248662487624886248962490624916249262493624946249562496624976249862499625006250162502625036250462505625066250762508625096251062511625126251362514625156251662517625186251962520625216252262523625246252562526625276252862529625306253162532625336253462535625366253762538625396254062541625426254362544625456254662547625486254962550625516255262553625546255562556625576255862559625606256162562625636256462565625666256762568625696257062571625726257362574625756257662577625786257962580625816258262583625846258562586625876258862589625906259162592625936259462595625966259762598625996260062601626026260362604626056260662607626086260962610626116261262613626146261562616626176261862619626206262162622626236262462625626266262762628626296263062631626326263362634626356263662637626386263962640626416264262643626446264562646626476264862649626506265162652626536265462655626566265762658626596266062661626626266362664626656266662667626686266962670626716267262673626746267562676626776267862679626806268162682626836268462685626866268762688626896269062691626926269362694626956269662697626986269962700627016270262703627046270562706627076270862709627106271162712627136271462715627166271762718627196272062721627226272362724627256272662727627286272962730627316273262733627346273562736627376273862739627406274162742627436274462745627466274762748627496275062751627526275362754627556275662757627586275962760627616276262763627646276562766627676276862769627706277162772627736277462775627766277762778627796278062781627826278362784627856278662787627886278962790627916279262793627946279562796627976279862799628006280162802628036280462805628066280762808628096281062811628126281362814628156281662817628186281962820628216282262823628246282562826628276282862829628306283162832628336283462835628366283762838628396284062841628426284362844628456284662847628486284962850628516285262853628546285562856628576285862859628606286162862628636286462865628666286762868628696287062871628726287362874628756287662877628786287962880628816288262883628846288562886628876288862889628906289162892628936289462895628966289762898628996290062901629026290362904629056290662907629086290962910629116291262913629146291562916629176291862919629206292162922629236292462925629266292762928629296293062931629326293362934629356293662937629386293962940629416294262943629446294562946629476294862949629506295162952629536295462955629566295762958629596296062961629626296362964629656296662967629686296962970629716297262973629746297562976629776297862979629806298162982629836298462985629866298762988629896299062991629926299362994629956299662997629986299963000630016300263003630046300563006630076300863009630106301163012630136301463015630166301763018630196302063021630226302363024630256302663027630286302963030630316303263033630346303563036630376303863039630406304163042630436304463045630466304763048630496305063051630526305363054630556305663057630586305963060630616306263063630646306563066630676306863069630706307163072630736307463075630766307763078630796308063081630826308363084630856308663087630886308963090630916309263093630946309563096630976309863099631006310163102631036310463105631066310763108631096311063111631126311363114631156311663117631186311963120631216312263123631246312563126631276312863129631306313163132631336313463135631366313763138631396314063141631426314363144631456314663147631486314963150631516315263153631546315563156631576315863159631606316163162631636316463165631666316763168631696317063171631726317363174631756317663177631786317963180631816318263183631846318563186631876318863189631906319163192631936319463195631966319763198631996320063201632026320363204632056320663207632086320963210632116321263213632146321563216632176321863219632206322163222632236322463225632266322763228632296323063231632326323363234632356323663237632386323963240632416324263243632446324563246632476324863249632506325163252632536325463255632566325763258632596326063261632626326363264632656326663267632686326963270632716327263273632746327563276632776327863279632806328163282632836328463285632866328763288632896329063291632926329363294632956329663297632986329963300633016330263303633046330563306633076330863309633106331163312633136331463315633166331763318633196332063321633226332363324633256332663327633286332963330633316333263333633346333563336633376333863339633406334163342633436334463345633466334763348633496335063351633526335363354633556335663357633586335963360633616336263363633646336563366633676336863369633706337163372633736337463375633766337763378633796338063381633826338363384633856338663387633886338963390633916339263393633946339563396633976339863399634006340163402634036340463405634066340763408634096341063411634126341363414634156341663417634186341963420634216342263423634246342563426634276342863429634306343163432634336343463435634366343763438634396344063441634426344363444634456344663447634486344963450634516345263453634546345563456634576345863459634606346163462634636346463465634666346763468634696347063471634726347363474634756347663477634786347963480634816348263483634846348563486634876348863489634906349163492634936349463495634966349763498634996350063501635026350363504635056350663507635086350963510635116351263513635146351563516635176351863519635206352163522635236352463525635266352763528635296353063531635326353363534635356353663537635386353963540635416354263543635446354563546635476354863549635506355163552635536355463555635566355763558635596356063561635626356363564635656356663567635686356963570635716357263573635746357563576635776357863579635806358163582635836358463585635866358763588635896359063591635926359363594635956359663597635986359963600636016360263603636046360563606636076360863609636106361163612636136361463615636166361763618636196362063621636226362363624636256362663627636286362963630636316363263633636346363563636636376363863639636406364163642636436364463645636466364763648636496365063651636526365363654636556365663657636586365963660636616366263663636646366563666636676366863669636706367163672636736367463675636766367763678636796368063681636826368363684636856368663687636886368963690636916369263693636946369563696636976369863699637006370163702637036370463705637066370763708637096371063711637126371363714637156371663717637186371963720637216372263723637246372563726637276372863729637306373163732637336373463735637366373763738637396374063741637426374363744637456374663747637486374963750637516375263753637546375563756637576375863759637606376163762637636376463765637666376763768637696377063771637726377363774637756377663777637786377963780637816378263783637846378563786637876378863789637906379163792637936379463795637966379763798637996380063801638026380363804638056380663807638086380963810638116381263813638146381563816638176381863819638206382163822638236382463825638266382763828638296383063831638326383363834638356383663837638386383963840638416384263843638446384563846638476384863849638506385163852638536385463855638566385763858638596386063861638626386363864638656386663867638686386963870638716387263873638746387563876638776387863879638806388163882638836388463885638866388763888638896389063891638926389363894638956389663897638986389963900639016390263903639046390563906639076390863909639106391163912639136391463915639166391763918639196392063921639226392363924639256392663927639286392963930639316393263933639346393563936639376393863939639406394163942639436394463945639466394763948639496395063951639526395363954639556395663957639586395963960639616396263963639646396563966639676396863969639706397163972639736397463975639766397763978639796398063981639826398363984639856398663987639886398963990639916399263993639946399563996639976399863999640006400164002640036400464005640066400764008640096401064011640126401364014640156401664017640186401964020640216402264023640246402564026640276402864029640306403164032640336403464035640366403764038640396404064041640426404364044640456404664047640486404964050640516405264053640546405564056640576405864059640606406164062640636406464065640666406764068640696407064071640726407364074640756407664077640786407964080640816408264083640846408564086640876408864089640906409164092640936409464095640966409764098640996410064101641026410364104641056410664107641086410964110641116411264113641146411564116641176411864119641206412164122641236412464125641266412764128641296413064131641326413364134641356413664137641386413964140641416414264143641446414564146641476414864149641506415164152641536415464155641566415764158641596416064161641626416364164641656416664167641686416964170641716417264173641746417564176641776417864179641806418164182641836418464185641866418764188641896419064191641926419364194641956419664197641986419964200642016420264203642046420564206642076420864209642106421164212642136421464215642166421764218642196422064221642226422364224642256422664227642286422964230642316423264233642346423564236642376423864239642406424164242642436424464245642466424764248642496425064251642526425364254642556425664257642586425964260642616426264263642646426564266642676426864269642706427164272642736427464275642766427764278642796428064281642826428364284642856428664287642886428964290642916429264293642946429564296642976429864299643006430164302643036430464305643066430764308643096431064311643126431364314643156431664317643186431964320643216432264323643246432564326643276432864329643306433164332643336433464335643366433764338643396434064341643426434364344643456434664347643486434964350643516435264353643546435564356643576435864359643606436164362643636436464365643666436764368643696437064371643726437364374643756437664377643786437964380643816438264383643846438564386643876438864389643906439164392643936439464395643966439764398643996440064401644026440364404644056440664407644086440964410644116441264413644146441564416644176441864419644206442164422644236442464425644266442764428644296443064431644326443364434644356443664437644386443964440644416444264443644446444564446644476444864449644506445164452644536445464455644566445764458644596446064461644626446364464644656446664467644686446964470644716447264473644746447564476644776447864479644806448164482644836448464485644866448764488644896449064491644926449364494644956449664497644986449964500645016450264503645046450564506645076450864509645106451164512645136451464515645166451764518645196452064521645226452364524645256452664527645286452964530645316453264533645346453564536645376453864539645406454164542645436454464545645466454764548645496455064551645526455364554645556455664557645586455964560645616456264563645646456564566645676456864569645706457164572645736457464575645766457764578645796458064581645826458364584645856458664587645886458964590645916459264593645946459564596645976459864599646006460164602646036460464605646066460764608646096461064611646126461364614646156461664617646186461964620646216462264623646246462564626646276462864629646306463164632646336463464635646366463764638646396464064641646426464364644646456464664647646486464964650646516465264653646546465564656646576465864659646606466164662646636466464665646666466764668646696467064671646726467364674646756467664677646786467964680646816468264683646846468564686646876468864689646906469164692646936469464695646966469764698646996470064701647026470364704647056470664707647086470964710647116471264713647146471564716647176471864719647206472164722647236472464725647266472764728647296473064731647326473364734647356473664737647386473964740647416474264743647446474564746647476474864749647506475164752647536475464755647566475764758647596476064761647626476364764647656476664767647686476964770647716477264773647746477564776647776477864779647806478164782647836478464785647866478764788647896479064791647926479364794647956479664797647986479964800648016480264803648046480564806648076480864809648106481164812648136481464815648166481764818648196482064821648226482364824648256482664827648286482964830648316483264833648346483564836648376483864839648406484164842648436484464845648466484764848648496485064851648526485364854648556485664857648586485964860648616486264863648646486564866648676486864869648706487164872648736487464875648766487764878648796488064881648826488364884648856488664887648886488964890648916489264893648946489564896648976489864899649006490164902649036490464905649066490764908649096491064911649126491364914649156491664917649186491964920649216492264923649246492564926649276492864929649306493164932649336493464935649366493764938649396494064941649426494364944649456494664947649486494964950649516495264953649546495564956649576495864959649606496164962649636496464965649666496764968649696497064971649726497364974649756497664977649786497964980649816498264983649846498564986649876498864989649906499164992649936499464995649966499764998649996500065001650026500365004650056500665007650086500965010650116501265013650146501565016650176501865019650206502165022650236502465025650266502765028650296503065031650326503365034650356503665037650386503965040650416504265043650446504565046650476504865049650506505165052650536505465055650566505765058650596506065061650626506365064650656506665067650686506965070650716507265073650746507565076650776507865079650806508165082650836508465085650866508765088650896509065091650926509365094650956509665097650986509965100651016510265103651046510565106651076510865109651106511165112651136511465115651166511765118651196512065121651226512365124651256512665127651286512965130651316513265133651346513565136651376513865139651406514165142651436514465145651466514765148651496515065151651526515365154651556515665157651586515965160651616516265163651646516565166651676516865169651706517165172651736517465175651766517765178651796518065181651826518365184651856518665187651886518965190651916519265193651946519565196651976519865199652006520165202652036520465205652066520765208652096521065211652126521365214652156521665217652186521965220652216522265223652246522565226652276522865229652306523165232652336523465235652366523765238652396524065241652426524365244652456524665247652486524965250652516525265253652546525565256652576525865259652606526165262652636526465265652666526765268652696527065271652726527365274652756527665277652786527965280652816528265283652846528565286652876528865289652906529165292652936529465295652966529765298652996530065301653026530365304653056530665307653086530965310653116531265313653146531565316653176531865319653206532165322653236532465325653266532765328653296533065331653326533365334653356533665337653386533965340653416534265343653446534565346653476534865349653506535165352653536535465355653566535765358653596536065361653626536365364653656536665367653686536965370653716537265373653746537565376653776537865379653806538165382653836538465385653866538765388653896539065391653926539365394653956539665397653986539965400654016540265403654046540565406654076540865409654106541165412654136541465415654166541765418654196542065421654226542365424654256542665427654286542965430654316543265433654346543565436654376543865439654406544165442654436544465445654466544765448654496545065451654526545365454654556545665457654586545965460654616546265463654646546565466654676546865469654706547165472654736547465475654766547765478654796548065481654826548365484654856548665487654886548965490654916549265493654946549565496654976549865499655006550165502655036550465505655066550765508655096551065511655126551365514655156551665517655186551965520655216552265523655246552565526655276552865529655306553165532655336553465535655366553765538655396554065541655426554365544655456554665547655486554965550655516555265553655546555565556655576555865559655606556165562655636556465565655666556765568655696557065571655726557365574655756557665577655786557965580655816558265583655846558565586655876558865589655906559165592655936559465595655966559765598655996560065601656026560365604656056560665607656086560965610656116561265613656146561565616656176561865619656206562165622656236562465625656266562765628656296563065631656326563365634656356563665637656386563965640656416564265643656446564565646656476564865649656506565165652656536565465655656566565765658656596566065661656626566365664656656566665667656686566965670656716567265673656746567565676656776567865679656806568165682656836568465685656866568765688656896569065691656926569365694656956569665697656986569965700657016570265703657046570565706657076570865709657106571165712657136571465715657166571765718657196572065721657226572365724657256572665727657286572965730657316573265733657346573565736657376573865739657406574165742657436574465745657466574765748657496575065751657526575365754657556575665757657586575965760657616576265763657646576565766657676576865769657706577165772657736577465775657766577765778657796578065781657826578365784657856578665787657886578965790657916579265793657946579565796657976579865799658006580165802658036580465805658066580765808658096581065811658126581365814658156581665817658186581965820658216582265823658246582565826658276582865829658306583165832658336583465835658366583765838658396584065841658426584365844658456584665847658486584965850658516585265853658546585565856658576585865859658606586165862658636586465865658666586765868658696587065871658726587365874658756587665877658786587965880658816588265883658846588565886658876588865889658906589165892658936589465895658966589765898658996590065901659026590365904659056590665907659086590965910659116591265913659146591565916659176591865919659206592165922659236592465925659266592765928659296593065931659326593365934659356593665937659386593965940659416594265943659446594565946659476594865949659506595165952659536595465955659566595765958659596596065961659626596365964659656596665967659686596965970659716597265973659746597565976659776597865979659806598165982659836598465985659866598765988659896599065991659926599365994659956599665997659986599966000660016600266003660046600566006660076600866009660106601166012660136601466015660166601766018660196602066021660226602366024660256602666027660286602966030660316603266033660346603566036660376603866039660406604166042660436604466045660466604766048660496605066051660526605366054660556605666057660586605966060660616606266063660646606566066660676606866069660706607166072660736607466075660766607766078660796608066081660826608366084660856608666087660886608966090660916609266093660946609566096660976609866099661006610166102661036610466105661066610766108661096611066111661126611366114661156611666117661186611966120661216612266123661246612566126661276612866129661306613166132661336613466135661366613766138661396614066141661426614366144661456614666147661486614966150661516615266153661546615566156661576615866159661606616166162661636616466165661666616766168661696617066171661726617366174661756617666177661786617966180661816618266183661846618566186661876618866189661906619166192661936619466195661966619766198661996620066201662026620366204662056620666207662086620966210662116621266213662146621566216662176621866219662206622166222662236622466225662266622766228662296623066231662326623366234662356623666237662386623966240662416624266243662446624566246662476624866249662506625166252662536625466255662566625766258662596626066261662626626366264662656626666267662686626966270662716627266273662746627566276662776627866279662806628166282662836628466285662866628766288662896629066291662926629366294662956629666297662986629966300663016630266303663046630566306663076630866309663106631166312663136631466315663166631766318663196632066321663226632366324663256632666327663286632966330663316633266333663346633566336663376633866339663406634166342663436634466345663466634766348663496635066351663526635366354663556635666357663586635966360663616636266363663646636566366663676636866369663706637166372663736637466375663766637766378663796638066381663826638366384663856638666387663886638966390663916639266393663946639566396663976639866399664006640166402664036640466405664066640766408664096641066411664126641366414664156641666417664186641966420664216642266423664246642566426664276642866429664306643166432664336643466435664366643766438664396644066441664426644366444664456644666447664486644966450664516645266453664546645566456664576645866459664606646166462664636646466465664666646766468664696647066471664726647366474664756647666477664786647966480664816648266483664846648566486664876648866489664906649166492664936649466495664966649766498664996650066501665026650366504665056650666507665086650966510665116651266513665146651566516665176651866519665206652166522665236652466525665266652766528665296653066531665326653366534665356653666537665386653966540665416654266543665446654566546665476654866549665506655166552665536655466555665566655766558665596656066561665626656366564665656656666567665686656966570665716657266573665746657566576665776657866579665806658166582665836658466585665866658766588665896659066591665926659366594665956659666597665986659966600666016660266603666046660566606666076660866609666106661166612666136661466615666166661766618666196662066621666226662366624666256662666627666286662966630666316663266633666346663566636666376663866639666406664166642666436664466645666466664766648666496665066651666526665366654666556665666657666586665966660666616666266663666646666566666666676666866669666706667166672666736667466675666766667766678666796668066681666826668366684666856668666687666886668966690666916669266693666946669566696666976669866699667006670166702667036670466705667066670766708667096671066711667126671366714667156671666717667186671966720667216672266723667246672566726667276672866729667306673166732667336673466735667366673766738667396674066741667426674366744667456674666747667486674966750667516675266753667546675566756667576675866759667606676166762667636676466765667666676766768667696677066771667726677366774667756677666777667786677966780667816678266783667846678566786667876678866789667906679166792667936679466795667966679766798667996680066801668026680366804668056680666807668086680966810668116681266813668146681566816668176681866819668206682166822668236682466825668266682766828668296683066831668326683366834668356683666837668386683966840668416684266843668446684566846668476684866849668506685166852668536685466855668566685766858668596686066861668626686366864668656686666867668686686966870668716687266873668746687566876668776687866879668806688166882668836688466885668866688766888668896689066891668926689366894668956689666897668986689966900669016690266903669046690566906669076690866909669106691166912669136691466915669166691766918669196692066921669226692366924669256692666927669286692966930669316693266933669346693566936669376693866939669406694166942669436694466945669466694766948669496695066951669526695366954669556695666957669586695966960669616696266963669646696566966669676696866969669706697166972669736697466975669766697766978669796698066981669826698366984669856698666987669886698966990669916699266993669946699566996669976699866999670006700167002670036700467005670066700767008670096701067011670126701367014670156701667017670186701967020670216702267023670246702567026670276702867029670306703167032670336703467035670366703767038670396704067041670426704367044670456704667047670486704967050670516705267053670546705567056670576705867059670606706167062670636706467065670666706767068670696707067071670726707367074670756707667077670786707967080670816708267083670846708567086670876708867089670906709167092670936709467095670966709767098670996710067101671026710367104671056710667107671086710967110671116711267113671146711567116671176711867119671206712167122671236712467125671266712767128671296713067131671326713367134671356713667137671386713967140671416714267143671446714567146671476714867149671506715167152671536715467155671566715767158671596716067161671626716367164671656716667167671686716967170671716717267173671746717567176671776717867179671806718167182671836718467185671866718767188671896719067191671926719367194671956719667197671986719967200672016720267203672046720567206672076720867209672106721167212672136721467215672166721767218672196722067221672226722367224672256722667227672286722967230672316723267233672346723567236672376723867239672406724167242672436724467245672466724767248672496725067251672526725367254672556725667257672586725967260672616726267263672646726567266672676726867269672706727167272672736727467275672766727767278672796728067281672826728367284672856728667287672886728967290672916729267293672946729567296672976729867299673006730167302673036730467305673066730767308673096731067311673126731367314673156731667317673186731967320673216732267323673246732567326673276732867329673306733167332673336733467335673366733767338673396734067341673426734367344673456734667347673486734967350673516735267353673546735567356673576735867359673606736167362673636736467365673666736767368673696737067371673726737367374673756737667377673786737967380673816738267383673846738567386673876738867389673906739167392673936739467395673966739767398673996740067401674026740367404674056740667407674086740967410674116741267413674146741567416674176741867419674206742167422674236742467425674266742767428674296743067431674326743367434674356743667437674386743967440674416744267443674446744567446674476744867449674506745167452674536745467455674566745767458674596746067461674626746367464674656746667467674686746967470674716747267473674746747567476674776747867479674806748167482674836748467485674866748767488674896749067491674926749367494674956749667497674986749967500675016750267503675046750567506675076750867509675106751167512675136751467515675166751767518675196752067521675226752367524675256752667527675286752967530675316753267533675346753567536675376753867539675406754167542675436754467545675466754767548675496755067551675526755367554675556755667557675586755967560675616756267563675646756567566675676756867569675706757167572675736757467575675766757767578675796758067581675826758367584675856758667587675886758967590675916759267593675946759567596675976759867599676006760167602676036760467605676066760767608676096761067611676126761367614676156761667617676186761967620676216762267623676246762567626676276762867629676306763167632676336763467635676366763767638676396764067641676426764367644676456764667647676486764967650676516765267653676546765567656676576765867659676606766167662676636766467665676666766767668676696767067671676726767367674676756767667677676786767967680676816768267683676846768567686676876768867689676906769167692676936769467695676966769767698676996770067701677026770367704677056770667707677086770967710677116771267713677146771567716677176771867719677206772167722677236772467725677266772767728677296773067731677326773367734677356773667737677386773967740677416774267743677446774567746677476774867749677506775167752677536775467755677566775767758677596776067761677626776367764677656776667767677686776967770677716777267773677746777567776677776777867779677806778167782677836778467785677866778767788677896779067791677926779367794677956779667797677986779967800678016780267803678046780567806678076780867809678106781167812678136781467815678166781767818678196782067821678226782367824678256782667827678286782967830678316783267833678346783567836678376783867839678406784167842678436784467845678466784767848678496785067851678526785367854678556785667857678586785967860678616786267863678646786567866678676786867869678706787167872678736787467875678766787767878678796788067881678826788367884678856788667887678886788967890678916789267893678946789567896678976789867899679006790167902679036790467905679066790767908679096791067911679126791367914679156791667917679186791967920679216792267923679246792567926679276792867929679306793167932679336793467935679366793767938679396794067941679426794367944679456794667947679486794967950679516795267953679546795567956679576795867959679606796167962679636796467965679666796767968679696797067971679726797367974679756797667977679786797967980679816798267983679846798567986679876798867989679906799167992679936799467995679966799767998679996800068001680026800368004680056800668007680086800968010680116801268013680146801568016680176801868019680206802168022680236802468025680266802768028680296803068031680326803368034680356803668037680386803968040680416804268043680446804568046680476804868049680506805168052680536805468055680566805768058680596806068061680626806368064680656806668067680686806968070680716807268073680746807568076680776807868079680806808168082680836808468085680866808768088680896809068091680926809368094680956809668097680986809968100681016810268103681046810568106681076810868109681106811168112681136811468115681166811768118681196812068121681226812368124681256812668127681286812968130681316813268133681346813568136681376813868139681406814168142681436814468145681466814768148681496815068151681526815368154681556815668157681586815968160681616816268163681646816568166681676816868169681706817168172681736817468175681766817768178681796818068181681826818368184681856818668187681886818968190681916819268193681946819568196681976819868199682006820168202682036820468205682066820768208682096821068211682126821368214682156821668217682186821968220682216822268223682246822568226682276822868229682306823168232682336823468235682366823768238682396824068241682426824368244682456824668247682486824968250682516825268253682546825568256682576825868259682606826168262682636826468265682666826768268682696827068271682726827368274682756827668277682786827968280682816828268283682846828568286682876828868289682906829168292682936829468295682966829768298682996830068301683026830368304683056830668307683086830968310683116831268313683146831568316683176831868319683206832168322683236832468325683266832768328683296833068331683326833368334683356833668337683386833968340683416834268343683446834568346683476834868349683506835168352683536835468355683566835768358683596836068361683626836368364683656836668367683686836968370683716837268373683746837568376683776837868379683806838168382683836838468385683866838768388683896839068391683926839368394683956839668397683986839968400684016840268403684046840568406684076840868409684106841168412684136841468415684166841768418684196842068421684226842368424684256842668427684286842968430684316843268433684346843568436684376843868439684406844168442684436844468445684466844768448684496845068451684526845368454684556845668457684586845968460684616846268463684646846568466684676846868469684706847168472684736847468475684766847768478684796848068481684826848368484684856848668487684886848968490684916849268493684946849568496684976849868499685006850168502685036850468505685066850768508685096851068511685126851368514685156851668517685186851968520685216852268523685246852568526685276852868529685306853168532685336853468535685366853768538685396854068541685426854368544685456854668547685486854968550685516855268553685546855568556685576855868559685606856168562685636856468565685666856768568685696857068571685726857368574685756857668577685786857968580685816858268583685846858568586685876858868589685906859168592685936859468595685966859768598685996860068601686026860368604686056860668607686086860968610686116861268613686146861568616686176861868619686206862168622686236862468625686266862768628686296863068631686326863368634686356863668637686386863968640686416864268643686446864568646686476864868649686506865168652686536865468655686566865768658686596866068661686626866368664686656866668667686686866968670686716867268673686746867568676686776867868679686806868168682686836868468685686866868768688686896869068691686926869368694686956869668697686986869968700687016870268703687046870568706687076870868709687106871168712687136871468715687166871768718687196872068721687226872368724687256872668727687286872968730687316873268733687346873568736687376873868739687406874168742687436874468745687466874768748687496875068751687526875368754687556875668757687586875968760687616876268763687646876568766687676876868769687706877168772687736877468775687766877768778687796878068781687826878368784687856878668787687886878968790687916879268793687946879568796687976879868799688006880168802688036880468805688066880768808688096881068811688126881368814688156881668817688186881968820688216882268823688246882568826688276882868829688306883168832688336883468835688366883768838688396884068841688426884368844688456884668847688486884968850688516885268853688546885568856688576885868859688606886168862688636886468865688666886768868688696887068871688726887368874688756887668877688786887968880688816888268883688846888568886688876888868889688906889168892688936889468895688966889768898688996890068901689026890368904689056890668907689086890968910689116891268913689146891568916689176891868919689206892168922689236892468925689266892768928689296893068931689326893368934689356893668937689386893968940689416894268943689446894568946689476894868949689506895168952689536895468955689566895768958689596896068961689626896368964689656896668967689686896968970689716897268973689746897568976689776897868979689806898168982689836898468985689866898768988689896899068991689926899368994689956899668997689986899969000690016900269003690046900569006690076900869009690106901169012690136901469015690166901769018690196902069021690226902369024690256902669027690286902969030690316903269033690346903569036690376903869039690406904169042690436904469045690466904769048690496905069051690526905369054690556905669057690586905969060690616906269063690646906569066690676906869069690706907169072690736907469075690766907769078690796908069081690826908369084690856908669087690886908969090690916909269093690946909569096690976909869099691006910169102691036910469105691066910769108691096911069111691126911369114691156911669117691186911969120691216912269123691246912569126691276912869129691306913169132691336913469135691366913769138691396914069141691426914369144691456914669147691486914969150691516915269153691546915569156691576915869159691606916169162691636916469165691666916769168691696917069171691726917369174691756917669177691786917969180691816918269183691846918569186691876918869189691906919169192691936919469195691966919769198691996920069201692026920369204692056920669207692086920969210692116921269213692146921569216692176921869219692206922169222692236922469225692266922769228692296923069231692326923369234692356923669237692386923969240692416924269243692446924569246692476924869249692506925169252692536925469255692566925769258692596926069261692626926369264692656926669267692686926969270692716927269273692746927569276692776927869279692806928169282692836928469285692866928769288692896929069291692926929369294692956929669297692986929969300693016930269303693046930569306693076930869309693106931169312693136931469315693166931769318693196932069321693226932369324693256932669327693286932969330693316933269333693346933569336693376933869339693406934169342693436934469345693466934769348693496935069351693526935369354693556935669357693586935969360693616936269363693646936569366693676936869369693706937169372693736937469375693766937769378693796938069381693826938369384693856938669387693886938969390693916939269393693946939569396693976939869399694006940169402694036940469405694066940769408694096941069411694126941369414694156941669417694186941969420694216942269423694246942569426694276942869429694306943169432694336943469435694366943769438694396944069441694426944369444694456944669447694486944969450694516945269453694546945569456694576945869459694606946169462694636946469465694666946769468694696947069471694726947369474694756947669477694786947969480694816948269483694846948569486694876948869489694906949169492694936949469495694966949769498694996950069501695026950369504695056950669507695086950969510695116951269513695146951569516695176951869519695206952169522695236952469525695266952769528695296953069531695326953369534695356953669537695386953969540695416954269543695446954569546695476954869549695506955169552695536955469555695566955769558695596956069561695626956369564695656956669567695686956969570695716957269573695746957569576695776957869579695806958169582695836958469585695866958769588695896959069591695926959369594695956959669597695986959969600696016960269603696046960569606696076960869609696106961169612696136961469615696166961769618696196962069621696226962369624696256962669627696286962969630696316963269633696346963569636696376963869639696406964169642696436964469645696466964769648696496965069651696526965369654696556965669657696586965969660696616966269663696646966569666696676966869669696706967169672696736967469675696766967769678696796968069681696826968369684696856968669687696886968969690696916969269693696946969569696696976969869699697006970169702697036970469705697066970769708697096971069711697126971369714697156971669717697186971969720697216972269723697246972569726697276972869729697306973169732697336973469735697366973769738697396974069741697426974369744697456974669747697486974969750697516975269753697546975569756697576975869759697606976169762697636976469765697666976769768697696977069771697726977369774697756977669777697786977969780697816978269783697846978569786697876978869789697906979169792697936979469795697966979769798697996980069801698026980369804698056980669807698086980969810698116981269813698146981569816698176981869819698206982169822698236982469825698266982769828698296983069831698326983369834698356983669837698386983969840698416984269843698446984569846698476984869849698506985169852698536985469855698566985769858698596986069861698626986369864698656986669867698686986969870698716987269873698746987569876698776987869879698806988169882698836988469885698866988769888698896989069891698926989369894698956989669897698986989969900699016990269903699046990569906699076990869909699106991169912699136991469915699166991769918699196992069921699226992369924699256992669927699286992969930699316993269933699346993569936699376993869939699406994169942699436994469945699466994769948699496995069951699526995369954699556995669957699586995969960699616996269963699646996569966699676996869969699706997169972699736997469975699766997769978699796998069981699826998369984699856998669987699886998969990699916999269993699946999569996699976999869999700007000170002700037000470005700067000770008700097001070011700127001370014700157001670017700187001970020700217002270023700247002570026700277002870029700307003170032700337003470035700367003770038700397004070041700427004370044700457004670047700487004970050700517005270053700547005570056700577005870059700607006170062700637006470065700667006770068700697007070071700727007370074700757007670077700787007970080700817008270083700847008570086700877008870089700907009170092700937009470095700967009770098700997010070101701027010370104701057010670107701087010970110701117011270113701147011570116701177011870119701207012170122701237012470125701267012770128701297013070131701327013370134701357013670137701387013970140701417014270143701447014570146701477014870149701507015170152701537015470155701567015770158701597016070161701627016370164701657016670167701687016970170701717017270173701747017570176701777017870179701807018170182701837018470185701867018770188701897019070191701927019370194701957019670197701987019970200702017020270203702047020570206702077020870209702107021170212702137021470215702167021770218702197022070221702227022370224702257022670227702287022970230702317023270233702347023570236702377023870239702407024170242702437024470245702467024770248702497025070251702527025370254702557025670257702587025970260702617026270263702647026570266702677026870269702707027170272702737027470275702767027770278702797028070281702827028370284702857028670287702887028970290702917029270293702947029570296702977029870299703007030170302703037030470305703067030770308703097031070311703127031370314703157031670317703187031970320703217032270323703247032570326703277032870329703307033170332703337033470335703367033770338703397034070341703427034370344703457034670347703487034970350703517035270353703547035570356703577035870359703607036170362703637036470365703667036770368703697037070371703727037370374703757037670377703787037970380703817038270383703847038570386703877038870389703907039170392703937039470395703967039770398703997040070401704027040370404704057040670407704087040970410704117041270413704147041570416704177041870419704207042170422704237042470425704267042770428704297043070431704327043370434704357043670437704387043970440704417044270443704447044570446704477044870449704507045170452704537045470455704567045770458704597046070461704627046370464704657046670467704687046970470704717047270473704747047570476704777047870479704807048170482704837048470485704867048770488704897049070491704927049370494704957049670497704987049970500705017050270503705047050570506705077050870509705107051170512705137051470515705167051770518705197052070521705227052370524705257052670527705287052970530705317053270533705347053570536705377053870539705407054170542705437054470545705467054770548705497055070551705527055370554705557055670557705587055970560705617056270563705647056570566705677056870569705707057170572705737057470575705767057770578705797058070581705827058370584705857058670587705887058970590705917059270593705947059570596705977059870599706007060170602706037060470605706067060770608706097061070611706127061370614706157061670617706187061970620706217062270623706247062570626706277062870629706307063170632706337063470635706367063770638706397064070641706427064370644706457064670647706487064970650706517065270653706547065570656706577065870659706607066170662706637066470665706667066770668706697067070671706727067370674706757067670677706787067970680706817068270683706847068570686706877068870689706907069170692706937069470695706967069770698706997070070701707027070370704707057070670707707087070970710707117071270713707147071570716707177071870719707207072170722707237072470725707267072770728707297073070731707327073370734707357073670737707387073970740707417074270743707447074570746707477074870749707507075170752707537075470755707567075770758707597076070761707627076370764707657076670767707687076970770707717077270773707747077570776707777077870779707807078170782707837078470785707867078770788707897079070791707927079370794707957079670797707987079970800708017080270803708047080570806708077080870809708107081170812708137081470815708167081770818708197082070821708227082370824708257082670827708287082970830708317083270833708347083570836708377083870839708407084170842708437084470845708467084770848708497085070851708527085370854708557085670857708587085970860708617086270863708647086570866708677086870869708707087170872708737087470875708767087770878708797088070881708827088370884708857088670887708887088970890708917089270893708947089570896708977089870899709007090170902709037090470905709067090770908709097091070911709127091370914709157091670917709187091970920709217092270923709247092570926709277092870929709307093170932709337093470935709367093770938709397094070941709427094370944709457094670947709487094970950709517095270953709547095570956709577095870959709607096170962709637096470965709667096770968709697097070971709727097370974709757097670977709787097970980709817098270983709847098570986709877098870989709907099170992709937099470995709967099770998709997100071001710027100371004710057100671007710087100971010710117101271013710147101571016710177101871019710207102171022710237102471025710267102771028710297103071031710327103371034710357103671037710387103971040710417104271043710447104571046710477104871049710507105171052710537105471055710567105771058710597106071061710627106371064710657106671067710687106971070710717107271073710747107571076710777107871079710807108171082710837108471085710867108771088710897109071091710927109371094710957109671097710987109971100711017110271103711047110571106711077110871109711107111171112711137111471115711167111771118711197112071121711227112371124711257112671127711287112971130711317113271133711347113571136711377113871139711407114171142711437114471145711467114771148711497115071151711527115371154711557115671157711587115971160711617116271163711647116571166711677116871169711707117171172711737117471175711767117771178711797118071181711827118371184711857118671187711887118971190711917119271193711947119571196711977119871199712007120171202712037120471205712067120771208712097121071211712127121371214712157121671217712187121971220712217122271223712247122571226712277122871229712307123171232712337123471235712367123771238712397124071241712427124371244712457124671247712487124971250712517125271253712547125571256712577125871259712607126171262712637126471265712667126771268712697127071271712727127371274712757127671277712787127971280712817128271283712847128571286712877128871289712907129171292712937129471295712967129771298712997130071301713027130371304713057130671307713087130971310713117131271313713147131571316713177131871319713207132171322713237132471325713267132771328713297133071331713327133371334713357133671337713387133971340713417134271343713447134571346713477134871349713507135171352713537135471355713567135771358713597136071361713627136371364713657136671367713687136971370713717137271373713747137571376713777137871379713807138171382713837138471385713867138771388713897139071391713927139371394713957139671397713987139971400714017140271403714047140571406714077140871409714107141171412714137141471415714167141771418714197142071421714227142371424714257142671427714287142971430714317143271433714347143571436714377143871439714407144171442714437144471445714467144771448714497145071451714527145371454714557145671457714587145971460714617146271463714647146571466714677146871469714707147171472714737147471475714767147771478714797148071481714827148371484714857148671487714887148971490714917149271493714947149571496714977149871499715007150171502715037150471505715067150771508715097151071511715127151371514715157151671517715187151971520715217152271523715247152571526715277152871529715307153171532715337153471535715367153771538715397154071541715427154371544715457154671547715487154971550715517155271553715547155571556715577155871559715607156171562715637156471565715667156771568715697157071571715727157371574715757157671577715787157971580715817158271583715847158571586715877158871589715907159171592715937159471595715967159771598715997160071601716027160371604716057160671607716087160971610716117161271613716147161571616716177161871619716207162171622716237162471625716267162771628716297163071631716327163371634716357163671637716387163971640716417164271643716447164571646716477164871649716507165171652716537165471655716567165771658716597166071661716627166371664716657166671667716687166971670716717167271673716747167571676716777167871679716807168171682716837168471685716867168771688716897169071691716927169371694716957169671697716987169971700717017170271703717047170571706717077170871709717107171171712717137171471715717167171771718717197172071721717227172371724717257172671727717287172971730717317173271733717347173571736717377173871739717407174171742717437174471745717467174771748717497175071751717527175371754717557175671757717587175971760717617176271763717647176571766717677176871769717707177171772717737177471775717767177771778717797178071781717827178371784717857178671787717887178971790717917179271793717947179571796717977179871799718007180171802718037180471805718067180771808718097181071811718127181371814718157181671817718187181971820718217182271823718247182571826718277182871829718307183171832718337183471835718367183771838718397184071841718427184371844718457184671847718487184971850718517185271853718547185571856718577185871859718607186171862718637186471865718667186771868718697187071871718727187371874718757187671877718787187971880718817188271883718847188571886718877188871889718907189171892718937189471895718967189771898718997190071901719027190371904719057190671907719087190971910719117191271913719147191571916719177191871919719207192171922719237192471925719267192771928719297193071931719327193371934719357193671937719387193971940719417194271943719447194571946719477194871949719507195171952719537195471955719567195771958719597196071961719627196371964719657196671967719687196971970719717197271973719747197571976719777197871979719807198171982719837198471985719867198771988719897199071991719927199371994719957199671997719987199972000720017200272003720047200572006720077200872009720107201172012720137201472015720167201772018720197202072021720227202372024720257202672027720287202972030720317203272033720347203572036720377203872039720407204172042720437204472045720467204772048720497205072051720527205372054720557205672057720587205972060720617206272063720647206572066720677206872069720707207172072720737207472075720767207772078720797208072081720827208372084720857208672087720887208972090720917209272093720947209572096720977209872099721007210172102721037210472105721067210772108721097211072111721127211372114721157211672117721187211972120721217212272123721247212572126721277212872129721307213172132721337213472135721367213772138721397214072141721427214372144721457214672147721487214972150721517215272153721547215572156721577215872159721607216172162721637216472165721667216772168721697217072171721727217372174721757217672177721787217972180721817218272183721847218572186721877218872189721907219172192721937219472195721967219772198721997220072201722027220372204722057220672207722087220972210722117221272213722147221572216722177221872219722207222172222722237222472225722267222772228722297223072231722327223372234722357223672237722387223972240722417224272243722447224572246722477224872249722507225172252722537225472255722567225772258722597226072261722627226372264722657226672267722687226972270722717227272273722747227572276722777227872279722807228172282722837228472285722867228772288722897229072291722927229372294722957229672297722987229972300723017230272303723047230572306723077230872309723107231172312723137231472315723167231772318723197232072321723227232372324723257232672327723287232972330723317233272333723347233572336723377233872339723407234172342723437234472345723467234772348723497235072351723527235372354723557235672357723587235972360723617236272363723647236572366723677236872369723707237172372723737237472375723767237772378723797238072381723827238372384723857238672387723887238972390723917239272393723947239572396723977239872399724007240172402724037240472405724067240772408724097241072411724127241372414724157241672417724187241972420724217242272423724247242572426724277242872429724307243172432724337243472435724367243772438724397244072441724427244372444724457244672447724487244972450724517245272453724547245572456724577245872459724607246172462724637246472465724667246772468724697247072471724727247372474724757247672477724787247972480724817248272483724847248572486724877248872489724907249172492724937249472495724967249772498724997250072501725027250372504725057250672507725087250972510725117251272513725147251572516725177251872519725207252172522725237252472525725267252772528725297253072531725327253372534725357253672537725387253972540725417254272543725447254572546725477254872549725507255172552725537255472555725567255772558725597256072561725627256372564725657256672567725687256972570725717257272573725747257572576725777257872579725807258172582725837258472585725867258772588725897259072591725927259372594725957259672597725987259972600726017260272603726047260572606726077260872609726107261172612726137261472615726167261772618726197262072621726227262372624726257262672627726287262972630726317263272633726347263572636726377263872639726407264172642726437264472645726467264772648726497265072651726527265372654726557265672657726587265972660726617266272663726647266572666726677266872669726707267172672726737267472675726767267772678726797268072681726827268372684726857268672687726887268972690726917269272693726947269572696726977269872699727007270172702727037270472705727067270772708727097271072711727127271372714727157271672717727187271972720727217272272723727247272572726727277272872729727307273172732727337273472735727367273772738727397274072741727427274372744727457274672747727487274972750727517275272753727547275572756727577275872759727607276172762727637276472765727667276772768727697277072771727727277372774727757277672777727787277972780727817278272783727847278572786727877278872789727907279172792727937279472795727967279772798727997280072801728027280372804728057280672807728087280972810728117281272813728147281572816728177281872819728207282172822728237282472825728267282772828728297283072831728327283372834728357283672837728387283972840728417284272843728447284572846728477284872849728507285172852728537285472855728567285772858728597286072861728627286372864728657286672867728687286972870728717287272873728747287572876728777287872879728807288172882728837288472885728867288772888728897289072891728927289372894728957289672897728987289972900729017290272903729047290572906729077290872909729107291172912729137291472915729167291772918729197292072921729227292372924729257292672927729287292972930729317293272933729347293572936729377293872939729407294172942729437294472945729467294772948729497295072951729527295372954729557295672957729587295972960729617296272963729647296572966729677296872969729707297172972729737297472975729767297772978729797298072981729827298372984729857298672987729887298972990729917299272993729947299572996729977299872999730007300173002730037300473005730067300773008730097301073011730127301373014730157301673017730187301973020730217302273023730247302573026730277302873029730307303173032730337303473035730367303773038730397304073041730427304373044730457304673047730487304973050730517305273053730547305573056730577305873059730607306173062730637306473065730667306773068730697307073071730727307373074730757307673077730787307973080730817308273083730847308573086730877308873089730907309173092730937309473095730967309773098730997310073101731027310373104731057310673107731087310973110731117311273113731147311573116731177311873119731207312173122731237312473125731267312773128731297313073131731327313373134731357313673137731387313973140731417314273143731447314573146731477314873149731507315173152731537315473155731567315773158731597316073161731627316373164731657316673167731687316973170731717317273173731747317573176731777317873179731807318173182731837318473185731867318773188731897319073191731927319373194731957319673197731987319973200732017320273203732047320573206732077320873209732107321173212732137321473215732167321773218732197322073221732227322373224732257322673227732287322973230732317323273233732347323573236732377323873239732407324173242732437324473245732467324773248732497325073251732527325373254732557325673257732587325973260732617326273263732647326573266732677326873269732707327173272732737327473275732767327773278732797328073281732827328373284732857328673287732887328973290732917329273293732947329573296732977329873299733007330173302733037330473305733067330773308733097331073311733127331373314733157331673317733187331973320733217332273323733247332573326733277332873329733307333173332733337333473335733367333773338733397334073341733427334373344733457334673347733487334973350733517335273353733547335573356733577335873359733607336173362733637336473365733667336773368733697337073371733727337373374733757337673377733787337973380733817338273383733847338573386733877338873389733907339173392733937339473395733967339773398733997340073401734027340373404734057340673407734087340973410734117341273413734147341573416734177341873419734207342173422734237342473425734267342773428734297343073431734327343373434734357343673437734387343973440734417344273443734447344573446734477344873449734507345173452734537345473455734567345773458734597346073461734627346373464734657346673467734687346973470734717347273473734747347573476734777347873479734807348173482734837348473485734867348773488734897349073491734927349373494734957349673497734987349973500735017350273503735047350573506735077350873509735107351173512735137351473515735167351773518735197352073521735227352373524735257352673527735287352973530735317353273533735347353573536735377353873539735407354173542735437354473545735467354773548735497355073551735527355373554735557355673557735587355973560735617356273563735647356573566735677356873569735707357173572735737357473575735767357773578735797358073581735827358373584735857358673587735887358973590735917359273593735947359573596735977359873599736007360173602736037360473605736067360773608736097361073611736127361373614736157361673617736187361973620736217362273623736247362573626736277362873629736307363173632736337363473635736367363773638736397364073641736427364373644736457364673647736487364973650736517365273653736547365573656736577365873659736607366173662736637366473665736667366773668736697367073671736727367373674736757367673677736787367973680736817368273683736847368573686736877368873689736907369173692736937369473695736967369773698736997370073701737027370373704737057370673707737087370973710737117371273713737147371573716737177371873719737207372173722737237372473725737267372773728737297373073731737327373373734737357373673737737387373973740737417374273743737447374573746737477374873749737507375173752737537375473755737567375773758737597376073761737627376373764737657376673767737687376973770737717377273773737747377573776737777377873779737807378173782737837378473785737867378773788737897379073791737927379373794737957379673797737987379973800738017380273803738047380573806738077380873809738107381173812738137381473815738167381773818738197382073821738227382373824738257382673827738287382973830738317383273833738347383573836738377383873839738407384173842738437384473845738467384773848738497385073851738527385373854738557385673857738587385973860738617386273863738647386573866738677386873869738707387173872738737387473875738767387773878738797388073881738827388373884738857388673887738887388973890738917389273893738947389573896738977389873899739007390173902739037390473905739067390773908739097391073911739127391373914739157391673917739187391973920739217392273923739247392573926739277392873929739307393173932739337393473935739367393773938739397394073941739427394373944739457394673947739487394973950739517395273953739547395573956739577395873959739607396173962739637396473965739667396773968739697397073971739727397373974739757397673977739787397973980739817398273983739847398573986739877398873989739907399173992739937399473995739967399773998739997400074001740027400374004740057400674007740087400974010740117401274013740147401574016740177401874019740207402174022740237402474025740267402774028740297403074031740327403374034740357403674037740387403974040740417404274043740447404574046740477404874049740507405174052740537405474055740567405774058740597406074061740627406374064740657406674067740687406974070740717407274073740747407574076740777407874079740807408174082740837408474085740867408774088740897409074091740927409374094740957409674097740987409974100741017410274103741047410574106741077410874109741107411174112741137411474115741167411774118741197412074121741227412374124741257412674127741287412974130741317413274133741347413574136741377413874139741407414174142741437414474145741467414774148741497415074151741527415374154741557415674157741587415974160741617416274163741647416574166741677416874169741707417174172741737417474175741767417774178741797418074181741827418374184741857418674187741887418974190741917419274193741947419574196741977419874199742007420174202742037420474205742067420774208742097421074211742127421374214742157421674217742187421974220742217422274223742247422574226742277422874229742307423174232742337423474235742367423774238742397424074241742427424374244742457424674247742487424974250742517425274253742547425574256742577425874259742607426174262742637426474265742667426774268742697427074271742727427374274742757427674277742787427974280742817428274283742847428574286742877428874289742907429174292742937429474295742967429774298742997430074301743027430374304743057430674307743087430974310743117431274313743147431574316743177431874319743207432174322743237432474325743267432774328743297433074331743327433374334743357433674337743387433974340743417434274343743447434574346743477434874349743507435174352743537435474355743567435774358743597436074361743627436374364743657436674367743687436974370743717437274373743747437574376743777437874379743807438174382743837438474385743867438774388743897439074391743927439374394743957439674397743987439974400744017440274403744047440574406744077440874409744107441174412744137441474415744167441774418744197442074421744227442374424744257442674427744287442974430744317443274433744347443574436744377443874439744407444174442744437444474445744467444774448744497445074451744527445374454744557445674457744587445974460744617446274463744647446574466744677446874469744707447174472744737447474475744767447774478744797448074481744827448374484744857448674487744887448974490744917449274493744947449574496744977449874499745007450174502745037450474505745067450774508745097451074511745127451374514745157451674517745187451974520745217452274523745247452574526745277452874529745307453174532745337453474535745367453774538745397454074541745427454374544745457454674547745487454974550745517455274553745547455574556745577455874559745607456174562745637456474565745667456774568745697457074571745727457374574745757457674577745787457974580745817458274583745847458574586745877458874589745907459174592745937459474595745967459774598745997460074601746027460374604746057460674607746087460974610746117461274613746147461574616746177461874619746207462174622746237462474625746267462774628746297463074631746327463374634746357463674637746387463974640746417464274643746447464574646746477464874649746507465174652746537465474655746567465774658746597466074661746627466374664746657466674667746687466974670746717467274673746747467574676746777467874679746807468174682746837468474685746867468774688746897469074691746927469374694746957469674697746987469974700747017470274703747047470574706747077470874709747107471174712747137471474715747167471774718747197472074721747227472374724747257472674727747287472974730747317473274733747347473574736747377473874739747407474174742747437474474745747467474774748747497475074751747527475374754747557475674757747587475974760747617476274763747647476574766747677476874769747707477174772747737477474775747767477774778747797478074781747827478374784747857478674787747887478974790747917479274793747947479574796747977479874799748007480174802748037480474805748067480774808748097481074811748127481374814748157481674817748187481974820748217482274823748247482574826748277482874829748307483174832748337483474835748367483774838748397484074841748427484374844748457484674847748487484974850748517485274853748547485574856748577485874859748607486174862748637486474865748667486774868748697487074871748727487374874748757487674877748787487974880748817488274883748847488574886748877488874889748907489174892748937489474895748967489774898748997490074901749027490374904749057490674907749087490974910749117491274913749147491574916749177491874919749207492174922749237492474925749267492774928749297493074931749327493374934749357493674937749387493974940749417494274943749447494574946749477494874949749507495174952749537495474955749567495774958749597496074961749627496374964749657496674967749687496974970749717497274973749747497574976749777497874979749807498174982749837498474985749867498774988749897499074991749927499374994749957499674997749987499975000750017500275003750047500575006750077500875009750107501175012750137501475015750167501775018750197502075021750227502375024750257502675027750287502975030750317503275033750347503575036750377503875039750407504175042750437504475045750467504775048750497505075051750527505375054750557505675057750587505975060750617506275063750647506575066750677506875069750707507175072750737507475075750767507775078750797508075081750827508375084750857508675087750887508975090750917509275093750947509575096750977509875099751007510175102751037510475105751067510775108751097511075111751127511375114751157511675117751187511975120751217512275123751247512575126751277512875129751307513175132751337513475135751367513775138751397514075141751427514375144751457514675147751487514975150751517515275153751547515575156751577515875159751607516175162751637516475165751667516775168751697517075171751727517375174751757517675177751787517975180751817518275183751847518575186751877518875189751907519175192751937519475195751967519775198751997520075201752027520375204752057520675207752087520975210752117521275213752147521575216752177521875219752207522175222752237522475225752267522775228752297523075231752327523375234752357523675237752387523975240752417524275243752447524575246752477524875249752507525175252752537525475255752567525775258752597526075261752627526375264752657526675267752687526975270752717527275273752747527575276752777527875279752807528175282752837528475285752867528775288752897529075291752927529375294752957529675297752987529975300753017530275303753047530575306753077530875309753107531175312753137531475315753167531775318753197532075321753227532375324753257532675327753287532975330753317533275333753347533575336753377533875339753407534175342753437534475345753467534775348753497535075351753527535375354753557535675357753587535975360753617536275363753647536575366753677536875369753707537175372753737537475375753767537775378753797538075381753827538375384753857538675387753887538975390753917539275393753947539575396753977539875399754007540175402754037540475405754067540775408754097541075411754127541375414754157541675417754187541975420754217542275423754247542575426754277542875429754307543175432754337543475435754367543775438754397544075441754427544375444754457544675447754487544975450754517545275453754547545575456754577545875459754607546175462754637546475465754667546775468754697547075471754727547375474754757547675477754787547975480754817548275483754847548575486754877548875489754907549175492754937549475495754967549775498754997550075501755027550375504755057550675507755087550975510755117551275513755147551575516755177551875519755207552175522755237552475525755267552775528755297553075531755327553375534755357553675537755387553975540755417554275543755447554575546755477554875549755507555175552755537555475555755567555775558755597556075561755627556375564755657556675567755687556975570755717557275573755747557575576755777557875579755807558175582755837558475585755867558775588755897559075591755927559375594755957559675597755987559975600756017560275603756047560575606756077560875609756107561175612756137561475615756167561775618756197562075621756227562375624756257562675627756287562975630756317563275633756347563575636756377563875639756407564175642756437564475645756467564775648756497565075651756527565375654756557565675657756587565975660756617566275663756647566575666756677566875669756707567175672756737567475675756767567775678756797568075681756827568375684756857568675687756887568975690756917569275693756947569575696756977569875699757007570175702757037570475705757067570775708757097571075711757127571375714757157571675717757187571975720757217572275723757247572575726757277572875729757307573175732757337573475735757367573775738757397574075741757427574375744757457574675747757487574975750757517575275753757547575575756757577575875759757607576175762757637576475765757667576775768757697577075771757727577375774757757577675777757787577975780757817578275783757847578575786757877578875789757907579175792757937579475795757967579775798757997580075801758027580375804758057580675807758087580975810758117581275813758147581575816758177581875819758207582175822758237582475825758267582775828758297583075831758327583375834758357583675837758387583975840758417584275843758447584575846758477584875849758507585175852758537585475855758567585775858758597586075861758627586375864758657586675867758687586975870758717587275873758747587575876758777587875879758807588175882758837588475885758867588775888758897589075891758927589375894758957589675897758987589975900759017590275903759047590575906759077590875909759107591175912759137591475915759167591775918759197592075921759227592375924759257592675927759287592975930759317593275933759347593575936759377593875939759407594175942759437594475945759467594775948759497595075951759527595375954759557595675957759587595975960759617596275963759647596575966759677596875969759707597175972759737597475975759767597775978759797598075981759827598375984759857598675987759887598975990759917599275993759947599575996759977599875999760007600176002760037600476005760067600776008760097601076011760127601376014760157601676017760187601976020760217602276023760247602576026760277602876029760307603176032760337603476035760367603776038760397604076041760427604376044760457604676047760487604976050760517605276053760547605576056760577605876059760607606176062760637606476065760667606776068760697607076071760727607376074760757607676077760787607976080760817608276083760847608576086760877608876089760907609176092760937609476095760967609776098760997610076101761027610376104761057610676107761087610976110761117611276113761147611576116761177611876119761207612176122761237612476125761267612776128761297613076131761327613376134761357613676137761387613976140761417614276143761447614576146761477614876149761507615176152761537615476155761567615776158761597616076161761627616376164761657616676167761687616976170761717617276173761747617576176761777617876179761807618176182761837618476185761867618776188761897619076191761927619376194761957619676197761987619976200762017620276203762047620576206762077620876209762107621176212762137621476215762167621776218762197622076221762227622376224762257622676227762287622976230762317623276233762347623576236762377623876239762407624176242762437624476245762467624776248762497625076251762527625376254762557625676257762587625976260762617626276263762647626576266762677626876269762707627176272762737627476275762767627776278762797628076281762827628376284762857628676287762887628976290762917629276293762947629576296762977629876299763007630176302763037630476305763067630776308763097631076311763127631376314763157631676317763187631976320763217632276323763247632576326763277632876329763307633176332763337633476335763367633776338763397634076341763427634376344763457634676347763487634976350763517635276353763547635576356763577635876359763607636176362763637636476365763667636776368763697637076371763727637376374763757637676377763787637976380763817638276383763847638576386763877638876389763907639176392763937639476395763967639776398763997640076401764027640376404764057640676407764087640976410764117641276413764147641576416764177641876419764207642176422764237642476425764267642776428764297643076431764327643376434764357643676437764387643976440764417644276443764447644576446764477644876449764507645176452764537645476455764567645776458764597646076461764627646376464764657646676467764687646976470764717647276473764747647576476764777647876479764807648176482764837648476485764867648776488764897649076491764927649376494764957649676497764987649976500765017650276503765047650576506765077650876509765107651176512765137651476515765167651776518765197652076521765227652376524765257652676527765287652976530765317653276533765347653576536765377653876539765407654176542765437654476545765467654776548765497655076551765527655376554765557655676557765587655976560765617656276563765647656576566765677656876569765707657176572765737657476575765767657776578765797658076581765827658376584765857658676587765887658976590765917659276593765947659576596765977659876599766007660176602766037660476605766067660776608766097661076611766127661376614766157661676617766187661976620766217662276623766247662576626766277662876629766307663176632766337663476635766367663776638766397664076641766427664376644766457664676647766487664976650766517665276653766547665576656766577665876659766607666176662766637666476665766667666776668766697667076671766727667376674766757667676677766787667976680766817668276683766847668576686766877668876689766907669176692766937669476695766967669776698766997670076701767027670376704767057670676707767087670976710767117671276713767147671576716767177671876719767207672176722767237672476725767267672776728767297673076731767327673376734767357673676737767387673976740767417674276743767447674576746767477674876749767507675176752767537675476755767567675776758767597676076761767627676376764767657676676767767687676976770767717677276773767747677576776767777677876779767807678176782767837678476785767867678776788767897679076791767927679376794767957679676797767987679976800768017680276803768047680576806768077680876809768107681176812768137681476815768167681776818768197682076821768227682376824768257682676827768287682976830768317683276833768347683576836768377683876839768407684176842768437684476845768467684776848768497685076851768527685376854768557685676857768587685976860768617686276863768647686576866768677686876869768707687176872768737687476875768767687776878768797688076881768827688376884768857688676887768887688976890768917689276893768947689576896768977689876899769007690176902769037690476905769067690776908769097691076911769127691376914769157691676917769187691976920769217692276923769247692576926769277692876929769307693176932769337693476935769367693776938769397694076941769427694376944769457694676947769487694976950769517695276953769547695576956769577695876959769607696176962769637696476965769667696776968769697697076971769727697376974769757697676977769787697976980769817698276983769847698576986769877698876989769907699176992769937699476995769967699776998769997700077001770027700377004770057700677007770087700977010770117701277013770147701577016770177701877019770207702177022770237702477025770267702777028770297703077031770327703377034770357703677037770387703977040770417704277043770447704577046770477704877049770507705177052770537705477055770567705777058770597706077061770627706377064770657706677067770687706977070770717707277073770747707577076770777707877079770807708177082770837708477085770867708777088770897709077091770927709377094770957709677097770987709977100771017710277103771047710577106771077710877109771107711177112771137711477115771167711777118771197712077121771227712377124771257712677127771287712977130771317713277133771347713577136771377713877139771407714177142771437714477145771467714777148771497715077151771527715377154771557715677157771587715977160771617716277163771647716577166771677716877169771707717177172771737717477175771767717777178771797718077181771827718377184771857718677187771887718977190771917719277193771947719577196771977719877199772007720177202772037720477205772067720777208772097721077211772127721377214772157721677217772187721977220772217722277223772247722577226772277722877229772307723177232772337723477235772367723777238772397724077241772427724377244772457724677247772487724977250772517725277253772547725577256772577725877259772607726177262772637726477265772667726777268772697727077271772727727377274772757727677277772787727977280772817728277283772847728577286772877728877289772907729177292772937729477295772967729777298772997730077301773027730377304773057730677307773087730977310773117731277313773147731577316773177731877319773207732177322773237732477325773267732777328773297733077331773327733377334773357733677337773387733977340773417734277343773447734577346773477734877349773507735177352773537735477355773567735777358773597736077361773627736377364773657736677367773687736977370773717737277373773747737577376773777737877379773807738177382773837738477385773867738777388773897739077391773927739377394773957739677397773987739977400774017740277403774047740577406774077740877409774107741177412774137741477415774167741777418774197742077421774227742377424774257742677427774287742977430774317743277433774347743577436774377743877439774407744177442774437744477445774467744777448774497745077451774527745377454774557745677457774587745977460774617746277463774647746577466774677746877469774707747177472774737747477475774767747777478774797748077481774827748377484774857748677487774887748977490774917749277493774947749577496774977749877499775007750177502775037750477505775067750777508775097751077511775127751377514775157751677517775187751977520775217752277523775247752577526775277752877529775307753177532775337753477535775367753777538775397754077541775427754377544775457754677547775487754977550775517755277553775547755577556775577755877559775607756177562775637756477565775667756777568775697757077571775727757377574775757757677577775787757977580775817758277583775847758577586775877758877589775907759177592775937759477595775967759777598775997760077601776027760377604776057760677607776087760977610776117761277613776147761577616776177761877619776207762177622776237762477625776267762777628776297763077631776327763377634776357763677637776387763977640776417764277643776447764577646776477764877649776507765177652776537765477655776567765777658776597766077661776627766377664776657766677667776687766977670776717767277673776747767577676776777767877679776807768177682776837768477685776867768777688776897769077691776927769377694776957769677697776987769977700777017770277703777047770577706777077770877709777107771177712777137771477715777167771777718777197772077721777227772377724777257772677727777287772977730777317773277733777347773577736777377773877739777407774177742777437774477745777467774777748777497775077751777527775377754777557775677757777587775977760777617776277763777647776577766777677776877769777707777177772777737777477775777767777777778777797778077781777827778377784777857778677787777887778977790777917779277793777947779577796777977779877799778007780177802778037780477805778067780777808778097781077811778127781377814778157781677817778187781977820778217782277823778247782577826778277782877829778307783177832778337783477835778367783777838778397784077841778427784377844778457784677847778487784977850778517785277853778547785577856778577785877859778607786177862778637786477865778667786777868778697787077871778727787377874778757787677877778787787977880778817788277883778847788577886778877788877889778907789177892778937789477895778967789777898778997790077901779027790377904779057790677907779087790977910779117791277913779147791577916779177791877919779207792177922779237792477925779267792777928779297793077931779327793377934779357793677937779387793977940779417794277943779447794577946779477794877949779507795177952779537795477955779567795777958779597796077961779627796377964779657796677967779687796977970779717797277973779747797577976779777797877979779807798177982779837798477985779867798777988779897799077991779927799377994779957799677997779987799978000780017800278003780047800578006780077800878009780107801178012780137801478015780167801778018780197802078021780227802378024780257802678027780287802978030780317803278033780347803578036780377803878039780407804178042780437804478045780467804778048780497805078051780527805378054780557805678057780587805978060780617806278063780647806578066780677806878069780707807178072780737807478075780767807778078780797808078081780827808378084780857808678087780887808978090780917809278093780947809578096780977809878099781007810178102781037810478105781067810778108781097811078111781127811378114781157811678117781187811978120781217812278123781247812578126781277812878129781307813178132781337813478135781367813778138781397814078141781427814378144781457814678147781487814978150781517815278153781547815578156781577815878159781607816178162781637816478165781667816778168781697817078171781727817378174781757817678177781787817978180781817818278183781847818578186781877818878189781907819178192781937819478195781967819778198781997820078201782027820378204782057820678207782087820978210782117821278213782147821578216782177821878219782207822178222782237822478225782267822778228782297823078231782327823378234782357823678237782387823978240782417824278243782447824578246782477824878249782507825178252782537825478255782567825778258782597826078261782627826378264782657826678267782687826978270782717827278273782747827578276782777827878279782807828178282782837828478285782867828778288782897829078291782927829378294782957829678297782987829978300783017830278303783047830578306783077830878309783107831178312783137831478315783167831778318783197832078321783227832378324783257832678327783287832978330783317833278333783347833578336783377833878339783407834178342783437834478345783467834778348783497835078351783527835378354783557835678357783587835978360783617836278363783647836578366783677836878369783707837178372783737837478375783767837778378783797838078381783827838378384783857838678387783887838978390783917839278393783947839578396783977839878399784007840178402784037840478405784067840778408784097841078411784127841378414784157841678417784187841978420784217842278423784247842578426784277842878429784307843178432784337843478435784367843778438784397844078441784427844378444784457844678447784487844978450784517845278453784547845578456784577845878459784607846178462784637846478465784667846778468784697847078471784727847378474784757847678477784787847978480784817848278483784847848578486784877848878489784907849178492784937849478495784967849778498784997850078501785027850378504785057850678507785087850978510785117851278513785147851578516785177851878519785207852178522785237852478525785267852778528785297853078531785327853378534785357853678537785387853978540785417854278543785447854578546785477854878549785507855178552785537855478555785567855778558785597856078561785627856378564785657856678567785687856978570785717857278573785747857578576785777857878579785807858178582785837858478585785867858778588785897859078591785927859378594785957859678597785987859978600786017860278603786047860578606786077860878609786107861178612786137861478615786167861778618786197862078621786227862378624786257862678627786287862978630786317863278633786347863578636786377863878639786407864178642786437864478645786467864778648786497865078651786527865378654786557865678657786587865978660786617866278663786647866578666786677866878669786707867178672786737867478675786767867778678786797868078681786827868378684786857868678687786887868978690786917869278693786947869578696786977869878699787007870178702787037870478705787067870778708787097871078711787127871378714787157871678717787187871978720787217872278723787247872578726787277872878729787307873178732787337873478735787367873778738787397874078741787427874378744787457874678747787487874978750787517875278753787547875578756787577875878759787607876178762787637876478765787667876778768787697877078771787727877378774787757877678777787787877978780787817878278783787847878578786787877878878789787907879178792787937879478795787967879778798787997880078801788027880378804788057880678807788087880978810788117881278813788147881578816788177881878819788207882178822788237882478825788267882778828788297883078831788327883378834788357883678837788387883978840788417884278843788447884578846788477884878849788507885178852788537885478855788567885778858788597886078861788627886378864788657886678867788687886978870788717887278873788747887578876788777887878879788807888178882788837888478885788867888778888788897889078891788927889378894788957889678897788987889978900789017890278903789047890578906789077890878909789107891178912789137891478915789167891778918789197892078921789227892378924789257892678927789287892978930789317893278933789347893578936789377893878939789407894178942789437894478945789467894778948789497895078951789527895378954789557895678957789587895978960789617896278963789647896578966789677896878969789707897178972789737897478975789767897778978789797898078981789827898378984789857898678987789887898978990789917899278993789947899578996789977899878999790007900179002790037900479005790067900779008790097901079011790127901379014790157901679017790187901979020790217902279023790247902579026790277902879029790307903179032790337903479035790367903779038790397904079041790427904379044790457904679047790487904979050790517905279053790547905579056790577905879059790607906179062790637906479065790667906779068790697907079071790727907379074790757907679077790787907979080790817908279083790847908579086790877908879089790907909179092790937909479095790967909779098790997910079101791027910379104791057910679107791087910979110791117911279113791147911579116791177911879119791207912179122791237912479125791267912779128791297913079131791327913379134791357913679137791387913979140791417914279143791447914579146791477914879149791507915179152791537915479155791567915779158791597916079161791627916379164791657916679167791687916979170791717917279173791747917579176791777917879179791807918179182791837918479185791867918779188791897919079191791927919379194791957919679197791987919979200792017920279203792047920579206792077920879209792107921179212792137921479215792167921779218792197922079221792227922379224792257922679227792287922979230792317923279233792347923579236792377923879239792407924179242792437924479245792467924779248792497925079251792527925379254792557925679257792587925979260792617926279263792647926579266792677926879269792707927179272792737927479275792767927779278792797928079281792827928379284792857928679287792887928979290792917929279293792947929579296792977929879299793007930179302793037930479305793067930779308793097931079311793127931379314793157931679317793187931979320793217932279323793247932579326793277932879329793307933179332793337933479335793367933779338793397934079341793427934379344793457934679347793487934979350793517935279353793547935579356793577935879359793607936179362793637936479365793667936779368793697937079371793727937379374793757937679377793787937979380793817938279383793847938579386793877938879389793907939179392793937939479395793967939779398793997940079401794027940379404794057940679407794087940979410794117941279413794147941579416794177941879419794207942179422794237942479425794267942779428794297943079431794327943379434794357943679437794387943979440794417944279443794447944579446794477944879449794507945179452794537945479455794567945779458794597946079461794627946379464794657946679467794687946979470794717947279473794747947579476794777947879479794807948179482794837948479485794867948779488794897949079491794927949379494794957949679497794987949979500795017950279503795047950579506795077950879509795107951179512795137951479515795167951779518795197952079521795227952379524795257952679527795287952979530795317953279533795347953579536795377953879539795407954179542795437954479545795467954779548795497955079551795527955379554795557955679557795587955979560795617956279563795647956579566795677956879569795707957179572795737957479575795767957779578795797958079581795827958379584795857958679587795887958979590795917959279593795947959579596795977959879599796007960179602796037960479605796067960779608796097961079611796127961379614796157961679617796187961979620796217962279623796247962579626796277962879629796307963179632796337963479635796367963779638796397964079641796427964379644796457964679647796487964979650796517965279653796547965579656796577965879659796607966179662796637966479665796667966779668796697967079671796727967379674796757967679677796787967979680796817968279683796847968579686796877968879689796907969179692796937969479695796967969779698796997970079701797027970379704797057970679707797087970979710797117971279713797147971579716797177971879719797207972179722797237972479725797267972779728797297973079731797327973379734797357973679737797387973979740797417974279743797447974579746797477974879749797507975179752797537975479755797567975779758797597976079761797627976379764797657976679767797687976979770797717977279773797747977579776797777977879779797807978179782797837978479785797867978779788797897979079791797927979379794797957979679797797987979979800798017980279803798047980579806798077980879809798107981179812798137981479815798167981779818798197982079821798227982379824798257982679827798287982979830798317983279833798347983579836798377983879839798407984179842798437984479845798467984779848798497985079851798527985379854798557985679857798587985979860798617986279863798647986579866798677986879869798707987179872798737987479875798767987779878798797988079881798827988379884798857988679887798887988979890798917989279893798947989579896798977989879899799007990179902799037990479905799067990779908799097991079911799127991379914799157991679917799187991979920799217992279923799247992579926799277992879929799307993179932799337993479935799367993779938799397994079941799427994379944799457994679947799487994979950799517995279953799547995579956799577995879959799607996179962799637996479965799667996779968799697997079971799727997379974799757997679977799787997979980799817998279983799847998579986799877998879989799907999179992799937999479995799967999779998799998000080001800028000380004800058000680007800088000980010800118001280013800148001580016800178001880019800208002180022800238002480025800268002780028800298003080031800328003380034800358003680037800388003980040800418004280043800448004580046800478004880049800508005180052800538005480055800568005780058800598006080061800628006380064800658006680067800688006980070800718007280073800748007580076800778007880079800808008180082800838008480085800868008780088800898009080091800928009380094800958009680097800988009980100801018010280103801048010580106801078010880109801108011180112801138011480115801168011780118801198012080121801228012380124801258012680127801288012980130801318013280133801348013580136801378013880139801408014180142801438014480145801468014780148801498015080151801528015380154801558015680157801588015980160801618016280163801648016580166801678016880169801708017180172801738017480175801768017780178801798018080181801828018380184801858018680187801888018980190801918019280193801948019580196801978019880199802008020180202802038020480205802068020780208802098021080211802128021380214802158021680217802188021980220802218022280223802248022580226802278022880229802308023180232802338023480235802368023780238802398024080241802428024380244802458024680247802488024980250802518025280253802548025580256802578025880259802608026180262802638026480265802668026780268802698027080271802728027380274802758027680277802788027980280802818028280283802848028580286802878028880289802908029180292802938029480295802968029780298802998030080301803028030380304803058030680307803088030980310803118031280313803148031580316803178031880319803208032180322803238032480325803268032780328803298033080331803328033380334803358033680337803388033980340803418034280343803448034580346803478034880349803508035180352803538035480355803568035780358803598036080361803628036380364803658036680367803688036980370803718037280373803748037580376803778037880379803808038180382803838038480385803868038780388803898039080391803928039380394803958039680397803988039980400804018040280403804048040580406804078040880409804108041180412804138041480415804168041780418804198042080421804228042380424804258042680427804288042980430804318043280433804348043580436804378043880439804408044180442804438044480445804468044780448804498045080451804528045380454804558045680457804588045980460804618046280463804648046580466804678046880469804708047180472804738047480475804768047780478804798048080481804828048380484804858048680487804888048980490804918049280493804948049580496804978049880499805008050180502805038050480505805068050780508805098051080511805128051380514805158051680517805188051980520805218052280523805248052580526805278052880529805308053180532805338053480535805368053780538805398054080541805428054380544805458054680547805488054980550805518055280553805548055580556805578055880559805608056180562805638056480565805668056780568805698057080571805728057380574805758057680577805788057980580805818058280583805848058580586805878058880589805908059180592805938059480595805968059780598805998060080601806028060380604806058060680607806088060980610806118061280613806148061580616806178061880619806208062180622806238062480625806268062780628806298063080631806328063380634806358063680637806388063980640806418064280643806448064580646806478064880649806508065180652806538065480655806568065780658806598066080661806628066380664806658066680667806688066980670806718067280673806748067580676806778067880679806808068180682806838068480685806868068780688806898069080691806928069380694806958069680697806988069980700807018070280703807048070580706807078070880709807108071180712807138071480715807168071780718807198072080721807228072380724807258072680727807288072980730807318073280733807348073580736807378073880739807408074180742807438074480745807468074780748807498075080751807528075380754807558075680757807588075980760807618076280763807648076580766807678076880769807708077180772807738077480775807768077780778807798078080781807828078380784807858078680787807888078980790807918079280793807948079580796807978079880799808008080180802808038080480805808068080780808808098081080811808128081380814808158081680817808188081980820808218082280823808248082580826808278082880829808308083180832808338083480835808368083780838808398084080841808428084380844808458084680847808488084980850808518085280853808548085580856808578085880859808608086180862808638086480865808668086780868808698087080871808728087380874808758087680877808788087980880808818088280883808848088580886808878088880889808908089180892808938089480895808968089780898808998090080901809028090380904809058090680907809088090980910809118091280913809148091580916809178091880919809208092180922809238092480925809268092780928809298093080931809328093380934809358093680937809388093980940809418094280943809448094580946809478094880949809508095180952809538095480955809568095780958809598096080961809628096380964809658096680967809688096980970809718097280973809748097580976809778097880979809808098180982809838098480985809868098780988809898099080991809928099380994809958099680997809988099981000810018100281003810048100581006810078100881009810108101181012810138101481015810168101781018810198102081021810228102381024810258102681027810288102981030810318103281033810348103581036810378103881039810408104181042810438104481045810468104781048810498105081051810528105381054810558105681057810588105981060810618106281063810648106581066810678106881069810708107181072810738107481075810768107781078810798108081081810828108381084810858108681087810888108981090810918109281093810948109581096810978109881099811008110181102811038110481105811068110781108811098111081111811128111381114811158111681117811188111981120811218112281123811248112581126811278112881129811308113181132811338113481135811368113781138811398114081141811428114381144811458114681147811488114981150811518115281153811548115581156811578115881159811608116181162811638116481165811668116781168811698117081171811728117381174811758117681177811788117981180811818118281183811848118581186811878118881189811908119181192811938119481195811968119781198811998120081201812028120381204812058120681207812088120981210812118121281213812148121581216812178121881219812208122181222812238122481225812268122781228812298123081231812328123381234812358123681237812388123981240812418124281243812448124581246812478124881249812508125181252812538125481255812568125781258812598126081261812628126381264812658126681267812688126981270812718127281273812748127581276812778127881279812808128181282812838128481285812868128781288812898129081291812928129381294812958129681297812988129981300813018130281303813048130581306813078130881309813108131181312813138131481315813168131781318813198132081321813228132381324813258132681327813288132981330813318133281333813348133581336813378133881339813408134181342813438134481345813468134781348813498135081351813528135381354813558135681357813588135981360813618136281363813648136581366813678136881369813708137181372813738137481375813768137781378813798138081381813828138381384813858138681387813888138981390813918139281393813948139581396813978139881399814008140181402814038140481405814068140781408814098141081411814128141381414814158141681417814188141981420814218142281423814248142581426814278142881429814308143181432814338143481435814368143781438814398144081441814428144381444814458144681447814488144981450814518145281453814548145581456814578145881459814608146181462814638146481465814668146781468814698147081471814728147381474814758147681477814788147981480814818148281483814848148581486814878148881489814908149181492814938149481495814968149781498814998150081501815028150381504815058150681507815088150981510815118151281513815148151581516815178151881519815208152181522815238152481525815268152781528815298153081531815328153381534815358153681537815388153981540815418154281543815448154581546815478154881549815508155181552815538155481555815568155781558815598156081561815628156381564815658156681567815688156981570815718157281573815748157581576815778157881579815808158181582815838158481585815868158781588815898159081591815928159381594815958159681597815988159981600816018160281603816048160581606816078160881609816108161181612816138161481615816168161781618816198162081621816228162381624816258162681627816288162981630816318163281633816348163581636816378163881639816408164181642816438164481645816468164781648816498165081651816528165381654816558165681657816588165981660816618166281663816648166581666816678166881669816708167181672816738167481675816768167781678816798168081681816828168381684816858168681687816888168981690816918169281693816948169581696816978169881699817008170181702817038170481705817068170781708817098171081711817128171381714817158171681717817188171981720817218172281723817248172581726817278172881729817308173181732817338173481735817368173781738817398174081741817428174381744817458174681747817488174981750817518175281753817548175581756817578175881759817608176181762817638176481765817668176781768817698177081771817728177381774817758177681777817788177981780817818178281783817848178581786817878178881789817908179181792817938179481795817968179781798817998180081801818028180381804818058180681807818088180981810818118181281813818148181581816818178181881819818208182181822818238182481825818268182781828818298183081831818328183381834818358183681837818388183981840818418184281843818448184581846818478184881849818508185181852818538185481855818568185781858818598186081861818628186381864818658186681867818688186981870818718187281873818748187581876818778187881879818808188181882818838188481885818868188781888818898189081891818928189381894818958189681897818988189981900819018190281903819048190581906819078190881909819108191181912819138191481915819168191781918819198192081921819228192381924819258192681927819288192981930819318193281933819348193581936819378193881939819408194181942819438194481945819468194781948819498195081951819528195381954819558195681957819588195981960819618196281963819648196581966819678196881969819708197181972819738197481975819768197781978819798198081981819828198381984819858198681987819888198981990819918199281993819948199581996819978199881999820008200182002820038200482005820068200782008820098201082011820128201382014820158201682017820188201982020820218202282023820248202582026820278202882029820308203182032820338203482035820368203782038820398204082041820428204382044820458204682047820488204982050820518205282053820548205582056820578205882059820608206182062820638206482065820668206782068820698207082071820728207382074820758207682077820788207982080820818208282083820848208582086820878208882089820908209182092820938209482095820968209782098820998210082101821028210382104821058210682107821088210982110821118211282113821148211582116821178211882119821208212182122821238212482125821268212782128821298213082131821328213382134821358213682137821388213982140821418214282143821448214582146821478214882149821508215182152821538215482155821568215782158821598216082161821628216382164821658216682167821688216982170821718217282173821748217582176821778217882179821808218182182821838218482185821868218782188821898219082191821928219382194821958219682197821988219982200822018220282203822048220582206822078220882209822108221182212822138221482215822168221782218822198222082221822228222382224822258222682227822288222982230822318223282233822348223582236822378223882239822408224182242822438224482245822468224782248822498225082251822528225382254822558225682257822588225982260822618226282263822648226582266822678226882269822708227182272822738227482275822768227782278822798228082281822828228382284822858228682287822888228982290822918229282293822948229582296822978229882299823008230182302823038230482305823068230782308823098231082311823128231382314823158231682317823188231982320823218232282323823248232582326823278232882329823308233182332823338233482335823368233782338823398234082341823428234382344823458234682347823488234982350823518235282353823548235582356823578235882359823608236182362823638236482365823668236782368823698237082371823728237382374823758237682377823788237982380823818238282383823848238582386823878238882389823908239182392823938239482395823968239782398823998240082401824028240382404824058240682407824088240982410824118241282413824148241582416824178241882419824208242182422824238242482425824268242782428824298243082431824328243382434824358243682437824388243982440824418244282443824448244582446824478244882449824508245182452824538245482455824568245782458824598246082461824628246382464824658246682467824688246982470824718247282473824748247582476824778247882479824808248182482824838248482485824868248782488824898249082491824928249382494824958249682497824988249982500825018250282503825048250582506825078250882509825108251182512825138251482515825168251782518825198252082521825228252382524825258252682527825288252982530825318253282533825348253582536825378253882539825408254182542825438254482545825468254782548825498255082551825528255382554825558255682557825588255982560825618256282563825648256582566825678256882569825708257182572825738257482575825768257782578825798258082581825828258382584825858258682587825888258982590825918259282593825948259582596825978259882599826008260182602826038260482605826068260782608826098261082611826128261382614826158261682617826188261982620826218262282623826248262582626826278262882629826308263182632826338263482635826368263782638826398264082641826428264382644826458264682647826488264982650826518265282653826548265582656826578265882659826608266182662826638266482665826668266782668826698267082671826728267382674826758267682677826788267982680826818268282683826848268582686826878268882689826908269182692826938269482695826968269782698826998270082701827028270382704827058270682707827088270982710827118271282713827148271582716827178271882719827208272182722827238272482725827268272782728827298273082731827328273382734827358273682737827388273982740827418274282743827448274582746827478274882749827508275182752827538275482755827568275782758827598276082761827628276382764827658276682767827688276982770827718277282773827748277582776827778277882779827808278182782827838278482785827868278782788827898279082791827928279382794827958279682797827988279982800828018280282803828048280582806828078280882809828108281182812828138281482815828168281782818828198282082821828228282382824828258282682827828288282982830828318283282833828348283582836828378283882839828408284182842828438284482845828468284782848828498285082851828528285382854828558285682857828588285982860828618286282863828648286582866828678286882869828708287182872828738287482875828768287782878828798288082881828828288382884828858288682887828888288982890828918289282893828948289582896828978289882899829008290182902829038290482905829068290782908829098291082911829128291382914829158291682917829188291982920829218292282923829248292582926829278292882929829308293182932829338293482935829368293782938829398294082941829428294382944829458294682947829488294982950829518295282953829548295582956829578295882959829608296182962829638296482965829668296782968829698297082971829728297382974829758297682977829788297982980829818298282983829848298582986829878298882989829908299182992829938299482995829968299782998829998300083001830028300383004830058300683007830088300983010830118301283013830148301583016830178301883019830208302183022830238302483025830268302783028830298303083031830328303383034830358303683037830388303983040830418304283043830448304583046830478304883049830508305183052830538305483055830568305783058830598306083061830628306383064830658306683067830688306983070830718307283073830748307583076830778307883079830808308183082830838308483085830868308783088830898309083091830928309383094830958309683097830988309983100831018310283103831048310583106831078310883109831108311183112831138311483115831168311783118831198312083121831228312383124831258312683127831288312983130831318313283133831348313583136831378313883139831408314183142831438314483145831468314783148831498315083151831528315383154831558315683157831588315983160831618316283163831648316583166831678316883169831708317183172831738317483175831768317783178831798318083181831828318383184831858318683187831888318983190831918319283193831948319583196831978319883199832008320183202832038320483205832068320783208832098321083211832128321383214832158321683217832188321983220832218322283223832248322583226832278322883229832308323183232832338323483235832368323783238832398324083241832428324383244832458324683247832488324983250832518325283253832548325583256832578325883259832608326183262832638326483265832668326783268832698327083271832728327383274832758327683277832788327983280832818328283283832848328583286832878328883289832908329183292832938329483295832968329783298832998330083301833028330383304833058330683307833088330983310833118331283313833148331583316833178331883319833208332183322833238332483325833268332783328833298333083331833328333383334833358333683337833388333983340833418334283343833448334583346833478334883349833508335183352833538335483355833568335783358833598336083361833628336383364833658336683367833688336983370833718337283373833748337583376833778337883379833808338183382833838338483385833868338783388833898339083391833928339383394833958339683397833988339983400834018340283403834048340583406834078340883409834108341183412834138341483415834168341783418834198342083421834228342383424834258342683427834288342983430834318343283433834348343583436834378343883439834408344183442834438344483445834468344783448834498345083451834528345383454834558345683457834588345983460834618346283463834648346583466834678346883469834708347183472834738347483475834768347783478834798348083481834828348383484834858348683487834888348983490834918349283493834948349583496834978349883499835008350183502835038350483505835068350783508835098351083511835128351383514835158351683517835188351983520835218352283523835248352583526835278352883529835308353183532835338353483535835368353783538835398354083541835428354383544835458354683547835488354983550835518355283553835548355583556835578355883559835608356183562835638356483565835668356783568835698357083571835728357383574835758357683577835788357983580835818358283583835848358583586835878358883589835908359183592835938359483595835968359783598835998360083601836028360383604836058360683607836088360983610836118361283613836148361583616836178361883619836208362183622836238362483625836268362783628836298363083631836328363383634836358363683637836388363983640836418364283643836448364583646836478364883649836508365183652836538365483655836568365783658836598366083661836628366383664836658366683667836688366983670836718367283673836748367583676836778367883679836808368183682836838368483685836868368783688836898369083691836928369383694836958369683697836988369983700837018370283703837048370583706837078370883709837108371183712837138371483715837168371783718837198372083721837228372383724837258372683727837288372983730837318373283733837348373583736837378373883739837408374183742837438374483745837468374783748837498375083751837528375383754837558375683757837588375983760837618376283763837648376583766837678376883769837708377183772837738377483775837768377783778837798378083781837828378383784837858378683787837888378983790837918379283793837948379583796837978379883799838008380183802838038380483805838068380783808838098381083811838128381383814838158381683817838188381983820838218382283823838248382583826838278382883829838308383183832838338383483835838368383783838838398384083841838428384383844838458384683847838488384983850838518385283853838548385583856838578385883859838608386183862838638386483865838668386783868838698387083871838728387383874838758387683877838788387983880838818388283883838848388583886838878388883889838908389183892838938389483895838968389783898838998390083901839028390383904839058390683907839088390983910839118391283913839148391583916839178391883919839208392183922839238392483925839268392783928839298393083931839328393383934839358393683937839388393983940839418394283943839448394583946839478394883949839508395183952839538395483955839568395783958839598396083961839628396383964839658396683967839688396983970839718397283973839748397583976839778397883979839808398183982839838398483985839868398783988839898399083991839928399383994839958399683997839988399984000840018400284003840048400584006840078400884009840108401184012840138401484015840168401784018840198402084021840228402384024840258402684027840288402984030840318403284033840348403584036840378403884039840408404184042840438404484045840468404784048840498405084051840528405384054840558405684057840588405984060840618406284063840648406584066840678406884069840708407184072840738407484075840768407784078840798408084081840828408384084840858408684087840888408984090840918409284093840948409584096840978409884099841008410184102841038410484105841068410784108841098411084111841128411384114841158411684117841188411984120841218412284123841248412584126841278412884129841308413184132841338413484135841368413784138841398414084141841428414384144841458414684147841488414984150841518415284153841548415584156841578415884159841608416184162841638416484165841668416784168841698417084171841728417384174841758417684177841788417984180841818418284183841848418584186841878418884189841908419184192841938419484195841968419784198841998420084201842028420384204842058420684207842088420984210842118421284213842148421584216842178421884219842208422184222842238422484225842268422784228842298423084231842328423384234842358423684237842388423984240842418424284243842448424584246842478424884249842508425184252842538425484255842568425784258842598426084261842628426384264842658426684267842688426984270842718427284273842748427584276842778427884279842808428184282842838428484285842868428784288842898429084291842928429384294842958429684297842988429984300843018430284303843048430584306843078430884309843108431184312843138431484315843168431784318843198432084321843228432384324843258432684327843288432984330843318433284333843348433584336843378433884339843408434184342843438434484345843468434784348843498435084351843528435384354843558435684357843588435984360843618436284363843648436584366843678436884369843708437184372843738437484375843768437784378843798438084381843828438384384843858438684387843888438984390843918439284393843948439584396843978439884399844008440184402844038440484405844068440784408844098441084411844128441384414844158441684417844188441984420844218442284423844248442584426844278442884429844308443184432844338443484435844368443784438844398444084441844428444384444844458444684447844488444984450844518445284453844548445584456844578445884459844608446184462844638446484465844668446784468844698447084471844728447384474844758447684477844788447984480844818448284483844848448584486844878448884489844908449184492844938449484495844968449784498844998450084501845028450384504845058450684507845088450984510845118451284513845148451584516845178451884519845208452184522845238452484525845268452784528845298453084531845328453384534845358453684537845388453984540845418454284543845448454584546845478454884549845508455184552845538455484555845568455784558845598456084561845628456384564845658456684567845688456984570845718457284573845748457584576845778457884579845808458184582845838458484585845868458784588845898459084591845928459384594845958459684597845988459984600846018460284603846048460584606846078460884609846108461184612846138461484615846168461784618846198462084621846228462384624846258462684627846288462984630846318463284633846348463584636846378463884639846408464184642846438464484645846468464784648846498465084651846528465384654846558465684657846588465984660846618466284663846648466584666846678466884669846708467184672846738467484675846768467784678846798468084681846828468384684846858468684687846888468984690846918469284693846948469584696846978469884699847008470184702847038470484705847068470784708847098471084711847128471384714847158471684717847188471984720847218472284723847248472584726847278472884729847308473184732847338473484735847368473784738847398474084741847428474384744847458474684747847488474984750847518475284753847548475584756847578475884759847608476184762847638476484765847668476784768847698477084771847728477384774847758477684777847788477984780847818478284783847848478584786847878478884789847908479184792847938479484795847968479784798847998480084801848028480384804848058480684807848088480984810848118481284813848148481584816848178481884819848208482184822848238482484825848268482784828848298483084831848328483384834848358483684837848388483984840848418484284843848448484584846848478484884849848508485184852848538485484855848568485784858848598486084861848628486384864848658486684867848688486984870848718487284873848748487584876848778487884879848808488184882848838488484885848868488784888848898489084891848928489384894848958489684897848988489984900849018490284903849048490584906849078490884909849108491184912849138491484915849168491784918849198492084921849228492384924849258492684927849288492984930849318493284933849348493584936849378493884939849408494184942849438494484945849468494784948849498495084951849528495384954849558495684957849588495984960849618496284963849648496584966849678496884969849708497184972849738497484975849768497784978849798498084981849828498384984849858498684987849888498984990849918499284993849948499584996849978499884999850008500185002850038500485005850068500785008850098501085011850128501385014850158501685017850188501985020850218502285023850248502585026850278502885029850308503185032850338503485035850368503785038850398504085041850428504385044850458504685047850488504985050850518505285053850548505585056850578505885059850608506185062850638506485065850668506785068850698507085071850728507385074850758507685077850788507985080850818508285083850848508585086850878508885089850908509185092850938509485095850968509785098850998510085101851028510385104851058510685107851088510985110851118511285113851148511585116851178511885119851208512185122851238512485125851268512785128851298513085131851328513385134851358513685137851388513985140851418514285143851448514585146851478514885149851508515185152851538515485155851568515785158851598516085161851628516385164851658516685167851688516985170851718517285173851748517585176851778517885179851808518185182851838518485185851868518785188851898519085191851928519385194851958519685197851988519985200852018520285203852048520585206852078520885209852108521185212852138521485215852168521785218852198522085221852228522385224852258522685227852288522985230852318523285233852348523585236852378523885239852408524185242852438524485245852468524785248852498525085251852528525385254852558525685257852588525985260852618526285263852648526585266852678526885269852708527185272852738527485275852768527785278852798528085281852828528385284852858528685287852888528985290852918529285293852948529585296852978529885299853008530185302853038530485305853068530785308853098531085311853128531385314853158531685317853188531985320853218532285323853248532585326853278532885329853308533185332853338533485335853368533785338853398534085341853428534385344853458534685347853488534985350853518535285353853548535585356853578535885359853608536185362853638536485365853668536785368853698537085371853728537385374853758537685377853788537985380853818538285383853848538585386853878538885389853908539185392853938539485395853968539785398853998540085401854028540385404854058540685407854088540985410854118541285413854148541585416854178541885419854208542185422854238542485425854268542785428854298543085431854328543385434854358543685437854388543985440854418544285443854448544585446854478544885449854508545185452854538545485455854568545785458854598546085461854628546385464854658546685467854688546985470854718547285473854748547585476854778547885479854808548185482854838548485485854868548785488854898549085491854928549385494854958549685497854988549985500855018550285503855048550585506855078550885509855108551185512855138551485515855168551785518855198552085521855228552385524855258552685527855288552985530855318553285533855348553585536855378553885539855408554185542855438554485545855468554785548855498555085551855528555385554855558555685557855588555985560855618556285563855648556585566855678556885569855708557185572855738557485575855768557785578855798558085581855828558385584855858558685587855888558985590855918559285593855948559585596855978559885599856008560185602856038560485605856068560785608856098561085611856128561385614856158561685617856188561985620856218562285623856248562585626856278562885629856308563185632856338563485635856368563785638856398564085641856428564385644856458564685647856488564985650856518565285653856548565585656856578565885659856608566185662856638566485665856668566785668856698567085671856728567385674856758567685677856788567985680856818568285683856848568585686856878568885689856908569185692856938569485695856968569785698856998570085701857028570385704857058570685707857088570985710857118571285713857148571585716857178571885719857208572185722857238572485725857268572785728857298573085731857328573385734857358573685737857388573985740857418574285743857448574585746857478574885749857508575185752857538575485755857568575785758857598576085761857628576385764857658576685767857688576985770857718577285773857748577585776857778577885779857808578185782857838578485785857868578785788857898579085791857928579385794857958579685797857988579985800858018580285803858048580585806858078580885809858108581185812858138581485815858168581785818858198582085821858228582385824858258582685827858288582985830858318583285833858348583585836858378583885839858408584185842858438584485845858468584785848858498585085851858528585385854858558585685857858588585985860858618586285863858648586585866858678586885869858708587185872858738587485875858768587785878858798588085881858828588385884858858588685887858888588985890858918589285893858948589585896858978589885899859008590185902859038590485905859068590785908859098591085911859128591385914859158591685917859188591985920859218592285923859248592585926859278592885929859308593185932859338593485935859368593785938859398594085941859428594385944859458594685947859488594985950859518595285953859548595585956859578595885959859608596185962859638596485965859668596785968859698597085971859728597385974859758597685977859788597985980859818598285983859848598585986859878598885989859908599185992859938599485995859968599785998859998600086001860028600386004860058600686007860088600986010860118601286013860148601586016860178601886019860208602186022860238602486025860268602786028860298603086031860328603386034860358603686037860388603986040860418604286043860448604586046860478604886049860508605186052860538605486055860568605786058860598606086061860628606386064860658606686067860688606986070860718607286073860748607586076860778607886079860808608186082860838608486085860868608786088860898609086091860928609386094860958609686097860988609986100861018610286103861048610586106861078610886109861108611186112861138611486115861168611786118861198612086121861228612386124861258612686127861288612986130861318613286133861348613586136861378613886139861408614186142861438614486145861468614786148861498615086151861528615386154861558615686157861588615986160861618616286163861648616586166861678616886169861708617186172861738617486175861768617786178861798618086181861828618386184861858618686187861888618986190861918619286193861948619586196861978619886199862008620186202862038620486205862068620786208862098621086211862128621386214862158621686217862188621986220862218622286223862248622586226862278622886229862308623186232862338623486235862368623786238862398624086241862428624386244862458624686247862488624986250862518625286253862548625586256862578625886259862608626186262862638626486265862668626786268862698627086271862728627386274862758627686277862788627986280862818628286283862848628586286862878628886289862908629186292862938629486295862968629786298862998630086301863028630386304863058630686307863088630986310863118631286313863148631586316863178631886319863208632186322863238632486325863268632786328863298633086331863328633386334863358633686337863388633986340863418634286343863448634586346863478634886349863508635186352863538635486355863568635786358863598636086361863628636386364863658636686367863688636986370863718637286373863748637586376863778637886379863808638186382863838638486385863868638786388863898639086391863928639386394863958639686397863988639986400864018640286403864048640586406864078640886409864108641186412864138641486415864168641786418864198642086421864228642386424864258642686427864288642986430864318643286433864348643586436864378643886439864408644186442864438644486445864468644786448864498645086451864528645386454864558645686457864588645986460864618646286463864648646586466864678646886469864708647186472864738647486475864768647786478864798648086481864828648386484864858648686487864888648986490864918649286493864948649586496864978649886499865008650186502865038650486505865068650786508865098651086511865128651386514865158651686517865188651986520865218652286523865248652586526865278652886529865308653186532865338653486535865368653786538865398654086541865428654386544865458654686547865488654986550865518655286553865548655586556865578655886559865608656186562865638656486565865668656786568865698657086571865728657386574865758657686577865788657986580865818658286583865848658586586865878658886589865908659186592865938659486595865968659786598865998660086601866028660386604866058660686607866088660986610866118661286613866148661586616866178661886619866208662186622866238662486625866268662786628866298663086631866328663386634866358663686637866388663986640866418664286643866448664586646866478664886649866508665186652866538665486655866568665786658866598666086661866628666386664866658666686667866688666986670866718667286673866748667586676866778667886679866808668186682866838668486685866868668786688866898669086691866928669386694866958669686697866988669986700867018670286703867048670586706867078670886709867108671186712867138671486715867168671786718867198672086721867228672386724867258672686727867288672986730867318673286733867348673586736867378673886739867408674186742867438674486745867468674786748867498675086751867528675386754867558675686757867588675986760867618676286763867648676586766867678676886769867708677186772867738677486775867768677786778867798678086781867828678386784867858678686787867888678986790867918679286793867948679586796867978679886799868008680186802868038680486805868068680786808868098681086811868128681386814868158681686817868188681986820868218682286823868248682586826868278682886829868308683186832868338683486835868368683786838868398684086841868428684386844868458684686847868488684986850868518685286853868548685586856868578685886859868608686186862868638686486865868668686786868868698687086871868728687386874868758687686877868788687986880868818688286883868848688586886868878688886889868908689186892868938689486895868968689786898868998690086901869028690386904869058690686907869088690986910869118691286913869148691586916869178691886919869208692186922869238692486925869268692786928869298693086931869328693386934869358693686937869388693986940869418694286943869448694586946869478694886949869508695186952869538695486955869568695786958869598696086961869628696386964869658696686967869688696986970869718697286973869748697586976869778697886979869808698186982869838698486985869868698786988869898699086991869928699386994869958699686997869988699987000870018700287003870048700587006870078700887009870108701187012870138701487015870168701787018870198702087021870228702387024870258702687027870288702987030870318703287033870348703587036870378703887039870408704187042870438704487045870468704787048870498705087051870528705387054870558705687057870588705987060870618706287063870648706587066870678706887069870708707187072870738707487075870768707787078870798708087081870828708387084870858708687087870888708987090870918709287093870948709587096870978709887099871008710187102871038710487105871068710787108871098711087111871128711387114871158711687117871188711987120871218712287123871248712587126871278712887129871308713187132871338713487135871368713787138871398714087141871428714387144871458714687147871488714987150871518715287153871548715587156871578715887159871608716187162871638716487165871668716787168871698717087171871728717387174871758717687177871788717987180871818718287183871848718587186871878718887189871908719187192871938719487195871968719787198871998720087201872028720387204872058720687207872088720987210872118721287213872148721587216872178721887219872208722187222872238722487225872268722787228872298723087231872328723387234872358723687237872388723987240872418724287243872448724587246872478724887249872508725187252872538725487255872568725787258872598726087261872628726387264872658726687267872688726987270872718727287273872748727587276872778727887279872808728187282872838728487285872868728787288872898729087291872928729387294872958729687297872988729987300873018730287303873048730587306873078730887309873108731187312873138731487315873168731787318873198732087321873228732387324873258732687327873288732987330873318733287333873348733587336873378733887339873408734187342873438734487345873468734787348873498735087351873528735387354873558735687357873588735987360873618736287363873648736587366873678736887369873708737187372873738737487375873768737787378873798738087381873828738387384873858738687387873888738987390873918739287393873948739587396873978739887399874008740187402874038740487405874068740787408874098741087411874128741387414874158741687417874188741987420874218742287423874248742587426874278742887429874308743187432874338743487435874368743787438874398744087441874428744387444874458744687447874488744987450874518745287453874548745587456874578745887459874608746187462874638746487465874668746787468874698747087471874728747387474874758747687477874788747987480874818748287483874848748587486874878748887489874908749187492874938749487495874968749787498874998750087501875028750387504875058750687507875088750987510875118751287513875148751587516875178751887519875208752187522875238752487525875268752787528875298753087531875328753387534875358753687537875388753987540875418754287543875448754587546875478754887549875508755187552875538755487555875568755787558875598756087561875628756387564875658756687567875688756987570875718757287573875748757587576875778757887579875808758187582875838758487585875868758787588875898759087591875928759387594875958759687597875988759987600876018760287603876048760587606876078760887609876108761187612876138761487615876168761787618876198762087621876228762387624876258762687627876288762987630876318763287633876348763587636876378763887639876408764187642876438764487645876468764787648876498765087651876528765387654876558765687657876588765987660876618766287663876648766587666876678766887669876708767187672876738767487675876768767787678876798768087681876828768387684876858768687687876888768987690876918769287693876948769587696876978769887699877008770187702877038770487705877068770787708877098771087711877128771387714877158771687717877188771987720877218772287723877248772587726877278772887729877308773187732877338773487735877368773787738877398774087741877428774387744877458774687747877488774987750877518775287753877548775587756877578775887759877608776187762877638776487765877668776787768877698777087771877728777387774877758777687777877788777987780877818778287783877848778587786877878778887789877908779187792877938779487795877968779787798877998780087801878028780387804878058780687807878088780987810878118781287813878148781587816878178781887819878208782187822878238782487825878268782787828878298783087831878328783387834878358783687837878388783987840878418784287843878448784587846878478784887849878508785187852878538785487855878568785787858878598786087861878628786387864878658786687867878688786987870878718787287873878748787587876878778787887879878808788187882878838788487885878868788787888878898789087891878928789387894878958789687897878988789987900879018790287903879048790587906879078790887909879108791187912879138791487915879168791787918879198792087921879228792387924879258792687927879288792987930879318793287933879348793587936879378793887939879408794187942879438794487945879468794787948879498795087951879528795387954879558795687957879588795987960879618796287963879648796587966879678796887969879708797187972879738797487975879768797787978879798798087981879828798387984879858798687987879888798987990879918799287993879948799587996879978799887999880008800188002880038800488005880068800788008880098801088011880128801388014880158801688017880188801988020880218802288023880248802588026880278802888029880308803188032880338803488035880368803788038880398804088041880428804388044880458804688047880488804988050880518805288053880548805588056880578805888059880608806188062880638806488065880668806788068880698807088071880728807388074880758807688077880788807988080880818808288083880848808588086880878808888089880908809188092880938809488095880968809788098880998810088101881028810388104881058810688107881088810988110881118811288113881148811588116881178811888119881208812188122881238812488125881268812788128881298813088131881328813388134881358813688137881388813988140881418814288143881448814588146881478814888149881508815188152881538815488155881568815788158881598816088161881628816388164881658816688167881688816988170881718817288173881748817588176881778817888179881808818188182881838818488185881868818788188881898819088191881928819388194881958819688197881988819988200882018820288203882048820588206882078820888209882108821188212882138821488215882168821788218882198822088221882228822388224882258822688227882288822988230882318823288233882348823588236882378823888239882408824188242882438824488245882468824788248882498825088251882528825388254882558825688257882588825988260882618826288263882648826588266882678826888269882708827188272882738827488275882768827788278882798828088281882828828388284882858828688287882888828988290882918829288293882948829588296882978829888299883008830188302883038830488305883068830788308883098831088311883128831388314883158831688317883188831988320883218832288323883248832588326883278832888329883308833188332883338833488335883368833788338883398834088341883428834388344883458834688347883488834988350883518835288353883548835588356883578835888359883608836188362883638836488365883668836788368883698837088371883728837388374883758837688377883788837988380883818838288383883848838588386883878838888389883908839188392883938839488395883968839788398883998840088401884028840388404884058840688407884088840988410884118841288413884148841588416884178841888419884208842188422884238842488425884268842788428884298843088431884328843388434884358843688437884388843988440884418844288443884448844588446884478844888449884508845188452884538845488455884568845788458884598846088461884628846388464884658846688467884688846988470884718847288473884748847588476884778847888479884808848188482884838848488485884868848788488884898849088491884928849388494884958849688497884988849988500885018850288503885048850588506885078850888509885108851188512885138851488515885168851788518885198852088521885228852388524885258852688527885288852988530885318853288533885348853588536885378853888539885408854188542885438854488545885468854788548885498855088551885528855388554885558855688557885588855988560885618856288563885648856588566885678856888569885708857188572885738857488575885768857788578885798858088581885828858388584885858858688587885888858988590885918859288593885948859588596885978859888599886008860188602886038860488605886068860788608886098861088611886128861388614886158861688617886188861988620886218862288623886248862588626886278862888629886308863188632886338863488635886368863788638886398864088641886428864388644886458864688647886488864988650886518865288653886548865588656886578865888659886608866188662886638866488665886668866788668886698867088671886728867388674886758867688677886788867988680886818868288683886848868588686886878868888689886908869188692886938869488695886968869788698886998870088701887028870388704887058870688707887088870988710887118871288713887148871588716887178871888719887208872188722887238872488725887268872788728887298873088731887328873388734887358873688737887388873988740887418874288743887448874588746887478874888749887508875188752887538875488755887568875788758887598876088761887628876388764887658876688767887688876988770887718877288773887748877588776887778877888779887808878188782887838878488785887868878788788887898879088791887928879388794887958879688797887988879988800888018880288803888048880588806888078880888809888108881188812888138881488815888168881788818888198882088821888228882388824888258882688827888288882988830888318883288833888348883588836888378883888839888408884188842888438884488845888468884788848888498885088851888528885388854888558885688857888588885988860888618886288863888648886588866888678886888869888708887188872888738887488875888768887788878888798888088881888828888388884888858888688887888888888988890888918889288893888948889588896888978889888899889008890188902889038890488905889068890788908889098891088911889128891388914889158891688917889188891988920889218892288923889248892588926889278892888929889308893188932889338893488935889368893788938889398894088941889428894388944889458894688947889488894988950889518895288953889548895588956889578895888959889608896188962889638896488965889668896788968889698897088971889728897388974889758897688977889788897988980889818898288983889848898588986889878898888989889908899188992889938899488995889968899788998889998900089001890028900389004890058900689007890088900989010890118901289013890148901589016890178901889019890208902189022890238902489025890268902789028890298903089031890328903389034890358903689037890388903989040890418904289043890448904589046890478904889049890508905189052890538905489055890568905789058890598906089061890628906389064890658906689067890688906989070890718907289073890748907589076890778907889079890808908189082890838908489085890868908789088890898909089091890928909389094890958909689097890988909989100891018910289103891048910589106891078910889109891108911189112891138911489115891168911789118891198912089121891228912389124891258912689127891288912989130891318913289133891348913589136891378913889139891408914189142891438914489145891468914789148891498915089151891528915389154891558915689157891588915989160891618916289163891648916589166891678916889169891708917189172891738917489175891768917789178891798918089181891828918389184891858918689187891888918989190891918919289193891948919589196891978919889199892008920189202892038920489205892068920789208892098921089211892128921389214892158921689217892188921989220892218922289223892248922589226892278922889229892308923189232892338923489235892368923789238892398924089241892428924389244892458924689247892488924989250892518925289253892548925589256892578925889259892608926189262892638926489265892668926789268892698927089271892728927389274892758927689277892788927989280892818928289283892848928589286892878928889289892908929189292892938929489295892968929789298892998930089301893028930389304893058930689307893088930989310893118931289313893148931589316893178931889319893208932189322893238932489325893268932789328893298933089331893328933389334893358933689337893388933989340893418934289343893448934589346893478934889349893508935189352893538935489355893568935789358893598936089361893628936389364893658936689367893688936989370893718937289373893748937589376893778937889379893808938189382893838938489385893868938789388893898939089391893928939389394893958939689397893988939989400894018940289403894048940589406894078940889409894108941189412894138941489415894168941789418894198942089421894228942389424894258942689427894288942989430894318943289433894348943589436894378943889439894408944189442894438944489445894468944789448894498945089451894528945389454894558945689457894588945989460894618946289463894648946589466894678946889469894708947189472894738947489475894768947789478894798948089481894828948389484894858948689487894888948989490894918949289493894948949589496894978949889499895008950189502895038950489505895068950789508895098951089511895128951389514895158951689517895188951989520895218952289523895248952589526895278952889529895308953189532895338953489535895368953789538895398954089541895428954389544895458954689547895488954989550895518955289553895548955589556895578955889559895608956189562895638956489565895668956789568895698957089571895728957389574895758957689577895788957989580895818958289583895848958589586895878958889589895908959189592895938959489595895968959789598895998960089601896028960389604896058960689607896088960989610896118961289613896148961589616896178961889619896208962189622896238962489625896268962789628896298963089631896328963389634896358963689637896388963989640896418964289643896448964589646896478964889649896508965189652896538965489655896568965789658896598966089661896628966389664896658966689667896688966989670896718967289673896748967589676896778967889679896808968189682896838968489685896868968789688896898969089691896928969389694896958969689697896988969989700897018970289703897048970589706897078970889709897108971189712897138971489715897168971789718897198972089721897228972389724897258972689727897288972989730897318973289733897348973589736897378973889739897408974189742897438974489745897468974789748897498975089751897528975389754897558975689757897588975989760897618976289763897648976589766897678976889769897708977189772897738977489775897768977789778897798978089781897828978389784897858978689787897888978989790897918979289793897948979589796897978979889799898008980189802898038980489805898068980789808898098981089811898128981389814898158981689817898188981989820898218982289823898248982589826898278982889829898308983189832898338983489835898368983789838898398984089841898428984389844898458984689847898488984989850898518985289853898548985589856898578985889859898608986189862898638986489865898668986789868898698987089871898728987389874898758987689877898788987989880898818988289883898848988589886898878988889889898908989189892898938989489895898968989789898898998990089901899028990389904899058990689907899088990989910899118991289913899148991589916899178991889919899208992189922899238992489925899268992789928899298993089931899328993389934899358993689937899388993989940899418994289943899448994589946899478994889949899508995189952899538995489955899568995789958899598996089961899628996389964899658996689967899688996989970899718997289973899748997589976899778997889979899808998189982899838998489985899868998789988899898999089991899928999389994899958999689997899988999990000900019000290003900049000590006900079000890009900109001190012900139001490015900169001790018900199002090021900229002390024900259002690027900289002990030900319003290033900349003590036900379003890039900409004190042900439004490045900469004790048900499005090051900529005390054900559005690057900589005990060900619006290063900649006590066900679006890069900709007190072900739007490075900769007790078900799008090081900829008390084900859008690087900889008990090900919009290093900949009590096900979009890099901009010190102901039010490105901069010790108901099011090111901129011390114901159011690117901189011990120901219012290123901249012590126901279012890129901309013190132901339013490135901369013790138901399014090141901429014390144901459014690147901489014990150901519015290153901549015590156901579015890159901609016190162901639016490165901669016790168901699017090171901729017390174901759017690177901789017990180901819018290183901849018590186901879018890189901909019190192901939019490195901969019790198901999020090201902029020390204902059020690207902089020990210902119021290213902149021590216902179021890219902209022190222902239022490225902269022790228902299023090231902329023390234902359023690237902389023990240902419024290243902449024590246902479024890249902509025190252902539025490255902569025790258902599026090261902629026390264902659026690267902689026990270902719027290273902749027590276902779027890279902809028190282902839028490285902869028790288902899029090291902929029390294902959029690297902989029990300903019030290303903049030590306903079030890309903109031190312903139031490315903169031790318903199032090321903229032390324903259032690327903289032990330903319033290333903349033590336903379033890339903409034190342903439034490345903469034790348903499035090351903529035390354903559035690357903589035990360903619036290363903649036590366903679036890369903709037190372903739037490375903769037790378903799038090381903829038390384903859038690387903889038990390903919039290393903949039590396903979039890399904009040190402904039040490405904069040790408904099041090411904129041390414904159041690417904189041990420904219042290423904249042590426904279042890429904309043190432904339043490435904369043790438904399044090441904429044390444904459044690447904489044990450904519045290453904549045590456904579045890459904609046190462904639046490465904669046790468904699047090471904729047390474904759047690477904789047990480904819048290483904849048590486904879048890489904909049190492904939049490495904969049790498904999050090501905029050390504905059050690507905089050990510905119051290513905149051590516905179051890519905209052190522905239052490525905269052790528905299053090531905329053390534905359053690537905389053990540905419054290543905449054590546905479054890549905509055190552905539055490555905569055790558905599056090561905629056390564905659056690567905689056990570905719057290573905749057590576905779057890579905809058190582905839058490585905869058790588905899059090591905929059390594905959059690597905989059990600906019060290603906049060590606906079060890609906109061190612906139061490615906169061790618906199062090621906229062390624906259062690627906289062990630906319063290633906349063590636906379063890639906409064190642906439064490645906469064790648906499065090651906529065390654906559065690657906589065990660906619066290663906649066590666906679066890669906709067190672906739067490675906769067790678906799068090681906829068390684906859068690687906889068990690906919069290693906949069590696906979069890699907009070190702907039070490705907069070790708907099071090711907129071390714907159071690717907189071990720907219072290723907249072590726907279072890729907309073190732907339073490735907369073790738907399074090741907429074390744907459074690747907489074990750907519075290753907549075590756907579075890759907609076190762907639076490765907669076790768907699077090771907729077390774907759077690777907789077990780907819078290783907849078590786907879078890789907909079190792907939079490795907969079790798907999080090801908029080390804908059080690807908089080990810908119081290813908149081590816908179081890819908209082190822908239082490825908269082790828908299083090831908329083390834908359083690837908389083990840908419084290843908449084590846908479084890849908509085190852908539085490855908569085790858908599086090861908629086390864908659086690867908689086990870908719087290873908749087590876908779087890879908809088190882908839088490885908869088790888908899089090891908929089390894908959089690897908989089990900909019090290903909049090590906909079090890909909109091190912909139091490915909169091790918909199092090921909229092390924909259092690927909289092990930909319093290933909349093590936909379093890939909409094190942909439094490945909469094790948909499095090951909529095390954909559095690957909589095990960909619096290963909649096590966909679096890969909709097190972909739097490975909769097790978909799098090981909829098390984909859098690987909889098990990909919099290993909949099590996909979099890999910009100191002910039100491005910069100791008910099101091011910129101391014910159101691017910189101991020910219102291023910249102591026910279102891029910309103191032910339103491035910369103791038910399104091041910429104391044910459104691047910489104991050910519105291053910549105591056910579105891059910609106191062910639106491065910669106791068910699107091071910729107391074910759107691077910789107991080910819108291083910849108591086910879108891089910909109191092910939109491095910969109791098910999110091101911029110391104911059110691107911089110991110911119111291113911149111591116911179111891119911209112191122911239112491125911269112791128911299113091131911329113391134911359113691137911389113991140911419114291143911449114591146911479114891149911509115191152911539115491155911569115791158911599116091161911629116391164911659116691167911689116991170911719117291173911749117591176911779117891179911809118191182911839118491185911869118791188911899119091191911929119391194911959119691197911989119991200912019120291203912049120591206912079120891209912109121191212912139121491215912169121791218912199122091221912229122391224912259122691227912289122991230912319123291233912349123591236912379123891239912409124191242912439124491245912469124791248912499125091251912529125391254912559125691257912589125991260912619126291263912649126591266912679126891269912709127191272912739127491275912769127791278912799128091281912829128391284912859128691287912889128991290912919129291293912949129591296912979129891299913009130191302913039130491305913069130791308913099131091311913129131391314913159131691317913189131991320913219132291323913249132591326913279132891329913309133191332913339133491335913369133791338913399134091341913429134391344913459134691347913489134991350913519135291353913549135591356913579135891359913609136191362913639136491365913669136791368913699137091371913729137391374913759137691377913789137991380913819138291383913849138591386913879138891389913909139191392913939139491395913969139791398913999140091401914029140391404914059140691407914089140991410914119141291413914149141591416914179141891419914209142191422914239142491425914269142791428914299143091431914329143391434914359143691437914389143991440914419144291443914449144591446914479144891449914509145191452914539145491455914569145791458914599146091461914629146391464914659146691467914689146991470914719147291473914749147591476914779147891479914809148191482914839148491485914869148791488914899149091491914929149391494914959149691497914989149991500915019150291503915049150591506915079150891509915109151191512915139151491515915169151791518915199152091521915229152391524915259152691527915289152991530915319153291533915349153591536915379153891539915409154191542915439154491545915469154791548915499155091551915529155391554915559155691557915589155991560915619156291563915649156591566915679156891569915709157191572915739157491575915769157791578915799158091581915829158391584915859158691587915889158991590915919159291593915949159591596915979159891599916009160191602916039160491605916069160791608916099161091611916129161391614916159161691617916189161991620916219162291623916249162591626916279162891629916309163191632916339163491635916369163791638916399164091641916429164391644916459164691647916489164991650916519165291653916549165591656916579165891659916609166191662916639166491665916669166791668916699167091671916729167391674916759167691677916789167991680916819168291683916849168591686916879168891689916909169191692916939169491695916969169791698916999170091701917029170391704917059170691707917089170991710917119171291713917149171591716917179171891719917209172191722917239172491725917269172791728917299173091731917329173391734917359173691737917389173991740917419174291743917449174591746917479174891749917509175191752917539175491755917569175791758917599176091761917629176391764917659176691767917689176991770917719177291773917749177591776917779177891779917809178191782917839178491785917869178791788917899179091791917929179391794917959179691797917989179991800918019180291803918049180591806918079180891809918109181191812918139181491815918169181791818918199182091821918229182391824918259182691827918289182991830918319183291833918349183591836918379183891839918409184191842918439184491845918469184791848918499185091851918529185391854918559185691857918589185991860918619186291863918649186591866918679186891869918709187191872918739187491875918769187791878918799188091881918829188391884918859188691887918889188991890918919189291893918949189591896918979189891899919009190191902919039190491905919069190791908919099191091911919129191391914919159191691917919189191991920919219192291923919249192591926919279192891929919309193191932919339193491935919369193791938919399194091941919429194391944919459194691947919489194991950919519195291953919549195591956919579195891959919609196191962919639196491965919669196791968919699197091971919729197391974919759197691977919789197991980919819198291983919849198591986919879198891989919909199191992919939199491995919969199791998919999200092001920029200392004920059200692007920089200992010920119201292013920149201592016920179201892019920209202192022920239202492025920269202792028920299203092031920329203392034920359203692037920389203992040920419204292043920449204592046920479204892049920509205192052920539205492055920569205792058920599206092061920629206392064920659206692067920689206992070920719207292073920749207592076920779207892079920809208192082920839208492085920869208792088920899209092091920929209392094920959209692097920989209992100921019210292103921049210592106921079210892109921109211192112921139211492115921169211792118921199212092121921229212392124921259212692127921289212992130921319213292133921349213592136921379213892139921409214192142921439214492145921469214792148921499215092151921529215392154921559215692157921589215992160921619216292163921649216592166921679216892169921709217192172921739217492175921769217792178921799218092181921829218392184921859218692187921889218992190921919219292193921949219592196921979219892199922009220192202922039220492205922069220792208922099221092211922129221392214922159221692217922189221992220922219222292223922249222592226922279222892229922309223192232922339223492235922369223792238922399224092241922429224392244922459224692247922489224992250922519225292253922549225592256922579225892259922609226192262922639226492265922669226792268922699227092271922729227392274922759227692277922789227992280922819228292283922849228592286922879228892289922909229192292922939229492295922969229792298922999230092301923029230392304923059230692307923089230992310923119231292313923149231592316923179231892319923209232192322923239232492325923269232792328923299233092331923329233392334923359233692337923389233992340923419234292343923449234592346923479234892349923509235192352923539235492355923569235792358923599236092361923629236392364923659236692367923689236992370923719237292373923749237592376923779237892379923809238192382923839238492385923869238792388923899239092391923929239392394923959239692397923989239992400924019240292403924049240592406924079240892409924109241192412924139241492415924169241792418924199242092421924229242392424924259242692427924289242992430924319243292433924349243592436924379243892439924409244192442924439244492445924469244792448924499245092451924529245392454924559245692457924589245992460924619246292463924649246592466924679246892469924709247192472924739247492475924769247792478924799248092481924829248392484924859248692487924889248992490924919249292493924949249592496924979249892499925009250192502925039250492505925069250792508925099251092511925129251392514925159251692517925189251992520925219252292523925249252592526925279252892529925309253192532925339253492535925369253792538925399254092541925429254392544925459254692547925489254992550925519255292553925549255592556925579255892559925609256192562925639256492565925669256792568925699257092571925729257392574925759257692577925789257992580925819258292583925849258592586925879258892589925909259192592925939259492595925969259792598925999260092601926029260392604926059260692607926089260992610926119261292613926149261592616926179261892619926209262192622926239262492625926269262792628926299263092631926329263392634926359263692637926389263992640926419264292643926449264592646926479264892649926509265192652926539265492655926569265792658926599266092661926629266392664926659266692667926689266992670926719267292673926749267592676926779267892679926809268192682926839268492685926869268792688926899269092691926929269392694926959269692697926989269992700927019270292703927049270592706927079270892709927109271192712927139271492715927169271792718927199272092721927229272392724927259272692727927289272992730927319273292733927349273592736927379273892739927409274192742927439274492745927469274792748927499275092751927529275392754927559275692757927589275992760927619276292763927649276592766927679276892769927709277192772927739277492775927769277792778927799278092781927829278392784927859278692787927889278992790927919279292793927949279592796927979279892799928009280192802928039280492805928069280792808928099281092811928129281392814928159281692817928189281992820928219282292823928249282592826928279282892829928309283192832928339283492835928369283792838928399284092841928429284392844928459284692847928489284992850928519285292853928549285592856928579285892859928609286192862928639286492865928669286792868928699287092871928729287392874928759287692877928789287992880928819288292883928849288592886928879288892889928909289192892928939289492895928969289792898928999290092901929029290392904929059290692907929089290992910929119291292913929149291592916929179291892919929209292192922929239292492925929269292792928929299293092931929329293392934929359293692937929389293992940929419294292943929449294592946929479294892949929509295192952929539295492955929569295792958929599296092961929629296392964929659296692967929689296992970929719297292973929749297592976929779297892979929809298192982929839298492985929869298792988929899299092991929929299392994929959299692997929989299993000930019300293003930049300593006930079300893009930109301193012930139301493015930169301793018930199302093021930229302393024930259302693027930289302993030930319303293033930349303593036930379303893039930409304193042930439304493045930469304793048930499305093051930529305393054930559305693057930589305993060930619306293063930649306593066930679306893069930709307193072930739307493075930769307793078930799308093081930829308393084930859308693087930889308993090930919309293093930949309593096930979309893099931009310193102931039310493105931069310793108931099311093111931129311393114931159311693117931189311993120931219312293123931249312593126931279312893129931309313193132931339313493135931369313793138931399314093141931429314393144931459314693147931489314993150931519315293153931549315593156931579315893159931609316193162931639316493165931669316793168931699317093171931729317393174931759317693177931789317993180931819318293183931849318593186931879318893189931909319193192931939319493195931969319793198931999320093201932029320393204932059320693207932089320993210932119321293213932149321593216932179321893219932209322193222932239322493225932269322793228932299323093231932329323393234932359323693237932389323993240932419324293243932449324593246932479324893249932509325193252932539325493255932569325793258932599326093261932629326393264932659326693267932689326993270932719327293273932749327593276932779327893279932809328193282932839328493285932869328793288932899329093291932929329393294932959329693297932989329993300933019330293303933049330593306933079330893309933109331193312933139331493315933169331793318933199332093321933229332393324933259332693327933289332993330933319333293333933349333593336933379333893339933409334193342933439334493345933469334793348933499335093351933529335393354933559335693357933589335993360933619336293363933649336593366933679336893369933709337193372933739337493375933769337793378933799338093381933829338393384933859338693387933889338993390933919339293393933949339593396933979339893399934009340193402934039340493405934069340793408934099341093411934129341393414934159341693417934189341993420934219342293423934249342593426934279342893429934309343193432934339343493435934369343793438934399344093441934429344393444934459344693447934489344993450934519345293453934549345593456934579345893459934609346193462934639346493465934669346793468934699347093471934729347393474934759347693477934789347993480934819348293483934849348593486934879348893489934909349193492934939349493495934969349793498934999350093501935029350393504935059350693507935089350993510935119351293513935149351593516935179351893519935209352193522935239352493525935269352793528935299353093531935329353393534935359353693537935389353993540935419354293543935449354593546935479354893549935509355193552935539355493555935569355793558935599356093561935629356393564935659356693567935689356993570935719357293573935749357593576935779357893579935809358193582935839358493585935869358793588935899359093591935929359393594935959359693597935989359993600936019360293603936049360593606936079360893609936109361193612936139361493615936169361793618936199362093621936229362393624936259362693627936289362993630936319363293633936349363593636936379363893639936409364193642936439364493645936469364793648936499365093651936529365393654936559365693657936589365993660936619366293663936649366593666936679366893669936709367193672936739367493675936769367793678936799368093681936829368393684936859368693687936889368993690936919369293693936949369593696936979369893699937009370193702937039370493705937069370793708937099371093711937129371393714937159371693717937189371993720937219372293723937249372593726937279372893729937309373193732937339373493735937369373793738937399374093741937429374393744937459374693747937489374993750937519375293753937549375593756937579375893759937609376193762937639376493765937669376793768937699377093771937729377393774937759377693777937789377993780937819378293783937849378593786937879378893789937909379193792937939379493795937969379793798937999380093801938029380393804938059380693807938089380993810938119381293813938149381593816938179381893819938209382193822938239382493825938269382793828938299383093831938329383393834938359383693837938389383993840938419384293843938449384593846938479384893849938509385193852938539385493855938569385793858938599386093861938629386393864938659386693867938689386993870938719387293873938749387593876938779387893879938809388193882938839388493885938869388793888938899389093891938929389393894938959389693897938989389993900939019390293903939049390593906939079390893909939109391193912939139391493915939169391793918939199392093921939229392393924939259392693927939289392993930939319393293933939349393593936939379393893939939409394193942939439394493945939469394793948939499395093951939529395393954939559395693957939589395993960939619396293963939649396593966939679396893969939709397193972939739397493975939769397793978939799398093981939829398393984939859398693987939889398993990939919399293993939949399593996939979399893999940009400194002940039400494005940069400794008940099401094011940129401394014940159401694017940189401994020940219402294023940249402594026940279402894029940309403194032940339403494035940369403794038940399404094041940429404394044940459404694047940489404994050940519405294053940549405594056940579405894059940609406194062940639406494065940669406794068940699407094071940729407394074940759407694077940789407994080940819408294083940849408594086940879408894089940909409194092940939409494095940969409794098940999410094101941029410394104941059410694107941089410994110941119411294113941149411594116941179411894119941209412194122941239412494125941269412794128941299413094131941329413394134941359413694137941389413994140941419414294143941449414594146941479414894149941509415194152941539415494155941569415794158941599416094161941629416394164941659416694167941689416994170941719417294173941749417594176941779417894179941809418194182941839418494185941869418794188941899419094191941929419394194941959419694197941989419994200942019420294203942049420594206942079420894209942109421194212942139421494215942169421794218942199422094221942229422394224942259422694227942289422994230942319423294233942349423594236942379423894239942409424194242942439424494245942469424794248942499425094251942529425394254942559425694257942589425994260942619426294263942649426594266942679426894269942709427194272942739427494275942769427794278942799428094281942829428394284942859428694287942889428994290942919429294293942949429594296942979429894299943009430194302943039430494305943069430794308943099431094311943129431394314943159431694317943189431994320943219432294323943249432594326943279432894329943309433194332943339433494335943369433794338943399434094341943429434394344943459434694347943489434994350943519435294353943549435594356943579435894359943609436194362943639436494365943669436794368943699437094371943729437394374943759437694377943789437994380943819438294383943849438594386943879438894389943909439194392943939439494395943969439794398943999440094401944029440394404944059440694407944089440994410944119441294413944149441594416944179441894419944209442194422944239442494425944269442794428944299443094431944329443394434944359443694437944389443994440944419444294443944449444594446944479444894449944509445194452944539445494455944569445794458944599446094461944629446394464944659446694467944689446994470944719447294473944749447594476944779447894479944809448194482944839448494485944869448794488944899449094491944929449394494944959449694497944989449994500945019450294503945049450594506945079450894509945109451194512945139451494515945169451794518945199452094521945229452394524945259452694527945289452994530945319453294533945349453594536945379453894539945409454194542945439454494545945469454794548945499455094551945529455394554945559455694557945589455994560945619456294563945649456594566945679456894569945709457194572945739457494575945769457794578945799458094581945829458394584945859458694587945889458994590945919459294593945949459594596945979459894599946009460194602946039460494605946069460794608946099461094611946129461394614946159461694617946189461994620946219462294623946249462594626946279462894629946309463194632946339463494635946369463794638946399464094641946429464394644946459464694647946489464994650946519465294653946549465594656946579465894659946609466194662946639466494665946669466794668946699467094671946729467394674946759467694677946789467994680946819468294683946849468594686946879468894689946909469194692946939469494695946969469794698946999470094701947029470394704947059470694707947089470994710947119471294713947149471594716947179471894719947209472194722947239472494725947269472794728947299473094731947329473394734947359473694737947389473994740947419474294743947449474594746947479474894749947509475194752947539475494755947569475794758947599476094761947629476394764947659476694767947689476994770947719477294773947749477594776947779477894779947809478194782947839478494785947869478794788947899479094791947929479394794947959479694797947989479994800948019480294803948049480594806948079480894809948109481194812948139481494815948169481794818948199482094821948229482394824948259482694827948289482994830948319483294833948349483594836948379483894839948409484194842948439484494845948469484794848948499485094851948529485394854948559485694857948589485994860948619486294863948649486594866948679486894869948709487194872948739487494875948769487794878948799488094881948829488394884948859488694887948889488994890948919489294893948949489594896948979489894899949009490194902949039490494905949069490794908949099491094911949129491394914949159491694917949189491994920949219492294923949249492594926949279492894929949309493194932949339493494935949369493794938949399494094941949429494394944949459494694947949489494994950949519495294953949549495594956949579495894959949609496194962949639496494965949669496794968949699497094971949729497394974949759497694977949789497994980949819498294983949849498594986949879498894989949909499194992949939499494995949969499794998949999500095001950029500395004950059500695007950089500995010950119501295013950149501595016950179501895019950209502195022950239502495025950269502795028950299503095031950329503395034950359503695037950389503995040950419504295043950449504595046950479504895049950509505195052950539505495055950569505795058950599506095061950629506395064950659506695067950689506995070950719507295073950749507595076950779507895079950809508195082950839508495085950869508795088950899509095091950929509395094950959509695097950989509995100951019510295103951049510595106951079510895109951109511195112951139511495115951169511795118951199512095121951229512395124951259512695127951289512995130951319513295133951349513595136951379513895139951409514195142951439514495145951469514795148951499515095151951529515395154951559515695157951589515995160951619516295163951649516595166951679516895169951709517195172951739517495175951769517795178951799518095181951829518395184951859518695187951889518995190951919519295193951949519595196951979519895199952009520195202952039520495205952069520795208952099521095211952129521395214952159521695217952189521995220952219522295223952249522595226952279522895229952309523195232952339523495235952369523795238952399524095241952429524395244952459524695247952489524995250952519525295253952549525595256952579525895259952609526195262952639526495265952669526795268952699527095271952729527395274952759527695277952789527995280952819528295283952849528595286952879528895289952909529195292952939529495295952969529795298952999530095301953029530395304953059530695307953089530995310953119531295313953149531595316953179531895319953209532195322953239532495325953269532795328953299533095331953329533395334953359533695337953389533995340953419534295343953449534595346953479534895349953509535195352953539535495355953569535795358953599536095361953629536395364953659536695367953689536995370953719537295373953749537595376953779537895379953809538195382953839538495385953869538795388953899539095391953929539395394953959539695397953989539995400954019540295403954049540595406954079540895409954109541195412954139541495415954169541795418954199542095421954229542395424954259542695427954289542995430954319543295433954349543595436954379543895439954409544195442954439544495445954469544795448954499545095451954529545395454954559545695457954589545995460954619546295463954649546595466954679546895469954709547195472954739547495475954769547795478954799548095481954829548395484954859548695487954889548995490954919549295493954949549595496954979549895499955009550195502955039550495505955069550795508955099551095511955129551395514955159551695517955189551995520955219552295523955249552595526955279552895529955309553195532955339553495535955369553795538955399554095541955429554395544955459554695547955489554995550955519555295553955549555595556955579555895559955609556195562955639556495565955669556795568955699557095571955729557395574955759557695577955789557995580955819558295583955849558595586955879558895589955909559195592955939559495595955969559795598955999560095601956029560395604956059560695607956089560995610956119561295613956149561595616956179561895619956209562195622956239562495625956269562795628956299563095631956329563395634956359563695637956389563995640956419564295643956449564595646956479564895649956509565195652956539565495655956569565795658956599566095661956629566395664956659566695667956689566995670956719567295673956749567595676956779567895679956809568195682956839568495685956869568795688956899569095691956929569395694956959569695697956989569995700957019570295703957049570595706957079570895709957109571195712957139571495715957169571795718957199572095721957229572395724957259572695727957289572995730957319573295733957349573595736957379573895739957409574195742957439574495745957469574795748957499575095751957529575395754957559575695757957589575995760957619576295763957649576595766957679576895769957709577195772957739577495775957769577795778957799578095781957829578395784957859578695787957889578995790957919579295793957949579595796957979579895799958009580195802958039580495805958069580795808958099581095811958129581395814958159581695817958189581995820958219582295823958249582595826958279582895829958309583195832958339583495835958369583795838958399584095841958429584395844958459584695847958489584995850958519585295853958549585595856958579585895859958609586195862958639586495865958669586795868958699587095871958729587395874958759587695877958789587995880958819588295883958849588595886958879588895889958909589195892958939589495895958969589795898958999590095901959029590395904959059590695907959089590995910959119591295913959149591595916959179591895919959209592195922959239592495925959269592795928959299593095931959329593395934959359593695937959389593995940959419594295943959449594595946959479594895949959509595195952959539595495955959569595795958959599596095961959629596395964959659596695967959689596995970959719597295973959749597595976959779597895979959809598195982959839598495985959869598795988959899599095991959929599395994959959599695997959989599996000960019600296003960049600596006960079600896009960109601196012960139601496015960169601796018960199602096021960229602396024960259602696027960289602996030960319603296033960349603596036960379603896039960409604196042960439604496045960469604796048960499605096051960529605396054960559605696057960589605996060960619606296063960649606596066960679606896069960709607196072960739607496075960769607796078960799608096081960829608396084960859608696087960889608996090960919609296093960949609596096960979609896099961009610196102961039610496105961069610796108961099611096111961129611396114961159611696117961189611996120961219612296123961249612596126961279612896129961309613196132961339613496135961369613796138961399614096141961429614396144961459614696147961489614996150961519615296153961549615596156961579615896159961609616196162961639616496165961669616796168961699617096171961729617396174961759617696177961789617996180961819618296183961849618596186961879618896189961909619196192961939619496195961969619796198961999620096201962029620396204962059620696207962089620996210962119621296213962149621596216962179621896219962209622196222962239622496225962269622796228962299623096231962329623396234962359623696237962389623996240962419624296243962449624596246962479624896249962509625196252962539625496255962569625796258962599626096261962629626396264962659626696267962689626996270962719627296273962749627596276962779627896279962809628196282962839628496285962869628796288962899629096291962929629396294962959629696297962989629996300963019630296303963049630596306963079630896309963109631196312963139631496315963169631796318963199632096321963229632396324963259632696327963289632996330963319633296333963349633596336963379633896339963409634196342963439634496345963469634796348963499635096351963529635396354963559635696357963589635996360963619636296363963649636596366963679636896369963709637196372963739637496375963769637796378963799638096381963829638396384963859638696387963889638996390963919639296393963949639596396963979639896399964009640196402964039640496405964069640796408964099641096411964129641396414964159641696417964189641996420964219642296423964249642596426964279642896429964309643196432964339643496435964369643796438964399644096441964429644396444964459644696447964489644996450964519645296453964549645596456964579645896459964609646196462964639646496465964669646796468964699647096471964729647396474964759647696477964789647996480964819648296483964849648596486964879648896489964909649196492964939649496495964969649796498964999650096501965029650396504965059650696507965089650996510965119651296513965149651596516965179651896519965209652196522965239652496525965269652796528965299653096531965329653396534965359653696537965389653996540965419654296543965449654596546965479654896549965509655196552965539655496555965569655796558965599656096561965629656396564965659656696567965689656996570965719657296573965749657596576965779657896579965809658196582965839658496585965869658796588965899659096591965929659396594965959659696597965989659996600966019660296603966049660596606966079660896609966109661196612966139661496615966169661796618966199662096621966229662396624966259662696627966289662996630966319663296633966349663596636966379663896639966409664196642966439664496645966469664796648966499665096651966529665396654966559665696657966589665996660966619666296663966649666596666966679666896669966709667196672966739667496675966769667796678966799668096681966829668396684966859668696687966889668996690966919669296693966949669596696966979669896699967009670196702967039670496705967069670796708967099671096711967129671396714967159671696717967189671996720967219672296723967249672596726967279672896729967309673196732967339673496735967369673796738967399674096741967429674396744967459674696747967489674996750967519675296753967549675596756967579675896759967609676196762967639676496765967669676796768967699677096771967729677396774967759677696777967789677996780967819678296783967849678596786967879678896789967909679196792967939679496795967969679796798967999680096801968029680396804968059680696807968089680996810968119681296813968149681596816968179681896819968209682196822968239682496825968269682796828968299683096831968329683396834968359683696837968389683996840968419684296843968449684596846968479684896849968509685196852968539685496855968569685796858968599686096861968629686396864968659686696867968689686996870968719687296873968749687596876968779687896879968809688196882968839688496885968869688796888968899689096891968929689396894968959689696897968989689996900969019690296903969049690596906969079690896909969109691196912969139691496915969169691796918969199692096921969229692396924969259692696927969289692996930969319693296933969349693596936969379693896939969409694196942969439694496945969469694796948969499695096951969529695396954969559695696957969589695996960969619696296963969649696596966969679696896969969709697196972969739697496975969769697796978969799698096981969829698396984969859698696987969889698996990969919699296993969949699596996969979699896999970009700197002970039700497005970069700797008970099701097011970129701397014970159701697017970189701997020970219702297023970249702597026970279702897029970309703197032970339703497035970369703797038970399704097041970429704397044970459704697047970489704997050970519705297053970549705597056970579705897059970609706197062970639706497065970669706797068970699707097071970729707397074970759707697077970789707997080970819708297083970849708597086970879708897089970909709197092970939709497095970969709797098970999710097101971029710397104971059710697107971089710997110971119711297113971149711597116971179711897119971209712197122971239712497125971269712797128971299713097131971329713397134971359713697137971389713997140971419714297143971449714597146971479714897149971509715197152971539715497155971569715797158971599716097161971629716397164971659716697167971689716997170971719717297173971749717597176971779717897179971809718197182971839718497185971869718797188971899719097191971929719397194971959719697197971989719997200972019720297203972049720597206972079720897209972109721197212972139721497215972169721797218972199722097221972229722397224972259722697227972289722997230972319723297233972349723597236972379723897239972409724197242972439724497245972469724797248972499725097251972529725397254972559725697257972589725997260972619726297263972649726597266972679726897269972709727197272972739727497275972769727797278972799728097281972829728397284972859728697287972889728997290972919729297293972949729597296972979729897299973009730197302973039730497305973069730797308973099731097311973129731397314973159731697317973189731997320973219732297323973249732597326973279732897329973309733197332973339733497335973369733797338973399734097341973429734397344973459734697347973489734997350973519735297353973549735597356973579735897359973609736197362973639736497365973669736797368973699737097371973729737397374973759737697377973789737997380973819738297383973849738597386973879738897389973909739197392973939739497395973969739797398973999740097401974029740397404974059740697407974089740997410974119741297413974149741597416974179741897419974209742197422974239742497425974269742797428974299743097431974329743397434974359743697437974389743997440974419744297443974449744597446974479744897449974509745197452974539745497455974569745797458974599746097461974629746397464974659746697467974689746997470974719747297473974749747597476974779747897479974809748197482974839748497485974869748797488974899749097491974929749397494974959749697497974989749997500975019750297503975049750597506975079750897509975109751197512975139751497515975169751797518975199752097521975229752397524975259752697527975289752997530975319753297533975349753597536975379753897539975409754197542975439754497545975469754797548975499755097551975529755397554975559755697557975589755997560975619756297563975649756597566975679756897569975709757197572975739757497575975769757797578975799758097581975829758397584975859758697587975889758997590975919759297593975949759597596975979759897599976009760197602976039760497605976069760797608976099761097611976129761397614976159761697617976189761997620976219762297623976249762597626976279762897629976309763197632976339763497635976369763797638976399764097641976429764397644976459764697647976489764997650976519765297653976549765597656976579765897659976609766197662976639766497665976669766797668976699767097671976729767397674976759767697677976789767997680976819768297683976849768597686976879768897689976909769197692976939769497695976969769797698976999770097701977029770397704977059770697707977089770997710977119771297713977149771597716977179771897719977209772197722977239772497725977269772797728977299773097731977329773397734977359773697737977389773997740977419774297743977449774597746977479774897749977509775197752977539775497755977569775797758977599776097761977629776397764977659776697767977689776997770977719777297773977749777597776977779777897779977809778197782977839778497785977869778797788977899779097791977929779397794977959779697797977989779997800978019780297803978049780597806978079780897809978109781197812978139781497815978169781797818978199782097821978229782397824978259782697827978289782997830978319783297833978349783597836978379783897839978409784197842978439784497845978469784797848978499785097851978529785397854978559785697857978589785997860978619786297863978649786597866978679786897869978709787197872978739787497875978769787797878978799788097881978829788397884978859788697887978889788997890978919789297893978949789597896978979789897899979009790197902979039790497905979069790797908979099791097911979129791397914979159791697917979189791997920979219792297923979249792597926979279792897929979309793197932979339793497935979369793797938979399794097941979429794397944979459794697947979489794997950979519795297953979549795597956979579795897959979609796197962979639796497965979669796797968979699797097971979729797397974979759797697977979789797997980979819798297983979849798597986979879798897989979909799197992979939799497995979969799797998979999800098001980029800398004980059800698007980089800998010980119801298013980149801598016980179801898019980209802198022980239802498025980269802798028980299803098031980329803398034980359803698037980389803998040980419804298043980449804598046980479804898049980509805198052980539805498055980569805798058980599806098061980629806398064980659806698067980689806998070980719807298073980749807598076980779807898079980809808198082980839808498085980869808798088980899809098091980929809398094980959809698097980989809998100981019810298103981049810598106981079810898109981109811198112981139811498115981169811798118981199812098121981229812398124981259812698127981289812998130981319813298133981349813598136981379813898139981409814198142981439814498145981469814798148981499815098151981529815398154981559815698157981589815998160981619816298163981649816598166981679816898169981709817198172981739817498175981769817798178981799818098181981829818398184981859818698187981889818998190981919819298193981949819598196981979819898199982009820198202982039820498205982069820798208982099821098211982129821398214982159821698217982189821998220982219822298223982249822598226982279822898229982309823198232982339823498235982369823798238982399824098241982429824398244982459824698247982489824998250982519825298253982549825598256982579825898259982609826198262982639826498265982669826798268982699827098271982729827398274982759827698277982789827998280982819828298283982849828598286982879828898289982909829198292982939829498295982969829798298982999830098301983029830398304983059830698307983089830998310983119831298313983149831598316983179831898319983209832198322983239832498325983269832798328983299833098331983329833398334983359833698337983389833998340983419834298343983449834598346983479834898349983509835198352983539835498355983569835798358983599836098361983629836398364983659836698367983689836998370983719837298373983749837598376983779837898379983809838198382983839838498385983869838798388983899839098391983929839398394983959839698397983989839998400984019840298403984049840598406984079840898409984109841198412984139841498415984169841798418984199842098421984229842398424984259842698427984289842998430984319843298433984349843598436984379843898439984409844198442984439844498445984469844798448984499845098451984529845398454984559845698457984589845998460984619846298463984649846598466984679846898469984709847198472984739847498475984769847798478984799848098481984829848398484984859848698487984889848998490984919849298493984949849598496984979849898499985009850198502985039850498505985069850798508985099851098511985129851398514985159851698517985189851998520985219852298523985249852598526985279852898529985309853198532985339853498535985369853798538985399854098541985429854398544985459854698547985489854998550985519855298553985549855598556985579855898559985609856198562985639856498565985669856798568985699857098571985729857398574985759857698577985789857998580985819858298583985849858598586985879858898589985909859198592985939859498595985969859798598985999860098601986029860398604986059860698607986089860998610986119861298613986149861598616986179861898619986209862198622986239862498625986269862798628986299863098631986329863398634986359863698637986389863998640986419864298643986449864598646986479864898649986509865198652986539865498655986569865798658986599866098661986629866398664986659866698667986689866998670986719867298673986749867598676986779867898679986809868198682986839868498685986869868798688986899869098691986929869398694986959869698697986989869998700987019870298703987049870598706987079870898709987109871198712987139871498715987169871798718987199872098721987229872398724987259872698727987289872998730987319873298733987349873598736987379873898739987409874198742987439874498745987469874798748987499875098751987529875398754987559875698757987589875998760987619876298763987649876598766987679876898769987709877198772987739877498775987769877798778987799878098781987829878398784987859878698787987889878998790987919879298793987949879598796987979879898799988009880198802988039880498805988069880798808988099881098811988129881398814988159881698817988189881998820988219882298823988249882598826988279882898829988309883198832988339883498835988369883798838988399884098841988429884398844988459884698847988489884998850988519885298853988549885598856988579885898859988609886198862988639886498865988669886798868988699887098871988729887398874988759887698877988789887998880988819888298883988849888598886988879888898889988909889198892988939889498895988969889798898988999890098901989029890398904989059890698907989089890998910989119891298913989149891598916989179891898919989209892198922989239892498925989269892798928989299893098931989329893398934989359893698937989389893998940989419894298943989449894598946989479894898949989509895198952989539895498955989569895798958989599896098961989629896398964989659896698967989689896998970989719897298973989749897598976989779897898979989809898198982989839898498985989869898798988989899899098991989929899398994989959899698997989989899999000990019900299003990049900599006990079900899009990109901199012990139901499015990169901799018990199902099021990229902399024990259902699027990289902999030990319903299033990349903599036990379903899039990409904199042990439904499045990469904799048990499905099051990529905399054990559905699057990589905999060990619906299063990649906599066990679906899069990709907199072990739907499075990769907799078990799908099081990829908399084990859908699087990889908999090990919909299093990949909599096990979909899099991009910199102991039910499105991069910799108991099911099111991129911399114991159911699117991189911999120991219912299123991249912599126991279912899129991309913199132991339913499135991369913799138991399914099141991429914399144991459914699147991489914999150991519915299153991549915599156991579915899159991609916199162991639916499165991669916799168991699917099171991729917399174991759917699177991789917999180991819918299183991849918599186991879918899189991909919199192991939919499195991969919799198991999920099201992029920399204992059920699207992089920999210992119921299213992149921599216992179921899219992209922199222992239922499225992269922799228992299923099231992329923399234992359923699237992389923999240992419924299243992449924599246992479924899249992509925199252992539925499255992569925799258992599926099261992629926399264992659926699267992689926999270992719927299273992749927599276992779927899279992809928199282992839928499285992869928799288992899929099291992929929399294992959929699297992989929999300993019930299303993049930599306993079930899309993109931199312993139931499315993169931799318993199932099321993229932399324993259932699327993289932999330993319933299333993349933599336993379933899339993409934199342993439934499345993469934799348993499935099351993529935399354993559935699357993589935999360993619936299363993649936599366993679936899369993709937199372993739937499375993769937799378993799938099381993829938399384993859938699387993889938999390993919939299393993949939599396993979939899399994009940199402994039940499405994069940799408994099941099411994129941399414994159941699417994189941999420994219942299423994249942599426994279942899429994309943199432994339943499435994369943799438994399944099441994429944399444994459944699447994489944999450994519945299453994549945599456994579945899459994609946199462994639946499465994669946799468994699947099471994729947399474994759947699477994789947999480994819948299483994849948599486994879948899489994909949199492994939949499495994969949799498994999950099501995029950399504995059950699507995089950999510995119951299513995149951599516995179951899519995209952199522995239952499525995269952799528995299953099531995329953399534995359953699537995389953999540995419954299543995449954599546995479954899549995509955199552995539955499555995569955799558995599956099561995629956399564995659956699567995689956999570995719957299573995749957599576995779957899579995809958199582995839958499585995869958799588995899959099591995929959399594995959959699597995989959999600996019960299603996049960599606996079960899609996109961199612996139961499615996169961799618996199962099621996229962399624996259962699627996289962999630996319963299633996349963599636996379963899639996409964199642996439964499645996469964799648996499965099651996529965399654996559965699657996589965999660996619966299663996649966599666996679966899669996709967199672996739967499675996769967799678996799968099681996829968399684996859968699687996889968999690996919969299693996949969599696996979969899699997009970199702997039970499705997069970799708997099971099711997129971399714997159971699717997189971999720997219972299723997249972599726997279972899729997309973199732997339973499735997369973799738997399974099741997429974399744997459974699747997489974999750997519975299753997549975599756997579975899759997609976199762997639976499765997669976799768997699977099771997729977399774997759977699777997789977999780997819978299783997849978599786997879978899789997909979199792997939979499795997969979799798997999980099801998029980399804998059980699807998089980999810998119981299813998149981599816998179981899819998209982199822998239982499825998269982799828998299983099831998329983399834998359983699837998389983999840998419984299843998449984599846998479984899849998509985199852998539985499855998569985799858998599986099861998629986399864998659986699867998689986999870998719987299873998749987599876998779987899879998809988199882998839988499885998869988799888998899989099891998929989399894998959989699897998989989999900999019990299903999049990599906999079990899909999109991199912999139991499915999169991799918999199992099921999229992399924999259992699927999289992999930999319993299933999349993599936999379993899939999409994199942999439994499945999469994799948999499995099951999529995399954999559995699957999589995999960999619996299963999649996599966999679996899969999709997199972999739997499975999769997799978999799998099981999829998399984999859998699987999889998999990999919999299993999949999599996999979999899999100000100001100002100003100004100005100006100007100008100009100010100011100012100013100014100015100016100017100018100019100020100021100022100023100024100025100026100027100028100029100030100031100032100033100034100035100036100037100038100039100040100041100042100043100044100045100046100047100048100049100050100051100052100053100054100055100056100057100058100059100060100061100062100063100064100065100066100067100068100069100070100071100072100073100074100075100076100077100078100079100080100081100082100083100084100085100086100087100088100089100090100091100092100093100094100095100096100097100098100099100100100101100102100103100104100105100106100107100108100109100110100111100112100113100114100115100116100117100118100119100120100121100122100123100124100125100126100127100128100129100130100131100132100133100134100135100136100137100138100139100140100141100142100143100144100145100146100147100148100149100150100151100152100153100154100155100156100157100158100159100160100161100162100163100164100165100166100167100168100169100170100171100172100173100174100175100176100177100178100179100180100181100182100183100184100185100186100187100188100189100190100191100192100193100194100195100196100197100198100199100200100201100202100203100204100205100206100207100208100209100210100211100212100213100214100215100216100217100218100219100220100221100222100223100224100225100226100227100228100229100230100231100232100233100234100235100236100237100238100239100240100241100242100243100244100245100246100247100248100249100250100251100252100253100254100255100256100257100258100259100260100261100262100263100264100265100266100267100268100269100270100271100272100273100274100275100276100277100278100279100280100281100282100283100284100285100286100287100288100289100290100291100292100293100294100295100296100297100298100299100300100301100302100303100304100305100306100307100308100309100310100311100312100313100314100315100316100317100318100319100320100321100322100323100324100325100326100327100328100329100330100331100332100333100334100335100336100337100338100339100340100341100342100343100344100345100346100347100348100349100350100351100352100353100354100355100356100357100358100359100360100361100362100363100364100365100366100367100368100369100370100371100372100373100374100375100376100377100378100379100380100381100382100383100384100385100386100387100388100389100390100391100392100393100394100395100396100397100398100399100400100401100402100403100404100405100406100407100408100409100410100411100412100413100414100415100416100417100418100419100420100421100422100423100424100425100426100427100428100429100430100431100432100433100434100435100436100437100438100439100440100441100442100443100444100445100446100447100448100449100450100451100452100453100454100455100456100457100458100459100460100461100462100463100464100465100466100467100468100469100470100471100472100473100474100475100476100477100478100479100480100481100482100483100484100485100486100487100488100489100490100491100492100493100494100495100496100497100498100499100500100501100502100503100504100505100506100507100508100509100510100511100512100513100514100515100516100517100518100519100520100521100522100523100524100525100526100527100528100529100530100531100532100533100534100535100536100537100538100539100540100541100542100543100544100545100546100547100548100549100550100551100552100553100554100555100556100557100558100559100560100561100562100563100564100565100566100567100568100569100570100571100572100573100574100575100576100577100578100579100580100581100582100583100584100585100586100587100588100589100590100591100592100593100594100595100596100597100598100599100600100601100602100603100604100605100606100607100608100609100610100611100612100613100614100615100616100617100618100619100620100621100622100623100624100625100626100627100628100629100630100631100632100633100634100635100636100637100638100639100640100641100642100643100644100645100646100647100648100649100650100651100652100653100654100655100656100657100658100659100660100661100662100663100664100665100666100667100668100669100670100671100672100673100674100675100676100677100678100679100680100681100682100683100684100685100686100687100688100689100690100691100692100693100694100695100696100697100698100699100700100701100702100703100704100705100706100707100708100709100710100711100712100713100714100715100716100717100718100719100720100721100722100723100724100725100726100727100728100729100730100731100732100733100734100735100736100737100738100739100740100741100742100743100744100745100746100747100748100749100750100751100752100753100754100755100756100757100758100759100760100761100762100763100764100765100766100767100768100769100770100771100772100773100774100775100776100777100778100779100780100781100782100783100784100785100786100787100788100789100790100791100792100793100794100795100796100797100798100799100800100801100802100803100804100805100806100807100808100809100810100811100812100813100814100815100816100817100818100819100820100821100822100823100824100825100826100827100828100829100830100831100832100833100834100835100836100837100838100839100840100841100842100843100844100845100846100847100848100849100850100851100852100853100854100855100856100857100858100859100860100861100862100863100864100865100866100867100868100869100870100871100872100873100874100875100876100877100878100879100880100881100882100883100884100885100886100887100888100889100890100891100892100893100894100895100896100897100898100899100900100901100902100903100904100905100906100907100908100909100910100911100912100913100914100915100916100917100918100919100920100921100922100923100924100925100926100927100928100929100930100931100932100933100934100935100936100937100938100939100940100941100942100943100944100945100946100947100948100949100950100951100952100953100954100955100956100957100958100959100960100961100962100963100964100965100966100967100968100969100970100971100972100973100974100975100976100977100978100979100980100981100982100983100984100985100986100987100988100989100990100991100992100993100994100995100996100997100998100999101000101001101002101003101004101005101006101007101008101009101010101011101012101013101014101015101016101017101018101019101020101021101022101023101024101025101026101027101028101029101030101031101032101033101034101035101036101037101038101039101040101041101042101043101044101045101046101047101048101049101050101051101052101053101054101055101056101057101058101059101060101061101062101063101064101065101066101067101068101069101070101071101072101073101074101075101076101077101078101079101080101081101082101083101084101085101086101087101088101089101090101091101092101093101094101095101096101097101098101099101100101101101102101103101104101105101106101107101108101109101110101111101112101113101114101115101116101117101118101119101120101121101122101123101124101125101126101127101128101129101130101131101132101133101134101135101136101137101138101139101140101141101142101143101144101145101146101147101148101149101150101151101152101153101154101155101156101157101158101159101160101161101162101163101164101165101166101167101168101169101170101171101172101173101174101175101176101177101178101179101180101181101182101183101184101185101186101187101188101189101190101191101192101193101194101195101196101197101198101199101200101201101202101203101204101205101206101207101208101209101210101211101212101213101214101215101216101217101218101219101220101221101222101223101224101225101226101227101228101229101230101231101232101233101234101235101236101237101238101239101240101241101242101243101244101245101246101247101248101249101250101251101252101253101254101255101256101257101258101259101260101261101262101263101264101265101266101267101268101269101270101271101272101273101274101275101276101277101278101279101280101281101282101283101284101285101286101287101288101289101290101291101292101293101294101295101296101297101298101299101300101301101302101303101304101305101306101307101308101309101310101311101312101313101314101315101316101317101318101319101320101321101322101323101324101325101326101327101328101329101330101331101332101333101334101335101336101337101338101339101340101341101342101343101344101345101346101347101348101349101350101351101352101353101354101355101356101357101358101359101360101361101362101363101364101365101366101367101368101369101370101371101372101373101374101375101376101377101378101379101380101381101382101383101384101385101386101387101388101389101390101391101392101393101394101395101396101397101398101399101400101401101402101403101404101405101406101407101408101409101410101411101412101413101414101415101416101417101418101419101420101421101422101423101424101425101426101427101428101429101430101431101432101433101434101435101436101437101438101439101440101441101442101443101444101445101446101447101448101449101450101451101452101453101454101455101456101457101458101459101460101461101462101463101464101465101466101467101468101469101470101471101472101473101474101475101476101477101478101479101480101481101482101483101484101485101486101487101488101489101490101491101492101493101494101495101496101497101498101499101500101501101502101503101504101505101506101507101508101509101510101511101512101513101514101515101516101517101518101519101520101521101522101523101524101525101526101527101528101529101530101531101532101533101534101535101536101537101538101539101540101541101542101543101544101545101546101547101548101549101550101551101552101553101554101555101556101557101558101559101560101561101562101563101564101565101566101567101568101569101570101571101572101573101574101575101576101577101578101579101580101581101582101583101584101585101586101587101588101589101590101591101592101593101594101595101596101597101598101599101600101601101602101603101604101605101606101607101608101609101610101611101612101613101614101615101616101617101618101619101620101621101622101623101624101625101626101627101628101629101630101631101632101633101634101635101636101637101638101639101640101641101642101643101644101645101646101647101648101649101650101651101652101653101654101655101656101657101658101659101660101661101662101663101664101665101666101667101668101669101670101671101672101673101674101675101676101677101678101679101680101681101682101683101684101685101686101687101688101689101690101691101692101693101694101695101696101697101698101699101700101701101702101703101704101705101706101707101708101709101710101711101712101713101714101715101716101717101718101719101720101721101722101723101724101725101726101727101728101729101730101731101732101733101734101735101736101737101738101739101740101741101742101743101744101745101746101747101748101749101750101751101752101753101754101755101756101757101758101759101760101761101762101763101764101765101766101767101768101769101770101771101772101773101774101775101776101777101778101779101780101781101782101783101784101785101786101787101788101789101790101791101792101793101794101795101796101797101798101799101800101801101802101803101804101805101806101807101808101809101810101811101812101813101814101815101816101817101818101819101820101821101822101823101824101825101826101827101828101829101830101831101832101833101834101835101836101837101838101839101840101841101842101843101844101845101846101847101848101849101850101851101852101853101854101855101856101857101858101859101860101861101862101863101864101865101866101867101868101869101870101871101872101873101874101875101876101877101878101879101880101881101882101883101884101885101886101887101888101889101890101891101892101893101894101895101896101897101898101899101900101901101902101903101904101905101906101907101908101909101910101911101912101913101914101915101916101917101918101919101920101921101922101923101924101925101926101927101928101929101930101931101932101933101934101935101936101937101938101939101940101941101942101943101944101945101946101947101948101949101950101951101952101953101954101955101956101957101958101959101960101961101962101963101964101965101966101967101968101969101970101971101972101973101974101975101976101977101978101979101980101981101982101983101984101985101986101987101988101989101990101991101992101993101994101995101996101997101998101999102000102001102002102003102004102005102006102007102008102009102010102011102012102013102014102015102016102017102018102019102020102021102022102023102024102025102026102027102028102029102030102031102032102033102034102035102036102037102038102039102040102041102042102043102044102045102046102047102048102049102050102051102052102053102054102055102056102057102058102059102060102061102062102063102064102065102066102067102068102069102070102071102072102073102074102075102076102077102078102079102080102081102082102083102084102085102086102087102088102089102090102091102092102093102094102095102096102097102098102099102100102101102102102103102104102105102106102107102108102109102110102111102112102113102114102115102116102117102118102119102120102121102122102123102124102125102126102127102128102129102130102131102132102133102134102135102136102137102138102139102140102141102142102143102144102145102146102147102148102149102150102151102152102153102154102155102156102157102158102159102160102161102162102163102164102165102166102167102168102169102170102171102172102173102174102175102176102177102178102179102180102181102182102183102184102185102186102187102188102189102190102191102192102193102194102195102196102197102198102199102200102201102202102203102204102205102206102207102208102209102210102211102212102213102214102215102216102217102218102219102220102221102222102223102224102225102226102227102228102229102230102231102232102233102234102235102236102237102238102239102240102241102242102243102244102245102246102247102248102249102250102251102252102253102254102255102256102257102258102259102260102261102262102263102264102265102266102267102268102269102270102271102272102273102274102275102276102277102278102279102280102281102282102283102284102285102286102287102288102289102290102291102292102293102294102295102296102297102298102299102300102301102302102303102304102305102306102307102308102309102310102311102312102313102314102315102316102317102318102319102320102321102322102323102324102325102326102327102328102329102330102331102332102333102334102335102336102337102338102339102340102341102342102343102344102345102346102347102348102349102350102351102352102353102354102355102356102357102358102359102360102361102362102363102364102365102366102367102368102369102370102371102372102373102374102375102376102377102378102379102380102381102382102383102384102385102386102387102388102389102390102391102392102393102394102395102396102397102398102399102400102401102402102403102404102405102406102407102408102409102410102411102412102413102414102415102416102417102418102419102420102421102422102423102424102425102426102427102428102429102430102431102432102433102434102435102436102437102438102439102440102441102442102443102444102445102446102447102448102449102450102451102452102453102454102455102456102457102458102459102460102461102462102463102464102465102466102467102468102469102470102471102472102473102474102475102476102477102478102479102480102481102482102483102484102485102486102487102488102489102490102491102492102493102494102495102496102497102498102499102500102501102502102503102504102505102506102507102508102509102510102511102512102513102514102515102516102517102518102519102520102521102522102523102524102525102526102527102528102529102530102531102532102533102534102535102536102537102538102539102540102541102542102543102544102545102546102547102548102549102550102551102552102553102554102555102556102557102558102559102560102561102562102563102564102565102566102567102568102569102570102571102572102573102574102575102576102577102578102579102580102581102582102583102584102585102586102587102588102589102590102591102592102593102594102595102596102597102598102599102600102601102602102603102604102605102606102607102608102609102610102611102612102613102614102615102616102617102618102619102620102621102622102623102624102625102626102627102628102629102630102631102632102633102634102635102636102637102638102639102640102641102642102643102644102645102646102647102648102649102650102651102652102653102654102655102656102657102658102659102660102661102662102663102664102665102666102667102668102669102670102671102672102673102674102675102676102677102678102679102680102681102682102683102684102685102686102687102688102689102690102691102692102693102694102695102696102697102698102699102700102701102702102703102704102705102706102707102708102709102710102711102712102713102714102715102716102717102718102719102720102721102722102723102724102725102726102727102728102729102730102731102732102733102734102735102736102737102738102739102740102741102742102743102744102745102746102747102748102749102750102751102752102753102754102755102756102757102758102759102760102761102762102763102764102765102766102767102768102769102770102771102772102773102774102775102776102777102778102779102780102781102782102783102784102785102786102787102788102789102790102791102792102793102794102795102796102797102798102799102800102801102802102803102804102805102806102807102808102809102810102811102812102813102814102815102816102817102818102819102820102821102822102823102824102825102826102827102828102829102830102831102832102833102834102835102836102837102838102839102840102841102842102843102844102845102846102847102848102849102850102851102852102853102854102855102856102857102858102859102860102861102862102863102864102865102866102867102868102869102870102871102872102873102874102875102876102877102878102879102880102881102882102883102884102885102886102887102888102889102890102891102892102893102894102895102896102897102898102899102900102901102902102903102904102905102906102907102908102909102910102911102912102913102914102915102916102917102918102919102920102921102922102923102924102925102926102927102928102929102930102931102932102933102934102935102936102937102938102939102940102941102942102943102944102945102946102947102948102949102950102951102952102953102954102955102956102957102958102959102960102961102962102963102964102965102966102967102968102969102970102971102972102973102974102975102976102977102978102979102980102981102982102983102984102985102986102987102988102989102990102991102992102993102994102995102996102997102998102999103000103001103002103003103004103005103006103007103008103009103010103011103012103013103014103015103016103017103018103019103020103021103022103023103024103025103026103027103028103029103030103031103032103033103034103035103036103037103038103039103040103041103042103043103044103045103046103047103048103049103050103051103052103053103054103055103056103057103058103059103060103061103062103063103064103065103066103067103068103069103070103071103072103073103074103075103076103077103078103079103080103081103082103083103084103085103086103087103088103089103090103091103092103093103094103095103096103097103098103099103100103101103102103103103104103105103106103107103108103109103110103111103112103113103114103115103116103117103118103119103120103121103122103123103124103125103126103127103128103129103130103131103132103133103134103135103136103137103138103139103140103141103142103143103144103145103146103147103148103149103150103151103152103153103154103155103156103157103158103159103160103161103162103163103164103165103166103167103168103169103170103171103172103173103174103175103176103177103178103179103180103181103182103183103184103185103186103187103188103189103190103191103192103193103194103195103196103197103198103199103200103201103202103203103204103205103206103207103208103209103210103211103212103213103214103215103216103217103218103219103220103221103222103223103224103225103226103227103228103229103230103231103232103233103234103235103236103237103238103239103240103241103242103243103244103245103246103247103248103249103250103251103252103253103254103255103256103257103258103259103260103261103262103263103264103265103266103267103268103269103270103271103272103273103274103275103276103277103278103279103280103281103282103283103284103285103286103287103288103289103290103291103292103293103294103295103296103297103298103299103300103301103302103303103304103305103306103307103308103309103310103311103312103313103314103315103316103317103318103319103320103321103322103323103324103325103326103327103328103329103330103331103332103333103334103335103336103337103338103339103340103341103342103343103344103345103346103347103348103349103350103351103352103353103354103355103356103357103358103359103360103361103362103363103364103365103366103367103368103369103370103371103372103373103374103375103376103377103378103379103380103381103382103383103384103385103386103387103388103389103390103391103392103393103394103395103396103397103398103399103400103401103402103403103404103405103406103407103408103409103410103411103412103413103414103415103416103417103418103419103420103421103422103423103424103425103426103427103428103429103430103431103432103433103434103435103436103437103438103439103440103441103442103443103444103445103446103447103448103449103450103451103452103453103454103455103456103457103458103459103460103461103462103463103464103465103466103467103468103469103470103471103472103473103474103475103476103477103478103479103480103481103482103483103484103485103486103487103488103489103490103491103492103493103494103495103496103497103498103499103500103501103502103503103504103505103506103507103508103509103510103511103512103513103514103515103516103517103518103519103520103521103522103523103524103525103526103527103528103529103530103531103532103533103534103535103536103537103538103539103540103541103542103543103544103545103546103547103548103549103550103551103552103553103554103555103556103557103558103559103560103561103562103563103564103565103566103567103568103569103570103571103572103573103574103575103576103577103578103579103580103581103582103583103584103585103586103587103588103589103590103591103592103593103594103595103596103597103598103599103600103601103602103603103604103605103606103607103608103609103610103611103612103613103614103615103616103617103618103619103620103621103622103623103624103625103626103627103628103629103630103631103632103633103634103635103636103637103638103639103640103641103642103643103644103645103646103647103648103649103650103651103652103653103654103655103656103657103658103659103660103661103662103663103664103665103666103667103668103669103670103671103672103673103674103675103676103677103678103679103680103681103682103683103684103685103686103687103688103689103690103691103692103693103694103695103696103697103698103699103700103701103702103703103704103705103706103707103708103709103710103711103712103713103714103715103716103717103718103719103720103721103722103723103724103725103726103727103728103729103730103731103732103733103734103735103736103737103738103739103740103741103742103743103744103745103746103747103748103749103750103751103752103753103754103755103756103757103758103759103760103761103762103763103764103765103766103767103768103769103770103771103772103773103774103775103776103777103778103779103780103781103782103783103784103785103786103787103788103789103790103791103792103793103794103795103796103797103798103799103800103801103802103803103804103805103806103807103808103809103810103811103812103813103814103815103816103817103818103819103820103821103822103823103824103825103826103827103828103829103830103831103832103833103834103835103836103837103838103839103840103841103842103843103844103845103846103847103848103849103850103851103852103853103854103855103856103857103858103859103860103861103862103863103864103865103866103867103868103869103870103871103872103873103874103875103876103877103878103879103880103881103882103883103884103885103886103887103888103889103890103891103892103893103894103895103896103897103898103899103900103901103902103903103904103905103906103907103908103909103910103911103912103913103914103915103916103917103918103919103920103921103922103923103924103925103926103927103928103929103930103931103932103933103934103935103936103937103938103939103940103941103942103943103944103945103946103947103948103949103950103951103952103953103954103955103956103957103958103959103960103961103962103963103964103965103966103967103968103969103970103971103972103973103974103975103976103977103978103979103980103981103982103983103984103985103986103987103988103989103990103991103992103993103994103995103996103997103998103999104000104001104002104003104004104005104006104007104008104009104010104011104012104013104014104015104016104017104018104019104020104021104022104023104024104025104026104027104028104029104030104031104032104033104034104035104036104037104038104039104040104041104042104043104044104045104046104047104048104049104050104051104052104053104054104055104056104057104058104059104060104061104062104063104064104065104066104067104068104069104070104071104072104073104074104075104076104077104078104079104080104081104082104083104084104085104086104087104088104089104090104091104092104093104094104095104096104097104098104099104100104101104102104103104104104105104106104107104108104109104110104111104112104113104114104115104116104117104118104119104120104121104122104123104124104125104126104127104128104129104130104131104132104133104134104135104136104137104138104139104140104141104142104143104144104145104146104147104148104149104150104151104152104153104154104155104156104157104158104159104160104161104162104163104164104165104166104167104168104169104170104171104172104173104174104175104176104177104178104179104180104181104182104183104184104185104186104187104188104189104190104191104192104193104194104195104196104197104198104199104200104201104202104203104204104205104206104207104208104209104210104211104212104213104214104215104216104217104218104219104220104221104222104223104224104225104226104227104228104229104230104231104232104233104234104235104236104237104238104239104240104241104242104243104244104245104246104247104248104249104250104251104252104253104254104255104256104257104258104259104260104261104262104263104264104265104266104267104268104269104270104271104272104273104274104275104276104277104278104279104280104281104282104283104284104285104286104287104288104289104290104291104292104293104294104295104296104297104298104299104300104301104302104303104304104305104306104307104308104309104310104311104312104313104314104315104316104317104318104319104320104321104322104323104324104325104326104327104328104329104330104331104332104333104334104335104336104337104338104339104340104341104342104343104344104345104346104347104348104349104350104351104352104353104354104355104356104357104358104359104360104361104362104363104364104365104366104367104368104369104370104371104372104373104374104375104376104377104378104379104380104381104382104383104384104385104386104387104388104389104390104391104392104393104394104395104396104397104398104399104400104401104402104403104404104405104406104407104408104409104410104411104412104413104414104415104416104417104418104419104420104421104422104423104424104425104426104427104428104429104430104431104432104433104434104435104436104437104438104439104440104441104442104443104444104445104446104447104448104449104450104451104452104453104454104455104456104457104458104459104460104461104462104463104464104465104466104467104468104469104470104471104472104473104474104475104476104477104478104479104480104481104482104483104484104485104486104487104488104489104490104491104492104493104494104495104496104497104498104499104500104501104502104503104504104505104506104507104508104509104510104511104512104513104514104515104516104517104518104519104520104521104522104523104524104525104526104527104528104529104530104531104532104533104534104535104536104537104538104539104540104541104542104543104544104545104546104547104548104549104550104551104552104553104554104555104556104557104558104559104560104561104562104563104564104565104566104567104568104569104570104571104572104573104574104575104576104577104578104579104580104581104582104583104584104585104586104587104588104589104590104591104592104593104594104595104596104597104598104599104600104601104602104603104604104605104606104607104608104609104610104611104612104613104614104615104616104617104618104619104620104621104622104623104624104625104626104627104628104629104630104631104632104633104634104635104636104637104638104639104640104641104642104643104644104645104646104647104648104649104650104651104652104653104654104655104656104657104658104659104660104661104662104663104664104665104666104667104668104669104670104671104672104673104674104675104676104677104678104679104680104681104682104683104684104685104686104687104688104689104690104691104692104693104694104695104696104697104698104699104700104701104702104703104704104705104706104707104708104709104710104711104712104713104714104715104716104717104718104719104720104721104722104723104724104725104726104727104728104729104730104731104732104733104734104735104736104737104738104739104740104741104742104743104744104745104746104747104748104749104750104751104752104753104754104755104756104757104758104759104760104761104762104763104764104765104766104767104768104769104770104771104772104773104774104775104776104777104778104779104780104781104782104783104784104785104786104787104788104789104790104791104792104793104794104795104796104797104798104799104800104801104802104803104804104805104806104807104808104809104810104811104812104813104814104815104816104817104818104819104820104821104822104823104824104825104826104827104828104829104830104831104832104833104834104835104836104837104838104839104840104841104842104843104844104845104846104847104848104849104850104851104852104853104854104855104856104857104858104859104860104861104862104863104864104865104866104867104868104869104870104871104872104873104874104875104876104877104878104879104880104881104882104883104884104885104886104887104888104889104890104891104892104893104894104895104896104897104898104899104900104901104902104903104904104905104906104907104908104909104910104911104912104913104914104915104916104917104918104919104920104921104922104923104924104925104926104927104928104929104930104931104932104933104934104935104936104937104938104939104940104941104942104943104944104945104946104947104948104949104950104951104952104953104954104955104956104957104958104959104960104961104962104963104964104965104966104967104968104969104970104971104972104973104974104975104976104977104978104979104980104981104982104983104984104985104986104987104988104989104990104991104992104993104994104995104996104997104998104999105000105001105002105003105004105005105006105007105008105009105010105011105012105013105014105015105016105017105018105019105020105021105022105023105024105025105026105027105028105029105030105031105032105033105034105035105036105037105038105039105040105041105042105043105044105045105046105047105048105049105050105051105052105053105054105055105056105057105058105059105060105061105062105063105064105065105066105067105068105069105070105071105072105073105074105075105076105077105078105079105080105081105082105083105084105085105086105087105088105089105090105091105092105093105094105095105096105097105098105099105100105101105102105103105104105105105106105107105108105109105110105111105112105113105114105115105116105117105118105119105120105121105122105123105124105125105126105127105128105129105130105131105132105133105134105135105136105137105138105139105140105141105142105143105144105145105146105147105148105149105150105151105152105153105154105155105156105157105158105159105160105161105162105163105164105165105166105167105168105169105170105171105172105173105174105175105176105177105178105179105180105181105182105183105184105185105186105187105188105189105190105191105192105193105194105195105196105197105198105199105200105201105202105203105204105205105206105207105208105209105210105211105212105213105214105215105216105217105218105219105220105221105222105223105224105225105226105227105228105229105230105231105232105233105234105235105236105237105238105239105240105241105242105243105244105245105246105247105248105249105250105251105252105253105254105255105256105257105258105259105260105261105262105263105264105265105266105267105268105269105270105271105272105273105274105275105276105277105278105279105280105281105282105283105284105285105286105287105288105289105290105291105292105293105294105295105296105297105298105299105300105301105302105303105304105305105306105307105308105309105310105311105312105313105314105315105316105317105318105319105320105321105322105323105324105325105326105327105328105329105330105331105332105333105334105335105336105337105338105339105340105341105342105343105344105345105346105347105348105349105350105351105352105353105354105355105356105357105358105359105360105361105362105363105364105365105366105367105368105369105370105371105372105373105374105375105376105377105378105379105380105381105382105383105384105385105386105387105388105389105390105391105392105393105394105395105396105397105398105399105400105401105402105403105404105405105406105407105408105409105410105411105412105413105414105415105416105417105418105419105420105421105422105423105424105425105426105427105428105429105430105431105432105433105434105435105436105437105438105439105440105441105442105443105444105445105446105447105448105449105450105451105452105453105454105455105456105457105458105459105460105461105462105463105464105465105466105467105468105469105470105471105472105473105474105475105476105477105478105479105480105481105482105483105484105485105486105487105488105489105490105491105492105493105494105495105496105497105498105499105500105501105502105503105504105505105506105507105508105509105510105511105512105513105514105515105516105517105518105519105520105521105522105523105524105525105526105527105528105529105530105531105532105533105534105535105536105537105538105539105540105541105542105543105544105545105546105547105548105549105550105551105552105553105554105555105556105557105558105559105560105561105562105563105564105565105566105567105568105569105570105571105572105573105574105575105576105577105578105579105580105581105582105583105584105585105586105587105588105589105590105591105592105593105594105595105596105597105598105599105600105601105602105603105604105605105606105607105608105609105610105611105612105613105614105615105616105617105618105619105620105621105622105623105624105625105626105627105628105629105630105631105632105633105634105635105636105637105638105639105640105641105642105643105644105645105646105647105648105649105650105651105652105653105654105655105656105657105658105659105660105661105662105663105664105665105666105667105668105669105670105671105672105673105674105675105676105677105678105679105680105681105682105683105684105685105686105687105688105689105690105691105692105693105694105695105696105697105698105699105700105701105702105703105704105705105706105707105708105709105710105711105712105713105714105715105716105717105718105719105720105721105722105723105724105725105726105727105728105729105730105731105732105733105734105735105736105737105738105739105740105741105742105743105744105745105746105747105748105749105750105751105752105753105754105755105756105757105758105759105760105761105762105763105764105765105766105767105768105769105770105771105772105773105774105775105776105777105778105779105780105781105782105783105784105785105786105787105788105789105790105791105792105793105794105795105796105797105798105799105800105801105802105803105804105805105806105807105808105809105810105811105812105813105814105815105816105817105818105819105820105821105822105823105824105825105826105827105828105829105830105831105832105833105834105835105836105837105838105839105840105841105842105843105844105845105846105847105848105849105850105851105852105853105854105855105856105857105858105859105860105861105862105863105864105865105866105867105868105869105870105871105872105873105874105875105876105877105878105879105880105881105882105883105884105885105886105887105888105889105890105891105892105893105894105895105896105897105898105899105900105901105902105903105904105905105906105907105908105909105910105911105912105913105914105915105916105917105918105919105920105921105922105923105924105925105926105927105928105929105930105931105932105933105934105935105936105937105938105939105940105941105942105943105944105945105946105947105948105949105950105951105952105953105954105955105956105957105958105959105960105961105962105963105964105965105966105967105968105969105970105971105972105973105974105975105976105977105978105979105980105981105982105983105984105985105986105987105988105989105990105991105992105993105994105995105996105997105998105999106000106001106002106003106004106005106006106007106008106009106010106011106012106013106014106015106016106017106018106019106020106021106022106023106024106025106026106027106028106029106030106031106032106033106034106035106036106037106038106039106040106041106042106043106044106045106046106047106048106049106050106051106052106053106054106055106056106057106058106059106060106061106062106063106064106065106066106067106068106069106070106071106072106073106074106075106076106077106078106079106080106081106082106083106084106085106086106087106088106089106090106091106092106093106094106095106096106097106098106099106100106101106102106103106104106105106106106107106108106109106110106111106112106113106114106115106116106117106118106119106120106121106122106123106124106125106126106127106128106129106130106131106132106133106134106135106136106137106138106139106140106141106142106143106144106145106146106147106148106149106150106151106152106153106154106155106156106157106158106159106160106161106162106163106164106165106166106167106168106169106170106171106172106173106174106175106176106177106178106179106180106181106182106183106184106185106186106187106188106189106190106191106192106193106194106195106196106197106198106199106200106201106202106203106204106205106206106207106208106209106210106211106212106213106214106215106216106217106218106219106220106221106222106223106224106225106226106227106228106229106230106231106232106233106234106235106236106237106238106239106240106241106242106243106244106245106246106247106248106249106250106251106252106253106254106255106256106257106258106259106260106261106262106263106264106265106266106267106268106269106270106271106272106273106274106275106276106277106278106279106280106281106282106283106284106285106286106287106288106289106290106291106292106293106294106295106296106297106298106299106300106301106302106303106304106305106306106307106308106309106310106311106312106313106314106315106316106317106318106319106320106321106322106323106324106325106326106327106328106329106330106331106332106333106334106335106336106337106338106339106340106341106342106343106344106345106346106347106348106349106350106351106352106353106354106355106356106357106358106359106360106361106362106363106364106365106366106367106368106369106370106371106372106373106374106375106376106377106378106379106380106381106382106383106384106385106386106387106388106389106390106391106392106393106394106395106396106397106398106399106400106401106402106403106404106405106406106407106408106409106410106411106412106413106414106415106416106417106418106419106420106421106422106423106424106425106426106427106428106429106430106431106432106433106434106435106436106437106438106439106440106441106442106443106444106445106446106447106448106449106450106451106452106453106454106455106456106457106458106459106460106461106462106463106464106465106466106467106468106469106470106471106472106473106474106475106476106477106478106479106480106481106482106483106484106485106486106487106488106489106490106491106492106493106494106495106496106497106498106499106500106501106502106503106504106505106506106507106508106509106510106511106512106513106514106515106516106517106518106519106520106521106522106523106524106525106526106527106528106529106530106531106532106533106534106535106536106537106538106539106540106541106542106543106544106545106546106547106548106549106550106551106552106553106554106555106556106557106558106559106560106561106562106563106564106565106566106567106568106569106570106571106572106573106574106575106576106577106578106579106580106581106582106583106584106585106586106587106588106589106590106591106592106593106594106595106596106597106598106599106600106601106602106603106604106605106606106607106608106609106610106611106612106613106614106615106616106617106618106619106620106621106622106623106624106625106626106627106628106629106630106631106632106633106634106635106636106637106638106639106640106641106642106643106644106645106646106647106648106649106650106651106652106653106654106655106656106657106658106659106660106661106662106663106664106665106666106667106668106669106670106671106672106673106674106675106676106677106678106679106680106681106682106683106684106685106686106687106688106689106690106691106692106693106694106695106696106697106698106699106700106701106702106703106704106705106706106707106708106709106710106711106712106713106714106715106716106717106718106719106720106721106722106723106724106725106726106727106728106729106730106731106732106733106734106735106736106737106738106739106740106741106742106743106744106745106746106747106748106749106750106751106752106753106754106755106756106757106758106759106760106761106762106763106764106765106766106767106768106769106770106771106772106773106774106775106776106777106778106779106780106781106782106783106784106785106786106787106788106789106790106791106792106793106794106795106796106797106798106799106800106801106802106803106804106805106806106807106808106809106810106811106812106813106814106815106816106817106818106819106820106821106822106823106824106825106826106827106828106829106830106831106832106833106834106835106836106837106838106839106840106841106842106843106844106845106846106847106848106849106850106851106852106853106854106855106856106857106858106859106860106861106862106863106864106865106866106867106868106869106870106871106872106873106874106875106876106877106878106879106880106881106882106883106884106885106886106887106888106889106890106891106892106893106894106895106896106897106898106899106900106901106902106903106904106905106906106907106908106909106910106911106912106913106914106915106916106917106918106919106920106921106922106923106924106925106926106927106928106929106930106931106932106933106934106935106936106937106938106939106940106941106942106943106944106945106946106947106948106949106950106951106952106953106954106955106956106957106958106959106960106961106962106963106964106965106966106967106968106969106970106971106972106973106974106975106976106977106978106979106980106981106982106983106984106985106986106987106988106989106990106991106992106993106994106995106996106997106998106999107000107001107002107003107004107005107006107007107008107009107010107011107012107013107014107015107016107017107018107019107020107021107022107023107024107025107026107027107028107029107030107031107032107033107034107035107036107037107038107039107040107041107042107043107044107045107046107047107048107049107050107051107052107053107054107055107056107057107058107059107060107061107062107063107064107065107066107067107068107069107070107071107072107073107074107075107076107077107078107079107080107081107082107083107084107085107086107087107088107089107090107091107092107093107094107095107096107097107098107099107100107101107102107103107104107105107106107107107108107109107110107111107112107113107114107115107116107117107118107119107120107121107122107123107124107125107126107127107128107129107130107131107132107133107134107135107136107137107138107139107140107141107142107143107144107145107146107147107148107149107150107151107152107153107154107155107156107157107158107159107160107161107162107163107164107165107166107167107168107169107170107171107172107173107174107175107176107177107178107179107180107181107182107183107184107185107186107187107188107189107190107191107192107193107194107195107196107197107198107199107200107201107202107203107204107205107206107207107208107209107210107211107212107213107214107215107216107217107218107219107220107221107222107223107224107225107226107227107228107229107230107231107232107233107234107235107236107237107238107239107240107241107242107243107244107245107246107247107248107249107250107251107252107253107254107255107256107257107258107259107260107261107262107263107264107265107266107267107268107269107270107271107272107273107274107275107276107277107278107279107280107281107282107283107284107285107286107287107288107289107290107291107292107293107294107295107296107297107298107299107300107301107302107303107304107305107306107307107308107309107310107311107312107313107314107315107316107317107318107319107320107321107322107323107324107325107326107327107328107329107330107331107332107333107334107335107336107337107338107339107340107341107342107343107344107345107346107347107348107349107350107351107352107353107354107355107356107357107358107359107360107361107362107363107364107365107366107367107368107369107370107371107372107373107374107375107376107377107378107379107380107381107382107383107384107385107386107387107388107389107390107391107392107393107394107395107396107397107398107399107400107401107402107403107404107405107406107407107408107409107410107411107412107413107414107415107416107417107418107419107420107421107422107423107424107425107426107427107428107429107430107431107432107433107434107435107436107437107438107439107440107441107442107443107444107445107446107447107448107449107450107451107452107453107454107455107456107457107458107459107460107461107462107463107464107465107466107467107468107469107470107471107472107473107474107475107476107477107478107479107480107481107482107483107484107485107486107487107488107489107490107491107492107493107494107495107496107497107498107499107500107501107502107503107504107505107506107507107508107509107510107511107512107513107514107515107516107517107518107519107520107521107522107523107524107525107526107527107528107529107530107531107532107533107534107535107536107537107538107539107540107541107542107543107544107545107546107547107548107549107550107551107552107553107554107555107556107557107558107559107560107561107562107563107564107565107566107567107568107569107570107571107572107573107574107575107576107577107578107579107580107581107582107583107584107585107586107587107588107589107590107591107592107593107594107595107596107597107598107599107600107601107602107603107604107605107606107607107608107609107610107611107612107613107614107615107616107617107618107619107620107621107622107623107624107625107626107627107628107629107630107631107632107633107634107635107636107637107638107639107640107641107642107643107644107645107646107647107648107649107650107651107652107653107654107655107656107657107658107659107660107661107662107663107664107665107666107667107668107669107670107671107672107673107674107675107676107677107678107679107680107681107682107683107684107685107686107687107688107689107690107691107692107693107694107695107696107697107698107699107700107701107702107703107704107705107706107707107708107709107710107711107712107713107714107715107716107717107718107719107720107721107722107723107724107725107726107727107728107729107730107731107732107733107734107735107736107737107738107739107740107741107742107743107744107745107746107747107748107749107750107751107752107753107754107755107756107757107758107759107760107761107762107763107764107765107766107767107768107769107770107771107772107773107774107775107776107777107778107779107780107781107782107783107784107785107786107787107788107789107790107791107792107793107794107795107796107797107798107799107800107801107802107803107804107805107806107807107808107809107810107811107812107813107814107815107816107817107818107819107820107821107822107823107824107825107826107827107828107829107830107831107832107833107834107835107836107837107838107839107840107841107842107843107844107845107846107847107848107849107850107851107852107853107854107855107856107857107858107859107860107861107862107863107864107865107866107867107868107869107870107871107872107873107874107875107876107877107878107879107880107881107882107883107884107885107886107887107888107889107890107891107892107893107894107895107896107897107898107899107900107901107902107903107904107905107906107907107908107909107910107911107912107913107914107915107916107917107918107919107920107921107922107923107924107925107926107927107928107929107930107931107932107933107934107935107936107937107938107939107940107941107942107943107944107945107946107947107948107949107950107951107952107953107954107955107956107957107958107959107960107961107962107963107964107965107966107967107968107969107970107971107972107973107974107975107976107977107978107979107980107981107982107983107984107985107986107987107988107989107990107991107992107993107994107995107996107997107998107999108000108001108002108003108004108005108006108007108008108009108010108011108012108013108014108015108016108017108018108019108020108021108022108023108024108025108026108027108028108029108030108031108032108033108034108035108036108037108038108039108040108041108042108043108044108045108046108047108048108049108050108051108052108053108054108055108056108057108058108059108060108061108062108063108064108065108066108067108068108069108070108071108072108073108074108075108076108077108078108079108080108081108082108083108084108085108086108087108088108089108090108091108092108093108094108095108096108097108098108099108100108101108102108103108104108105108106108107108108108109108110108111108112108113108114108115108116108117108118108119108120108121108122108123108124108125108126108127108128108129108130108131108132108133108134108135108136108137108138108139108140108141108142108143108144108145108146108147108148108149108150108151108152108153108154108155108156108157108158108159108160108161108162108163108164108165108166108167108168108169108170108171108172108173108174108175108176108177108178108179108180108181108182108183108184108185108186108187108188108189108190108191108192108193108194108195108196108197108198108199108200108201108202108203108204108205108206108207108208108209108210108211108212108213108214108215108216108217108218108219108220108221108222108223108224108225108226108227108228108229108230108231108232108233108234108235108236108237108238108239108240108241108242108243108244108245108246108247108248108249108250108251108252108253108254108255108256108257108258108259108260108261108262108263108264108265108266108267108268108269108270108271108272108273108274108275108276108277108278108279108280108281108282108283108284108285108286108287108288108289108290108291108292108293108294108295108296108297108298108299108300108301108302108303108304108305108306108307108308108309108310108311108312108313108314108315108316108317108318108319108320108321108322108323108324108325108326108327108328108329108330108331108332108333108334108335108336108337108338108339108340108341108342108343108344108345108346108347108348108349108350108351108352108353108354108355108356108357108358108359108360108361108362108363108364108365108366108367108368108369108370108371108372108373108374108375108376108377108378108379108380108381108382108383108384108385108386108387108388108389108390108391108392108393108394108395108396108397108398108399108400108401108402108403108404108405108406108407108408108409108410108411108412108413108414108415108416108417108418108419108420108421108422108423108424108425108426108427108428108429108430108431108432108433108434108435108436108437108438108439108440108441108442108443108444108445108446108447108448108449108450108451108452108453108454108455108456108457108458108459108460108461108462108463108464108465108466108467108468108469108470108471108472108473108474108475108476108477108478108479108480108481108482108483108484108485108486108487108488108489108490108491108492108493108494108495108496108497108498108499108500108501108502108503108504108505108506108507108508108509108510108511108512108513108514108515108516108517108518108519108520108521108522108523108524108525108526108527108528108529108530108531108532108533108534108535108536108537108538108539108540108541108542108543108544108545108546108547108548108549108550108551108552108553108554108555108556108557108558108559108560108561108562108563108564108565108566108567108568108569108570108571108572108573108574108575108576108577108578108579108580108581108582108583108584108585108586108587108588108589108590108591108592108593108594108595108596108597108598108599108600108601108602108603108604108605108606108607108608108609108610108611108612108613108614108615108616108617108618108619108620108621108622108623108624108625108626108627108628108629108630108631108632108633108634108635108636108637108638108639108640108641108642108643108644108645108646108647108648108649108650108651108652108653108654108655108656108657108658108659108660108661108662108663108664108665108666108667108668108669108670108671108672108673108674108675108676108677108678108679108680108681108682108683108684108685108686108687108688108689108690108691108692108693108694108695108696108697108698108699108700108701108702108703108704108705108706108707108708108709108710108711108712108713108714108715108716108717108718108719108720108721108722108723108724108725108726108727108728108729108730108731108732108733108734108735108736108737108738108739108740108741108742108743108744108745108746108747108748108749108750108751108752108753108754108755108756108757108758108759108760108761108762108763108764108765108766108767108768108769108770108771108772108773108774108775108776108777108778108779108780108781108782108783108784108785108786108787108788108789108790108791108792108793108794108795108796108797108798108799108800108801108802108803108804108805108806108807108808108809108810108811108812108813108814108815108816108817108818108819108820108821108822108823108824108825108826108827108828108829108830108831108832108833108834108835108836108837108838108839108840108841108842108843108844108845108846108847108848108849108850108851108852108853108854108855108856108857108858108859108860108861108862108863108864108865108866108867108868108869108870108871108872108873108874108875108876108877108878108879108880108881108882108883108884108885108886108887108888108889108890108891108892108893108894108895108896108897108898108899108900108901108902108903108904108905108906108907108908108909108910108911108912108913108914108915108916108917108918108919108920108921108922108923108924108925108926108927108928108929108930108931108932108933108934108935108936108937108938108939108940108941108942108943108944108945108946108947108948108949108950108951108952108953108954108955108956108957108958108959108960108961108962108963108964108965108966108967108968108969108970108971108972108973108974108975108976108977108978108979108980108981108982108983108984108985108986108987108988108989108990108991108992108993108994108995108996108997108998108999109000109001109002109003109004109005109006109007109008109009109010109011109012109013109014109015109016109017109018109019109020109021109022109023109024109025109026109027109028109029109030109031109032109033109034109035109036109037109038109039109040109041109042109043109044109045109046109047109048109049109050109051109052109053109054109055109056109057109058109059109060109061109062109063109064109065109066109067109068109069109070109071109072109073109074109075109076109077109078109079109080109081109082109083109084109085109086109087109088109089109090109091109092109093109094109095109096109097109098109099109100109101109102109103109104109105109106109107109108109109109110109111109112109113109114109115109116109117109118109119109120109121109122109123109124109125109126109127109128109129109130109131109132109133109134109135109136109137109138109139109140109141109142109143109144109145109146109147109148109149109150109151109152109153109154109155109156109157109158109159109160109161109162109163109164109165109166109167109168109169109170109171109172109173109174109175109176109177109178109179109180109181109182109183109184109185109186109187109188109189109190109191109192109193109194109195109196109197109198109199109200109201109202109203109204109205109206109207109208109209109210109211109212109213109214109215109216109217109218109219109220109221109222109223109224109225109226109227109228109229109230109231109232109233109234109235109236109237109238109239109240109241109242109243109244109245109246109247109248109249109250109251109252109253109254109255109256109257109258109259109260109261109262109263109264109265109266109267109268109269109270109271109272109273109274109275109276109277109278109279109280109281109282109283109284109285109286109287109288109289109290109291109292109293109294109295109296109297109298109299109300109301109302109303109304109305109306109307109308109309109310109311109312109313109314109315109316109317109318109319109320109321109322109323109324109325109326109327109328109329109330109331109332109333109334109335109336109337109338109339109340109341109342109343109344109345109346109347109348109349109350109351109352109353109354109355109356109357109358109359109360109361109362109363109364109365109366109367109368109369109370109371109372109373109374109375109376109377109378109379109380109381109382109383109384109385109386109387109388109389109390109391109392109393109394109395109396109397109398109399109400109401109402109403109404109405109406109407109408109409109410109411109412109413109414109415109416109417109418109419109420109421109422109423109424109425109426109427109428109429109430109431109432109433109434109435109436109437109438109439109440109441109442109443109444109445109446109447109448109449109450109451109452109453109454109455109456109457109458109459109460109461109462109463109464109465109466109467109468109469109470109471109472109473109474109475109476109477109478109479109480109481109482109483109484109485109486109487109488109489109490109491109492109493109494109495109496109497109498109499109500109501109502109503109504109505109506109507109508109509109510109511109512109513109514109515109516109517109518109519109520109521109522109523109524109525109526109527109528109529109530109531109532109533109534109535109536109537109538109539109540109541109542109543109544109545109546109547109548109549109550109551109552109553109554109555109556109557109558109559109560109561109562109563109564109565109566109567109568109569109570109571109572109573109574109575109576109577109578109579109580109581109582109583109584109585109586109587109588109589109590109591109592109593109594109595109596109597109598109599109600109601109602109603109604109605109606109607109608109609109610109611109612109613109614109615109616109617109618109619109620109621109622109623109624109625109626109627109628109629109630109631109632109633109634109635109636109637109638109639109640109641109642109643109644109645109646109647109648109649109650109651109652109653109654109655109656109657109658109659109660109661109662109663109664109665109666109667109668109669109670109671109672109673109674109675109676109677109678109679109680109681109682109683109684109685109686109687109688109689109690109691109692109693109694109695109696109697109698109699109700109701109702109703109704109705109706109707109708109709109710109711109712109713109714109715109716109717109718109719109720109721109722109723109724109725109726109727109728109729109730109731109732109733109734109735109736109737109738109739109740109741109742109743109744109745109746109747109748109749109750109751109752109753109754109755109756109757109758109759109760109761109762109763109764109765109766109767109768109769109770109771109772109773109774109775109776109777109778109779109780109781109782109783109784109785109786109787109788109789109790109791109792109793109794109795109796109797109798109799109800109801109802109803109804109805109806109807109808109809109810109811109812109813109814109815109816109817109818109819109820109821109822109823109824109825109826109827109828109829109830109831109832109833109834109835109836109837109838109839109840109841109842109843109844109845109846109847109848109849109850109851109852109853109854109855109856109857109858109859109860109861109862109863109864109865109866109867109868109869109870109871109872109873109874109875109876109877109878109879109880109881109882109883109884109885109886109887109888109889109890109891109892109893109894109895109896109897109898109899109900109901109902109903109904109905109906109907109908109909109910109911109912109913109914109915109916109917109918109919109920109921109922109923109924109925109926109927109928109929109930109931109932109933109934109935109936109937109938109939109940109941109942109943109944109945109946109947109948109949109950109951109952109953109954109955109956109957109958109959109960109961109962109963109964109965109966109967109968109969109970109971109972109973109974109975109976109977109978109979109980109981109982109983109984109985109986109987109988109989109990109991109992109993109994109995109996109997109998109999110000110001110002110003110004110005110006110007110008110009110010110011110012110013110014110015110016110017110018110019110020110021110022110023110024110025110026110027110028110029110030110031110032110033110034110035110036110037110038110039110040110041110042110043110044110045110046110047110048110049110050110051110052110053110054110055110056110057110058110059110060110061110062110063110064110065110066110067110068110069110070110071110072110073110074110075110076110077110078110079110080110081110082110083110084110085110086110087110088110089110090110091110092110093110094110095110096110097110098110099110100110101110102110103110104110105110106110107110108110109110110110111110112110113110114110115110116110117110118110119110120110121110122110123110124110125110126110127110128110129110130110131110132110133110134110135110136110137110138110139110140110141110142110143110144110145110146110147110148110149110150110151110152110153110154110155110156110157110158110159110160110161110162110163110164110165110166110167110168110169110170110171110172110173110174110175110176110177110178110179110180110181110182110183110184110185110186110187110188110189110190110191110192110193110194110195110196110197110198110199110200110201110202110203110204110205110206110207110208110209110210110211110212110213110214110215110216110217110218110219110220110221110222110223110224110225110226110227110228110229110230110231110232110233110234110235110236110237110238110239110240110241110242110243110244110245110246110247110248110249110250110251110252110253110254110255110256110257110258110259110260110261110262110263110264110265110266110267110268110269110270110271110272110273110274110275110276110277110278110279110280110281110282110283110284110285110286110287110288110289110290110291110292110293110294110295110296110297110298110299110300110301110302110303110304110305110306110307110308110309110310110311110312110313110314110315110316110317110318110319110320110321110322110323110324110325110326110327110328110329110330110331110332110333110334110335110336110337110338110339110340110341110342110343110344110345110346110347110348110349110350110351110352110353110354110355110356110357110358110359110360110361110362110363110364110365110366110367110368110369110370110371110372110373110374110375110376110377110378110379110380110381110382110383110384110385110386110387110388110389110390110391110392110393110394110395110396110397110398110399110400110401110402110403110404110405110406110407110408110409110410110411110412110413110414110415110416110417110418110419110420110421110422110423110424110425110426110427110428110429110430110431110432110433110434110435110436110437110438110439110440110441110442110443110444110445110446110447110448110449110450110451110452110453110454110455110456110457110458110459110460110461110462110463110464110465110466110467110468110469110470110471110472110473110474110475110476110477110478110479110480110481110482110483110484110485110486110487110488110489110490110491110492110493110494110495110496110497110498110499110500110501110502110503110504110505110506110507110508110509110510110511110512110513110514110515110516110517110518110519110520110521110522110523110524110525110526110527110528110529110530110531110532110533110534110535110536110537110538110539110540110541110542110543110544110545110546110547110548110549110550110551110552110553110554110555110556110557110558110559110560110561110562110563110564110565110566110567110568110569110570110571110572110573110574110575110576110577110578110579110580110581110582110583110584110585110586110587110588110589110590110591110592110593110594110595110596110597110598110599110600110601110602110603110604110605110606110607110608110609110610110611110612110613110614110615110616110617110618110619110620110621110622110623110624110625110626110627110628110629110630110631110632110633110634110635110636110637110638110639110640110641110642110643110644110645110646110647110648110649110650110651110652110653110654110655110656110657110658110659110660110661110662110663110664110665110666110667110668110669110670110671110672110673110674110675110676110677110678110679110680110681110682110683110684110685110686110687110688110689110690110691110692110693110694110695110696110697110698110699110700110701110702110703110704110705110706110707110708110709110710110711110712110713110714110715110716110717110718110719110720110721110722110723110724110725110726110727110728110729110730110731110732110733110734110735110736110737110738110739110740110741110742110743110744110745110746110747110748110749110750110751110752110753110754110755110756110757110758110759110760110761110762110763110764110765110766110767110768110769110770110771110772110773110774110775110776110777110778110779110780110781110782110783110784110785110786110787110788110789110790110791110792110793110794110795110796110797110798110799110800110801110802110803110804110805110806110807110808110809110810110811110812110813110814110815110816110817110818110819110820110821110822110823110824110825110826110827110828110829110830110831110832110833110834110835110836110837110838110839110840110841110842110843110844110845110846110847110848110849110850110851110852110853110854110855110856110857110858110859110860110861110862110863110864110865110866110867110868110869110870110871110872110873110874110875110876110877110878110879110880110881110882110883110884110885110886110887110888110889110890110891110892110893110894110895110896110897110898110899110900110901110902110903110904110905110906110907110908110909110910110911110912110913110914110915110916110917110918110919110920110921110922110923110924110925110926110927110928110929110930110931110932110933110934110935110936110937110938110939110940110941110942110943110944110945110946110947110948110949110950110951110952110953110954110955110956110957110958110959110960110961110962110963110964110965110966110967110968110969110970110971110972110973110974110975110976110977110978110979110980110981110982110983110984110985110986110987110988110989110990110991110992110993110994110995110996110997110998110999111000111001111002111003111004111005111006111007111008111009111010111011111012111013111014111015111016111017111018111019111020111021111022111023111024111025111026111027111028111029111030111031111032111033111034111035111036111037111038111039111040111041111042111043111044111045111046111047111048111049111050111051111052111053111054111055111056111057111058111059111060111061111062111063111064111065111066111067111068111069111070111071111072111073111074111075111076111077111078111079111080111081111082111083111084111085111086111087111088111089111090111091111092111093111094111095111096111097111098111099111100111101111102111103111104111105111106111107111108111109111110111111111112111113111114111115111116111117111118111119111120111121111122111123111124111125111126111127111128111129111130111131111132111133111134111135111136111137111138111139111140111141111142111143111144111145111146111147111148111149111150111151111152111153111154111155111156111157111158111159111160111161111162111163111164111165111166111167111168111169111170111171111172111173111174111175111176111177111178111179111180111181111182111183111184111185111186111187111188111189111190111191111192111193111194111195111196111197111198111199111200111201111202111203111204111205111206111207111208111209111210111211111212111213111214111215111216111217111218111219111220111221111222111223111224111225111226111227111228111229111230111231111232111233111234111235111236111237111238111239111240111241111242111243111244111245111246111247111248111249111250111251111252111253111254111255111256111257111258111259111260111261111262111263111264111265111266111267111268111269111270111271111272111273111274111275111276111277111278111279111280111281111282111283111284111285111286111287111288111289111290111291111292111293111294111295111296111297111298111299111300111301111302111303111304111305111306111307111308111309111310111311111312111313111314111315111316111317111318111319111320111321111322111323111324111325111326111327111328111329111330111331111332111333111334111335111336111337111338111339111340111341111342111343111344111345111346111347111348111349111350111351111352111353111354111355111356111357111358111359111360111361111362111363111364111365111366111367111368111369111370111371111372111373111374111375111376111377111378111379111380111381111382111383111384111385111386111387111388111389111390111391111392111393111394111395111396111397111398111399111400111401111402111403111404111405111406111407111408111409111410111411111412111413111414111415111416111417111418111419111420111421111422111423111424111425111426111427111428111429111430111431111432111433111434111435111436111437111438111439111440111441111442111443111444111445111446111447111448111449111450111451111452111453111454111455111456111457111458111459111460111461111462111463111464111465111466111467111468111469111470111471111472111473111474111475111476111477111478111479111480111481111482111483111484111485111486111487111488111489111490111491111492111493111494111495111496111497111498111499111500111501111502111503111504111505111506111507111508111509111510111511111512111513111514111515111516111517111518111519111520111521111522111523111524111525111526111527111528111529111530111531111532111533111534111535111536111537111538111539111540111541111542111543111544111545111546111547111548111549111550111551111552111553111554111555111556111557111558111559111560111561111562111563111564111565111566111567111568111569111570111571111572111573111574111575111576111577111578111579111580111581111582111583111584111585111586111587111588111589111590111591111592111593111594111595111596111597111598111599111600111601111602111603111604111605111606111607111608111609111610111611111612111613111614111615111616111617111618111619111620111621111622111623111624111625111626111627111628111629111630111631111632111633111634111635111636111637111638111639111640111641111642111643111644111645111646111647111648111649111650111651111652111653111654111655111656111657111658111659111660111661111662111663111664111665111666111667111668111669111670111671111672111673111674111675111676111677111678111679111680111681111682111683111684111685111686111687111688111689111690111691111692111693111694111695111696111697111698111699111700111701111702111703111704111705111706111707111708111709111710111711111712111713111714111715111716111717111718111719111720111721111722111723111724111725111726111727111728111729111730111731111732111733111734111735111736111737111738111739111740111741111742111743111744111745111746111747111748111749111750111751111752111753111754111755111756111757111758111759111760111761111762111763111764111765111766111767111768111769111770111771111772111773111774111775111776111777111778111779111780111781111782111783111784111785111786111787111788111789111790111791111792111793111794111795111796111797111798111799111800111801111802111803111804111805111806111807111808111809111810111811111812111813111814111815111816111817111818111819111820111821111822111823111824111825111826111827111828111829111830111831111832111833111834111835111836111837111838111839111840111841111842111843111844111845111846111847111848111849111850111851111852111853111854111855111856111857111858111859111860111861111862111863111864111865111866111867111868111869111870111871111872111873111874111875111876111877111878111879111880111881111882111883111884111885111886111887111888111889111890111891111892111893111894111895111896111897111898111899111900111901111902111903111904111905111906111907111908111909111910111911111912111913111914111915111916111917111918111919111920111921111922111923111924111925111926111927111928111929111930111931111932111933111934111935111936111937111938111939111940111941111942111943111944111945111946111947111948111949111950111951111952111953111954111955111956111957111958111959111960111961111962111963111964111965111966111967111968111969111970111971111972111973111974111975111976111977111978111979111980111981111982111983111984111985111986111987111988111989111990111991111992111993111994111995111996111997111998111999112000112001112002112003112004112005112006112007112008112009112010112011112012112013112014112015112016112017112018112019112020112021112022112023112024112025112026112027112028112029112030112031112032112033112034112035112036112037112038112039112040112041112042112043112044112045112046112047112048112049112050112051112052112053112054112055112056112057112058112059112060112061112062112063112064112065112066112067112068112069112070112071112072112073112074112075112076112077112078112079112080112081112082112083112084112085112086112087112088112089112090112091112092112093112094112095112096112097112098112099112100112101112102112103112104112105112106112107112108112109112110112111112112112113112114112115112116112117112118112119112120112121112122112123112124112125112126112127112128112129112130112131112132112133112134112135112136112137112138112139112140112141112142112143112144112145112146112147112148112149112150112151112152112153112154112155112156112157112158112159112160112161112162112163112164112165112166112167112168112169112170112171112172112173112174112175112176112177112178112179112180112181112182112183112184112185112186112187112188112189112190112191112192112193112194112195112196112197112198112199112200112201112202112203112204112205112206112207112208112209112210112211112212112213112214112215112216112217112218112219112220112221112222112223112224112225112226112227112228112229112230112231112232112233112234112235112236112237112238112239112240112241112242112243112244112245112246112247112248112249112250112251112252112253112254112255112256112257112258112259112260112261112262112263112264112265112266112267112268112269112270112271112272112273112274112275112276112277112278112279112280112281112282112283112284112285112286112287112288112289112290112291112292112293112294112295112296112297112298112299112300112301112302112303112304112305112306112307112308112309112310112311112312112313112314112315112316112317112318112319112320112321112322112323112324112325112326112327112328112329112330112331112332112333112334112335112336112337112338112339112340112341112342112343112344112345112346112347112348112349112350112351112352112353112354112355112356112357112358112359112360112361112362112363112364112365112366112367112368112369112370112371112372112373112374112375112376112377112378112379112380112381112382112383112384112385112386112387112388112389112390112391112392112393112394112395112396112397112398112399112400112401112402112403112404112405112406112407112408112409112410112411112412112413112414112415112416112417112418112419112420112421112422112423112424112425112426112427112428112429112430112431112432112433112434112435112436112437112438112439112440112441112442112443112444112445112446112447112448112449112450112451112452112453112454112455112456112457112458112459112460112461112462112463112464112465112466112467112468112469112470112471112472112473112474112475112476112477112478112479112480112481112482112483112484112485112486112487112488112489112490112491112492112493112494112495112496112497112498112499112500112501112502112503112504112505112506112507112508112509112510112511112512112513112514112515112516112517112518112519112520112521112522112523112524112525112526112527112528112529112530112531112532112533112534112535112536112537112538112539112540112541112542112543112544112545112546112547112548112549112550112551112552112553112554112555112556112557112558112559112560112561112562112563112564112565112566112567112568112569112570112571112572112573112574112575112576112577112578112579112580112581112582112583112584112585112586112587112588112589112590112591112592112593112594112595112596112597112598112599112600112601112602112603112604112605112606112607112608112609112610112611112612112613112614112615112616112617112618112619112620112621112622112623112624112625112626112627112628112629112630112631112632112633112634112635112636112637112638112639112640112641112642112643112644112645112646112647112648112649112650112651112652112653112654112655112656112657112658112659112660112661112662112663112664112665112666112667112668112669112670112671112672112673112674112675112676112677112678112679112680112681112682112683112684112685112686112687112688112689112690112691112692112693112694112695112696112697112698112699112700112701112702112703112704112705112706112707112708112709112710112711112712112713112714112715112716112717112718112719112720112721112722112723112724112725112726112727112728112729112730112731112732112733112734112735112736112737112738112739112740112741112742112743112744112745112746112747112748112749112750112751112752112753112754112755112756112757112758112759112760112761112762112763112764112765112766112767112768112769112770112771112772112773112774112775112776112777112778112779112780112781112782112783112784112785112786112787112788112789112790112791112792112793112794112795112796112797112798112799112800112801112802112803112804112805112806112807112808112809112810112811112812112813112814112815112816112817112818112819112820112821112822112823112824112825112826112827112828112829112830112831112832112833112834112835112836112837112838112839112840112841112842112843112844112845112846112847112848112849112850112851112852112853112854112855112856112857112858112859112860112861112862112863112864112865112866112867112868112869112870112871112872112873112874112875112876112877112878112879112880112881112882112883112884112885112886112887112888112889112890112891112892112893112894112895112896112897112898112899112900112901112902112903112904112905112906112907112908112909112910112911112912112913112914112915112916112917112918112919112920112921112922112923112924112925112926112927112928112929112930112931112932112933112934112935112936112937112938112939112940112941112942112943112944112945112946112947112948112949112950112951112952112953112954112955112956112957112958112959112960112961112962112963112964112965112966112967112968112969112970112971112972112973112974112975112976112977112978112979112980112981112982112983112984112985112986112987112988112989112990112991112992112993112994112995112996112997112998112999113000113001113002113003113004113005113006113007113008113009113010113011113012113013113014113015113016113017113018113019113020113021113022113023113024113025113026113027113028113029113030113031113032113033113034113035113036113037113038113039113040113041113042113043113044113045113046113047113048113049113050113051113052113053113054113055113056113057113058113059113060113061113062113063113064113065113066113067113068113069113070113071113072113073113074113075113076113077113078113079113080113081113082113083113084113085113086113087113088113089113090113091113092113093113094113095113096113097113098113099113100113101113102113103113104113105113106113107113108113109113110113111113112113113113114113115113116113117113118113119113120113121113122113123113124113125113126113127113128113129113130113131113132113133113134113135113136113137113138113139113140113141113142113143113144113145113146113147113148113149113150113151113152113153113154113155113156113157113158113159113160113161113162113163113164113165113166113167113168113169113170113171113172113173113174113175113176113177113178113179113180113181113182113183113184113185113186113187113188113189113190113191113192113193113194113195113196113197113198113199113200113201113202113203113204113205113206113207113208113209113210113211113212113213113214113215113216113217113218113219113220113221113222113223113224113225113226113227113228113229113230113231113232113233113234113235113236113237113238113239113240113241113242113243113244113245113246113247113248113249113250113251113252113253113254113255113256113257113258113259113260113261113262113263113264113265113266113267113268113269113270113271113272113273113274113275113276113277113278113279113280113281113282113283113284113285113286113287113288113289113290113291113292113293113294113295113296113297113298113299113300113301113302113303113304113305113306113307113308113309113310113311113312113313113314113315113316113317113318113319113320113321113322113323113324113325113326113327113328113329113330113331113332113333113334113335113336113337113338113339113340113341113342113343113344113345113346113347113348113349113350113351113352113353113354113355113356113357113358113359113360113361113362113363113364113365113366113367113368113369113370113371113372113373113374113375113376113377113378113379113380113381113382113383113384113385113386113387113388113389113390113391113392113393113394113395113396113397113398113399113400113401113402113403113404113405113406113407113408113409113410113411113412113413113414113415113416113417113418113419113420113421113422113423113424113425113426113427113428113429113430113431113432113433113434113435113436113437113438113439113440113441113442113443113444113445113446113447113448113449113450113451113452113453113454113455113456113457113458113459113460113461113462113463113464113465113466113467113468113469113470113471113472113473113474113475113476113477113478113479113480113481113482113483113484113485113486113487113488113489113490113491113492113493113494113495113496113497113498113499113500113501113502113503113504113505113506113507113508113509113510113511113512113513113514113515113516113517113518113519113520113521113522113523113524113525113526113527113528113529113530113531113532113533113534113535113536113537113538113539113540113541113542113543113544113545113546113547113548113549113550113551113552113553113554113555113556113557113558113559113560113561113562113563113564113565113566113567113568113569113570113571113572113573113574113575113576113577113578113579113580113581113582113583113584113585113586113587113588113589113590113591113592113593113594113595113596113597113598113599113600113601113602113603113604113605113606113607113608113609113610113611113612113613113614113615113616113617113618113619113620113621113622113623113624113625113626113627113628113629113630113631113632113633113634113635113636113637113638113639113640113641113642113643113644113645113646113647113648113649113650113651113652113653113654113655113656113657113658113659113660113661113662113663113664113665113666113667113668113669113670113671113672113673113674113675113676113677113678113679113680113681113682113683113684113685113686113687113688113689113690113691113692113693113694113695113696113697113698113699113700113701113702113703113704113705113706113707113708113709113710113711113712113713113714113715113716113717113718113719113720113721113722113723113724113725113726113727113728113729113730113731113732113733113734113735113736113737113738113739113740113741113742113743113744113745113746113747113748113749113750113751113752113753113754113755113756113757113758113759113760113761113762113763113764113765113766113767113768113769113770113771113772113773113774113775113776113777113778113779113780113781113782113783113784113785113786113787113788113789113790113791113792113793113794113795113796113797113798113799113800113801113802113803113804113805113806113807113808113809113810113811113812113813113814113815113816113817113818113819113820113821113822113823113824113825113826113827113828113829113830113831113832113833113834113835113836113837113838113839113840113841113842113843113844113845113846113847113848113849113850113851113852113853113854113855113856113857113858113859113860113861113862113863113864113865113866113867113868113869113870113871113872113873113874113875113876113877113878113879113880113881113882113883113884113885113886113887113888113889113890113891113892113893113894113895113896113897113898113899113900113901113902113903113904113905113906113907113908113909113910113911113912113913113914113915113916113917113918113919113920113921113922113923113924113925113926113927113928113929113930113931113932113933113934113935113936113937113938113939113940113941113942113943113944113945113946113947113948113949113950113951113952113953113954113955113956113957113958113959113960113961113962113963113964113965113966113967113968113969113970113971113972113973113974113975113976113977113978113979113980113981113982113983113984113985113986113987113988113989113990113991113992113993113994113995113996113997113998113999114000114001114002114003114004114005114006114007114008114009114010114011114012114013114014114015114016114017114018114019114020114021114022114023114024114025114026114027114028114029114030114031114032114033114034114035114036114037114038114039114040114041114042114043114044114045114046114047114048114049114050114051114052114053114054114055114056114057114058114059114060114061114062114063114064114065114066114067114068114069114070114071114072114073114074114075114076114077114078114079114080114081114082114083114084114085114086114087114088114089114090114091114092114093114094114095114096114097114098114099114100114101114102114103114104114105114106114107114108114109114110114111114112114113114114114115114116114117114118114119114120114121114122114123114124114125114126114127114128114129114130114131114132114133114134114135114136114137114138114139114140114141114142114143114144114145114146114147114148114149114150114151114152114153114154114155114156114157114158114159114160114161114162114163114164114165114166114167114168114169114170114171114172114173114174114175114176114177114178114179114180114181114182114183114184114185114186114187114188114189114190114191114192114193114194114195114196114197114198114199114200114201114202114203114204114205114206114207114208114209114210114211114212114213114214114215114216114217114218114219114220114221114222114223114224114225114226114227114228114229114230114231114232114233114234114235114236114237114238114239114240114241114242114243114244114245114246114247114248114249114250114251114252114253114254114255114256114257114258114259114260114261114262114263114264114265114266114267114268114269114270114271114272114273114274114275114276114277114278114279114280114281114282114283114284114285114286114287114288114289114290114291114292114293114294114295114296114297114298114299114300114301114302114303114304114305114306114307114308114309114310114311114312114313114314114315114316114317114318114319114320114321114322114323114324114325114326114327114328114329114330114331114332114333114334114335114336114337114338114339114340114341114342114343114344114345114346114347114348114349114350114351114352114353114354114355114356114357114358114359114360114361114362114363114364114365114366114367114368114369114370114371114372114373114374114375114376114377114378114379114380114381114382114383114384114385114386114387114388114389114390114391114392114393114394114395114396114397114398114399114400114401114402114403114404114405114406114407114408114409114410114411114412114413114414114415114416114417114418114419114420114421114422114423114424114425114426114427114428114429114430114431114432114433114434114435114436114437114438114439114440114441114442114443114444114445114446114447114448114449114450114451114452114453114454114455114456114457114458114459114460114461114462114463114464114465114466114467114468114469114470114471114472114473114474114475114476114477114478114479114480114481114482114483114484114485114486114487114488114489114490114491114492114493114494114495114496114497114498114499114500114501114502114503114504114505114506114507114508114509114510114511114512114513114514114515114516114517114518114519114520114521114522114523114524114525114526114527114528114529114530114531114532114533114534114535114536114537114538114539114540114541114542114543114544114545114546114547114548114549114550114551114552114553114554114555114556114557114558114559114560114561114562114563114564114565114566114567114568114569114570114571114572114573114574114575114576114577114578114579114580114581114582114583114584114585114586114587114588114589114590114591114592114593114594114595114596114597114598114599114600114601114602114603114604114605114606114607114608114609114610114611114612114613114614114615114616114617114618114619114620114621114622114623114624114625114626114627114628114629114630114631114632114633114634114635114636114637114638114639114640114641114642114643114644114645114646114647114648114649114650114651114652114653114654114655114656114657114658114659114660114661114662114663114664114665114666114667114668114669114670114671114672114673114674114675114676114677114678114679114680114681114682114683114684114685114686114687114688114689114690114691114692114693114694114695114696114697114698114699114700114701114702114703114704114705114706114707114708114709114710114711114712114713114714114715114716114717114718114719114720114721114722114723114724114725114726114727114728114729114730114731114732114733114734114735114736114737114738114739114740114741114742114743114744114745114746114747114748114749114750114751114752114753114754114755114756114757114758114759114760114761114762114763114764114765114766114767114768114769114770114771114772114773114774114775114776114777114778114779114780114781114782114783114784114785114786114787114788114789114790114791114792114793114794114795114796114797114798114799114800114801114802114803114804114805114806114807114808114809114810114811114812114813114814114815114816114817114818114819114820114821114822114823114824114825114826114827114828114829114830114831114832114833114834114835114836114837114838114839114840114841114842114843114844114845114846114847114848114849114850114851114852114853114854114855114856114857114858114859114860114861114862114863114864114865114866114867114868114869114870114871114872114873114874114875114876114877114878114879114880114881114882114883114884114885114886114887114888114889114890114891114892114893114894114895114896114897114898114899114900114901114902114903114904114905114906114907114908114909114910114911114912114913114914114915114916114917114918114919114920114921114922114923114924114925114926114927114928114929114930114931114932114933114934114935114936114937114938114939114940114941114942114943114944114945114946114947114948114949114950114951114952114953114954114955114956114957114958114959114960114961114962114963114964114965114966114967114968114969114970114971114972114973114974114975114976114977114978114979114980114981114982114983114984114985114986114987114988114989114990114991114992114993114994114995114996114997114998114999115000115001115002115003115004115005115006115007115008115009115010115011115012115013115014115015115016115017115018115019115020115021115022115023115024115025115026115027115028115029115030115031115032115033115034115035115036115037115038115039115040115041115042115043115044115045115046115047115048115049115050115051115052115053115054115055115056115057115058115059115060115061115062115063115064115065115066115067115068115069115070115071115072115073115074115075115076115077115078115079115080115081115082115083115084115085115086115087115088115089115090115091115092115093115094115095115096115097115098115099115100115101115102115103115104115105115106115107115108115109115110115111115112115113115114115115115116115117115118115119115120115121115122115123115124115125115126115127115128115129115130115131115132115133115134115135115136115137115138115139115140115141115142115143115144115145115146115147115148115149115150115151115152115153115154115155115156115157115158115159115160115161115162115163115164115165115166115167115168115169115170115171115172115173115174115175115176115177115178115179115180115181115182115183115184115185115186115187115188115189115190115191115192115193115194115195115196115197115198115199115200115201115202115203115204115205115206115207115208115209115210115211115212115213115214115215115216115217115218115219115220115221115222115223115224115225115226115227115228115229115230115231115232115233115234115235115236115237115238115239115240115241115242115243115244115245115246115247115248115249115250115251115252115253115254115255115256115257115258115259115260115261115262115263115264115265115266115267115268115269115270115271115272115273115274115275115276115277115278115279115280115281115282115283115284115285115286115287115288115289115290115291115292115293115294115295115296115297115298115299115300115301115302115303115304115305115306115307115308115309115310115311115312115313115314115315115316115317115318115319115320115321115322115323115324115325115326115327115328115329115330115331115332115333115334115335115336115337115338115339115340115341115342115343115344115345115346115347115348115349115350115351115352115353115354115355115356115357115358115359115360115361115362115363115364115365115366115367115368115369115370115371115372115373115374115375115376115377115378115379115380115381115382115383115384115385115386115387115388115389115390115391115392115393115394115395115396115397115398115399115400115401115402115403115404115405115406115407115408115409115410115411115412115413115414115415115416115417115418115419115420115421115422115423115424115425115426115427115428115429115430115431115432115433115434115435115436115437115438115439115440115441115442115443115444115445115446115447115448115449115450115451115452115453115454115455115456115457115458115459115460115461115462115463115464115465115466115467115468115469115470115471115472115473115474115475115476115477115478115479115480115481115482115483115484115485115486115487115488115489115490115491115492115493115494115495115496115497115498115499115500115501115502115503115504115505115506115507115508115509115510115511115512115513115514115515115516115517115518115519115520115521115522115523115524115525115526115527115528115529115530115531115532115533115534115535115536115537115538115539115540115541115542115543115544115545115546115547115548115549115550115551115552115553115554115555115556115557115558115559115560115561115562115563115564115565115566115567115568115569115570115571115572115573115574115575115576115577115578115579115580115581115582115583115584115585115586115587115588115589115590115591115592115593115594115595115596115597115598115599115600115601115602115603115604115605115606115607115608115609115610115611115612115613115614115615115616115617115618115619115620115621115622115623115624115625115626115627115628115629115630115631115632115633115634115635115636115637115638115639115640115641115642115643115644115645115646115647115648115649115650115651115652115653115654115655115656115657115658115659115660115661115662115663115664115665115666115667115668115669115670115671115672115673115674115675115676115677115678115679115680115681115682115683115684115685115686115687115688115689115690115691115692115693115694115695115696115697115698115699115700115701115702115703115704115705115706115707115708115709115710115711115712115713115714115715115716115717115718115719115720115721115722115723115724115725115726115727115728115729115730115731115732115733115734115735115736115737115738115739115740115741115742115743115744115745115746115747115748115749115750115751115752115753115754115755115756115757115758115759115760115761115762115763115764115765115766115767115768115769115770115771115772115773115774115775115776115777115778115779115780115781115782115783115784115785115786115787115788115789115790115791115792115793115794115795115796115797115798115799115800115801115802115803115804115805115806115807115808115809115810115811115812115813115814115815115816115817115818115819115820115821115822115823115824115825115826115827115828115829115830115831115832115833115834115835115836115837115838115839115840115841115842115843115844115845115846115847115848115849115850115851115852115853115854115855115856115857115858115859115860115861115862115863115864115865115866115867115868115869115870115871115872115873115874115875115876115877115878115879115880115881115882115883115884115885115886115887115888115889115890115891115892115893115894115895115896115897115898115899115900115901115902115903115904115905115906115907115908115909115910115911115912115913115914115915115916115917115918115919115920115921115922115923115924115925115926115927115928115929115930115931115932115933115934115935115936115937115938115939115940115941115942115943115944115945115946115947115948115949115950115951115952115953115954115955115956115957115958115959115960115961115962115963115964115965115966115967115968115969115970115971115972115973115974115975115976115977115978115979115980115981115982115983115984115985115986115987115988115989115990115991115992115993115994115995115996115997115998115999116000116001116002116003116004116005116006116007116008116009116010116011116012116013116014116015116016116017116018116019116020116021116022116023116024116025116026116027116028116029116030116031116032116033116034116035116036116037116038116039116040116041116042116043116044116045116046116047116048116049116050116051116052116053116054116055116056116057116058116059116060116061116062116063116064116065116066116067116068116069116070116071116072116073116074116075116076116077116078116079116080116081116082116083116084116085116086116087116088116089116090116091116092116093116094116095116096116097116098116099116100116101116102116103116104116105116106116107116108116109116110116111116112116113116114116115116116116117116118116119116120116121116122116123116124116125116126116127116128116129116130116131116132116133116134116135116136116137116138116139116140116141116142116143116144116145116146116147116148116149116150116151116152116153116154116155116156116157116158116159116160116161116162116163116164116165116166116167116168116169116170116171116172116173116174116175116176116177116178116179116180116181116182116183116184116185116186116187116188116189116190116191116192116193116194116195116196116197116198116199116200116201116202116203116204116205116206116207116208116209116210116211116212116213116214116215116216116217116218116219116220116221116222116223116224116225116226116227116228116229116230116231116232116233116234116235116236116237116238116239116240116241116242116243116244116245116246116247116248116249116250116251116252116253116254116255116256116257116258116259116260116261116262116263116264116265116266116267116268116269116270116271116272116273116274116275116276116277116278116279116280116281116282116283116284116285116286116287116288116289116290116291116292116293116294116295116296116297116298116299116300116301116302116303116304116305116306116307116308116309116310116311116312116313116314116315116316116317116318116319116320116321116322116323116324116325116326116327116328116329116330116331116332116333116334116335116336116337116338116339116340116341116342116343116344116345116346116347116348116349116350116351116352116353116354116355116356116357116358116359116360116361116362116363116364116365116366116367116368116369116370116371116372116373116374116375116376116377116378116379116380116381116382116383116384116385116386116387116388116389116390116391116392116393116394116395116396116397116398116399116400116401116402116403116404116405116406116407116408116409116410116411116412116413116414116415116416116417116418116419116420116421116422116423116424116425116426116427116428116429116430116431116432116433116434116435116436116437116438116439116440116441116442116443116444116445116446116447116448116449116450116451116452116453116454116455116456116457116458116459116460116461116462116463116464116465116466116467116468116469116470116471116472116473116474116475116476116477116478116479116480116481116482116483116484116485116486116487116488116489116490116491116492116493116494116495116496116497116498116499116500116501116502116503116504116505116506116507116508116509116510116511116512116513116514116515116516116517116518116519116520116521116522116523116524116525116526116527116528116529116530116531116532116533116534116535116536116537116538116539116540116541116542116543116544116545116546116547116548116549116550116551116552116553116554116555116556116557116558116559116560116561116562116563116564116565116566116567116568116569116570116571116572116573116574116575116576116577116578116579116580116581116582116583116584116585116586116587116588116589116590116591116592116593116594116595116596116597116598116599116600116601116602116603116604116605116606116607116608116609116610116611116612116613116614116615116616116617116618116619116620116621116622116623116624116625116626116627116628116629116630116631116632116633116634116635116636116637116638116639116640116641116642116643116644116645116646116647116648116649116650116651116652116653116654116655116656116657116658116659116660116661116662116663116664116665116666116667116668116669116670116671116672116673116674116675116676116677116678116679116680116681116682116683116684116685116686116687116688116689116690116691116692116693116694116695116696116697116698116699116700116701116702116703116704116705116706116707116708116709116710116711116712116713116714116715116716116717116718116719116720116721116722116723116724116725116726116727116728116729116730116731116732116733116734116735116736116737116738116739116740116741116742116743116744116745116746116747116748116749116750116751116752116753116754116755116756116757116758116759116760116761116762116763116764116765116766116767116768116769116770116771116772116773116774116775116776116777116778116779116780116781116782116783116784116785116786116787116788116789116790116791116792116793116794116795116796116797116798116799116800116801116802116803116804116805116806116807116808116809116810116811116812116813116814116815116816116817116818116819116820116821116822116823116824116825116826116827116828116829116830116831116832116833116834116835116836116837116838116839116840116841116842116843116844116845116846116847116848116849116850116851116852116853116854116855116856116857116858116859116860116861116862116863116864116865116866116867116868116869116870116871116872116873116874116875116876116877116878116879116880116881116882116883116884116885116886116887116888116889116890116891116892116893116894116895116896116897116898116899116900116901116902116903116904116905116906116907116908116909116910116911116912116913116914116915116916116917116918116919116920116921116922116923116924116925116926116927116928116929116930116931116932116933116934116935116936116937116938116939116940116941116942116943116944116945116946116947116948116949116950116951116952116953116954116955116956116957116958116959116960116961116962116963116964116965116966116967116968116969116970116971116972116973116974116975116976116977116978116979116980116981116982116983116984116985116986116987116988116989116990116991116992116993116994116995116996116997116998116999117000117001117002117003117004117005117006117007117008117009117010117011117012117013117014117015117016117017117018117019117020117021117022117023117024117025117026117027117028117029117030117031117032117033117034117035117036117037117038117039117040117041117042117043117044117045117046117047117048117049117050117051117052117053117054117055117056117057117058117059117060117061117062117063117064117065117066117067117068117069117070117071117072117073117074117075117076117077117078117079117080117081117082117083117084117085117086117087117088117089117090117091117092117093117094117095117096117097117098117099117100117101117102117103117104117105117106117107117108117109117110117111117112117113117114117115117116117117117118117119117120117121117122117123117124117125117126117127117128117129117130117131117132117133117134117135117136117137117138117139117140117141117142117143117144117145117146117147117148117149117150117151117152117153117154117155117156117157117158117159117160117161117162117163117164117165117166117167117168117169117170117171117172117173117174117175117176117177117178117179117180117181117182117183117184117185117186117187117188117189117190117191117192117193117194117195117196117197117198117199117200117201117202117203117204117205117206117207117208117209117210117211117212117213117214117215117216117217117218117219117220117221117222117223117224117225117226117227117228117229117230117231117232117233117234117235117236117237117238117239117240117241117242117243117244117245117246117247117248117249117250117251117252117253117254117255117256117257117258117259117260117261117262117263117264117265117266117267117268117269117270117271117272117273117274117275117276117277117278117279117280117281117282117283117284117285117286117287117288117289117290117291117292117293117294117295117296117297117298117299117300117301117302117303117304117305117306117307117308117309117310117311117312117313117314117315117316117317117318117319117320117321117322117323117324117325117326117327117328117329117330117331117332117333117334117335117336117337117338117339117340117341117342117343117344117345117346117347117348117349117350117351117352117353117354117355117356117357117358117359117360117361117362117363117364117365117366117367117368117369117370117371117372117373117374117375117376117377117378117379117380117381117382117383117384117385117386117387117388117389117390117391117392117393117394117395117396117397117398117399117400117401117402117403117404117405117406117407117408117409117410117411117412117413117414117415117416117417117418117419117420117421117422117423117424117425117426117427117428117429117430117431117432117433117434117435117436117437117438117439117440117441117442117443117444117445117446117447117448117449117450117451117452117453117454117455117456117457117458117459117460117461117462117463117464117465117466117467117468117469117470117471117472117473117474117475117476117477117478117479117480117481117482117483117484117485117486117487117488117489117490117491117492117493117494117495117496117497117498117499117500117501117502117503117504117505117506117507117508117509117510117511117512117513117514117515117516117517117518117519117520117521117522117523117524117525117526117527117528117529117530117531117532117533117534117535117536117537117538117539117540117541117542117543117544117545117546117547117548117549117550117551117552117553117554117555117556117557117558117559117560117561117562117563117564117565117566117567117568117569117570117571117572117573117574117575117576117577117578117579117580117581117582117583117584117585117586117587117588117589117590117591117592117593117594117595117596117597117598117599117600117601117602117603117604117605117606117607117608117609117610117611117612117613117614117615117616117617117618117619117620117621117622117623117624117625117626117627117628117629117630117631117632117633117634117635117636117637117638117639117640117641117642117643117644117645117646117647117648117649117650117651117652117653117654117655117656117657117658117659117660117661117662117663117664117665117666117667117668117669117670117671117672117673117674117675117676117677117678117679117680117681117682117683117684117685117686117687117688117689117690117691117692117693117694117695117696117697117698117699117700117701117702117703117704117705117706117707117708117709117710117711117712117713117714117715117716117717117718117719117720117721117722117723117724117725117726117727117728117729117730117731117732117733117734117735117736117737117738117739117740117741117742117743117744117745117746117747117748117749117750117751117752117753117754117755117756117757117758117759117760117761117762117763117764117765117766117767117768117769117770117771117772117773117774117775117776117777117778117779117780117781117782117783117784117785117786117787117788117789117790117791117792117793117794117795117796117797117798117799117800117801117802117803117804117805117806117807117808117809117810117811117812117813117814117815117816117817117818117819117820117821117822117823117824117825117826117827117828117829117830117831117832117833117834117835117836117837117838117839117840117841117842117843117844117845117846117847117848117849117850117851117852117853117854117855117856117857117858117859117860117861117862117863117864117865117866117867117868117869117870117871117872117873117874117875117876117877117878117879117880117881117882117883117884117885117886117887117888117889117890117891117892117893117894117895117896117897117898117899117900117901117902117903117904117905117906117907117908117909117910117911117912117913117914117915117916117917117918117919117920117921117922117923117924117925117926117927117928117929117930117931117932117933117934117935117936117937117938117939117940117941117942117943117944117945117946117947117948117949117950117951117952117953117954117955117956117957117958117959117960117961117962117963117964117965117966117967117968117969117970117971117972117973117974117975117976117977117978117979117980117981117982117983117984117985117986117987117988117989117990117991117992117993117994117995117996117997117998117999118000118001118002118003118004118005118006118007118008118009118010118011118012118013118014118015118016118017118018118019118020118021118022118023118024118025118026118027118028118029118030118031118032118033118034118035118036118037118038118039118040118041118042118043118044118045118046118047118048118049118050118051118052118053118054118055118056118057118058118059118060118061118062118063118064118065118066118067118068118069118070118071118072118073118074118075118076118077118078118079118080118081118082118083118084118085118086118087118088118089118090118091118092118093118094118095118096118097118098118099118100118101118102118103118104118105118106118107118108118109118110118111118112118113118114118115118116118117118118118119118120118121118122118123118124118125118126118127118128118129118130118131118132118133118134118135118136118137118138118139118140118141118142118143118144118145118146118147118148118149118150118151118152118153118154118155118156118157118158118159118160118161118162118163118164118165118166118167118168118169118170118171118172118173118174118175118176118177118178118179118180118181118182118183118184118185118186118187118188118189118190118191118192118193118194118195118196118197118198118199118200118201118202118203118204118205118206118207118208118209118210118211118212118213118214118215118216118217118218118219118220118221118222118223118224118225118226118227118228118229118230118231118232118233118234118235118236118237118238118239118240118241118242118243118244118245118246118247118248118249118250118251118252118253118254118255118256118257118258118259118260118261118262118263118264118265118266118267118268118269118270118271118272118273118274118275118276118277118278118279118280118281118282118283118284118285118286118287118288118289118290118291118292118293118294118295118296118297118298118299118300118301118302118303118304118305118306118307118308118309118310118311118312118313118314118315118316118317118318118319118320118321118322118323118324118325118326118327118328118329118330118331118332118333118334118335118336118337118338118339118340118341118342118343118344118345118346118347118348118349118350118351118352118353118354118355118356118357118358118359118360118361118362118363118364118365118366118367118368118369118370118371118372118373118374118375118376118377118378118379118380118381118382118383118384118385118386118387118388118389118390118391118392118393118394118395118396118397118398118399118400118401118402118403118404118405118406118407118408118409118410118411118412118413118414118415118416118417118418118419118420118421118422118423118424118425118426118427118428118429118430118431118432118433118434118435118436118437118438118439118440118441118442118443118444118445118446118447118448118449118450118451118452118453118454118455118456118457118458118459118460118461118462118463118464118465118466118467118468118469118470118471118472118473118474118475118476118477118478118479118480118481118482118483118484118485118486118487118488118489118490118491118492118493118494118495118496118497118498118499118500118501118502118503118504118505118506118507118508118509118510118511118512118513118514118515118516118517118518118519118520118521118522118523118524118525118526118527118528118529118530118531118532118533118534118535118536118537118538118539118540118541118542118543118544118545118546118547118548118549118550118551118552118553118554118555118556118557118558118559118560118561118562118563118564118565118566118567118568118569118570118571118572118573118574118575118576118577118578118579118580118581118582118583118584118585118586118587118588118589118590118591118592118593118594118595118596118597118598118599118600118601118602118603118604118605118606118607118608118609118610118611118612118613118614118615118616118617118618118619118620118621118622118623118624118625118626118627118628118629118630118631118632118633118634118635118636118637118638118639118640118641118642118643118644118645118646118647118648118649118650118651118652118653118654118655118656118657118658118659118660118661118662118663118664118665118666118667118668118669118670118671118672118673118674118675118676118677118678118679118680118681118682118683118684118685118686118687118688118689118690118691118692118693118694118695118696118697118698118699118700118701118702118703118704118705118706118707118708118709118710118711118712118713118714118715118716118717118718118719118720118721118722118723118724118725118726118727118728118729118730118731118732118733118734118735118736118737118738118739118740118741118742118743118744118745118746118747118748118749118750118751118752118753118754118755118756118757118758118759118760118761118762118763118764118765118766118767118768118769118770118771118772118773118774118775118776118777118778118779118780118781118782118783118784118785118786118787118788118789118790118791118792118793118794118795118796118797118798118799118800118801118802118803118804118805118806118807118808118809118810118811118812118813118814118815118816118817118818118819118820118821118822118823118824118825118826118827118828118829118830118831118832118833118834118835118836118837118838118839118840118841118842118843118844118845118846118847118848118849118850118851118852118853118854118855118856118857118858118859118860118861118862118863118864118865118866118867118868118869118870118871118872118873118874118875118876118877118878118879118880118881118882118883118884118885118886118887118888118889118890118891118892118893118894118895118896118897118898118899118900118901118902118903118904118905118906118907118908118909118910118911118912118913118914118915118916118917118918118919118920118921118922118923118924118925118926118927118928118929118930118931118932118933118934118935118936118937118938118939118940118941118942118943118944118945118946118947118948118949118950118951118952118953118954118955118956118957118958118959118960118961118962118963118964118965118966118967118968118969118970118971118972118973118974118975118976118977118978118979118980118981118982118983118984118985118986118987118988118989118990118991118992118993118994118995118996118997118998118999119000119001119002119003119004119005119006119007119008119009119010119011119012119013119014119015119016119017119018119019119020119021119022119023119024119025119026119027119028119029119030119031119032119033119034119035119036119037119038119039119040119041119042119043119044119045119046119047119048119049119050119051119052119053119054119055119056119057119058119059119060119061119062119063119064119065119066119067119068119069119070119071119072119073119074119075119076119077119078119079119080119081119082119083119084119085119086119087119088119089119090119091119092119093119094119095119096119097119098119099119100119101119102119103119104119105119106119107119108119109119110119111119112119113119114119115119116119117119118119119119120119121119122119123119124119125119126119127119128119129119130119131119132119133119134119135119136119137119138119139119140119141119142119143119144119145119146119147119148119149119150119151119152119153119154119155119156119157119158119159119160119161119162119163119164119165119166119167119168119169119170119171119172119173119174119175119176119177119178119179119180119181119182119183119184119185119186119187119188119189119190119191119192119193119194119195119196119197119198119199119200119201119202119203119204119205119206119207119208119209119210119211119212119213119214119215119216119217119218119219119220119221119222119223119224119225119226119227119228119229119230119231119232119233119234119235119236119237119238119239119240119241119242119243119244119245119246119247119248119249119250119251119252119253119254119255119256119257119258119259119260119261119262119263119264119265119266119267119268119269119270119271119272119273119274119275119276119277119278119279119280119281119282119283119284119285119286119287119288119289119290119291119292119293119294119295119296119297119298119299119300119301119302119303119304119305119306119307119308119309119310119311119312119313119314119315119316119317119318119319119320119321119322119323119324119325119326119327119328119329119330119331119332119333119334119335119336119337119338119339119340119341119342119343119344119345119346119347119348119349119350119351119352119353119354119355119356119357119358119359119360119361119362119363119364119365119366119367119368119369119370119371119372119373119374119375119376119377119378119379119380119381119382119383119384119385119386119387119388119389119390119391119392119393119394119395119396119397119398119399119400119401119402119403119404119405119406119407119408119409119410119411119412119413119414119415119416119417119418119419119420119421119422119423119424119425119426119427119428119429119430119431119432119433119434119435119436119437119438119439119440119441119442119443119444119445119446119447119448119449119450119451119452119453119454119455119456119457119458119459119460119461119462119463119464119465119466119467119468119469119470119471119472119473119474119475119476119477119478119479119480119481119482119483119484119485119486119487119488119489119490119491119492119493119494119495119496119497119498119499119500119501119502119503119504119505119506119507119508119509119510119511119512119513119514119515119516119517119518119519119520119521119522119523119524119525119526119527119528119529119530119531119532119533119534119535119536119537119538119539119540119541119542119543119544119545119546119547119548119549119550119551119552119553119554119555119556119557119558119559119560119561119562119563119564119565119566119567119568119569119570119571119572119573119574119575119576119577119578119579119580119581119582119583119584119585119586119587119588119589119590119591119592119593119594119595119596119597119598119599119600119601119602119603119604119605119606119607119608119609119610119611119612119613119614119615119616119617119618119619119620119621119622119623119624119625119626119627119628119629119630119631119632119633119634119635119636119637119638119639119640119641119642119643119644119645119646119647119648119649119650119651119652119653119654119655119656119657119658119659119660119661119662119663119664119665119666119667119668119669119670119671119672119673119674119675119676119677119678119679119680119681119682119683119684119685119686119687119688119689119690119691119692119693119694119695119696119697119698119699119700119701119702119703119704119705119706119707119708119709119710119711119712119713119714119715119716119717119718119719119720119721119722119723119724119725119726119727119728119729119730119731119732119733119734119735119736119737119738119739119740119741119742119743119744119745119746119747119748119749119750119751119752119753119754119755119756119757119758119759119760119761119762119763119764119765119766119767119768119769119770119771119772119773119774119775119776119777119778119779119780119781119782119783119784119785119786119787119788119789119790119791119792119793119794119795119796119797119798119799119800119801119802119803119804119805119806119807119808119809119810119811119812119813119814119815119816119817119818119819119820119821119822119823119824119825119826119827119828119829119830119831119832119833119834119835119836119837119838119839119840119841119842119843119844119845119846119847119848119849119850119851119852119853119854119855119856119857119858119859119860119861119862119863119864119865119866119867119868119869119870119871119872119873119874119875119876119877119878119879119880119881119882119883119884119885119886119887119888119889119890119891119892119893119894119895119896119897119898119899119900119901119902119903119904119905119906119907119908119909119910119911119912119913119914119915119916119917119918119919119920119921119922119923119924119925119926119927119928119929119930119931119932119933119934119935119936119937119938119939119940119941119942119943119944119945119946119947119948119949119950119951119952119953119954119955119956119957119958119959119960119961119962119963119964119965119966119967119968119969119970119971119972119973119974119975119976119977119978119979119980119981119982119983119984119985119986119987119988119989119990119991119992119993119994119995119996119997119998119999120000120001120002120003120004120005120006120007120008120009120010120011120012120013120014120015120016120017120018120019120020120021120022120023120024120025120026120027120028120029120030120031120032120033120034120035120036120037120038120039120040120041120042120043120044120045120046120047120048120049120050120051120052120053120054120055120056120057120058120059120060120061120062120063120064120065120066120067120068120069120070120071120072120073120074120075120076120077120078120079120080120081120082120083120084120085120086120087120088120089120090120091120092120093120094120095120096120097120098120099120100120101120102120103120104120105120106120107120108120109120110120111120112120113120114120115120116120117120118120119120120120121120122120123120124120125120126120127120128120129120130120131120132120133120134120135120136120137120138120139120140120141120142120143120144120145120146120147120148120149120150120151120152120153120154120155120156120157120158120159120160120161120162120163120164120165120166120167120168120169120170120171120172120173120174120175120176120177120178120179120180120181120182120183120184120185120186120187120188120189120190120191120192120193120194120195120196120197120198120199120200120201120202120203120204120205120206120207120208120209120210120211120212120213120214120215120216120217120218120219120220120221120222120223120224120225120226120227120228120229120230120231120232120233120234120235120236120237120238120239120240120241120242120243120244120245120246120247120248120249120250120251120252120253120254120255120256120257120258120259120260120261120262120263120264120265120266120267120268120269120270120271120272120273120274120275120276120277120278120279120280120281120282120283120284120285120286120287120288120289120290120291120292120293120294120295120296120297120298120299120300120301120302120303120304120305120306120307120308120309120310120311120312120313120314120315120316120317120318120319120320120321120322120323120324120325120326120327120328120329120330120331120332120333120334120335120336120337120338120339120340120341120342120343120344120345120346120347120348120349120350120351120352120353120354120355120356120357120358120359120360120361120362120363120364120365120366120367120368120369120370120371120372120373120374120375120376120377120378120379120380120381120382120383120384120385120386120387120388120389120390120391120392120393120394120395120396120397120398120399120400120401120402120403120404120405120406120407120408120409120410120411120412120413120414120415120416120417120418120419120420120421120422120423120424120425120426120427120428120429120430120431120432120433120434120435120436120437120438120439120440120441120442120443120444120445120446120447120448120449120450120451120452120453120454120455120456120457120458120459120460120461120462120463120464120465120466120467120468120469120470120471120472120473120474120475120476120477120478120479120480120481120482120483120484120485120486120487120488120489120490120491120492120493120494120495120496120497120498120499120500120501120502120503120504120505120506120507120508120509120510120511120512120513120514120515120516120517120518120519120520120521120522120523120524120525120526120527120528120529120530120531120532120533120534120535120536120537120538120539120540120541120542120543120544120545120546120547120548120549120550120551120552120553120554120555120556120557120558120559120560120561120562120563120564120565120566120567120568120569120570120571120572120573120574120575120576120577120578120579120580120581120582120583120584120585120586120587120588120589120590120591120592120593120594120595120596120597120598120599120600120601120602120603120604120605120606120607120608120609120610120611120612120613120614120615120616120617120618120619120620120621120622120623120624120625120626120627120628120629120630120631120632120633120634120635120636120637120638120639120640120641120642120643120644120645120646120647120648120649120650120651120652120653120654120655120656120657120658120659120660120661120662120663120664120665120666120667120668120669120670120671120672120673120674120675120676120677120678120679120680120681120682120683120684120685120686120687120688120689120690120691120692120693120694120695120696120697120698120699120700120701120702120703120704120705120706120707120708120709120710120711120712120713120714120715120716120717120718120719120720120721120722120723120724120725120726120727120728120729120730120731120732120733120734120735120736120737120738120739120740120741120742120743120744120745120746120747120748120749120750120751120752120753120754120755120756120757120758120759120760120761120762120763120764120765120766120767120768120769120770120771120772120773120774120775120776120777120778120779120780120781120782120783120784120785120786120787120788120789120790120791120792120793120794120795120796120797120798120799120800120801120802120803120804120805120806120807120808120809120810120811120812120813120814120815120816120817120818120819120820120821120822120823120824120825120826120827120828120829120830120831120832120833120834120835120836120837120838120839120840120841120842120843120844120845120846120847120848120849120850120851120852120853120854120855120856120857120858120859120860120861120862120863120864120865120866120867120868120869120870120871120872120873120874120875120876120877120878120879120880120881120882120883120884120885120886120887120888120889120890120891120892120893120894120895120896120897120898120899120900120901120902120903120904120905120906120907120908120909120910120911120912120913120914120915120916120917120918120919120920120921120922120923120924120925120926120927120928120929120930120931120932120933120934120935120936120937120938120939120940120941120942120943120944120945120946120947120948120949120950120951120952120953120954120955120956120957120958120959120960120961120962120963120964120965120966120967120968120969120970120971120972120973120974120975120976120977120978120979120980120981120982120983120984120985120986120987120988120989120990120991120992120993120994120995120996120997120998120999121000121001121002121003121004121005121006121007121008121009121010121011121012121013121014121015121016121017121018121019121020121021121022121023121024121025121026121027121028121029121030121031121032121033121034121035121036121037121038121039121040121041121042121043121044121045121046121047121048121049121050121051121052121053121054121055121056121057121058121059121060121061121062121063121064121065121066121067121068121069121070121071121072121073121074121075121076121077121078121079121080121081121082121083121084121085121086121087121088121089121090121091121092121093121094121095121096121097121098121099121100121101121102121103121104121105121106121107121108121109121110121111121112121113121114121115121116121117121118121119121120121121121122121123121124121125121126121127121128121129121130121131121132121133121134121135121136121137121138121139121140121141121142121143121144121145121146121147121148121149121150121151121152121153121154121155121156121157121158121159121160121161121162121163121164121165121166121167121168121169121170121171121172121173121174121175121176121177121178121179121180121181121182121183121184121185121186121187121188121189121190121191121192121193121194121195121196121197121198121199121200121201121202121203121204121205121206121207121208121209121210121211121212121213121214121215121216121217121218121219121220121221121222121223121224121225121226121227121228121229121230121231121232121233121234121235121236121237121238121239121240121241121242121243121244121245121246121247121248121249121250121251121252121253121254121255121256121257121258121259121260121261121262121263121264121265121266121267121268121269121270121271121272121273121274121275121276121277121278121279121280121281121282121283121284121285121286121287121288121289121290121291121292121293121294121295121296121297121298121299121300121301121302121303121304121305121306121307121308121309121310121311121312121313121314121315121316121317121318121319121320121321121322121323121324121325121326121327121328121329121330121331121332121333121334121335121336121337121338121339121340121341121342121343121344121345121346121347121348121349121350121351121352121353121354121355121356121357121358121359121360121361121362121363121364121365121366121367121368121369121370121371121372121373121374121375121376121377121378121379121380121381121382121383121384121385121386121387121388121389121390121391121392121393121394121395121396121397121398121399121400121401121402121403121404121405121406121407121408121409121410121411121412121413121414121415121416121417121418121419121420121421121422121423121424121425121426121427121428121429121430121431121432121433121434121435121436121437121438121439121440121441121442121443121444121445121446121447121448121449121450121451121452121453121454121455121456121457121458121459121460121461121462121463121464121465121466121467121468121469121470121471121472121473121474121475121476121477121478121479121480121481121482121483121484121485121486121487121488121489121490121491121492121493121494121495121496121497121498121499121500121501121502121503121504121505121506121507121508121509121510121511121512121513121514121515121516121517121518121519121520121521121522121523121524121525121526121527121528121529121530121531121532121533121534121535121536121537121538121539121540121541121542121543121544121545121546121547121548121549121550121551121552121553121554121555121556121557121558121559121560121561121562121563121564121565121566121567121568121569121570121571121572121573121574121575121576121577121578121579121580121581121582121583121584121585121586121587121588121589121590121591121592121593121594121595121596121597121598121599121600121601121602121603121604121605121606121607121608121609121610121611121612121613121614121615121616121617121618121619121620121621121622121623121624121625121626121627121628121629121630121631121632121633121634121635121636121637121638121639121640121641121642121643121644121645121646121647121648121649121650121651121652121653121654121655121656121657121658121659121660121661121662121663121664121665121666121667121668121669121670121671121672121673121674121675121676121677121678121679121680121681121682121683121684121685121686121687121688121689121690121691121692121693121694121695121696121697121698121699121700121701121702121703121704121705121706121707121708121709121710121711121712121713121714121715121716121717121718121719121720121721121722121723121724121725121726121727121728121729121730121731121732121733121734121735121736121737121738121739121740121741121742121743121744121745121746121747121748121749121750121751121752121753121754121755121756121757121758121759121760121761121762121763121764121765121766121767121768121769121770121771121772121773121774121775121776121777121778121779121780121781121782121783121784121785121786121787121788121789121790121791121792121793121794121795121796121797121798121799121800121801121802121803121804121805121806121807121808121809121810121811121812121813121814121815121816121817121818121819121820121821121822121823121824121825121826121827121828121829121830121831121832121833121834121835121836121837121838121839121840121841121842121843121844121845121846121847121848121849121850121851121852121853121854121855121856121857121858121859121860121861121862121863121864121865121866121867121868121869121870121871121872121873121874121875121876121877121878121879121880121881121882121883121884121885121886121887121888121889121890121891121892121893121894121895121896121897121898121899121900121901121902121903121904121905121906121907121908121909121910121911121912121913121914121915121916121917121918121919121920121921121922121923121924121925121926121927121928121929121930121931121932121933121934121935121936121937121938121939121940121941121942121943121944121945121946121947121948121949121950121951121952121953121954121955121956121957121958121959121960121961121962121963121964121965121966121967121968121969121970121971121972121973121974121975121976121977121978121979121980121981121982121983121984121985121986121987121988121989121990121991121992121993121994121995121996121997121998121999122000122001122002122003122004122005122006122007122008122009122010122011122012122013122014122015122016122017122018122019122020122021122022122023122024122025122026122027122028122029122030122031122032122033122034122035122036122037122038122039122040122041122042122043122044122045122046122047122048122049122050122051122052122053122054122055122056122057122058122059122060122061122062122063122064122065122066122067122068122069122070122071122072122073122074122075122076122077122078122079122080122081122082122083122084122085122086122087122088122089122090122091122092122093122094122095122096122097122098122099122100122101122102122103122104122105122106122107122108122109122110122111122112122113122114122115122116122117122118122119122120122121122122122123122124122125122126122127122128122129122130122131122132122133122134122135122136122137122138122139122140122141122142122143122144122145122146122147122148122149122150122151122152122153122154122155122156122157122158122159122160122161122162122163122164122165122166122167122168122169122170122171122172122173122174122175122176122177122178122179122180122181122182122183122184122185122186122187122188122189122190122191122192122193122194122195122196122197122198122199122200122201122202122203122204122205122206122207122208122209122210122211122212122213122214122215122216122217122218122219122220122221122222122223122224122225122226122227122228122229122230122231122232122233122234122235122236122237122238122239122240122241122242122243122244122245122246122247122248122249122250122251122252122253122254122255122256122257122258122259122260122261122262122263122264122265122266122267122268122269122270122271122272122273122274122275122276122277122278122279122280122281122282122283122284122285122286122287122288122289122290122291122292122293122294122295122296122297122298122299122300122301122302122303122304122305122306122307122308122309122310122311122312122313122314122315122316122317122318122319122320122321122322122323122324122325122326122327122328122329122330122331122332122333122334122335122336122337122338122339122340122341122342122343122344122345122346122347122348122349122350122351122352122353122354122355122356122357122358122359122360122361122362122363122364122365122366122367122368122369122370122371122372122373122374122375122376122377122378122379122380122381122382122383122384122385122386122387122388122389122390122391122392122393122394122395122396122397122398122399122400122401122402122403122404122405122406122407122408122409122410122411122412122413122414122415122416122417122418122419122420122421122422122423122424122425122426122427122428122429122430122431122432122433122434122435122436122437122438122439122440122441122442122443122444122445122446122447122448122449122450122451122452122453122454122455122456122457122458122459122460122461122462122463122464122465122466122467122468122469122470122471122472122473122474122475122476122477122478122479122480122481122482122483122484122485122486122487122488122489122490122491122492122493122494122495122496122497122498122499122500122501122502122503122504122505122506122507122508122509122510122511122512122513122514122515122516122517122518122519122520122521122522122523122524122525122526122527122528122529122530122531122532122533122534122535122536122537122538122539122540122541122542122543122544122545122546122547122548122549122550122551122552122553122554122555122556122557122558122559122560122561122562122563122564122565122566122567122568122569122570122571122572122573122574122575122576122577122578122579122580122581122582122583122584122585122586122587122588122589122590122591122592122593122594122595122596122597122598122599122600122601122602122603122604122605122606122607122608122609122610122611122612122613122614122615122616122617122618122619122620122621122622122623122624122625122626122627122628122629122630122631122632122633122634122635122636122637122638122639122640122641122642122643122644122645122646122647122648122649122650122651122652122653122654122655122656122657122658122659122660122661122662122663122664122665122666122667122668122669122670122671122672122673122674122675122676122677122678122679122680122681122682122683122684122685122686122687122688122689122690122691122692122693122694122695122696122697122698122699122700122701122702122703122704122705122706122707122708122709122710122711122712122713122714122715122716122717122718122719122720122721122722122723122724122725122726122727122728122729122730122731122732122733122734122735122736122737122738122739122740122741122742122743122744122745122746122747122748122749122750122751122752122753122754122755122756122757122758122759122760122761122762122763122764122765122766122767122768122769122770122771122772122773122774122775122776122777122778122779122780122781122782122783122784122785122786122787122788122789122790122791122792122793122794122795122796122797122798122799122800122801122802122803122804122805122806122807122808122809122810122811122812122813122814122815122816122817122818122819122820122821122822122823122824122825122826122827122828122829122830122831122832122833122834122835122836122837122838122839122840122841122842122843122844122845122846122847122848122849122850122851122852122853122854122855122856122857122858122859122860122861122862122863122864122865122866122867122868122869122870122871122872122873122874122875122876122877122878122879122880122881122882122883122884122885122886122887122888122889122890122891122892122893122894122895122896122897122898122899122900122901122902122903122904122905122906122907122908122909122910122911122912122913122914122915122916122917122918122919122920122921122922122923122924122925122926122927122928122929122930122931122932122933122934122935122936122937122938122939122940122941122942122943122944122945122946122947122948122949122950122951122952122953122954122955122956122957122958122959122960122961122962122963122964122965122966122967122968122969122970122971122972122973122974122975122976122977122978122979122980122981122982122983122984122985122986122987122988122989122990122991122992122993122994122995122996122997122998122999123000123001123002123003123004123005123006123007123008123009123010123011123012123013123014123015123016123017123018123019123020123021123022123023123024123025123026123027123028123029123030123031123032123033123034123035123036123037123038123039123040123041123042123043123044123045123046123047123048123049123050123051123052123053123054123055123056123057123058123059123060123061123062123063123064123065123066123067123068123069123070123071123072123073123074123075123076123077123078123079123080123081123082123083123084123085123086123087123088123089123090123091123092123093123094123095123096123097123098123099123100123101123102123103123104123105123106123107123108123109123110123111123112123113123114123115123116123117123118123119123120123121123122123123123124123125123126123127123128123129123130123131123132123133123134123135123136123137123138123139123140123141123142123143123144123145123146123147123148123149123150123151123152123153123154123155123156123157123158123159123160123161123162123163123164123165123166123167123168123169123170123171123172123173123174123175123176123177123178123179123180123181123182123183123184123185123186123187123188123189123190123191123192123193123194123195123196123197123198123199123200123201123202123203123204123205123206123207123208123209123210123211123212123213123214123215123216123217123218123219123220123221123222123223123224123225123226123227123228123229123230123231123232123233123234123235123236123237123238123239123240123241123242123243123244123245123246123247123248123249123250123251123252123253123254123255123256123257123258123259123260123261123262123263123264123265123266123267123268123269123270123271123272123273123274123275123276123277123278123279123280123281123282123283123284123285123286123287123288123289123290123291123292123293123294123295123296123297123298123299123300123301123302123303123304123305123306123307123308123309123310123311123312123313123314123315123316123317123318123319123320123321123322123323123324123325123326123327123328123329123330123331123332123333123334123335123336123337123338123339123340123341123342123343123344123345123346123347123348123349123350123351123352123353123354123355123356123357123358123359123360123361123362123363123364123365123366123367123368123369123370123371123372123373123374123375123376123377123378123379123380123381123382123383123384123385123386123387123388123389123390123391123392123393123394123395123396123397123398123399123400123401123402123403123404123405123406123407123408123409123410123411123412123413123414123415123416123417123418123419123420123421123422123423123424123425123426123427123428123429123430123431123432123433123434123435123436123437123438123439123440123441123442123443123444123445123446123447123448123449123450123451123452123453123454123455123456123457123458123459123460123461123462123463123464123465123466123467123468123469123470123471123472123473123474123475123476123477123478123479123480123481123482123483123484123485123486123487123488123489123490123491123492123493123494123495123496123497123498123499123500123501123502123503123504123505123506123507123508123509123510123511123512123513123514123515123516123517123518123519123520123521123522123523123524123525123526123527123528123529123530123531123532123533123534123535123536123537123538123539123540123541123542123543123544123545123546123547123548123549123550123551123552123553123554123555123556123557123558123559123560123561123562123563123564123565123566123567123568123569123570123571123572123573123574123575123576123577123578123579123580123581123582123583123584123585123586123587123588123589123590123591123592123593123594123595123596123597123598123599123600123601123602123603123604123605123606123607123608123609123610123611123612123613123614123615123616123617123618123619123620123621123622123623123624123625123626123627123628123629123630123631123632123633123634123635123636123637123638123639123640123641123642123643123644123645123646123647123648123649123650123651123652123653123654123655123656123657123658123659123660123661123662123663123664123665123666123667123668123669123670123671123672123673123674123675123676123677123678123679123680123681123682123683123684123685123686123687123688123689123690123691123692123693123694123695123696123697123698123699123700123701123702123703123704123705123706123707123708123709123710123711123712123713123714123715123716123717123718123719123720123721123722123723123724123725123726123727123728123729123730123731123732123733123734123735123736123737123738123739123740123741123742123743123744123745123746123747123748123749123750123751123752123753123754123755123756123757123758123759123760123761123762123763123764123765123766123767123768123769123770123771123772123773123774123775123776123777123778123779123780123781123782123783123784123785123786123787123788123789123790123791123792123793123794123795123796123797123798123799123800123801123802123803123804123805123806123807123808123809123810123811123812123813123814123815123816123817123818123819123820123821123822123823123824123825123826123827123828123829123830123831123832123833123834123835123836123837123838123839123840123841123842123843123844123845123846123847123848123849123850123851123852123853123854123855123856123857123858123859123860123861123862123863123864123865123866123867123868123869123870123871123872123873123874123875123876123877123878123879123880123881123882123883123884123885123886123887123888123889123890123891123892123893123894123895123896123897123898123899123900123901123902123903123904123905123906123907123908123909123910123911123912123913123914123915123916123917123918123919123920123921123922123923123924123925123926123927123928123929123930123931123932123933123934123935123936123937123938123939123940123941123942123943123944123945123946123947123948123949123950123951123952123953123954123955123956123957123958123959123960123961123962123963123964123965123966123967123968123969123970123971123972123973123974123975123976123977123978123979123980123981123982123983123984123985123986123987123988123989123990123991123992123993123994123995123996123997123998123999124000124001124002124003124004124005124006124007124008124009124010124011124012124013124014124015124016124017124018124019124020124021124022124023124024124025124026124027124028124029124030124031124032124033124034124035124036124037124038124039124040124041124042124043124044124045124046124047124048124049124050124051124052124053124054124055124056124057124058124059124060124061124062124063124064124065124066124067124068124069124070124071124072124073124074124075124076124077124078124079124080124081124082124083124084124085124086124087124088124089124090124091124092124093124094124095124096124097124098124099124100124101124102124103124104124105124106124107124108124109124110124111124112124113124114124115124116124117124118124119124120124121124122124123124124124125124126124127124128124129124130124131124132124133124134124135124136124137124138124139124140124141124142124143124144124145124146124147124148124149124150124151124152124153124154124155124156124157124158124159124160124161124162124163124164124165124166124167124168124169124170124171124172124173124174124175124176124177124178124179124180124181124182124183124184124185124186124187124188124189124190124191124192124193124194124195124196124197124198124199124200124201124202124203124204124205124206124207124208124209124210124211124212124213124214124215124216124217124218124219124220124221124222124223124224124225124226124227124228124229124230124231124232124233124234124235124236124237124238124239124240124241124242124243124244124245124246124247124248124249124250124251124252124253124254124255124256124257124258124259124260124261124262124263124264124265124266124267124268124269124270124271124272124273124274124275124276124277124278124279124280124281124282124283124284124285124286124287124288124289124290124291124292124293124294124295124296124297124298124299124300124301124302124303124304124305124306124307124308124309124310124311124312124313124314124315124316124317124318124319124320124321124322124323124324124325124326124327124328124329124330124331124332124333124334124335124336124337124338124339124340124341124342124343124344124345124346124347124348124349124350124351124352124353124354124355124356124357124358124359124360124361124362124363124364124365124366124367124368124369124370124371124372124373124374124375124376124377124378124379124380124381124382124383124384124385124386124387124388124389124390124391124392124393124394124395124396124397124398124399124400124401124402124403124404124405124406124407124408124409124410124411124412124413124414124415124416124417124418124419124420124421124422124423124424124425124426124427124428124429124430124431124432124433124434124435124436124437124438124439124440124441124442124443124444124445124446124447124448124449124450124451124452124453124454124455124456124457124458124459124460124461124462124463124464124465124466124467124468124469124470124471124472124473124474124475124476124477124478124479124480124481124482124483124484124485124486124487124488124489124490124491124492124493124494124495124496124497124498124499124500124501124502124503124504124505124506124507124508124509124510124511124512124513124514124515124516124517124518124519124520124521124522124523124524124525124526124527124528124529124530124531124532124533124534124535124536124537124538124539124540124541124542124543124544124545124546124547124548124549124550124551124552124553124554124555124556124557124558124559124560124561124562124563124564124565124566124567124568124569124570124571124572124573124574124575124576124577124578124579124580124581124582124583124584124585124586124587124588124589124590124591124592124593124594124595124596124597124598124599124600124601124602124603124604124605124606124607124608124609124610124611124612124613124614124615124616124617124618124619124620124621124622124623124624124625124626124627124628124629124630124631124632124633124634124635124636124637124638124639124640124641124642124643124644124645124646124647124648124649124650124651124652124653124654124655124656124657124658124659124660124661124662124663124664124665124666124667124668124669124670124671124672124673124674124675124676124677124678124679124680124681124682124683124684124685124686124687124688124689124690124691124692124693124694124695124696124697124698124699124700124701124702124703124704124705124706124707124708124709124710124711124712124713124714124715124716124717124718124719124720124721124722124723124724124725124726124727124728124729124730124731124732124733124734124735124736124737124738124739124740124741124742124743124744124745124746124747124748124749124750124751124752124753124754124755124756124757124758124759124760124761124762124763124764124765124766124767124768124769124770124771124772124773124774124775124776124777124778124779124780124781124782124783124784124785124786124787124788124789124790124791124792124793124794124795124796124797124798124799124800124801124802124803124804124805124806124807124808124809124810124811124812124813124814124815124816124817124818124819124820124821124822124823124824124825124826124827124828124829124830124831124832124833124834124835124836124837124838124839124840124841124842124843124844124845124846124847124848124849124850124851124852124853124854124855124856124857124858124859124860124861124862124863124864124865124866124867124868124869124870124871124872124873124874124875124876124877124878124879124880124881124882124883124884124885124886124887124888124889124890124891124892124893124894124895124896124897124898124899124900124901124902124903124904124905124906124907124908124909124910124911124912124913124914124915124916124917124918124919124920124921124922124923124924124925124926124927124928124929124930124931124932124933124934124935124936124937124938124939124940124941124942124943124944124945124946124947124948124949124950124951124952124953124954124955124956124957124958124959124960124961124962124963124964124965124966124967124968124969124970124971124972124973124974124975124976124977124978124979124980124981124982124983124984124985124986124987124988124989124990124991124992124993124994124995124996124997124998124999125000125001125002125003125004125005125006125007125008125009125010125011125012125013125014125015125016125017125018125019125020125021125022125023125024125025125026125027125028125029125030125031125032125033125034125035125036125037125038125039125040125041125042125043125044125045125046125047125048125049125050125051125052125053125054125055125056125057125058125059125060125061125062125063125064125065125066125067125068125069125070125071125072125073125074125075125076125077125078125079125080125081125082125083125084125085125086125087125088125089125090125091125092125093125094125095125096125097125098125099125100125101125102125103125104125105125106125107125108125109125110125111125112125113125114125115125116125117125118125119125120125121125122125123125124125125125126125127125128125129125130125131125132125133125134125135125136125137125138125139125140125141125142125143125144125145125146125147125148125149125150125151125152125153125154125155125156125157125158125159125160125161125162125163125164125165125166125167125168125169125170125171125172125173125174125175125176125177125178125179125180125181125182125183125184125185125186125187125188125189125190125191125192125193125194125195125196125197125198125199125200125201125202125203125204125205125206125207125208125209125210125211125212125213125214125215125216125217125218125219125220125221125222125223125224125225125226125227125228125229125230125231125232125233125234125235125236125237125238125239125240125241125242125243125244125245125246125247125248125249125250125251125252125253125254125255125256125257125258125259125260125261125262125263125264125265125266125267125268125269125270125271125272125273125274125275125276125277125278125279125280125281125282125283125284125285125286125287125288125289125290125291125292125293125294125295125296125297125298125299125300125301125302125303125304125305125306125307125308125309125310125311125312125313125314125315125316125317125318125319125320125321125322125323125324125325125326125327125328125329125330125331125332125333125334125335125336125337125338125339125340125341125342125343125344125345125346125347125348125349125350125351125352125353125354125355125356125357125358125359125360125361125362125363125364125365125366125367125368125369125370125371125372125373125374125375125376125377125378125379125380125381125382125383125384125385125386125387125388125389125390125391125392125393125394125395125396125397125398125399125400125401125402125403125404125405125406125407125408125409125410125411125412125413125414125415125416125417125418125419125420125421125422125423125424125425125426125427125428125429125430125431125432125433125434125435125436125437125438125439125440125441125442125443125444125445125446125447125448125449125450125451125452125453125454125455125456125457125458125459125460125461125462125463125464125465125466125467125468125469125470125471125472125473125474125475125476125477125478125479125480125481125482125483125484125485125486125487125488125489125490125491125492125493125494125495125496125497125498125499125500125501125502125503125504125505125506125507125508125509125510125511125512125513125514125515125516125517125518125519125520125521125522125523125524125525125526125527125528125529125530125531125532125533125534125535125536125537125538125539125540125541125542125543125544125545125546125547125548125549125550125551125552125553125554125555125556125557125558125559125560125561125562125563125564125565125566125567125568125569125570125571125572125573125574125575125576125577125578125579125580125581125582125583125584125585125586125587125588125589125590125591125592125593125594125595125596125597125598125599125600125601125602125603125604125605125606125607125608125609125610125611125612125613125614125615125616125617125618125619125620125621125622125623125624125625125626125627125628125629125630125631125632125633125634125635125636125637125638125639125640125641125642125643125644125645125646125647125648125649125650125651125652125653125654125655125656125657125658125659125660125661125662125663125664125665125666125667125668125669125670125671125672125673125674125675125676125677125678125679125680125681125682125683125684125685125686125687125688125689125690125691125692125693125694125695125696125697125698125699125700125701125702125703125704125705125706125707125708125709125710125711125712125713125714125715125716125717125718125719125720125721125722125723125724125725125726125727125728125729125730125731125732125733125734125735125736125737125738125739125740125741125742125743125744125745125746125747125748125749125750125751125752125753125754125755125756125757125758125759125760125761125762125763125764125765125766125767125768125769125770125771125772125773125774125775125776125777125778125779125780125781125782125783125784125785125786125787125788125789125790125791125792125793125794125795125796125797125798125799125800125801125802125803125804125805125806125807125808125809125810125811125812125813125814125815125816125817125818125819125820125821125822125823125824125825125826125827125828125829125830125831125832125833125834125835125836125837125838125839125840125841125842125843125844125845125846125847125848125849125850125851125852125853125854125855125856125857125858125859125860125861125862125863125864125865125866125867125868125869125870125871125872125873125874125875125876125877125878125879125880125881125882125883125884125885125886125887125888125889125890125891125892125893125894125895125896125897125898125899125900125901125902125903125904125905125906125907125908125909125910125911125912125913125914125915125916125917125918125919125920125921125922125923125924125925125926125927125928125929125930125931125932125933125934125935125936125937125938125939125940125941125942125943125944125945125946125947125948125949125950125951125952125953125954125955125956125957125958125959125960125961125962125963125964125965125966125967125968125969125970125971125972125973125974125975125976125977125978125979125980125981125982125983125984125985125986125987125988125989125990125991125992125993125994125995125996125997125998125999126000126001126002126003126004126005126006126007126008126009126010126011126012126013126014126015126016126017126018126019126020126021126022126023126024126025126026126027126028126029126030126031126032126033126034126035126036126037126038126039126040126041126042126043126044126045126046126047126048126049126050126051126052126053126054126055126056126057126058126059126060126061126062126063126064126065126066126067126068126069126070126071126072126073126074126075126076126077126078126079126080126081126082126083126084126085126086126087126088126089126090126091126092126093126094126095126096126097126098126099126100126101126102126103126104126105126106126107126108126109126110126111126112126113126114126115126116126117126118126119126120126121126122126123126124126125126126126127126128126129126130126131126132126133126134126135126136126137126138126139126140126141126142126143126144126145126146126147126148126149126150126151126152126153126154126155126156126157126158126159126160126161126162126163126164126165126166126167126168126169126170126171126172126173126174126175126176126177126178126179126180126181126182126183126184126185126186126187126188126189126190126191126192126193126194126195126196126197126198126199126200126201126202126203126204126205126206126207126208126209126210126211126212126213126214126215126216126217126218126219126220126221126222126223126224126225126226126227126228126229126230126231126232126233126234126235126236126237126238126239126240126241126242126243126244126245126246126247126248126249126250126251126252126253126254126255126256126257126258126259126260126261126262126263126264126265126266126267126268126269126270126271126272126273126274126275126276126277126278126279126280126281126282126283126284126285126286126287126288126289126290126291126292126293126294126295126296126297126298126299126300126301126302126303126304126305126306126307126308126309126310126311126312126313126314126315126316126317126318126319126320126321126322126323126324126325126326126327126328126329126330126331126332126333126334126335126336126337126338126339126340126341126342126343126344126345126346126347126348126349126350126351126352126353126354126355126356126357126358126359126360126361126362126363126364126365126366126367126368126369126370126371126372126373126374126375126376126377126378126379126380126381126382126383126384126385126386126387126388126389126390126391126392126393126394126395126396126397126398126399126400126401126402126403126404126405126406126407126408126409126410126411126412126413126414126415126416126417126418126419126420126421126422126423126424126425126426126427126428126429126430126431126432126433126434126435126436126437126438126439126440126441126442126443126444126445126446126447126448126449126450126451126452126453126454126455126456126457126458126459126460126461126462126463126464126465126466126467126468126469126470126471126472126473126474126475126476126477126478126479126480126481126482126483126484126485126486126487126488126489126490126491126492126493126494126495126496126497126498126499126500126501126502126503126504126505126506126507126508126509126510126511126512126513126514126515126516126517126518126519126520126521126522126523126524126525126526126527126528126529126530126531126532126533126534126535126536126537126538126539126540126541126542126543126544126545126546126547126548126549126550126551126552126553126554126555126556126557126558126559126560126561126562126563126564126565126566126567126568126569126570126571126572126573126574126575126576126577126578126579126580126581126582126583126584126585126586126587126588126589126590126591126592126593126594126595126596126597126598126599126600126601126602126603126604126605126606126607126608126609126610126611126612126613126614126615126616126617126618126619126620126621126622126623126624126625126626126627126628126629126630126631126632126633126634126635126636126637126638126639126640126641126642126643126644126645126646126647126648126649126650126651126652126653126654126655126656126657126658126659126660126661126662126663126664126665126666126667126668126669126670126671126672126673126674126675126676126677126678126679126680126681126682126683126684126685126686126687126688126689126690126691126692126693126694126695126696126697126698126699126700126701126702126703126704126705126706126707126708126709126710126711126712126713126714126715126716126717126718126719126720126721126722126723126724126725126726126727126728126729126730126731126732126733126734126735126736126737126738126739126740126741126742126743126744126745126746126747126748126749126750126751126752126753126754126755126756126757126758126759126760126761126762126763126764126765126766126767126768126769126770126771126772126773126774126775126776126777126778126779126780126781126782126783126784126785126786126787126788126789126790126791126792126793126794126795126796126797126798126799126800126801126802126803126804126805126806126807126808126809126810126811126812126813126814126815126816126817126818126819126820126821126822126823126824126825126826126827126828126829126830126831126832126833126834126835126836126837126838126839126840126841126842126843126844126845126846126847126848126849126850126851126852126853126854126855126856126857126858126859126860126861126862126863126864126865126866126867126868126869126870126871126872126873126874126875126876126877126878126879126880126881126882126883126884126885126886126887126888126889126890126891126892126893126894126895126896126897126898126899126900126901126902126903126904126905126906126907126908126909126910126911126912126913126914126915126916126917126918126919126920126921126922126923126924126925126926126927126928126929126930126931126932126933126934126935126936126937126938126939126940126941126942126943126944126945126946126947126948126949126950126951126952126953126954126955126956126957126958126959126960126961126962126963126964126965126966126967126968126969126970126971126972126973126974126975126976126977126978126979126980126981126982126983126984126985126986126987126988126989126990126991126992126993126994126995126996126997126998126999127000127001127002127003127004127005127006127007127008127009127010127011127012127013127014127015127016127017127018127019127020127021127022127023127024127025127026127027127028127029127030127031127032127033127034127035127036127037127038127039127040127041127042127043127044127045127046127047127048127049127050127051127052127053127054127055127056127057127058127059127060127061127062127063127064127065127066127067127068127069127070127071127072127073127074127075127076127077127078127079127080127081127082127083127084127085127086127087127088127089127090127091127092127093127094127095127096127097127098127099127100127101127102127103127104127105127106127107127108127109127110127111127112127113127114127115127116127117127118127119127120127121127122127123127124127125127126127127127128127129127130127131127132127133127134127135127136127137127138127139127140127141127142127143127144127145127146127147127148127149127150127151127152127153127154127155127156127157127158127159127160127161127162127163127164127165127166127167127168127169127170127171127172127173127174127175127176127177127178127179127180127181127182127183127184127185127186127187127188127189127190127191127192127193127194127195127196127197127198127199127200127201127202127203127204127205127206127207127208127209127210127211127212127213127214127215127216127217127218127219127220127221127222127223127224127225127226127227127228127229127230127231127232127233127234127235127236127237127238127239127240127241127242127243127244127245127246127247127248127249127250127251127252127253127254127255127256127257127258127259127260127261127262127263127264127265127266127267127268127269127270127271127272127273127274127275127276127277127278127279127280127281127282127283127284127285127286127287127288127289127290127291127292127293127294127295127296127297127298127299127300127301127302127303127304127305127306127307127308127309127310127311127312127313127314127315127316127317127318127319127320127321127322127323127324127325127326127327127328127329127330127331127332127333127334127335127336127337127338127339127340127341127342127343127344127345127346127347127348127349127350127351127352127353127354127355127356127357127358127359127360127361127362127363127364127365127366127367127368127369127370127371127372127373127374127375127376127377127378127379127380127381127382127383127384127385127386127387127388127389127390127391127392127393127394127395127396127397127398127399127400127401127402127403127404127405127406127407127408127409127410127411127412127413127414127415127416127417127418127419127420127421127422127423127424127425127426127427127428127429127430127431127432127433127434127435127436127437127438127439127440127441127442127443127444127445127446127447127448127449127450127451127452127453127454127455127456127457127458127459127460127461127462127463127464127465127466127467127468127469127470127471127472127473127474127475127476127477127478127479127480127481127482127483127484127485127486127487127488127489127490127491127492127493127494127495127496127497127498127499127500127501127502127503127504127505127506127507127508127509127510127511127512127513127514127515127516127517127518127519127520127521127522127523127524127525127526127527127528127529127530127531127532127533127534127535127536127537127538127539127540127541127542127543127544127545127546127547127548127549127550127551127552127553127554127555127556127557127558127559127560127561127562127563127564127565127566127567127568127569127570127571127572127573127574127575127576127577127578127579127580127581127582127583127584127585127586127587127588127589127590127591127592127593127594127595127596127597127598127599127600127601127602127603127604127605127606127607127608127609127610127611127612127613127614127615127616127617127618127619127620127621127622127623127624127625127626127627127628127629127630127631127632127633127634127635127636127637127638127639127640127641127642127643127644127645127646127647127648127649127650127651127652127653127654127655127656127657127658127659127660127661127662127663127664127665127666127667127668127669127670127671127672127673127674127675127676127677127678127679127680127681127682127683127684127685127686127687127688127689127690127691127692127693127694127695127696127697127698127699127700127701127702127703127704127705127706127707127708127709127710127711127712127713127714127715127716127717127718127719127720127721127722127723127724127725127726127727127728127729127730127731127732127733127734127735127736127737127738127739127740127741127742127743127744127745127746127747127748127749127750127751127752127753127754127755127756127757127758127759127760127761127762127763127764127765127766127767127768127769127770127771127772127773127774127775127776127777127778127779127780127781127782127783127784127785127786127787127788127789127790127791127792127793127794127795127796127797127798127799127800127801127802127803127804127805127806127807127808127809127810127811127812127813127814127815127816127817127818127819127820127821127822127823127824127825127826127827127828127829127830127831127832127833127834127835127836127837127838127839127840127841127842127843127844127845127846127847127848127849127850127851127852127853127854127855127856127857127858127859127860127861127862127863127864127865127866127867127868127869127870127871127872127873127874127875127876127877127878127879127880127881127882127883127884127885127886127887127888127889127890127891127892127893127894127895127896127897127898127899127900127901127902127903127904127905127906127907127908127909127910127911127912127913127914127915127916127917127918127919127920127921127922127923127924127925127926127927127928127929127930127931127932127933127934127935127936127937127938127939127940127941127942127943127944127945127946127947127948127949127950127951127952127953127954127955127956127957127958127959127960127961127962127963127964127965127966127967127968127969127970127971127972127973127974127975127976127977127978127979127980127981127982127983127984127985127986127987127988127989127990127991127992127993127994127995127996127997127998127999128000128001128002128003128004128005128006128007128008128009128010128011128012128013128014128015128016128017128018128019128020128021128022128023128024128025128026128027128028128029128030128031128032128033128034128035128036128037128038128039128040128041128042128043128044128045128046128047128048128049128050128051128052128053128054128055128056128057128058128059128060128061128062128063128064128065128066128067128068128069128070128071128072128073128074128075128076128077128078128079128080128081128082128083128084128085128086128087128088128089128090128091128092128093128094128095128096128097128098128099128100128101128102128103128104128105128106128107128108128109128110128111128112128113128114128115128116128117128118128119128120128121128122128123128124128125128126128127128128128129128130128131128132128133128134128135128136128137128138128139128140128141128142128143128144128145128146128147128148128149128150128151128152128153128154128155128156128157128158128159128160128161128162128163128164128165128166128167128168128169128170128171128172128173128174128175128176128177128178128179128180128181128182128183128184128185128186128187128188128189128190128191128192128193128194128195128196128197128198128199128200128201128202128203128204128205128206128207128208128209128210128211128212128213128214128215128216128217128218128219128220128221128222128223128224128225128226128227128228128229128230128231128232128233128234128235128236128237128238128239128240128241128242128243128244128245128246128247128248128249128250128251128252128253128254128255128256128257128258128259128260128261128262128263128264128265128266128267128268128269128270128271128272128273128274128275128276128277128278128279128280128281128282128283128284128285128286128287128288128289128290128291128292128293128294128295128296128297128298128299128300128301128302128303128304128305128306128307128308128309128310128311128312128313128314128315128316128317128318128319128320128321128322128323128324128325128326128327128328128329128330128331128332128333128334128335128336128337128338128339128340128341128342128343128344128345128346128347128348128349128350128351128352128353128354128355128356128357128358128359128360128361128362128363128364128365128366128367128368128369128370128371128372128373128374128375128376128377128378128379128380128381128382128383128384128385128386128387128388128389128390128391128392128393128394128395128396128397128398128399128400128401128402128403128404128405128406128407128408128409128410128411128412128413128414128415128416128417128418128419128420128421128422128423128424128425128426128427128428128429128430128431128432128433128434128435128436128437128438128439128440128441128442128443128444128445128446128447128448128449128450128451128452128453128454128455128456128457128458128459128460128461128462128463128464128465128466128467128468128469128470128471128472128473128474128475128476128477128478128479128480128481128482128483128484128485128486128487128488128489128490128491128492128493128494128495128496128497128498128499128500128501128502128503128504128505128506128507128508128509128510128511128512128513128514128515128516128517128518128519128520128521128522128523128524128525128526128527128528128529128530128531128532128533128534128535128536128537128538128539128540128541128542128543128544128545128546128547128548128549128550128551128552128553128554128555128556128557128558128559128560128561128562128563128564128565128566128567128568128569128570128571128572128573128574128575128576128577128578128579128580128581128582128583128584128585128586128587128588128589128590128591128592128593128594128595128596128597128598128599128600128601128602128603128604128605128606128607128608128609128610128611128612128613128614128615128616128617128618128619128620128621128622128623128624128625128626128627128628128629128630128631128632128633128634128635128636128637128638128639128640128641128642128643128644128645128646128647128648128649128650128651128652128653128654128655128656128657128658128659128660128661128662128663128664128665128666128667128668128669128670128671128672128673128674128675128676128677128678128679128680128681128682128683128684128685128686128687128688128689128690128691128692128693128694128695128696128697128698128699128700128701128702128703128704128705128706128707128708128709128710128711128712128713128714128715128716128717128718128719128720128721128722128723128724128725128726128727128728128729128730128731128732128733128734128735128736128737128738128739128740128741128742128743128744128745128746128747128748128749128750128751128752128753128754128755128756128757128758128759128760128761128762128763128764128765128766128767128768128769128770128771128772128773128774128775128776128777128778128779128780128781128782128783128784128785128786128787128788128789128790128791128792128793128794128795128796128797128798128799128800128801128802128803128804128805128806128807128808128809128810128811128812128813128814128815128816128817128818128819128820128821128822128823128824128825128826128827128828128829128830128831128832128833128834128835128836128837128838128839128840128841128842128843128844128845128846128847128848128849128850128851128852128853128854128855128856128857128858128859128860128861128862128863128864128865128866128867128868128869128870128871128872128873128874128875128876128877128878128879128880128881128882128883128884128885128886128887128888128889128890128891128892128893128894128895128896128897128898128899128900128901128902128903128904128905128906128907128908128909128910128911128912128913128914128915128916128917128918128919128920128921128922128923128924128925128926128927128928128929128930128931128932128933128934128935128936128937128938128939128940128941128942128943128944128945128946128947128948128949128950128951128952128953128954128955128956128957128958128959128960128961128962128963128964128965128966128967128968128969128970128971128972128973128974128975128976128977128978128979128980128981128982128983128984128985128986128987128988128989128990128991128992128993128994128995128996128997128998128999129000129001129002129003129004129005129006129007129008129009129010129011129012129013129014129015129016129017129018129019129020129021129022129023129024129025129026129027129028129029129030129031129032129033129034129035129036129037129038129039129040129041129042129043129044129045129046129047129048129049129050129051129052129053129054129055129056129057129058129059129060129061129062129063129064129065129066129067129068129069129070129071129072129073129074129075129076129077129078129079129080129081129082129083129084129085129086129087129088129089129090129091129092129093129094129095129096129097129098129099129100129101129102129103129104129105129106129107129108129109129110129111129112129113129114129115129116129117129118129119129120129121129122129123129124129125129126129127129128129129129130129131129132129133129134129135129136129137129138129139129140129141129142129143129144129145129146129147129148129149129150129151129152129153129154129155129156129157129158129159129160129161129162129163129164129165129166129167129168129169129170129171129172129173129174129175129176129177129178129179129180129181129182129183129184129185129186129187129188129189129190129191129192129193129194129195129196129197129198129199129200129201129202129203129204129205129206129207129208129209129210129211129212129213129214129215129216129217129218129219129220129221129222129223129224129225129226129227129228129229129230129231129232129233129234129235129236129237129238129239129240129241129242129243129244129245129246129247129248129249129250129251129252129253129254129255129256129257129258129259129260129261129262129263129264129265129266129267129268129269129270129271129272129273129274129275129276129277129278129279129280129281129282129283129284129285129286129287129288129289129290129291129292129293129294129295129296129297129298129299129300129301129302129303129304129305129306129307129308129309129310129311129312129313129314129315129316129317129318129319129320129321129322129323129324129325129326129327129328129329129330129331129332129333129334129335129336129337129338129339129340129341129342129343129344129345129346129347129348129349129350129351129352129353129354129355129356129357129358129359129360129361129362129363129364129365129366129367129368129369129370129371129372129373129374129375129376129377129378129379129380129381129382129383129384129385129386129387129388129389129390129391129392129393129394129395129396129397129398129399129400129401129402129403129404129405129406129407129408129409129410129411129412129413129414129415129416129417129418129419129420129421129422129423129424129425129426129427129428129429129430129431129432129433129434129435129436129437129438129439129440129441129442129443129444129445129446129447129448129449129450129451129452129453129454129455129456129457129458129459129460129461129462129463129464129465129466129467129468129469129470129471129472129473129474129475129476129477129478129479129480129481129482129483129484129485129486129487129488129489129490129491129492129493129494129495129496129497129498129499129500129501129502129503129504129505129506129507129508129509129510129511129512129513129514129515129516129517129518129519129520129521129522129523129524129525129526129527129528129529129530129531129532129533129534129535129536129537129538129539129540129541129542129543129544129545129546129547129548129549129550129551129552129553129554129555129556129557129558129559129560129561129562129563129564129565129566129567129568129569129570129571129572129573129574129575129576129577129578129579129580129581129582129583129584129585129586129587129588129589129590129591129592129593129594129595129596129597129598129599129600129601129602129603129604129605129606129607129608129609129610129611129612129613129614129615129616129617129618129619129620129621129622129623129624129625129626129627129628129629129630129631129632129633129634129635129636129637129638129639129640129641129642129643129644129645129646129647129648129649129650129651129652129653129654129655129656129657129658129659129660129661129662129663129664129665129666129667129668129669129670129671129672129673129674129675129676129677129678129679129680129681129682129683129684129685129686129687129688129689129690129691129692129693129694129695129696129697129698129699129700129701129702129703129704129705129706129707129708129709129710129711129712129713129714129715129716129717129718129719129720129721129722129723129724129725129726129727129728129729129730129731129732129733129734129735129736129737129738129739129740129741129742129743129744129745129746129747129748129749129750129751129752129753129754129755129756129757129758129759129760129761129762129763129764129765129766129767129768129769129770129771129772129773129774129775129776129777129778129779129780129781129782129783129784129785129786129787129788129789129790129791129792129793129794129795129796129797129798129799129800129801129802129803129804129805129806129807129808129809129810129811129812129813129814129815129816129817129818129819129820129821129822129823129824129825129826129827129828129829129830129831129832129833129834129835129836129837129838129839129840129841129842129843129844129845129846129847129848129849129850129851129852129853129854129855129856129857129858129859129860129861129862129863129864129865129866129867129868129869129870129871129872129873129874129875129876129877129878129879129880129881129882129883129884129885129886129887129888129889129890129891129892129893129894129895129896129897129898129899129900129901129902129903129904129905129906129907129908129909129910129911129912129913129914129915129916129917129918129919129920129921129922129923129924129925129926129927129928129929129930129931129932129933129934129935129936129937129938129939129940129941129942129943129944129945129946129947129948129949129950129951129952129953129954129955129956129957129958129959129960129961129962129963129964129965129966129967129968129969129970129971129972129973129974129975129976129977129978129979129980129981129982129983129984129985129986129987129988129989129990129991129992129993129994129995129996129997129998129999130000130001130002130003130004130005130006130007130008130009130010130011130012130013130014130015130016130017130018130019130020130021130022130023130024130025130026130027130028130029130030130031130032130033130034130035130036130037130038130039130040130041130042130043130044130045130046130047130048130049130050130051130052130053130054130055130056130057130058130059130060130061130062130063130064130065130066130067130068130069130070130071130072130073130074130075130076130077130078130079130080130081130082130083130084130085130086130087130088130089130090130091130092130093130094130095130096130097130098130099130100130101130102130103130104130105130106130107130108130109130110130111130112130113130114130115130116130117130118130119130120130121130122130123130124130125130126130127130128130129130130130131130132130133130134130135130136130137130138130139130140130141130142130143130144130145130146130147130148130149130150130151130152130153130154130155130156130157130158130159130160130161130162130163130164130165130166130167130168130169130170130171130172130173130174130175130176130177130178130179130180130181130182130183130184130185130186130187130188130189130190130191130192130193130194130195130196130197130198130199130200130201130202130203130204130205130206130207130208130209130210130211130212130213130214130215130216130217130218130219130220130221130222130223130224130225130226130227130228130229130230130231130232130233130234130235130236130237130238130239130240130241130242130243130244130245130246130247130248130249130250130251130252130253130254130255130256130257130258130259130260130261130262130263130264130265130266130267130268130269130270130271130272130273130274130275130276130277130278130279130280130281130282130283130284130285130286130287130288130289130290130291130292130293130294130295130296130297130298130299130300130301130302130303130304130305130306130307130308130309130310130311130312130313130314130315130316130317130318130319130320130321130322130323130324130325130326130327130328130329130330130331130332130333130334130335130336130337130338130339130340130341130342130343130344130345130346130347130348130349130350130351130352130353130354130355130356130357130358130359130360130361130362130363130364130365130366130367130368130369130370130371130372130373130374130375130376130377130378130379130380130381130382130383130384130385130386130387130388130389130390130391130392130393130394130395130396130397130398130399130400130401130402130403130404130405130406130407130408130409130410130411130412130413130414130415130416130417130418130419130420130421130422130423130424130425130426130427130428130429130430130431130432130433130434130435130436130437130438130439130440130441130442130443130444130445130446130447130448130449130450130451130452130453130454130455130456130457130458130459130460130461130462130463130464130465130466130467130468130469130470130471130472130473130474130475130476130477130478130479130480130481130482130483130484130485130486130487130488130489130490130491130492130493130494130495130496130497130498130499130500130501130502130503130504130505130506130507130508130509130510130511130512130513130514130515130516130517130518130519130520130521130522130523130524130525130526130527130528130529130530130531130532130533130534130535130536130537130538130539130540130541130542130543130544130545130546130547130548130549130550130551130552130553130554130555130556130557130558130559130560130561130562130563130564130565130566130567130568130569130570130571130572130573130574130575130576130577130578130579130580130581130582130583130584130585130586130587130588130589130590130591130592130593130594130595130596130597130598130599130600130601130602130603130604130605130606130607130608130609130610130611130612130613130614130615130616130617130618130619130620130621130622130623130624130625130626130627130628130629130630130631130632130633130634130635130636130637130638130639130640130641130642130643130644130645130646130647130648130649130650130651130652130653130654130655130656130657130658130659130660130661130662130663130664130665130666130667130668130669130670130671130672130673130674130675130676130677130678130679130680130681130682130683130684130685130686130687130688130689130690130691130692130693130694130695130696130697130698130699130700130701130702130703130704130705130706130707130708130709130710130711130712130713130714130715130716130717130718130719130720130721130722130723130724130725130726130727130728130729130730130731130732130733130734130735130736130737130738130739130740130741130742130743130744130745130746130747130748130749130750130751130752130753130754130755130756130757130758130759130760130761130762130763130764130765130766130767130768130769130770130771130772130773130774130775130776130777130778130779130780130781130782130783130784130785130786130787130788130789130790130791130792130793130794130795130796130797130798130799130800130801130802130803130804130805130806130807130808130809130810130811130812130813130814130815130816130817130818130819130820130821130822130823130824130825130826130827130828130829130830130831130832130833130834130835130836130837130838130839130840130841130842130843130844130845130846130847130848130849130850130851130852130853130854130855130856130857130858130859130860130861130862130863130864130865130866130867130868130869130870130871130872130873130874130875130876130877130878130879130880130881130882130883130884130885130886130887130888130889130890130891130892130893130894130895130896130897130898130899130900130901130902130903130904130905130906130907130908130909130910130911130912130913130914130915130916130917130918130919130920130921130922130923130924130925130926130927130928130929130930130931130932130933130934130935130936130937130938130939130940130941130942130943130944130945130946130947130948130949130950130951130952130953130954130955130956130957130958130959130960130961130962130963130964130965130966130967130968130969130970130971130972130973130974130975130976130977130978130979130980130981130982130983130984130985130986130987130988130989130990130991130992130993130994130995130996130997130998130999131000131001131002131003131004131005131006131007131008131009131010131011131012131013131014131015131016131017131018131019131020131021131022131023131024131025131026131027131028131029131030131031131032131033131034131035131036131037131038131039131040131041131042131043131044131045131046131047131048131049131050131051131052131053131054131055131056131057131058131059131060131061131062131063131064131065131066131067131068131069131070131071131072131073131074131075131076131077131078131079131080131081131082131083131084131085131086131087131088131089131090131091131092131093131094131095131096131097131098131099131100131101131102131103131104131105131106131107131108131109131110131111131112131113131114131115131116131117131118131119131120131121131122131123131124131125131126131127131128131129131130131131131132131133131134131135131136131137131138131139131140131141131142131143131144131145131146131147131148131149131150131151131152131153131154131155131156131157131158131159131160131161131162131163131164131165131166131167131168131169131170131171131172131173131174131175131176131177131178131179131180131181131182131183131184131185131186131187131188131189131190131191131192131193131194131195131196131197131198131199131200131201131202131203131204131205131206131207131208131209131210131211131212131213131214131215131216131217131218131219131220131221131222131223131224131225131226131227131228131229131230131231131232131233131234131235131236131237131238131239131240131241131242131243131244131245131246131247131248131249131250131251131252131253131254131255131256131257131258131259131260131261131262131263131264131265131266131267131268131269131270131271131272131273131274131275131276131277131278131279131280131281131282131283131284131285131286131287131288131289131290131291131292131293131294131295131296131297131298131299131300131301131302131303131304131305131306131307131308131309131310131311131312131313131314131315131316131317131318131319131320131321131322131323131324131325131326131327131328131329131330131331131332131333131334131335131336131337131338131339131340131341131342131343131344131345131346131347131348131349131350131351131352131353131354131355131356131357131358131359131360131361131362131363131364131365131366131367131368131369131370131371131372131373131374131375131376131377131378131379131380131381131382131383131384131385131386131387131388131389131390131391131392131393131394131395131396131397131398131399131400131401131402131403131404131405131406131407131408131409131410131411131412131413131414131415131416131417131418131419131420131421131422131423131424131425131426131427131428131429131430131431131432131433131434131435131436131437131438131439131440131441131442131443131444131445131446131447131448131449131450131451131452131453131454131455131456131457131458131459131460131461131462131463131464131465131466131467131468131469131470131471131472131473131474131475131476131477131478131479131480131481131482131483131484131485131486131487131488131489131490131491131492131493131494131495131496131497131498131499131500131501131502131503131504131505131506131507131508131509131510131511131512131513131514131515131516131517131518131519131520131521131522131523131524131525131526131527131528131529131530131531131532131533131534131535131536131537131538131539131540131541131542131543131544131545131546131547131548131549131550131551131552131553131554131555131556131557131558131559131560131561131562131563131564131565131566131567131568131569131570131571131572131573131574131575131576131577131578131579131580131581131582131583131584131585131586131587131588131589131590131591131592131593131594131595131596131597131598131599131600131601131602131603131604131605131606131607131608131609131610131611131612131613131614131615131616131617131618131619131620131621131622131623131624131625131626131627131628131629131630131631131632131633131634131635131636131637131638131639131640131641131642131643131644131645131646131647131648131649131650131651131652131653131654131655131656131657131658131659131660131661131662131663131664131665131666131667131668131669131670131671131672131673131674131675131676131677131678131679131680131681131682131683131684131685131686131687131688131689131690131691131692131693131694131695131696131697131698131699131700131701131702131703131704131705131706131707131708131709131710131711131712131713131714131715131716131717131718131719131720131721131722131723131724131725131726131727131728131729131730131731131732131733131734131735131736131737131738131739131740131741131742131743131744131745131746131747131748131749131750131751131752131753131754131755131756131757131758131759131760131761131762131763131764131765131766131767131768131769131770131771131772131773131774131775131776131777131778131779131780131781131782131783131784131785131786131787131788131789131790131791131792131793131794131795131796131797131798131799131800131801131802131803131804131805131806131807131808131809131810131811131812131813131814131815131816131817131818131819131820131821131822131823131824131825131826131827131828131829131830131831131832131833131834131835131836131837131838131839131840131841131842131843131844131845131846131847131848131849131850131851131852131853131854131855131856131857131858131859131860131861131862131863131864131865131866131867131868131869131870131871131872131873131874131875131876131877131878131879131880131881131882131883131884131885131886131887131888131889131890131891131892131893131894131895131896131897131898131899131900131901131902131903131904131905131906131907131908131909131910131911131912131913131914131915131916131917131918131919131920131921131922131923131924131925131926131927131928131929131930131931131932131933131934131935131936131937131938131939131940131941131942131943131944131945131946131947131948131949131950131951131952131953131954131955131956131957131958131959131960131961131962131963131964131965131966131967131968131969131970131971131972131973131974131975131976131977131978131979131980131981131982131983131984131985131986131987131988131989131990131991131992131993131994131995131996131997131998131999132000132001132002132003132004132005132006132007132008132009132010132011132012132013132014132015132016132017132018132019132020132021132022132023132024132025132026132027132028132029132030132031132032132033132034132035132036132037132038132039132040132041132042132043132044132045132046132047132048132049132050132051132052132053132054132055132056132057132058132059132060132061132062132063132064132065132066132067132068132069132070132071132072132073132074132075132076132077132078132079132080132081132082132083132084132085132086132087132088132089132090132091132092132093132094132095132096132097132098132099132100132101132102132103132104132105132106132107132108132109132110132111132112132113132114132115132116132117132118132119132120132121132122132123132124132125132126132127132128132129132130132131132132132133132134132135132136132137132138132139132140132141132142132143132144132145132146132147132148132149132150132151132152132153132154132155132156132157132158132159132160132161132162132163132164132165132166132167132168132169132170132171132172132173132174132175132176132177132178132179132180132181132182132183132184132185132186132187132188132189132190132191132192132193132194132195132196132197132198132199132200132201132202132203132204132205132206132207132208132209132210132211132212132213132214132215132216132217132218132219132220132221132222132223132224132225132226132227132228132229132230132231132232132233132234132235132236132237132238132239132240132241132242132243132244132245132246132247132248132249132250132251132252132253132254132255132256132257132258132259132260132261132262132263132264132265132266132267132268132269132270132271132272132273132274132275132276132277132278132279132280132281132282132283132284132285132286132287132288132289132290132291132292132293132294132295132296132297132298132299132300132301132302132303132304132305132306132307132308132309132310132311132312132313132314132315132316132317132318132319132320132321132322132323132324132325132326132327132328132329132330132331132332132333132334132335132336132337132338132339132340132341132342132343132344132345132346132347132348132349132350132351132352132353132354132355132356132357132358132359132360132361132362132363132364132365132366132367132368132369132370132371132372132373132374132375132376132377132378132379132380132381132382132383132384132385132386132387132388132389132390132391132392132393132394132395132396132397132398132399132400132401132402132403132404132405132406132407132408132409132410132411132412132413132414132415132416132417132418132419132420132421132422132423132424132425132426132427132428132429132430132431132432132433132434132435132436132437132438132439132440132441132442132443132444132445132446132447132448132449132450132451132452132453132454132455132456132457132458132459132460132461132462132463132464132465132466132467132468132469132470132471132472132473132474132475132476132477132478132479132480132481132482132483132484132485132486132487132488132489132490132491132492132493132494132495132496132497132498132499132500132501132502132503132504132505132506132507132508132509132510132511132512132513132514132515132516132517132518132519132520132521132522132523132524132525132526132527132528132529132530132531132532132533132534132535132536132537132538132539132540132541132542132543132544132545132546132547132548132549132550132551132552132553132554132555132556132557132558132559132560132561132562132563132564132565132566132567132568132569132570132571132572132573132574132575132576132577132578132579132580132581132582132583132584132585132586132587132588132589132590132591132592132593132594132595132596132597132598132599132600132601132602132603132604132605132606132607132608132609132610132611132612132613132614132615132616132617132618132619132620132621132622132623132624132625132626132627132628132629132630132631132632132633132634132635132636132637132638132639132640132641132642132643132644132645132646132647132648132649132650132651132652132653132654132655132656132657132658132659132660132661132662132663132664132665132666132667132668132669132670132671132672132673132674132675132676132677132678132679132680132681132682132683132684132685132686132687132688132689132690132691132692132693132694132695132696132697132698132699132700132701132702132703132704132705132706132707132708132709132710132711132712132713132714132715132716132717132718132719132720132721132722132723132724132725132726132727132728132729132730132731132732132733132734132735132736132737132738132739132740132741132742132743132744132745132746132747132748132749132750132751132752132753132754132755132756132757132758132759132760132761132762132763132764132765132766132767132768132769132770132771132772132773132774132775132776132777132778132779132780132781132782132783132784132785132786132787132788132789132790132791132792132793132794132795132796132797132798132799132800132801132802132803132804132805132806132807132808132809132810132811132812132813132814132815132816132817132818132819132820132821132822132823132824132825132826132827132828132829132830132831132832132833132834132835132836132837132838132839132840132841132842132843132844132845132846132847132848132849132850132851132852132853132854132855132856132857132858132859132860132861132862132863132864132865132866132867132868132869132870132871132872132873132874132875132876132877132878132879132880132881132882132883132884132885132886132887132888132889132890132891132892132893132894132895132896132897132898132899132900132901132902132903132904132905132906132907132908132909132910132911132912132913132914132915132916132917132918132919132920132921132922132923132924132925132926132927132928132929132930132931132932132933132934132935132936132937132938132939132940132941132942132943132944132945132946132947132948132949132950132951132952132953132954132955132956132957132958132959132960132961132962132963132964132965132966132967132968132969132970132971132972132973132974132975132976132977132978132979132980132981132982132983132984132985132986132987132988132989132990132991132992132993132994132995132996132997132998132999133000133001133002133003133004133005133006133007133008133009133010133011133012133013133014133015133016133017133018133019133020133021133022133023133024133025133026133027133028133029133030133031133032133033133034133035133036133037133038133039133040133041133042133043133044133045133046133047133048133049133050133051133052133053133054133055133056133057133058133059133060133061133062133063133064133065133066133067133068133069133070133071133072133073133074133075133076133077133078133079133080133081133082133083133084133085133086133087133088133089133090133091133092133093133094133095133096133097133098133099133100133101133102133103133104133105133106133107133108133109133110133111133112133113133114133115133116133117133118133119133120133121133122133123133124133125133126133127133128133129133130133131133132133133133134133135133136133137133138133139133140133141133142133143133144133145133146133147133148133149133150133151133152133153133154133155133156133157133158133159133160133161133162133163133164133165133166133167133168133169133170133171133172133173133174133175133176133177133178133179133180133181133182133183133184133185133186133187133188133189133190133191133192133193133194133195133196133197133198133199133200133201133202133203133204133205133206133207133208133209133210133211133212133213133214133215133216133217133218133219133220133221133222133223133224133225133226133227133228133229133230133231133232133233133234133235133236133237133238133239133240133241133242133243133244133245133246133247133248133249133250133251133252133253133254133255133256133257133258133259133260133261133262133263133264133265133266133267133268133269133270133271133272133273133274133275133276133277133278133279133280133281133282133283133284133285133286133287133288133289133290133291133292133293133294133295133296133297133298133299133300133301133302133303133304133305133306133307133308133309133310133311133312133313133314133315133316133317133318133319133320133321133322133323133324133325133326133327133328133329133330133331133332133333133334133335133336133337133338133339133340133341133342133343133344133345133346133347133348133349133350133351133352133353133354133355133356133357133358133359133360133361133362133363133364133365133366133367133368133369133370133371133372133373133374133375133376133377133378133379133380133381133382133383133384133385133386133387133388133389133390133391133392133393133394133395133396133397133398133399133400133401133402133403133404133405133406133407133408133409133410133411133412133413133414133415133416133417133418133419133420133421133422133423133424133425133426133427133428133429133430133431133432133433133434133435133436133437133438133439133440133441133442133443133444133445133446133447133448133449133450133451133452133453133454133455133456133457133458133459133460133461133462133463133464133465133466133467133468133469133470133471133472133473133474133475133476133477133478133479133480133481133482133483133484133485133486133487133488133489133490133491133492133493133494133495133496133497133498133499133500133501133502133503133504133505133506133507133508133509133510133511133512133513133514133515133516133517133518133519133520133521133522133523133524133525133526133527133528133529133530133531133532133533133534133535133536133537133538133539133540133541133542133543133544133545133546133547133548133549133550133551133552133553133554133555133556133557133558133559133560133561133562133563133564133565133566133567133568133569133570133571133572133573133574133575133576133577133578133579133580133581133582133583133584133585133586133587133588133589133590133591133592133593133594133595133596133597133598133599133600133601133602133603133604133605133606133607133608133609133610133611133612133613133614133615133616133617133618133619133620133621133622133623133624133625133626133627133628133629133630133631133632133633133634133635133636133637133638133639133640133641133642133643133644133645133646133647133648133649133650133651133652133653133654133655133656133657133658133659133660133661133662133663133664133665133666133667133668133669133670133671133672133673133674133675133676133677133678133679133680133681133682133683133684133685133686133687133688133689133690133691133692133693133694133695133696133697133698133699133700133701133702133703133704133705133706133707133708133709133710133711133712133713133714133715133716133717133718133719133720133721133722133723133724133725133726133727133728133729133730133731133732133733133734133735133736133737133738133739133740133741133742133743133744133745133746133747133748133749133750133751133752133753133754133755133756133757133758133759133760133761133762133763133764133765133766133767133768133769133770133771133772133773133774133775133776133777133778133779133780133781133782133783133784133785133786133787133788133789133790133791133792133793133794133795133796133797133798133799133800133801133802133803133804133805133806133807133808133809133810133811133812133813133814133815133816133817133818133819133820133821133822133823133824133825133826133827133828133829133830133831133832133833133834133835133836133837133838133839133840133841133842133843133844133845133846133847133848133849133850133851133852133853133854133855133856133857133858133859133860133861133862133863133864133865133866133867133868133869133870133871133872133873133874133875133876133877133878133879133880133881133882133883133884133885133886133887133888133889133890133891133892133893133894133895133896133897133898133899133900133901133902133903133904133905133906133907133908133909133910133911133912133913133914133915133916133917133918133919133920133921133922133923133924133925133926133927133928133929133930133931133932133933133934133935133936133937133938133939133940133941133942133943133944133945133946133947133948133949133950133951133952133953133954133955133956133957133958133959133960133961133962133963133964133965133966133967133968133969133970133971133972133973133974133975133976133977133978133979133980133981133982133983133984133985133986133987133988133989133990133991133992133993133994133995133996133997133998133999134000134001134002134003134004134005134006134007134008134009134010134011134012134013134014134015134016134017134018134019134020134021134022134023134024134025134026134027134028134029134030134031134032134033134034134035134036134037134038134039134040134041134042134043134044134045134046134047134048134049134050134051134052134053134054134055134056134057134058134059134060134061134062134063134064134065134066134067134068134069134070134071134072134073134074134075134076134077134078134079134080134081134082134083134084134085134086134087134088134089134090134091134092134093134094134095134096134097134098134099134100134101134102134103134104134105134106134107134108134109134110134111134112134113134114134115134116134117134118134119134120134121134122134123134124134125134126134127134128134129134130134131134132134133134134134135134136134137134138134139134140134141134142134143134144134145134146134147134148134149134150134151134152134153134154134155134156134157134158134159134160134161134162134163134164134165134166134167134168134169134170134171134172134173134174134175134176134177134178134179134180134181134182134183134184134185134186134187134188134189134190134191134192134193134194134195134196134197134198134199134200134201134202134203134204134205134206134207134208134209134210134211134212134213134214134215134216134217134218134219134220134221134222134223134224134225134226134227134228134229134230134231134232134233134234134235134236134237134238134239134240134241134242134243134244134245134246134247134248134249134250134251134252134253134254134255134256134257134258134259134260134261134262134263134264134265134266134267134268134269134270134271134272134273134274134275134276134277134278134279134280134281134282134283134284134285134286134287134288134289134290134291134292134293134294134295134296134297134298134299134300134301134302134303134304134305134306134307134308134309134310134311134312134313134314134315134316134317134318134319134320134321134322134323134324134325134326134327134328134329134330134331134332134333134334134335134336134337134338134339134340134341134342134343134344134345134346134347134348134349134350134351134352134353134354134355134356134357134358134359134360134361134362134363134364134365134366134367134368134369134370134371134372134373134374134375134376134377134378134379134380134381134382134383134384134385134386134387134388134389134390134391134392134393134394134395134396134397134398134399134400134401134402134403134404134405134406134407134408134409134410134411134412134413134414134415134416134417134418134419134420134421134422134423134424134425134426134427134428134429134430134431134432134433134434134435134436134437134438134439134440134441134442134443134444134445134446134447134448134449134450134451134452134453134454134455134456134457134458134459134460134461134462134463134464134465134466134467134468134469134470134471134472134473134474134475134476134477134478134479134480134481134482134483134484134485134486134487134488134489134490134491134492134493134494134495134496134497134498134499134500134501134502134503134504134505134506134507134508134509134510134511134512134513134514134515134516134517134518134519134520134521134522134523134524134525134526134527134528134529134530134531134532134533134534134535134536134537134538134539134540134541134542134543134544134545134546134547134548134549134550134551134552134553134554134555134556134557134558134559134560134561134562134563134564134565134566134567134568134569134570134571134572134573134574134575134576134577134578134579134580134581134582134583134584134585134586134587134588134589134590134591134592134593134594134595134596134597134598134599134600134601134602134603134604134605134606134607134608134609134610134611134612134613134614134615134616134617134618134619134620134621134622134623134624134625134626134627134628134629134630134631134632134633134634134635134636134637134638134639134640134641134642134643134644134645134646134647134648134649134650134651134652134653134654134655134656134657134658134659134660134661134662134663134664134665134666134667134668134669134670134671134672134673134674134675134676134677134678134679134680134681134682134683134684134685134686134687134688134689134690134691134692134693134694134695134696134697134698134699134700134701134702134703134704134705134706134707134708134709134710134711134712134713134714134715134716134717134718134719134720134721134722134723134724134725134726134727134728134729134730134731134732134733134734134735134736134737134738134739134740134741134742134743134744134745134746134747134748134749134750134751134752134753134754134755134756134757134758134759134760134761134762134763134764134765134766134767134768134769134770134771134772134773134774134775134776134777134778134779134780134781134782134783134784134785134786134787134788134789134790134791134792134793134794134795134796134797134798134799134800134801134802134803134804134805134806134807134808134809134810134811134812134813134814134815134816134817134818134819134820134821134822134823134824134825134826134827134828134829134830134831134832134833134834134835134836134837134838134839134840134841134842134843134844134845134846134847134848134849134850134851134852134853134854134855134856134857134858134859134860134861134862134863134864134865134866134867134868134869134870134871134872134873134874134875134876134877134878134879134880134881134882134883134884134885134886134887134888134889134890134891134892134893134894134895134896134897134898134899134900134901134902134903134904134905134906134907134908134909134910134911134912134913134914134915134916134917134918134919134920134921134922134923134924134925134926134927134928134929134930134931134932134933134934134935134936134937134938134939134940134941134942134943134944134945134946134947134948134949134950134951134952134953134954134955134956134957134958134959134960134961134962134963134964134965134966134967134968134969134970134971134972134973134974134975134976134977134978134979134980134981134982134983134984134985134986134987134988134989134990134991134992134993134994134995134996134997134998134999135000135001135002135003135004135005135006135007135008135009135010135011135012135013135014135015135016135017135018135019135020135021135022135023135024135025135026135027135028135029135030135031135032135033135034135035135036135037135038135039135040135041135042135043135044135045135046135047135048135049135050135051135052135053135054135055135056135057135058135059135060135061135062135063135064135065135066135067135068135069135070135071135072135073135074135075135076135077135078135079135080135081135082135083135084135085135086135087135088135089135090135091135092135093135094135095135096135097135098135099135100135101135102135103135104135105135106135107135108135109135110135111135112135113135114135115135116135117135118135119135120135121135122135123135124135125135126135127135128135129135130135131135132135133135134135135135136135137135138135139135140135141135142135143135144135145135146135147135148135149135150135151135152135153135154135155135156135157135158135159135160135161135162135163135164135165135166135167135168135169135170135171135172135173135174135175135176135177135178135179135180135181135182135183135184135185135186135187135188135189135190135191135192135193135194135195135196135197135198135199135200135201135202135203135204135205135206135207135208135209135210135211135212135213135214135215135216135217135218135219135220135221135222135223135224135225135226135227135228135229135230135231135232135233135234135235135236135237135238135239135240135241135242135243135244135245135246135247135248135249135250135251135252135253135254135255135256135257135258135259135260135261135262135263135264135265135266135267135268135269135270135271135272135273135274135275135276135277135278135279135280135281135282135283135284135285135286135287135288135289135290135291135292135293135294135295135296135297135298135299135300135301135302135303135304135305135306135307135308135309135310135311135312135313135314135315135316135317135318135319135320135321135322135323135324135325135326135327135328135329135330135331135332135333135334135335135336135337135338135339135340135341135342135343135344135345135346135347135348135349135350135351135352135353135354135355135356135357135358135359135360135361135362135363135364135365135366135367135368135369135370135371135372135373135374135375135376135377135378135379135380135381135382135383135384135385135386135387135388135389135390135391135392135393135394135395135396135397135398135399135400135401135402135403135404135405135406135407135408135409135410135411135412135413135414135415135416135417135418135419135420135421135422135423135424135425135426135427135428135429135430135431135432135433135434135435135436135437135438135439135440135441135442135443135444135445135446135447135448135449135450135451135452135453135454135455135456135457135458135459135460135461135462135463135464135465135466135467135468135469135470135471135472135473135474135475135476135477135478135479135480135481135482135483135484135485135486135487135488135489135490135491135492135493135494135495135496135497135498135499135500135501135502135503135504135505135506135507135508135509135510135511135512135513135514135515135516135517135518135519135520135521135522135523135524135525135526135527135528135529135530135531135532135533135534135535135536135537135538135539135540135541135542135543135544135545135546135547135548135549135550135551135552135553135554135555135556135557135558135559135560135561135562135563135564135565135566135567135568135569135570135571135572135573135574135575135576135577135578135579135580135581135582135583135584135585135586135587135588135589135590135591135592135593135594135595135596135597135598135599135600135601135602135603135604135605135606135607135608135609135610135611135612135613135614135615135616135617135618135619135620135621135622135623135624135625135626135627135628135629135630135631135632135633135634135635135636135637135638135639135640135641135642135643135644135645135646135647135648135649135650135651135652135653135654135655135656135657135658135659135660135661135662135663135664135665135666135667135668135669135670135671135672135673135674135675135676135677135678135679135680135681135682135683135684135685135686135687135688135689135690135691135692135693135694135695135696135697135698135699135700135701135702135703135704135705135706135707135708135709135710135711135712135713135714135715135716135717135718135719135720135721135722135723135724135725135726135727135728135729135730135731135732135733135734135735135736135737135738135739135740135741135742135743135744135745135746135747135748135749135750135751135752135753135754135755135756135757135758135759135760135761135762135763135764135765135766135767135768135769135770135771135772135773135774135775135776135777135778135779135780135781135782135783135784135785135786135787135788135789135790135791135792135793135794135795135796135797135798135799135800135801135802135803135804135805135806135807135808135809135810135811135812135813135814135815135816135817135818135819135820135821135822135823135824135825135826135827135828135829135830135831135832135833135834135835135836135837135838135839135840135841135842135843135844135845135846135847135848135849135850135851135852135853135854135855135856135857135858135859135860135861135862135863135864135865135866135867135868135869135870135871135872135873135874135875135876135877135878135879135880135881135882135883135884135885135886135887135888135889135890135891135892135893135894135895135896135897135898135899135900135901135902135903135904135905135906135907135908135909135910135911135912135913135914135915135916135917135918135919135920135921135922135923135924135925135926135927135928135929135930135931135932135933135934135935135936135937135938135939135940135941135942135943135944135945135946135947135948135949135950135951135952135953135954135955135956135957135958135959135960135961135962135963135964135965135966135967135968135969135970135971135972135973135974135975135976135977135978135979135980135981135982135983135984135985135986135987135988135989135990135991135992135993135994135995135996135997135998135999136000136001136002136003136004136005136006136007136008136009136010136011136012136013136014136015136016136017136018136019136020136021136022136023136024136025136026136027136028136029136030136031136032136033136034136035136036136037136038136039136040136041136042136043136044136045136046136047136048136049136050136051136052136053136054136055136056136057136058136059136060136061136062136063136064136065136066136067136068136069136070136071136072136073136074136075136076136077136078136079136080136081136082136083136084136085136086136087136088136089136090136091136092136093136094136095136096136097136098136099136100
  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-13 18:29:20.810293291 +0200
  31101. @@ -7,13 +7,14 @@
  31102. */
  31103. #include <features.h>
  31104. -#include <bits/arm_asm.h>
  31105. +#include <bits/arm_bx.h>
  31106. #if !defined(__thumb__)
  31107. __asm__(
  31108. " .text\n"
  31109. " .globl _start\n"
  31110. " .type _start,%function\n"
  31111. + " .hidden _start\n"
  31112. "_start:\n"
  31113. " @ at start time, all the args are on the stack\n"
  31114. " mov r0, sp\n"
  31115. diff -Nur uClibc-0.9.33.2/ldso/ldso/arm/dl-sysdep.h uClibc-git/ldso/ldso/arm/dl-sysdep.h
  31116. --- uClibc-0.9.33.2/ldso/ldso/arm/dl-sysdep.h 2012-05-15 09:20:09.000000000 +0200
  31117. +++ uClibc-git/ldso/ldso/arm/dl-sysdep.h 2014-06-02 17:40:33.926711497 +0200
  31118. @@ -58,11 +58,6 @@
  31119. struct elf_resolve;
  31120. unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_entry);
  31121. -/* 4096 bytes alignment */
  31122. -#define PAGE_ALIGN 0xfffff000
  31123. -#define ADDR_ALIGN 0xfff
  31124. -#define OFFS_ALIGN 0x7ffff000
  31125. -
  31126. /* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry or
  31127. TLS variable, so undefined references should not be allowed to
  31128. define the value.
  31129. diff -Nur uClibc-0.9.33.2/ldso/ldso/arm/elfinterp.c uClibc-git/ldso/ldso/arm/elfinterp.c
  31130. --- uClibc-0.9.33.2/ldso/ldso/arm/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
  31131. +++ uClibc-git/ldso/ldso/arm/elfinterp.c 2014-06-02 17:40:33.926711497 +0200
  31132. @@ -77,9 +77,9 @@
  31133. _dl_exit(1);
  31134. }
  31135. #if defined (__SUPPORT_LD_DEBUG__)
  31136. -#if !defined __SUPPORT_LD_DEBUG_EARLY__
  31137. +# if !defined __SUPPORT_LD_DEBUG_EARLY__
  31138. if ((unsigned long) got_addr < 0x40000000)
  31139. -#endif
  31140. +# endif
  31141. {
  31142. if (_dl_debug_bindings)
  31143. {
  31144. diff -Nur uClibc-0.9.33.2/ldso/ldso/arm/resolve.S uClibc-git/ldso/ldso/arm/resolve.S
  31145. --- uClibc-0.9.33.2/ldso/ldso/arm/resolve.S 2012-05-15 09:20:09.000000000 +0200
  31146. +++ uClibc-git/ldso/ldso/arm/resolve.S 2014-06-13 18:29:20.834293397 +0200
  31147. @@ -92,6 +92,7 @@
  31148. #include <sys/syscall.h>
  31149. #include <bits/arm_asm.h>
  31150. +#include <bits/arm_bx.h>
  31151. #include <features.h>
  31152. @@ -101,7 +102,7 @@
  31153. .text
  31154. .align 4 @ 16 byte boundary and there are 32 bytes below (arm case)
  31155. - #if !defined(__thumb__) || defined(__thumb2__)
  31156. +#if 1 /*(!defined(__thumb__) || defined __THUMB_INTERWORK__) || defined(__thumb2__)*/
  31157. .arm
  31158. .globl _dl_linux_resolve
  31159. .type _dl_linux_resolve,%function
  31160. diff -Nur uClibc-0.9.33.2/ldso/ldso/arm/thumb_atomics.S uClibc-git/ldso/ldso/arm/thumb_atomics.S
  31161. --- uClibc-0.9.33.2/ldso/ldso/arm/thumb_atomics.S 2012-05-15 09:20:09.000000000 +0200
  31162. +++ uClibc-git/ldso/ldso/arm/thumb_atomics.S 2014-06-02 17:40:33.926711497 +0200
  31163. @@ -29,9 +29,8 @@
  31164. Lesser General Public License for more details.
  31165. You should have received a copy of the GNU Lesser General Public
  31166. - License along with the GNU C Library; if not, write to the Free
  31167. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  31168. - 02111-1307 USA. */
  31169. + License along with the GNU C Library; if not, see
  31170. + <http://www.gnu.org/licenses/>. */
  31171. #include <features.h>
  31172. diff -Nur uClibc-0.9.33.2/ldso/ldso/avr32/dl-startup.h uClibc-git/ldso/ldso/avr32/dl-startup.h
  31173. --- uClibc-0.9.33.2/ldso/ldso/avr32/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  31174. +++ uClibc-git/ldso/ldso/avr32/dl-startup.h 2014-06-02 17:40:33.926711497 +0200
  31175. @@ -12,6 +12,7 @@
  31176. __asm__(" .text\n"
  31177. " .global _start\n"
  31178. " .type _start,@function\n"
  31179. + " .hidden _start\n"
  31180. "_start:\n"
  31181. /* All arguments are on the stack initially */
  31182. " mov r12, sp\n"
  31183. diff -Nur uClibc-0.9.33.2/ldso/ldso/avr32/dl-sysdep.h uClibc-git/ldso/ldso/avr32/dl-sysdep.h
  31184. --- uClibc-0.9.33.2/ldso/ldso/avr32/dl-sysdep.h 2012-05-15 09:20:09.000000000 +0200
  31185. +++ uClibc-git/ldso/ldso/avr32/dl-sysdep.h 2014-06-02 17:40:33.926711497 +0200
  31186. @@ -35,8 +35,6 @@
  31187. GOT_BASE[_i] += (unsigned long)MODULE->loadaddr; \
  31188. } while (0)
  31189. -#define do_rem(result, n, base) ((result) = (n) % (base))
  31190. -
  31191. /* Here we define the magic numbers that this dynamic loader should accept */
  31192. #define MAGIC1 EM_AVR32
  31193. #undef MAGIC2
  31194. diff -Nur uClibc-0.9.33.2/ldso/ldso/bfin/dl-startup.h uClibc-git/ldso/ldso/bfin/dl-startup.h
  31195. --- uClibc-0.9.33.2/ldso/ldso/bfin/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  31196. +++ uClibc-git/ldso/ldso/bfin/dl-startup.h 2014-06-02 17:40:33.930711520 +0200
  31197. @@ -14,9 +14,8 @@
  31198. Library General Public License for more details.
  31199. You should have received a copy of the GNU Lesser General Public
  31200. -License along with uClibc; see the file COPYING.LIB. If not, write to
  31201. -the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
  31202. -USA. */
  31203. +License along with uClibc; see the file COPYING.LIB. If not, see
  31204. +<http://www.gnu.org/licenses/>. */
  31205. /* Any assembly language/system dependent hacks needed to setup
  31206. * boot1.c so it will work as expected and cope with whatever platform
  31207. @@ -40,10 +39,7 @@
  31208. " .text\n"
  31209. " .global __start\n"
  31210. " .type __start,@function\n"
  31211. - /* Build system expects a "_start" for the entry point;
  31212. - provide it as it's free to do so with aliases. */
  31213. - " .set _start, __start\n"
  31214. - " .global _start\n"
  31215. + " .hidden __start\n"
  31216. "__start:\n"
  31217. " call .Lcall\n"
  31218. ".Lcall:\n"
  31219. diff -Nur uClibc-0.9.33.2/ldso/ldso/bfin/dl-syscalls.h uClibc-git/ldso/ldso/bfin/dl-syscalls.h
  31220. --- uClibc-0.9.33.2/ldso/ldso/bfin/dl-syscalls.h 2012-05-15 09:20:09.000000000 +0200
  31221. +++ uClibc-git/ldso/ldso/bfin/dl-syscalls.h 2014-06-02 17:40:33.930711520 +0200
  31222. @@ -14,9 +14,8 @@
  31223. Library General Public License for more details.
  31224. You should have received a copy of the GNU Lesser General Public
  31225. -License along with uClibc; see the file COPYING.LIB. If not, write to
  31226. -the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
  31227. -USA. */
  31228. +License along with uClibc; see the file COPYING.LIB. If not, see
  31229. +<http://www.gnu.org/licenses/>. */
  31230. #ifdef __NR_sram_alloc
  31231. #define __NR__dl_sram_alloc __NR_sram_alloc
  31232. diff -Nur uClibc-0.9.33.2/ldso/ldso/bfin/elfinterp.c uClibc-git/ldso/ldso/bfin/elfinterp.c
  31233. --- uClibc-0.9.33.2/ldso/ldso/bfin/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
  31234. +++ uClibc-git/ldso/ldso/bfin/elfinterp.c 2014-06-02 17:40:33.930711520 +0200
  31235. @@ -20,9 +20,8 @@
  31236. Library General Public License for more details.
  31237. You should have received a copy of the GNU Lesser General Public
  31238. -License along with uClibc; see the file COPYING.LIB. If not, write to
  31239. -the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
  31240. -USA. */
  31241. +License along with uClibc; see the file COPYING.LIB. If not, see
  31242. +<http://www.gnu.org/licenses/>. */
  31243. #include <sys/cdefs.h> /* __attribute_used__ */
  31244. diff -Nur uClibc-0.9.33.2/ldso/ldso/bfin/resolve.S uClibc-git/ldso/ldso/bfin/resolve.S
  31245. --- uClibc-0.9.33.2/ldso/ldso/bfin/resolve.S 2012-05-15 09:20:09.000000000 +0200
  31246. +++ uClibc-git/ldso/ldso/bfin/resolve.S 2014-06-02 17:40:33.930711520 +0200
  31247. @@ -14,9 +14,8 @@
  31248. Library General Public License for more details.
  31249. You should have received a copy of the GNU Lesser General Public
  31250. -License along with uClibc; see the file COPYING.LIB. If not, write to
  31251. -the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
  31252. -USA. */
  31253. +License along with uClibc; see the file COPYING.LIB. If not, see
  31254. +<http://www.gnu.org/licenses/>. */
  31255. /* The function below is tail-called by resolver stubs when a
  31256. lazily-bound function is called. It must preserve all
  31257. diff -Nur uClibc-0.9.33.2/ldso/ldso/c6x/dl-startup.h uClibc-git/ldso/ldso/c6x/dl-startup.h
  31258. --- uClibc-0.9.33.2/ldso/ldso/c6x/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  31259. +++ uClibc-git/ldso/ldso/c6x/dl-startup.h 2014-06-02 17:40:33.930711520 +0200
  31260. @@ -6,10 +6,9 @@
  31261. *
  31262. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  31263. */
  31264. -
  31265. #undef DL_START
  31266. #define DL_START(X) \
  31267. -int \
  31268. +static void * __attribute_used__ \
  31269. _dl_start (unsigned placeholder, \
  31270. struct elf32_dsbt_loadmap *dl_boot_progmap, \
  31271. struct elf32_dsbt_loadmap *dl_boot_ldsomap, \
  31272. @@ -34,7 +33,6 @@
  31273. * B4 --> executable loadmap address
  31274. * A6 --> interpreter loadmap address
  31275. * B6 --> dynamic section address
  31276. - * B14 --> our DP setup by kernel
  31277. *
  31278. * NB: DSBT index is always 0 for the executable
  31279. * and 1 for the interpreter
  31280. @@ -42,7 +40,76 @@
  31281. __asm__(" .text\n"
  31282. ".globl _start\n"
  31283. + ".hidden _start\n"
  31284. "_start:\n"
  31285. + /* Find interpreter DSBT base in dynamic section */
  31286. + " MV .S2 B6,B2\n"
  31287. + " || ADD .D1X B6,4,A2\n"
  31288. + " LDW .D2T2 *B2++[2],B0\n"
  31289. + " || LDW .D1T1 *A2++[2],A0\n"
  31290. + " MVKL .S2 " __stringify(DT_C6000_DSBT_BASE) ",B7\n"
  31291. + " MVKH .S2 " __stringify(DT_C6000_DSBT_BASE) ",B7\n"
  31292. + " NOP\n"
  31293. + " NOP\n"
  31294. + /*
  31295. + * B0 now holds dynamic tag and A0 holds tag value.
  31296. + * Loop through looking for DSBT base tag
  31297. + */
  31298. + "0:\n"
  31299. + " [B0] CMPEQ .L2 B0,B7,B1\n"
  31300. + " || [!B0] MVK .S2 1,B1\n"
  31301. + " [!B1] BNOP .S1 0b,5\n"
  31302. + " ||[!B1] LDW .D2T2 *B2++[2],B0\n"
  31303. + " ||[!B1] LDW .D1T1 *A2++[2],A0\n"
  31304. + /*
  31305. + * DSBT base in A0 needs to be relocated.
  31306. + * Search through our loadmap to find where it got loaded.
  31307. + *
  31308. + * struct elf32_dsbt_loadmap {
  31309. + * Elf32_Half version;
  31310. + * Elf32_Half nsegs;
  31311. + * struct {
  31312. + * Elf32_Addr addr;
  31313. + * Elf32_Addr p_vaddr;
  31314. + * Elf32_Word p_memsz;
  31315. + * } segments[];
  31316. + * }
  31317. + *
  31318. + */
  31319. + " MV .S1 A6,A1\n"
  31320. + " [!A1] MV .S1X B4,A1\n"
  31321. + " ADD .D1 A1,2,A3\n"
  31322. + " LDHU .D1T2 *A3++[1],B0\n" /* nsegs */
  31323. + " LDW .D1T1 *A3++[1],A10\n" /* addr */
  31324. + " LDW .D1T1 *A3++[1],A11\n" /* p_vaddr */
  31325. + " LDW .D1T1 *A3++[1],A12\n" /* p_memsz */
  31326. + " NOP\n"
  31327. + " NOP\n"
  31328. + /*
  31329. + * Here we have:
  31330. + * B0 -> number of segments to search.
  31331. + * A3 -> pointer to next segment to check
  31332. + * A10 -> segment load address
  31333. + * A11 -> ELF segment virt address
  31334. + * A12 -> ELF segment size
  31335. + */
  31336. + "0:\n"
  31337. + " [!B0] B .S2 0f\n"
  31338. + " SUB .D2 B0,1,B0\n"
  31339. + " CMPLTU .L1 A0,A11,A13\n"
  31340. + " || SUB .S1 A12,1,A12\n"
  31341. + " ADD .D1 A11,A12,A12\n"
  31342. + " CMPGTU .L1 A0,A12,A14\n"
  31343. + " OR .L1 A13,A14,A2\n"
  31344. + " [A2] B .S2 0b\n"
  31345. + " || [!A2] SUB .L1 A0,A11,A0\n"
  31346. + " [B0] LDW .D1T1 *A3++[1],A10\n" /* addr */
  31347. + " || [!A2] ADD .L1 A0,A10,A0\n"
  31348. + " [B0] LDW .D1T1 *A3++[1],A11\n" /* p_vaddr */
  31349. + " [B0] LDW .D1T1 *A3++[1],A12\n" /* p_memsz */
  31350. + " MV .S2X A0,B14\n"
  31351. + " NOP\n"
  31352. + "0:\n"
  31353. " B .S2 _dl_start\n"
  31354. " STW .D2T2 B14, *+B14[1]\n"
  31355. " ADD .D1X B15,8,A8\n"
  31356. diff -Nur uClibc-0.9.33.2/ldso/ldso/c6x/dl-sysdep.h uClibc-git/ldso/ldso/c6x/dl-sysdep.h
  31357. --- uClibc-0.9.33.2/ldso/ldso/c6x/dl-sysdep.h 2012-05-15 09:20:09.000000000 +0200
  31358. +++ uClibc-git/ldso/ldso/c6x/dl-sysdep.h 2014-06-02 17:40:33.930711520 +0200
  31359. @@ -52,13 +52,13 @@
  31360. struct funcdesc_ht;
  31361. struct elf32_dsbt_loadaddr;
  31362. -/* We must force strings used early in the bootstrap into the text
  31363. - segment (const data), such that they are referenced relative to
  31364. - the DP register rather than through the GOT which will not have
  31365. - been relocated when these are used. */
  31366. +/* Current toolchains access constant strings via unrelocated GOT
  31367. + entries. Fortunately, we have enough in place to just call the
  31368. + relocation function early on. */
  31369. #undef SEND_EARLY_STDERR
  31370. #define SEND_EARLY_STDERR(S) \
  31371. - do { static char __s[] = (S); SEND_STDERR (__s); } while (0)
  31372. + do { char *__p = __reloc_pointer((S), dl_boot_ldsomap?:dl_boot_progmap);\
  31373. + SEND_STDERR (__p); } while (0)
  31374. #define DL_LOADADDR_TYPE struct elf32_dsbt_loadaddr
  31375. @@ -114,7 +114,7 @@
  31376. (__dl_loadaddr_unmap ((LIB)->loadaddr))
  31377. #define DL_LOADADDR_BASE(LOADADDR) \
  31378. - ((LOADADDR).map->dsbt_table)
  31379. + ((LOADADDR).map)
  31380. #define DL_ADDR_IN_LOADADDR(ADDR, TPNT, TFROM) \
  31381. (! (TFROM) && __dl_addr_in_loadaddr ((void*)(ADDR), (TPNT)->loadaddr))
  31382. @@ -150,18 +150,28 @@
  31383. /*
  31384. - * Compute the GOT address.
  31385. - * Also setup program and interpreter DSBT table entries.
  31386. + * C6X doesn't really need the GOT here.
  31387. + * The GOT is placed just past the DSBT table, so we could find it by
  31388. + * using the DSBT register + table size found in the dynamic section.
  31389. + *
  31390. + * do { \
  31391. + * unsigned long *ldso_dsbt; \
  31392. + * ElfW(Dyn) *d = dl_boot_ldso_dyn_pointer; \
  31393. + * while (d->d_tag != DT_NULL) { \
  31394. + * if (d->d_tag == DT_C6000_DSBT_SIZE) { \
  31395. + * __asm__ (" MV .S2 B14,%0\n" \
  31396. + * : "=b" (ldso_dsbt)); \
  31397. + * (GOT) = ldso_dsbt + d->d_un.d_val; \
  31398. + * break; \
  31399. + * } \
  31400. + * d++; \
  31401. + * } \
  31402. + * } while(0)
  31403. + *
  31404. + * Instead, just point it to the DSBT table to avoid unused variable warning.
  31405. */
  31406. #define DL_BOOT_COMPUTE_GOT(GOT) \
  31407. - do { \
  31408. - unsigned long *ldso_dsbt, *prog_dsbt; \
  31409. - ldso_dsbt = dl_boot_ldsomap->dsbt_table; \
  31410. - prog_dsbt = dl_boot_progmap->dsbt_table; \
  31411. - ldso_dsbt[0] = prog_dsbt[0] = (unsigned long)prog_dsbt; \
  31412. - ldso_dsbt[1] = prog_dsbt[1] = (unsigned long)ldso_dsbt; \
  31413. - (GOT) = ldso_dsbt + dl_boot_ldsomap->dsbt_size; \
  31414. - } while(0)
  31415. + __asm__ (" MV .S2 B14,%0\n" : "=b" (GOT))
  31416. #define DL_BOOT_COMPUTE_DYN(dpnt, got, load_addr) \
  31417. ((dpnt) = dl_boot_ldso_dyn_pointer)
  31418. @@ -186,12 +196,9 @@
  31419. # undef __USE_GNU
  31420. #endif
  31421. -static __always_inline Elf32_Addr
  31422. -elf_machine_load_address (void)
  31423. -{
  31424. - /* this is never an issue on DSBT systems */
  31425. - return 0;
  31426. -}
  31427. +/* we need this for __LDSO_STANDALONE_SUPPORT__ */
  31428. +#define elf_machine_load_address() \
  31429. + (dl_boot_ldsomap ?: dl_boot_progmap)->segs[0].addr
  31430. static __always_inline void
  31431. elf_machine_relative (DL_LOADADDR_TYPE load_off, const Elf32_Addr rel_addr,
  31432. diff -Nur uClibc-0.9.33.2/ldso/ldso/c6x/elfinterp.c uClibc-git/ldso/ldso/c6x/elfinterp.c
  31433. --- uClibc-0.9.33.2/ldso/ldso/c6x/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
  31434. +++ uClibc-git/ldso/ldso/c6x/elfinterp.c 2014-06-02 17:40:33.930711520 +0200
  31435. @@ -69,14 +69,12 @@
  31436. got_addr = (char **) DL_RELOC_ADDR(tpnt->loadaddr, this_reloc->r_offset);
  31437. /* Get the address to be used to fill in the GOT entry. */
  31438. - new_addr = _dl_find_hash(symname, tpnt->symbol_scope, tpnt,
  31439. - ELF_RTYPE_CLASS_PLT, NULL);
  31440. + new_addr = _dl_find_hash(symname, &_dl_loaded_modules->symbol_scope, tpnt, ELF_RTYPE_CLASS_PLT, NULL);
  31441. if (unlikely(!new_addr)) {
  31442. _dl_dprintf(2, "%s: can't resolve symbol '%s' in lib '%s'.\n", _dl_progname, symname, tpnt->libname);
  31443. _dl_exit(1);
  31444. }
  31445. -
  31446. #if defined (__SUPPORT_LD_DEBUG__)
  31447. if (_dl_debug_bindings) {
  31448. _dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
  31449. @@ -96,9 +94,9 @@
  31450. }
  31451. static int
  31452. -_dl_parse(struct elf_resolve *tpnt, struct dyn_elf *scope,
  31453. +_dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope,
  31454. unsigned long rel_addr, unsigned long rel_size,
  31455. - int (*reloc_fnc) (struct elf_resolve *tpnt, struct dyn_elf *scope,
  31456. + int (*reloc_fnc) (struct elf_resolve *tpnt, struct r_scope_elem *scope,
  31457. ELF_RELOC *rpnt, ElfW(Sym) *symtab, char *strtab))
  31458. {
  31459. unsigned int i;
  31460. @@ -148,7 +146,7 @@
  31461. }
  31462. static int
  31463. -_dl_do_reloc (struct elf_resolve *tpnt,struct dyn_elf *scope,
  31464. +_dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope,
  31465. ELF_RELOC *rpnt, ElfW(Sym) *symtab, char *strtab)
  31466. {
  31467. int reloc_type;
  31468. @@ -157,7 +155,9 @@
  31469. unsigned long *reloc_addr;
  31470. unsigned long symbol_addr, sym_val;
  31471. long reloc_addend;
  31472. - unsigned long old_val, new_val;
  31473. + unsigned long old_val, new_val = 0;
  31474. + struct symbol_ref sym_ref;
  31475. + struct elf_resolve *symbol_tpnt;
  31476. reloc_addr = (unsigned long *)(intptr_t)
  31477. DL_RELOC_ADDR (tpnt->loadaddr, rpnt->r_offset);
  31478. @@ -167,14 +167,17 @@
  31479. symtab_index = ELF_R_SYM(rpnt->r_info);
  31480. symbol_addr = 0;
  31481. symname = strtab + symtab[symtab_index].st_name;
  31482. + sym_ref.sym = &symtab[symtab_index];
  31483. + sym_ref.tpnt = NULL;
  31484. if (ELF_ST_BIND (symtab[symtab_index].st_info) == STB_LOCAL) {
  31485. symbol_addr = (unsigned long)
  31486. DL_RELOC_ADDR (tpnt->loadaddr, symtab[symtab_index].st_value);
  31487. + symbol_tpnt = tpnt;
  31488. } else {
  31489. - symbol_addr = (unsigned long) _dl_find_hash(strtab + symtab[symtab_index].st_name,
  31490. - scope, tpnt, elf_machine_type_class(reloc_type),
  31491. - NULL);
  31492. + symbol_addr = (unsigned long) _dl_find_hash(symname,
  31493. + scope, NULL, elf_machine_type_class(reloc_type),
  31494. + &sym_ref);
  31495. /*
  31496. * We want to allow undefined references to weak symbols - this might
  31497. * have been intentional. We should not be linking local symbols
  31498. @@ -186,6 +189,7 @@
  31499. _dl_progname, strtab + symtab[symtab_index].st_name);
  31500. _dl_exit (1);
  31501. }
  31502. + symbol_tpnt = sym_ref.tpnt;
  31503. }
  31504. old_val = *reloc_addr;
  31505. sym_val = symbol_addr + reloc_addend;
  31506. @@ -199,7 +203,7 @@
  31507. *reloc_addr = sym_val;
  31508. break;
  31509. case R_C6000_DSBT_INDEX:
  31510. - new_val = (old_val & ~0x007fff00) | ((tpnt->loadaddr.map->dsbt_index & 0x7fff) << 8);
  31511. + new_val = (old_val & ~0x007fff00) | ((symbol_tpnt->dsbt_index & 0x7fff) << 8);
  31512. *reloc_addr = new_val;
  31513. break;
  31514. case R_C6000_ABS_L16:
  31515. @@ -242,7 +246,7 @@
  31516. static int
  31517. _dl_do_lazy_reloc (struct elf_resolve *tpnt,
  31518. - struct dyn_elf *scope attribute_unused,
  31519. + struct r_scope_elem *scope attribute_unused,
  31520. ELF_RELOC *rpnt, ElfW(Sym) *symtab attribute_unused,
  31521. char *strtab attribute_unused)
  31522. {
  31523. @@ -283,9 +287,9 @@
  31524. int
  31525. _dl_parse_relocation_information
  31526. -(struct dyn_elf *rpnt, unsigned long rel_addr, unsigned long rel_size)
  31527. +(struct dyn_elf *rpnt, struct r_scope_elem *scope, unsigned long rel_addr, unsigned long rel_size)
  31528. {
  31529. - return _dl_parse(rpnt->dyn, rpnt->dyn->symbol_scope, rel_addr, rel_size, _dl_do_reloc);
  31530. + return _dl_parse(rpnt->dyn, scope, rel_addr, rel_size, _dl_do_reloc);
  31531. }
  31532. /* We don't have copy relocs. */
  31533. diff -Nur uClibc-0.9.33.2/ldso/ldso/cris/dl-startup.h uClibc-git/ldso/ldso/cris/dl-startup.h
  31534. --- uClibc-0.9.33.2/ldso/ldso/cris/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  31535. +++ uClibc-git/ldso/ldso/cris/dl-startup.h 2014-06-02 17:40:33.946711608 +0200
  31536. @@ -10,6 +10,7 @@
  31537. " .text\n" \
  31538. " .globl _start\n" \
  31539. " .type _start,@function\n" \
  31540. +" .hidden _start\n" \
  31541. "_start:\n" \
  31542. " move.d $sp,$r10\n" \
  31543. " lapc _dl_start,$r9\n" \
  31544. @@ -28,6 +29,7 @@
  31545. " .text\n" \
  31546. " .globl _start\n" \
  31547. " .type _start,@function\n" \
  31548. +" .hidden _start\n" \
  31549. "_start:\n" \
  31550. " move.d $sp,$r10\n" \
  31551. " move.d $pc,$r9\n" \
  31552. diff -Nur uClibc-0.9.33.2/ldso/ldso/dl-elf.c uClibc-git/ldso/ldso/dl-elf.c
  31553. --- uClibc-0.9.33.2/ldso/ldso/dl-elf.c 2012-05-15 09:20:09.000000000 +0200
  31554. +++ uClibc-git/ldso/ldso/dl-elf.c 2014-06-02 17:40:33.946711608 +0200
  31555. @@ -174,8 +174,11 @@
  31556. _dl_strcpy(mylibname, "."); /* Assume current dir if empty path */
  31557. _dl_strcat(mylibname, "/");
  31558. _dl_strcat(mylibname, name);
  31559. - if ((tpnt = _dl_load_elf_shared_library(rflags, rpnt, mylibname)) != NULL)
  31560. - return tpnt;
  31561. +#ifdef __LDSO_SAFE_RUNPATH__
  31562. + if (*mylibname == '/')
  31563. +#endif
  31564. + if ((tpnt = _dl_load_elf_shared_library(rflags, rpnt, mylibname)) != NULL)
  31565. + return tpnt;
  31566. path_n = path+1;
  31567. }
  31568. path++;
  31569. @@ -500,7 +503,7 @@
  31570. return NULL;
  31571. }
  31572. header = _dl_mmap((void *) 0, _dl_pagesize, PROT_READ | PROT_WRITE,
  31573. - MAP_PRIVATE | MAP_ANONYMOUS | MAP_UNINITIALIZE, -1, 0);
  31574. + MAP_PRIVATE | MAP_ANONYMOUS | MAP_UNINITIALIZED, -1, 0);
  31575. if (_dl_mmap_check_error(header)) {
  31576. _dl_dprintf(2, "%s:%i: can't map '%s'\n", _dl_progname, __LINE__, libname);
  31577. _dl_internal_error_number = LD_ERROR_MMAP_FAILED;
  31578. @@ -739,7 +742,7 @@
  31579. }
  31580. }
  31581. #else
  31582. - _dl_dprintf(_dl_debug_file, "Can't modify %s's text section."
  31583. + _dl_dprintf(2, "Can't modify %s's text section."
  31584. " Use GCC option -fPIC for shared objects, please.\n",
  31585. libname);
  31586. _dl_exit(1);
  31587. @@ -791,7 +794,7 @@
  31588. #endif
  31589. {
  31590. # ifdef __SUPPORT_LD_DEBUG_EARLY__
  31591. - unsigned int tmp = (unsigned int) tpnt->l_tls_initimage;
  31592. + char *tmp = (char *) tpnt->l_tls_initimage;
  31593. tpnt->l_tls_initimage = (char *) tlsppnt->p_vaddr + tpnt->loadaddr;
  31594. _dl_debug_early("Relocated TLS initial image from %x to %x (size = %x)\n", tmp, tpnt->l_tls_initimage, tpnt->l_tls_initimage_size);
  31595. tmp = 0;
  31596. @@ -851,10 +854,15 @@
  31597. /* Handle DSBT initialization */
  31598. {
  31599. struct elf_resolve *t, *ref;
  31600. - int idx = tpnt->loadaddr.map->dsbt_index;
  31601. - unsigned *dsbt = tpnt->loadaddr.map->dsbt_table;
  31602. + int idx = tpnt->dsbt_index;
  31603. + void **dsbt = tpnt->dsbt_table;
  31604. - if (idx == 0) {
  31605. + /*
  31606. + * It is okay (required actually) to have zero idx for an executable.
  31607. + * This is the case when running ldso standalone and the program
  31608. + * is being mapped in via _dl_load_shared_library().
  31609. + */
  31610. + if (idx == 0 && tpnt->libtype != elf_executable) {
  31611. if (!dynamic_info[DT_TEXTREL]) {
  31612. /* This DSO has not been assigned an index. */
  31613. _dl_dprintf(2, "%s: '%s' is missing a dsbt index assignment!\n",
  31614. @@ -869,9 +877,9 @@
  31615. break;
  31616. }
  31617. }
  31618. - idx = tpnt->loadaddr.map->dsbt_size;
  31619. + idx = tpnt->dsbt_size;
  31620. while (idx-- > 0)
  31621. - if (!ref || ref->loadaddr.map->dsbt_table[idx] == NULL)
  31622. + if (!ref || ref->dsbt_table[idx] == NULL)
  31623. break;
  31624. if (idx <= 0) {
  31625. _dl_dprintf(2, "%s: '%s' caused DSBT table overflow!\n",
  31626. @@ -880,43 +888,36 @@
  31627. }
  31628. _dl_if_debug_dprint("\n\tfile='%s'; assigned index %d\n",
  31629. libname, idx);
  31630. - tpnt->loadaddr.map->dsbt_index = idx;
  31631. + tpnt->dsbt_index = idx;
  31632. + }
  31633. + /* make sure index is not already used */
  31634. + if (_dl_ldso_dsbt[idx]) {
  31635. + struct elf_resolve *dup;
  31636. + const char *dup_name;
  31637. +
  31638. + for (dup = _dl_loaded_modules; dup; dup = dup->next)
  31639. + if (dup != tpnt && dup->dsbt_index == idx)
  31640. + break;
  31641. + if (dup)
  31642. + dup_name = dup->libname;
  31643. + else if (idx == 1)
  31644. + dup_name = "runtime linker";
  31645. + else
  31646. + dup_name = "unknown library";
  31647. + _dl_dprintf(2, "%s: '%s' dsbt index %d already used by %s!\n",
  31648. + _dl_progname, libname, idx, dup_name);
  31649. + _dl_exit(1);
  31650. }
  31651. /*
  31652. * Setup dsbt slot for this module in dsbt of all modules.
  31653. */
  31654. - ref = NULL;
  31655. - for (t = _dl_loaded_modules; t; t = t->next) {
  31656. - /* find a dsbt table from another module */
  31657. - if (ref == NULL && t != tpnt) {
  31658. - ref = t;
  31659. -
  31660. - /* make sure index is not already used */
  31661. - if (t->loadaddr.map->dsbt_table[idx]) {
  31662. - struct elf_resolve *dup;
  31663. - char *dup_name;
  31664. -
  31665. - for (dup = _dl_loaded_modules; dup; dup = dup->next)
  31666. - if (dup != tpnt && dup->loadaddr.map->dsbt_index == idx)
  31667. - break;
  31668. - if (dup)
  31669. - dup_name = dup->libname;
  31670. - else if (idx == 1)
  31671. - dup_name = "runtime linker";
  31672. - else
  31673. - dup_name = "unknown library";
  31674. - _dl_dprintf(2, "%s: '%s' dsbt index %d already used by %s!\n",
  31675. - _dl_progname, libname, idx, dup_name);
  31676. - _dl_exit(1);
  31677. - }
  31678. - }
  31679. - t->loadaddr.map->dsbt_table[idx] = (unsigned)dsbt;
  31680. - }
  31681. - if (ref)
  31682. - _dl_memcpy(dsbt, ref->loadaddr.map->dsbt_table,
  31683. - tpnt->loadaddr.map->dsbt_size * sizeof(unsigned *));
  31684. + for (t = _dl_loaded_modules; t; t = t->next)
  31685. + t->dsbt_table[idx] = dsbt;
  31686. + _dl_ldso_dsbt[idx] = dsbt;
  31687. + _dl_memcpy(dsbt, _dl_ldso_dsbt,
  31688. + tpnt->dsbt_size * sizeof(tpnt->dsbt_table[0]));
  31689. }
  31690. #endif
  31691. _dl_if_debug_dprint("\n\tfile='%s'; generating link map\n", libname);
  31692. @@ -1006,6 +1007,7 @@
  31693. return goof;
  31694. }
  31695. +#ifdef IS_IN_rtld
  31696. /* Minimal printf which handles only %s, %d, and %x */
  31697. void _dl_dprintf(int fd, const char *fmt, ...)
  31698. {
  31699. @@ -1071,7 +1073,7 @@
  31700. break;
  31701. }
  31702. case 'x':
  31703. - case 'X':
  31704. + case 'p':
  31705. {
  31706. char tmp[22];
  31707. #if __WORDSIZE > 32
  31708. @@ -1108,6 +1110,7 @@
  31709. _dl_strcpy(retval, string);
  31710. return retval;
  31711. }
  31712. +#endif
  31713. unsigned int _dl_parse_dynamic_info(ElfW(Dyn) *dpnt, unsigned long dynamic_info[],
  31714. void *debug_addr, DL_LOADADDR_TYPE load_off)
  31715. diff -Nur uClibc-0.9.33.2/ldso/ldso/dl-hash.c uClibc-git/ldso/ldso/dl-hash.c
  31716. --- uClibc-0.9.33.2/ldso/ldso/dl-hash.c 2012-05-15 09:20:09.000000000 +0200
  31717. +++ uClibc-git/ldso/ldso/dl-hash.c 2014-06-02 17:40:33.946711608 +0200
  31718. @@ -115,6 +115,15 @@
  31719. tpnt->dynamic_addr = (ElfW(Dyn) *)dynamic_addr;
  31720. tpnt->libtype = loaded_file;
  31721. +#ifdef __DSBT__
  31722. + if (dynamic_info[DT_DSBT_BASE_IDX] != 0)
  31723. + tpnt->dsbt_table = (void *)dynamic_info[DT_DSBT_BASE_IDX];
  31724. + if (dynamic_info[DT_DSBT_SIZE_IDX] != 0)
  31725. + tpnt->dsbt_size = dynamic_info[DT_DSBT_SIZE_IDX];
  31726. + if (dynamic_info[DT_DSBT_INDEX_IDX] != 0)
  31727. + tpnt->dsbt_index = dynamic_info[DT_DSBT_INDEX_IDX];
  31728. +#endif /* __DSBT__ */
  31729. +
  31730. #ifdef __LDSO_GNU_HASH_SUPPORT__
  31731. if (dynamic_info[DT_GNU_HASH_IDX] != 0) {
  31732. Elf32_Word *hash32 = (Elf_Symndx*)dynamic_info[DT_GNU_HASH_IDX];
  31733. @@ -355,7 +364,6 @@
  31734. #if defined(USE_TLS) && USE_TLS
  31735. if (ELF_ST_TYPE(sym->st_info) == STT_TLS) {
  31736. _dl_assert(sym_ref != NULL);
  31737. - sym_ref->tpnt = tpnt;
  31738. return (char *)sym->st_value;
  31739. }
  31740. #endif
  31741. diff -Nur uClibc-0.9.33.2/ldso/ldso/dl-tls.c uClibc-git/ldso/ldso/dl-tls.c
  31742. --- uClibc-0.9.33.2/ldso/ldso/dl-tls.c 2012-05-15 09:20:09.000000000 +0200
  31743. +++ uClibc-git/ldso/ldso/dl-tls.c 2014-06-02 17:40:33.946711608 +0200
  31744. @@ -922,8 +922,7 @@
  31745. generation. */
  31746. ++_dl_tls_generation;
  31747. - _dl_dprintf (_dl_debug_file,
  31748. - "cannot create TLS data structures: ABORT\n");
  31749. + _dl_dprintf(2, "cannot create TLS data structures: ABORT\n");
  31750. _dl_exit (127);
  31751. }
  31752. diff -Nur uClibc-0.9.33.2/ldso/ldso/i386/dl-startup.h uClibc-git/ldso/ldso/i386/dl-startup.h
  31753. --- uClibc-0.9.33.2/ldso/ldso/i386/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  31754. +++ uClibc-git/ldso/ldso/i386/dl-startup.h 2014-06-02 17:40:33.950711630 +0200
  31755. @@ -7,6 +7,7 @@
  31756. " .text\n"
  31757. " .globl _start\n"
  31758. " .type _start,@function\n"
  31759. + " .hidden _start\n"
  31760. "_start:\n"
  31761. " call _dl_start\n"
  31762. " # Save the user entry point address in %edi.\n"
  31763. diff -Nur uClibc-0.9.33.2/ldso/ldso/ldso.c uClibc-git/ldso/ldso/ldso.c
  31764. --- uClibc-0.9.33.2/ldso/ldso/ldso.c 2012-05-15 09:20:09.000000000 +0200
  31765. +++ uClibc-git/ldso/ldso/ldso.c 2014-06-02 17:40:33.950711630 +0200
  31766. @@ -64,7 +64,7 @@
  31767. bool _dl_verbose = true; /* On by default */
  31768. bool prelinked = false;
  31769. #endif
  31770. -static int _dl_secure = 1; /* Are we dealing with setuid stuff? */
  31771. +int _dl_secure = 1; /* Are we dealing with setuid stuff? */
  31772. #ifdef __SUPPORT_LD_DEBUG__
  31773. char *_dl_debug = NULL;
  31774. @@ -77,17 +77,11 @@
  31775. int _dl_debug_file = 2;
  31776. #endif
  31777. -#if defined (__LDSO_STANDALONE_SUPPORT__) && defined (__sh__)
  31778. -/* Not hidden, needed for standalone execution. */
  31779. -/*
  31780. - * FIXME: align dl_start for SH to other archs so that we can keep this symbol
  31781. - * hidden and we don't need to handle in __uClibc_main
  31782. - */
  31783. +#ifdef __DSBT__
  31784. +void **_dl_ldso_dsbt = NULL;
  31785. +#endif
  31786. -unsigned long _dl_skip_args = 0;
  31787. -#else
  31788. unsigned long attribute_hidden _dl_skip_args = 0;
  31789. -#endif
  31790. const char *_dl_progname = UCLIBC_LDSO; /* The name of the executable being run */
  31791. #include "dl-startup.c"
  31792. @@ -245,9 +239,9 @@
  31793. _dl_debug_early("mmapping more memory\n");
  31794. _dl_mmap_zero = _dl_malloc_addr = _dl_mmap((void *) 0, rounded_size,
  31795. - PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_UNINITIALIZE, -1, 0);
  31796. + PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_UNINITIALIZED, -1, 0);
  31797. if (_dl_mmap_check_error(_dl_mmap_zero)) {
  31798. - _dl_dprintf(_dl_debug_file, "%s: mmap of a spare page failed!\n", _dl_progname);
  31799. + _dl_dprintf(2, "%s: mmap of a spare page failed!\n", _dl_progname);
  31800. _dl_exit(20);
  31801. }
  31802. }
  31803. @@ -464,9 +458,14 @@
  31804. _dl_progname = argv[0];
  31805. }
  31806. +#ifdef __DSBT__
  31807. + _dl_ldso_dsbt = (void *)tpnt->dynamic_info[DT_DSBT_BASE_IDX];
  31808. + _dl_ldso_dsbt[tpnt->dynamic_info[DT_DSBT_INDEX_IDX]] = _dl_ldso_dsbt;
  31809. +#endif
  31810. +
  31811. #ifndef __LDSO_STANDALONE_SUPPORT__
  31812. if (_start == (void *) auxvt[AT_ENTRY].a_un.a_val) {
  31813. - _dl_dprintf(_dl_debug_file, "Standalone execution is not enabled\n");
  31814. + _dl_dprintf(2, "Standalone execution is not enabled\n");
  31815. _dl_exit(1);
  31816. }
  31817. #endif
  31818. @@ -504,15 +503,15 @@
  31819. const char *nextp;
  31820. _dl_secure = 1;
  31821. +#ifdef __LDSO_PRELOAD_ENV_SUPPORT__
  31822. + _dl_preload = _dl_getenv("LD_PRELOAD", envp);
  31823. +#endif
  31824. nextp = unsecure_envvars;
  31825. do {
  31826. _dl_unsetenv (nextp, envp);
  31827. /* We could use rawmemchr but this need not be fast. */
  31828. nextp = _dl_strchr(nextp, '\0') + 1;
  31829. } while (*nextp != '\0');
  31830. -#ifdef __LDSO_PRELOAD_ENV_SUPPORT__
  31831. - _dl_preload = NULL;
  31832. -#endif
  31833. #ifdef __LDSO_LD_LIBRARY_PATH__
  31834. _dl_library_path = NULL;
  31835. #endif
  31836. @@ -527,8 +526,8 @@
  31837. #ifdef __LDSO_STANDALONE_SUPPORT__
  31838. if (_start == (void *) auxvt[AT_ENTRY].a_un.a_val) {
  31839. - unsigned int *aux_dat = (unsigned int *) argv;
  31840. - int argc = aux_dat[-1];
  31841. + ElfW(Addr) *aux_dat = (ElfW(Addr) *) argv;
  31842. + int argc = (int) aux_dat[-1];
  31843. tpnt->libname = argv[0];
  31844. while (argc > 1)
  31845. @@ -580,7 +579,7 @@
  31846. */
  31847. app_tpnt = _dl_load_elf_shared_library(_dl_secure, &rpnt, _dl_progname);
  31848. if (!app_tpnt) {
  31849. - _dl_dprintf(_dl_debug_file, "can't load '%s'\n", _dl_progname);
  31850. + _dl_dprintf(2, "can't load '%s'\n", _dl_progname);
  31851. _dl_exit(16);
  31852. }
  31853. /*
  31854. @@ -675,7 +674,7 @@
  31855. }
  31856. #else
  31857. if (app_tpnt->dynamic_info[DT_TEXTREL]) {
  31858. - _dl_dprintf(_dl_debug_file, "Can't modify application's text section; use the GCC option -fPIE for position-independent executables.\n");
  31859. + _dl_dprintf(2, "Can't modify application's text section; use the GCC option -fPIE for position-independent executables.\n");
  31860. _dl_exit(1);
  31861. }
  31862. #endif
  31863. @@ -698,6 +697,11 @@
  31864. app_tpnt->mapaddr = app_mapaddr;
  31865. app_tpnt->rtld_flags = unlazy | RTLD_GLOBAL;
  31866. app_tpnt->usage_count++;
  31867. +#ifdef __DSBT__
  31868. + _dl_ldso_dsbt[0] = app_tpnt->dsbt_table;
  31869. + _dl_memcpy(app_tpnt->dsbt_table, _dl_ldso_dsbt,
  31870. + app_tpnt->dsbt_size * sizeof(tpnt->dsbt_table[0]));
  31871. +#endif
  31872. lpnt = (unsigned long *) (app_tpnt->dynamic_info[DT_PLTGOT]);
  31873. #ifdef ALLOW_ZERO_PLTGOT
  31874. if (lpnt)
  31875. @@ -733,7 +737,7 @@
  31876. _dl_debug_early("Found TLS header for application program\n");
  31877. break;
  31878. #else
  31879. - _dl_dprintf(_dl_debug_file, "Program uses unsupported TLS data!\n");
  31880. + _dl_dprintf(2, "Program uses unsupported TLS data!\n");
  31881. _dl_exit(1);
  31882. #endif
  31883. }
  31884. @@ -747,7 +751,8 @@
  31885. * case the executable is actually an ET_DYN object.
  31886. */
  31887. if (app_tpnt->l_tls_initimage != NULL) {
  31888. - unsigned int tmp = (unsigned int) app_tpnt->l_tls_initimage;
  31889. + char *tmp attribute_unused =
  31890. + (char *) app_tpnt->l_tls_initimage;
  31891. app_tpnt->l_tls_initimage =
  31892. (char *) app_tpnt->l_tls_initimage + app_tpnt->loadaddr;
  31893. _dl_debug_early("Relocated TLS initial image from %x to %x (size = %x)\n",
  31894. @@ -823,7 +828,7 @@
  31895. #ifndef __LDSO_LDD_SUPPORT__
  31896. if (trace_loaded_objects) {
  31897. - _dl_dprintf(_dl_debug_file, "Use the ldd provided by uClibc\n");
  31898. + _dl_dprintf(2, "Use the ldd provided by uClibc\n");
  31899. _dl_exit(1);
  31900. }
  31901. #endif
  31902. @@ -879,8 +884,9 @@
  31903. else
  31904. #endif
  31905. {
  31906. - _dl_dprintf(_dl_debug_file, "%s: can't load " "library '%s'\n", _dl_progname, str);
  31907. - _dl_exit(15);
  31908. + _dl_dprintf(2, "%s: library '%s' "
  31909. + "from LD_PRELOAD can't be preloaded: ignored.\n",
  31910. + _dl_progname, str);
  31911. }
  31912. } else {
  31913. tpnt1->rtld_flags = unlazy | RTLD_GLOBAL;
  31914. @@ -923,7 +929,7 @@
  31915. }
  31916. if ((fd = _dl_open(LDSO_PRELOAD, O_RDONLY, 0)) < 0) {
  31917. - _dl_dprintf(_dl_debug_file, "%s: can't open file '%s'\n",
  31918. + _dl_dprintf(2, "%s: can't open file '%s'\n",
  31919. _dl_progname, LDSO_PRELOAD);
  31920. break;
  31921. }
  31922. @@ -932,7 +938,7 @@
  31923. PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
  31924. _dl_close(fd);
  31925. if (preload == (caddr_t) -1) {
  31926. - _dl_dprintf(_dl_debug_file, "%s:%i: can't map '%s'\n",
  31927. + _dl_dprintf(2, "%s:%i: can't map '%s'\n",
  31928. _dl_progname, __LINE__, LDSO_PRELOAD);
  31929. break;
  31930. }
  31931. @@ -971,7 +977,7 @@
  31932. else
  31933. # endif
  31934. {
  31935. - _dl_dprintf(_dl_debug_file, "%s: can't load library '%s'\n", _dl_progname, cp2);
  31936. + _dl_dprintf(2, "%s: can't load library '%s'\n", _dl_progname, cp2);
  31937. _dl_exit(15);
  31938. }
  31939. } else {
  31940. @@ -1032,7 +1038,7 @@
  31941. } else
  31942. #endif
  31943. {
  31944. - _dl_dprintf(_dl_debug_file, "%s: can't load library '%s'\n", _dl_progname, lpntstr);
  31945. + _dl_dprintf(2, "%s: can't load library '%s'\n", _dl_progname, lpntstr);
  31946. _dl_exit(16);
  31947. }
  31948. }
  31949. diff -Nur uClibc-0.9.33.2/ldso/ldso/m68k/dl-startup.h uClibc-git/ldso/ldso/m68k/dl-startup.h
  31950. --- uClibc-0.9.33.2/ldso/ldso/m68k/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  31951. +++ uClibc-git/ldso/ldso/m68k/dl-startup.h 2014-06-02 17:40:33.950711630 +0200
  31952. @@ -19,6 +19,7 @@
  31953. .text\n\
  31954. .globl _start\n\
  31955. .type _start,@function\n\
  31956. + .hidden _start\n\
  31957. _start:\n\
  31958. move.l %sp, -(%sp)\n\
  31959. jbsr _dl_start\n\
  31960. diff -Nur uClibc-0.9.33.2/ldso/ldso/m68k/elfinterp.c uClibc-git/ldso/ldso/m68k/elfinterp.c
  31961. --- uClibc-0.9.33.2/ldso/ldso/m68k/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
  31962. +++ uClibc-git/ldso/ldso/m68k/elfinterp.c 2014-06-02 17:40:33.950711630 +0200
  31963. @@ -241,8 +241,11 @@
  31964. _dl_memcpy ((void *) reloc_addr,
  31965. (void *) symbol_addr,
  31966. sym_ref.sym->st_size);
  31967. - } else
  31968. + }
  31969. +#if defined (__SUPPORT_LD_DEBUG__)
  31970. + else
  31971. _dl_dprintf(_dl_debug_file, "no symbol_addr to copy !?\n");
  31972. +#endif
  31973. break;
  31974. default:
  31975. diff -Nur uClibc-0.9.33.2/ldso/ldso/Makefile.in uClibc-git/ldso/ldso/Makefile.in
  31976. --- uClibc-0.9.33.2/ldso/ldso/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  31977. +++ uClibc-git/ldso/ldso/Makefile.in 2014-06-02 17:40:33.926711497 +0200
  31978. @@ -36,7 +36,7 @@
  31979. else
  31980. LDFLAGS-$(UCLIBC_LDSO_NAME).so := $(LDFLAGS_NOSTRIP) -Wl,-z,defs
  31981. endif
  31982. -LDFLAGS-$(UCLIBC_LDSO_NAME).so += -Wl,-e,_start -Wl,-z,now -Wl,-Bsymbolic \
  31983. +LDFLAGS-$(UCLIBC_LDSO_NAME).so += -Wl,-e,$(SYMBOL_PREFIX)_start -Wl,-z,now -Wl,-Bsymbolic \
  31984. -Wl,--export-dynamic $(CFLAG_-Wl--sort-common) -Wl,--discard-locals \
  31985. $(CFLAG_-Wl--discard-all) -Wl,--no-undefined
  31986. diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/dl-debug.h uClibc-git/ldso/ldso/metag/dl-debug.h
  31987. --- uClibc-0.9.33.2/ldso/ldso/metag/dl-debug.h 1970-01-01 01:00:00.000000000 +0100
  31988. +++ uClibc-git/ldso/ldso/metag/dl-debug.h 2014-06-02 17:40:33.950711630 +0200
  31989. @@ -0,0 +1,33 @@
  31990. +/*
  31991. + * Meta ELF shared library loader support.
  31992. + *
  31993. + * Program to load an elf binary on a linux system, and run it.
  31994. + * References to symbols in sharable libraries can be resolved
  31995. + * by either an ELF sharable library or a linux style of shared
  31996. + * library.
  31997. + *
  31998. + * Copyright (C) 2013, Imagination Technologies Ltd.
  31999. + *
  32000. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  32001. + */
  32002. +
  32003. +static const char *_dl_reltypes_tab[] = {
  32004. + [0] "R_METAG_HIADDR16", "R_METAG_LOADDR16", "R_METAG_ADDR32",
  32005. + [3] "R_METAG_NONE", "R_METAG_RELBRANCH", "R_METAG_GETSETOFF",
  32006. + [6] "R_METAG_REG32OP1", "R_METAG_REG32OP2", "R_METAG_REG32OP3",
  32007. + [9] "R_METAG_REG16OP1", "R_METAG_REG16OP2", "R_METAG_REG16OP3",
  32008. + [12] "R_METAG_REG32OP4", "R_METAG_HIOG", "R_METAG_LOOG",
  32009. + [30] "R_METAG_GNU_VTINHERIT", "R_METAG_GNU_VTENTRY",
  32010. + [32] "R_METAG_HI16_GOTOFF", "R_METAG_LO16_GOTOFF",
  32011. + [34] "R_METAG_GETSET_GOTOFF", "R_METAG_GETSET_GOT",
  32012. + [36] "R_METAG_HI16_GOTPC", "R_METAG_LO16_GOTPC",
  32013. + [38] "R_METAG_HI16_PLT", "R_METAG_LO16_PLT",
  32014. + [40] "R_METAG_RELBRANCH_PLT", "R_METAG_GOTOFF",
  32015. + [42] "R_METAG_PLT", "R_METAG_COPY", "R_METAG_JMP_SLOT",
  32016. + [45] "R_METAG_RELATIVE", "R_METAG_GLOB_DAT", "R_METAG_TLS_GD",
  32017. + [48] "R_METAG_TLS_LDM", "R_METAG_TLS_LDO_HI16", "R_METAG_TLS_LDO_LO16",
  32018. + [51] "R_METAG_TLS_LDO", "R_METAG_TLS_IE", "R_METAG_TLS_IENONPIC",
  32019. + [54] "R_METAG_TLS_IENONPIC_HI16", "R_METAG_TLS_IENONPIC_LO16",
  32020. + [56] "R_METAG_TLS_TPOFF", "R_METAG_TLS_DTPMOD", "R_METAG_TLS_DTPOFF",
  32021. + [59] "R_METAG_TLS_LE", "R_METAG_TLS_LE_HI16", "R_METAG_TLS_LE_LO16"
  32022. +};
  32023. diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/dl-inlines.h uClibc-git/ldso/ldso/metag/dl-inlines.h
  32024. --- uClibc-0.9.33.2/ldso/ldso/metag/dl-inlines.h 1970-01-01 01:00:00.000000000 +0100
  32025. +++ uClibc-git/ldso/ldso/metag/dl-inlines.h 2014-06-02 17:40:33.950711630 +0200
  32026. @@ -0,0 +1,39 @@
  32027. +/*
  32028. + * Copyright (C) 2013, Imagination Technologies Ltd.
  32029. + *
  32030. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  32031. + */
  32032. +
  32033. +static __always_inline int
  32034. +__dl_is_special_segment (Elf32_Ehdr *epnt,
  32035. + Elf32_Phdr *ppnt)
  32036. +{
  32037. + if (ppnt->p_type != PT_LOAD &&
  32038. + ppnt->p_type != PT_DYNAMIC)
  32039. + return 0;
  32040. +
  32041. + if (ppnt->p_vaddr >= 0x80000000 &&
  32042. + ppnt->p_vaddr < 0x82060000)
  32043. + return 1;
  32044. +
  32045. + if (ppnt->p_vaddr >= 0xe0200000 &&
  32046. + ppnt->p_vaddr < 0xe0260000)
  32047. + return 1;
  32048. +
  32049. + return 0;
  32050. +}
  32051. +
  32052. +static __always_inline char *
  32053. +__dl_map_segment (Elf32_Ehdr *epnt,
  32054. + Elf32_Phdr *ppnt,
  32055. + int infile,
  32056. + int flags)
  32057. +{
  32058. + char *addr = (char *)ppnt->p_vaddr;
  32059. +
  32060. + if (_DL_PREAD (infile, addr, ppnt->p_filesz, ppnt->p_offset) != ppnt->p_filesz) {
  32061. + return 0;
  32062. + }
  32063. +
  32064. + return addr;
  32065. +}
  32066. diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/dl-startup.h uClibc-git/ldso/ldso/metag/dl-startup.h
  32067. --- uClibc-0.9.33.2/ldso/ldso/metag/dl-startup.h 1970-01-01 01:00:00.000000000 +0100
  32068. +++ uClibc-git/ldso/ldso/metag/dl-startup.h 2014-06-02 17:40:33.950711630 +0200
  32069. @@ -0,0 +1,68 @@
  32070. +/*
  32071. + * Copyright (C) 2013 Imagination Technologies Ltd.
  32072. + *
  32073. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  32074. + */
  32075. +
  32076. +/*
  32077. + * This code fixes the stack pointer so that the dynamic linker
  32078. + * can find argc, argv and auxvt (Auxillary Vector Table).
  32079. + */
  32080. +
  32081. +__asm__ (
  32082. +" .text\n"
  32083. +" .global __start\n"
  32084. +" .type __start,@function\n"
  32085. +" .hidden __start\n"
  32086. +"_start:\n"
  32087. +"__start:\n"
  32088. +" MSETL [A0StP++],D0Ar4,D0Ar2\n"
  32089. +" MOV D1Ar1,D0Ar2\n"
  32090. +" CALLR D1RtP,__dl_start\n"
  32091. +" GETL D0Ar2,D1Ar1,[A0StP+#-(1*8)]\n"
  32092. +" GETL D0Ar4,D1Ar3,[A0StP+#-(2*8)]\n"
  32093. +" ADDT A1LbP,CPC1,#HI(__GLOBAL_OFFSET_TABLE__)\n"
  32094. +" ADD A1LbP,A1LbP,#LO(__GLOBAL_OFFSET_TABLE__+4)\n"
  32095. +" ADDT A1LbP,A1LbP,#HI(__dl_fini@GOTOFF)\n"
  32096. +" ADD A1LbP,A1LbP,#LO(__dl_fini@GOTOFF)\n"
  32097. +" MOV D0Ar4, A1LbP\n"
  32098. +" SUB A0StP,A0StP,#(2*8)\n"
  32099. +" MOV PC,D0Re0\n"
  32100. +" .size __start,.-__start\n"
  32101. +" .previous\n"
  32102. +);
  32103. +
  32104. +
  32105. +/*
  32106. + * Get a pointer to the argv array. On many platforms this can be just
  32107. + * the address if the first argument, on other platforms we need to
  32108. + * do something a little more subtle here.
  32109. + */
  32110. +
  32111. +#define GET_ARGV(ARGVP, ARGS) ARGVP = (((unsigned long *) ARGS))
  32112. +
  32113. +
  32114. +/* Handle relocation of the symbols in the dynamic loader. */
  32115. +static inline
  32116. +void PERFORM_BOOTSTRAP_RELOC(ELF_RELOC *rpnt, unsigned long *reloc_addr,
  32117. + unsigned long symbol_addr, unsigned long load_addr, Elf32_Sym *symtab)
  32118. +{
  32119. + switch (ELF32_R_TYPE(rpnt->r_info)) {
  32120. + case R_METAG_GLOB_DAT:
  32121. + case R_METAG_JMP_SLOT:
  32122. + case R_METAG_ADDR32:
  32123. + *reloc_addr = symbol_addr;
  32124. + break;
  32125. + case R_METAG_RELATIVE:
  32126. + *reloc_addr = load_addr + rpnt->r_addend;
  32127. + break;
  32128. + case R_METAG_RELBRANCH:
  32129. + *reloc_addr = symbol_addr + rpnt->r_addend - *reloc_addr - 4;
  32130. + break;
  32131. + case R_METAG_NONE:
  32132. + break;
  32133. + default:
  32134. + _dl_exit(1);
  32135. + break;
  32136. + }
  32137. +}
  32138. diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/dl-syscalls.h uClibc-git/ldso/ldso/metag/dl-syscalls.h
  32139. --- uClibc-0.9.33.2/ldso/ldso/metag/dl-syscalls.h 1970-01-01 01:00:00.000000000 +0100
  32140. +++ uClibc-git/ldso/ldso/metag/dl-syscalls.h 2014-06-02 17:40:33.950711630 +0200
  32141. @@ -0,0 +1,6 @@
  32142. +/* stub for arch-specific syscall issues
  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. diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/dl-sysdep.h uClibc-git/ldso/ldso/metag/dl-sysdep.h
  32149. --- uClibc-0.9.33.2/ldso/ldso/metag/dl-sysdep.h 1970-01-01 01:00:00.000000000 +0100
  32150. +++ uClibc-git/ldso/ldso/metag/dl-sysdep.h 2014-06-02 17:40:33.950711630 +0200
  32151. @@ -0,0 +1,121 @@
  32152. +/*
  32153. + * Meta can never use Elf32_Rel relocations.
  32154. + *
  32155. + * Copyright (C) 2013, Imagination Technologies Ltd.
  32156. + *
  32157. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  32158. + */
  32159. +
  32160. +#define ELF_USES_RELOCA
  32161. +
  32162. +#include <elf.h>
  32163. +
  32164. +/* Initialization sequence for the GOT. */
  32165. +#define INIT_GOT(GOT_BASE,MODULE) \
  32166. +{ \
  32167. + GOT_BASE[1] = (unsigned long) MODULE; \
  32168. + GOT_BASE[2] = (unsigned long) _dl_linux_resolve; \
  32169. +}
  32170. +
  32171. +/* Maximum unsigned GOT [GS]ETD offset size, ie. 2^(11+2). */
  32172. +#define GOT_REG_OFFSET 0x2000
  32173. +
  32174. +/* Defined some magic numbers that this ld.so should accept. */
  32175. +#define MAGIC1 EM_METAG
  32176. +#undef MAGIC2
  32177. +#define ELF_TARGET "META"
  32178. +
  32179. +/* Need bootstrap relocations */
  32180. +#define ARCH_NEEDS_BOOTSTRAP_RELOCS
  32181. +
  32182. +struct elf_resolve;
  32183. +extern unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry);
  32184. +
  32185. +/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry or
  32186. + TLS variable, so undefined references should not be allowed to
  32187. + define the value.
  32188. +
  32189. + ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one
  32190. + of the main executable's symbols, as for a COPY reloc. */
  32191. +#define elf_machine_type_class(type) \
  32192. + ((((type) == R_METAG_JMP_SLOT || (type) == R_METAG_TLS_DTPMOD \
  32193. + || (type) == R_METAG_TLS_DTPOFF || (type) == R_METAG_TLS_TPOFF) \
  32194. + * ELF_RTYPE_CLASS_PLT) \
  32195. + | (((type) == R_METAG_COPY) * ELF_RTYPE_CLASS_COPY))
  32196. +
  32197. +static inline Elf32_Addr
  32198. +elf_machine_dynamic(Elf32_Ehdr *header)
  32199. +{
  32200. + Elf32_Addr *got;
  32201. +
  32202. + __asm__ ("MOV %0,A1LbP" : "=r" (got));
  32203. +
  32204. + if (header->e_ident[EI_ABIVERSION] >= 1) {
  32205. + /* GOT register offset was introduced with ABI v1 */
  32206. + got = (Elf32_Addr*)((void*)got - GOT_REG_OFFSET);
  32207. + }
  32208. + return *got;
  32209. +}
  32210. +
  32211. +#define DL_BOOT_COMPUTE_GOT(GOT) \
  32212. + ((GOT) = elf_machine_dynamic(header))
  32213. +
  32214. +static inline Elf32_Addr
  32215. +elf_machine_load_address(void)
  32216. +{
  32217. + Elf32_Addr addr;
  32218. + __asm__ ("MOV D1Ar1,A1LbP\n"
  32219. + "ADDT D1Ar1,D1Ar1,#HI(__dl_start@GOTOFF)\n"
  32220. + "ADD D1Ar1,D1Ar1,#LO(__dl_start@GOTOFF)\n"
  32221. + "ADDT D0Ar2,D0Ar2,#HI(__dl_start_addr@GOTOFF)\n"
  32222. + "ADD D0Ar2,D0Ar2,#LO(__dl_start_addr@GOTOFF)\n"
  32223. + "GETD D0Ar2,[D0Ar2]\n"
  32224. + "SUB %0,D1Ar1,D0Ar2\n"
  32225. + ".section .data\n"
  32226. + "__dl_start_addr: .long __dl_start\n"
  32227. + ".previous\n"
  32228. + : "=d" (addr) : : "D1Ar1", "D0Ar2");
  32229. + return addr;
  32230. +}
  32231. +
  32232. +static inline void
  32233. +elf_machine_relative(Elf32_Addr load_off, const Elf32_Addr rel_addr,
  32234. + Elf32_Word relative_count)
  32235. +{
  32236. + Elf32_Rela *rpnt = (void *)rel_addr;
  32237. +
  32238. + --rpnt;
  32239. + do {
  32240. + Elf32_Addr *const reloc_addr =
  32241. + (void *)(load_off + (++rpnt)->r_offset);
  32242. +
  32243. + *reloc_addr = load_off + rpnt->r_addend;
  32244. + } while (--relative_count);
  32245. +}
  32246. +
  32247. +#define DL_MALLOC_ALIGN 8
  32248. +
  32249. +#define HAVE_DL_INLINES_H
  32250. +
  32251. +#define DL_IS_SPECIAL_SEGMENT(EPNT, PPNT) \
  32252. + __dl_is_special_segment(EPNT, PPNT)
  32253. +#define DL_MAP_SEGMENT(EPNT, PPNT, INFILE, FLAGS) \
  32254. + __dl_map_segment (EPNT, PPNT, INFILE, FLAGS)
  32255. +
  32256. +#define DL_CHECK_LIB_TYPE(epnt, piclib, _dl_progname, libname) \
  32257. +do \
  32258. +{ \
  32259. + ElfW(Phdr) *ppnt_; \
  32260. + char *header_ = (char *)epnt; \
  32261. + ppnt_ = (ElfW(Phdr) *)(intptr_t) & header_[epnt->e_phoff]; \
  32262. + if (ppnt_->p_vaddr >= 0x80000000 && \
  32263. + ppnt_->p_vaddr < 0x82060000) \
  32264. + (piclib) = 2; \
  32265. + if (ppnt_->p_vaddr >= 0xe0200000 && \
  32266. + ppnt_->p_vaddr < 0xe0260000) \
  32267. + (piclib) = 2; \
  32268. +} \
  32269. +while (0)
  32270. +
  32271. +#define _DL_PREAD(FD, BUF, SIZE, OFFSET) \
  32272. + (_dl_pread((FD), (BUF), (SIZE), (OFFSET)))
  32273. diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/elfinterp.c uClibc-git/ldso/ldso/metag/elfinterp.c
  32274. --- uClibc-0.9.33.2/ldso/ldso/metag/elfinterp.c 1970-01-01 01:00:00.000000000 +0100
  32275. +++ uClibc-git/ldso/ldso/metag/elfinterp.c 2014-06-02 17:40:33.954711653 +0200
  32276. @@ -0,0 +1,318 @@
  32277. +/*
  32278. + * Meta ELF shared library loader support.
  32279. + *
  32280. + * Program to load an elf binary on a linux system, and run it.
  32281. + * References to symbols in sharable libraries can be resolved
  32282. + * by either an ELF sharable library or a linux style of shared
  32283. + * library.
  32284. + *
  32285. + * Copyright (C) 2013, Imagination Technologies Ltd.
  32286. + *
  32287. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  32288. + */
  32289. +
  32290. +#include "ldso.h"
  32291. +
  32292. +/* Defined in resolve.S. */
  32293. +extern int _dl_linux_resolve(void);
  32294. +
  32295. +static inline unsigned long __get_unaligned_reloc(unsigned long *addr)
  32296. +{
  32297. + char *rel_addr = (char *)addr;
  32298. + unsigned long val;
  32299. +
  32300. + val = *rel_addr++ & 0xff;
  32301. + val |= (*rel_addr++ << 8) & 0x0000ff00;
  32302. + val |= (*rel_addr++ << 16) & 0x00ff0000;
  32303. + val |= (*rel_addr++ << 24) & 0xff000000;
  32304. +
  32305. + return val;
  32306. +}
  32307. +
  32308. +static inline void __put_unaligned_reloc(unsigned long *addr,
  32309. + unsigned long val)
  32310. +{
  32311. + char *rel_addr = (char *)addr;
  32312. +
  32313. + *rel_addr++ = (val & 0x000000ff);
  32314. + *rel_addr++ = ((val & 0x0000ff00) >> 8);
  32315. + *rel_addr++ = ((val & 0x00ff0000) >> 16);
  32316. + *rel_addr++ = ((val & 0xff000000) >> 24);
  32317. +}
  32318. +
  32319. +unsigned long
  32320. +_dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
  32321. +{
  32322. + int symtab_index;
  32323. + char *strtab;
  32324. + char *symname;
  32325. + char *new_addr;
  32326. + char *rel_addr;
  32327. + char **got_addr;
  32328. + ElfW(Sym) *symtab;
  32329. + ELF_RELOC *this_reloc;
  32330. + unsigned long instr_addr;
  32331. +
  32332. + rel_addr = (char *)tpnt->dynamic_info[DT_JMPREL];
  32333. +
  32334. + this_reloc = (ELF_RELOC *)(intptr_t)(rel_addr + reloc_entry);
  32335. + symtab_index = ELF_R_SYM(this_reloc->r_info);
  32336. +
  32337. + symtab = (ElfW(Sym) *)(intptr_t)tpnt->dynamic_info[DT_SYMTAB];
  32338. + strtab = (char *)tpnt->dynamic_info[DT_STRTAB];
  32339. + symname = strtab + symtab[symtab_index].st_name;
  32340. +
  32341. + /* Address of the jump instruction to fix up. */
  32342. + instr_addr = ((unsigned long)this_reloc->r_offset +
  32343. + (unsigned long)tpnt->loadaddr);
  32344. + got_addr = (char **)instr_addr;
  32345. +
  32346. + /* Get the address of the GOT entry. */
  32347. + new_addr = _dl_find_hash(symname, &_dl_loaded_modules->symbol_scope, tpnt,
  32348. + ELF_RTYPE_CLASS_PLT, NULL);
  32349. + if (unlikely(!new_addr)) {
  32350. + _dl_dprintf(2, "%s: Can't resolve symbol '%s'\n",
  32351. + _dl_progname, symname);
  32352. + _dl_exit(1);
  32353. + }
  32354. +
  32355. +#if defined (__SUPPORT_LD_DEBUG__)
  32356. + if (_dl_debug_bindings) {
  32357. + _dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
  32358. + if (_dl_debug_detail)
  32359. + _dl_dprintf(_dl_debug_file,
  32360. + "\n\tpatched: %x ==> %x @ %x\n",
  32361. + *got_addr, new_addr, got_addr);
  32362. + }
  32363. + if (!_dl_debug_nofixups) {
  32364. + *got_addr = new_addr;
  32365. + }
  32366. +#else
  32367. + *got_addr = new_addr;
  32368. +#endif
  32369. +
  32370. + return (unsigned long)new_addr;
  32371. +}
  32372. +
  32373. +static int
  32374. +_dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope,
  32375. + unsigned long rel_addr, unsigned long rel_size,
  32376. + int (*reloc_fnc)(struct elf_resolve *tpnt, struct r_scope_elem *scope,
  32377. + ELF_RELOC *rpnt, ElfW(Sym) *symtab, char *strtab))
  32378. +{
  32379. + int symtab_index;
  32380. + unsigned int i;
  32381. + char *strtab;
  32382. + ElfW(Sym) *symtab;
  32383. + ELF_RELOC *rpnt;
  32384. +
  32385. + /* Parse the relocation information. */
  32386. + rpnt = (ELF_RELOC *)(intptr_t)rel_addr;
  32387. + rel_size /= sizeof(ELF_RELOC);
  32388. +
  32389. + symtab = (ElfW(Sym) *)(intptr_t)tpnt->dynamic_info[DT_SYMTAB];
  32390. + strtab = (char *)tpnt->dynamic_info[DT_STRTAB];
  32391. +
  32392. + for (i = 0; i < rel_size; i++, rpnt++) {
  32393. + int res;
  32394. +
  32395. + symtab_index = ELF_R_SYM(rpnt->r_info);
  32396. +
  32397. + debug_sym(symtab, strtab, symtab_index);
  32398. + debug_reloc(symtab, strtab, rpnt);
  32399. +
  32400. + /* Pass over to actual relocation function. */
  32401. + res = reloc_fnc(tpnt, scope, rpnt, symtab, strtab);
  32402. +
  32403. + if (res == 0)
  32404. + continue;
  32405. +
  32406. + _dl_dprintf(2, "\n%s: ", _dl_progname);
  32407. +
  32408. + if (symtab_index)
  32409. + _dl_dprintf(2, "symbol '%s': ",
  32410. + strtab + symtab[symtab_index].st_name);
  32411. +
  32412. + if (unlikely(res < 0)) {
  32413. + int reloc_type = ELF_R_TYPE(rpnt->r_info);
  32414. +
  32415. +#if defined (__SUPPORT_LD_DEBUG__)
  32416. + _dl_dprintf(2, "can't handle reloc type %s\n",
  32417. + _dl_reltypes(reloc_type));
  32418. +#else
  32419. + _dl_dprintf(2, "can't handle reloc type %x\n",
  32420. + reloc_type);
  32421. +#endif
  32422. + _dl_exit(-res);
  32423. + } else if (unlikely(res > 0)) {
  32424. + _dl_dprintf(2, "can't resolve symbol\n");
  32425. + return res;
  32426. + }
  32427. + }
  32428. +
  32429. + return 0;
  32430. +}
  32431. +
  32432. +static int
  32433. +_dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
  32434. + ELF_RELOC *rpnt, ElfW(Sym) *symtab, char *strtab)
  32435. +{
  32436. + int reloc_type;
  32437. + int symtab_index;
  32438. + char *symname = NULL;
  32439. + unsigned long *reloc_addr;
  32440. + unsigned long symbol_addr;
  32441. +#if defined (__SUPPORT_LD_DEBUG__)
  32442. + unsigned long old_val = 0;
  32443. +#endif
  32444. + struct elf_resolve *tls_tpnt = NULL;
  32445. + struct symbol_ref sym_ref;
  32446. +
  32447. + reloc_addr = (unsigned long *)(tpnt->loadaddr + rpnt->r_offset);
  32448. + reloc_type = ELF_R_TYPE(rpnt->r_info);
  32449. + symtab_index = ELF_R_SYM(rpnt->r_info);
  32450. + symbol_addr = 0;
  32451. + sym_ref.sym = &symtab[symtab_index];
  32452. + sym_ref.tpnt = NULL;
  32453. +
  32454. + if (symtab_index) {
  32455. + symname = strtab + symtab[symtab_index].st_name;
  32456. + symbol_addr = (unsigned long)_dl_find_hash(symname, scope, tpnt,
  32457. + elf_machine_type_class(reloc_type), &sym_ref);
  32458. +
  32459. + if (!symbol_addr
  32460. + && ELF_ST_TYPE(symtab[symtab_index].st_info) != STT_TLS
  32461. + && ELF_ST_BIND(symtab[symtab_index].st_info) != STB_WEAK) {
  32462. + _dl_dprintf(2, "%s: can't resolve symbol '%s'\n",
  32463. + _dl_progname, symname);
  32464. + return 1;
  32465. + };
  32466. + if (_dl_trace_prelink) {
  32467. + _dl_debug_lookup(symname, tpnt, &symtab[symtab_index],
  32468. + &sym_ref, elf_machine_type_class(reloc_type));
  32469. + }
  32470. + tls_tpnt = sym_ref.tpnt;
  32471. + }
  32472. +
  32473. +#if defined (__SUPPORT_LD_DEBUG__)
  32474. + if (reloc_type != R_METAG_NONE)
  32475. + old_val = __get_unaligned_reloc(reloc_addr);
  32476. +#endif
  32477. +
  32478. +#if defined USE_TLS && USE_TLS
  32479. + /* In case of a TLS reloc, tls_tpnt NULL means we have an 'anonymous'
  32480. + symbol. This is the case for a static tls variable, so the lookup
  32481. + module is just that one is referencing the tls variable. */
  32482. + if (!tls_tpnt)
  32483. + tls_tpnt = tpnt;
  32484. +#endif
  32485. + switch (reloc_type) {
  32486. + case R_METAG_NONE:
  32487. + break;
  32488. + case R_METAG_GLOB_DAT:
  32489. + case R_METAG_JMP_SLOT:
  32490. + case R_METAG_ADDR32:
  32491. + __put_unaligned_reloc(reloc_addr,
  32492. + symbol_addr + rpnt->r_addend);
  32493. + break;
  32494. + case R_METAG_COPY:
  32495. +#if defined (__SUPPORT_LD_DEBUG__)
  32496. + if (_dl_debug_move)
  32497. + _dl_dprintf(_dl_debug_file,
  32498. + "\t%s move %d bytes from %x to %x\n",
  32499. + symname, symtab[symtab_index].st_size,
  32500. + symbol_addr + rpnt->r_addend,
  32501. + reloc_addr);
  32502. +#endif
  32503. +
  32504. + _dl_memcpy((char *)reloc_addr,
  32505. + (char *)symbol_addr + rpnt->r_addend,
  32506. + symtab[symtab_index].st_size);
  32507. + break;
  32508. + case R_METAG_RELATIVE:
  32509. + __put_unaligned_reloc(reloc_addr,
  32510. + (unsigned long)tpnt->loadaddr +
  32511. + rpnt->r_addend);
  32512. + break;
  32513. +#if defined USE_TLS && USE_TLS
  32514. + case R_METAG_TLS_DTPMOD:
  32515. + *reloc_addr = tls_tpnt->l_tls_modid;
  32516. + break;
  32517. + case R_METAG_TLS_DTPOFF:
  32518. + *reloc_addr = symbol_addr;
  32519. + break;
  32520. + case R_METAG_TLS_TPOFF:
  32521. + CHECK_STATIC_TLS ((struct link_map *) tls_tpnt);
  32522. + *reloc_addr = tls_tpnt->l_tls_offset + symbol_addr + rpnt->r_addend;
  32523. + break;
  32524. +#endif
  32525. + default:
  32526. + return -1; /* Calls _dl_exit(1). */
  32527. + }
  32528. +
  32529. +#if defined (__SUPPORT_LD_DEBUG__)
  32530. + if (_dl_debug_reloc && _dl_debug_detail && reloc_type != R_METAG_NONE) {
  32531. + unsigned long new_val = __get_unaligned_reloc(reloc_addr);
  32532. + _dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n",
  32533. + old_val, new_val, reloc_addr);
  32534. + }
  32535. +#endif
  32536. +
  32537. + return 0;
  32538. +}
  32539. +
  32540. +static int
  32541. +_dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
  32542. + ELF_RELOC *rpnt, ElfW(Sym) *symtab, char *strtab)
  32543. +{
  32544. + int reloc_type;
  32545. + unsigned long *reloc_addr;
  32546. +#if defined (__SUPPORT_LD_DEBUG__)
  32547. + unsigned long old_val;
  32548. +#endif
  32549. +
  32550. + reloc_addr = (unsigned long *)(tpnt->loadaddr + rpnt->r_offset);
  32551. + reloc_type = ELF_R_TYPE(rpnt->r_info);
  32552. +
  32553. +#if defined (__SUPPORT_LD_DEBUG__)
  32554. + old_val = *reloc_addr;
  32555. +#endif
  32556. +
  32557. + switch (reloc_type) {
  32558. + case R_METAG_NONE:
  32559. + break;
  32560. + case R_METAG_JMP_SLOT:
  32561. + *reloc_addr += (unsigned long)tpnt->loadaddr;
  32562. + break;
  32563. + default:
  32564. + return -1; /* Calls _dl_exit(1). */
  32565. + }
  32566. +
  32567. +#if defined (__SUPPORT_LD_DEBUG__)
  32568. + if (_dl_debug_reloc && _dl_debug_detail)
  32569. + _dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n",
  32570. + old_val, *reloc_addr, reloc_addr);
  32571. +#endif
  32572. +
  32573. + return 0;
  32574. +}
  32575. +
  32576. +/* External interface to the generic part of the dynamic linker. */
  32577. +
  32578. +void
  32579. +_dl_parse_lazy_relocation_information(struct dyn_elf *rpnt,
  32580. + unsigned long rel_addr,
  32581. + unsigned long rel_size)
  32582. +{
  32583. + _dl_parse(rpnt->dyn, NULL, rel_addr, rel_size, _dl_do_lazy_reloc);
  32584. +}
  32585. +
  32586. +int
  32587. +_dl_parse_relocation_information(struct dyn_elf *rpnt,
  32588. + struct r_scope_elem *scope,
  32589. + unsigned long rel_addr,
  32590. + unsigned long rel_size)
  32591. +{
  32592. + return _dl_parse(rpnt->dyn, scope, rel_addr,
  32593. + rel_size, _dl_do_reloc);
  32594. +}
  32595. diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/metag_load_tp.S uClibc-git/ldso/ldso/metag/metag_load_tp.S
  32596. --- uClibc-0.9.33.2/ldso/ldso/metag/metag_load_tp.S 1970-01-01 01:00:00.000000000 +0100
  32597. +++ uClibc-git/ldso/ldso/metag/metag_load_tp.S 2014-06-02 17:40:33.954711653 +0200
  32598. @@ -0,0 +1,20 @@
  32599. +! Copyright (C) 2013 Imagination Technologies Ltd.
  32600. +
  32601. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  32602. +
  32603. +#include <features.h>
  32604. +
  32605. +#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  32606. +
  32607. +#include <sysdep.h>
  32608. +
  32609. + .text
  32610. + .global ___metag_load_tp
  32611. + .type ___metag_load_tp,@function
  32612. +
  32613. +___metag_load_tp:
  32614. + MOVT D1Ar1,#HI(0x6ffff000)
  32615. + JUMP D1Ar1,#LO(0x6ffff000)
  32616. + .size ___metag_load_tp,.-___metag_load_tp
  32617. +
  32618. +#endif /* __UCLIBC_HAS_THREADS_NATIVE__ */
  32619. diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/resolve.S uClibc-git/ldso/ldso/metag/resolve.S
  32620. --- uClibc-0.9.33.2/ldso/ldso/metag/resolve.S 1970-01-01 01:00:00.000000000 +0100
  32621. +++ uClibc-git/ldso/ldso/metag/resolve.S 2014-06-02 17:40:33.954711653 +0200
  32622. @@ -0,0 +1,51 @@
  32623. +/*
  32624. + * Meta dynamic resolver
  32625. + *
  32626. + * Copyright (C) 2013 Imagination Technologies Ltd.
  32627. + *
  32628. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  32629. + *
  32630. + * This function is _not_ called directly. It is jumped to (so no return
  32631. + * address is on the stack) when attempting to use a symbol that has not yet
  32632. + * been resolved. The first time a jump symbol (such as a function call inside
  32633. + * a shared library) is used (before it gets resolved) it will jump here to
  32634. + * _dl_linux_resolve. When we get called the stack looks like this:
  32635. + * reloc_entry
  32636. + * tpnt
  32637. + *
  32638. + * This function saves all the registers then makes the function call
  32639. + * _dl_linux_resolver(tpnt, reloc_entry). _dl_linux_resolver() figures out
  32640. + * where the jump symbol is _really_ supposed to have jumped to and returns
  32641. + * that to us. Once we have that, we overwrite tpnt with this fixed up
  32642. + * address. We then clean up after ourselves, put all the registers back how we
  32643. + * found them, then we jump to the fixed up address, which is where the jump
  32644. + * symbol that got us here really wanted to jump to in the first place.
  32645. + * -Erik Andersen
  32646. + */
  32647. +
  32648. + .text
  32649. + .global __dl_linux_resolve
  32650. + .type __dl_linux_resolve,@function
  32651. +
  32652. +__dl_linux_resolve:
  32653. + !! Save registers on the stack. Do we need to save any more here?
  32654. + MSETL [A0StP++],D0Ar6,D0Ar4,D0Ar2,D0FrT
  32655. + SETL [A0StP++],A0FrP,A1LbP
  32656. + !! Get the args for _dl_linux_resolver off the stack
  32657. + GETL D0Re0,D1Re0,[A0StP+#-(6*8)]
  32658. + GETD D1Ar1,[D0Re0]
  32659. + MOV D0Ar2,D1Re0
  32660. + !! Multiply plt_index by sizeof(Elf32_Rela)
  32661. + MULW D0Ar2,D0Ar2,#12
  32662. + !! Call the resolver
  32663. + CALLR D1RtP,__dl_linux_resolver
  32664. + !! Restore the registers from the stack
  32665. + SUB A0.2,A0StP,#(1*8)
  32666. + GETL A0FrP,A1LbP,[A0.2]
  32667. + SUB A0.2,A0.2,#(4*8)
  32668. + MGETL D0Ar6,D0Ar4,D0Ar2,D0FrT,[A0.2]
  32669. + !! Also take into account args pushed by PLT
  32670. + SUB A0StP,A0StP,#(6*8)
  32671. + !! Jump to the resolved address
  32672. + MOV PC,D0Re0
  32673. + .size __dl_linux_resolve, .-__dl_linux_resolve
  32674. diff -Nur uClibc-0.9.33.2/ldso/ldso/microblaze/dl-startup.h uClibc-git/ldso/ldso/microblaze/dl-startup.h
  32675. --- uClibc-0.9.33.2/ldso/ldso/microblaze/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  32676. +++ uClibc-git/ldso/ldso/microblaze/dl-startup.h 2014-06-02 17:40:33.954711653 +0200
  32677. @@ -12,14 +12,14 @@
  32678. Lesser General Public License for more details.
  32679. You should have received a copy of the GNU Lesser General Public
  32680. - License along with the GNU C Library; if not, write to the Free
  32681. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  32682. - 02111-1307 USA. */
  32683. + License along with the GNU C Library; if not, see
  32684. + <http://www.gnu.org/licenses/>. */
  32685. __asm__ ("\
  32686. .text\n\
  32687. .globl _start\n\
  32688. .type _start,@function\n\
  32689. + .hidden _start\n\
  32690. _start:\n\
  32691. addk r5,r0,r1\n\
  32692. addk r3,r0,r0\n\
  32693. diff -Nur uClibc-0.9.33.2/ldso/ldso/microblaze/dl-sysdep.h uClibc-git/ldso/ldso/microblaze/dl-sysdep.h
  32694. --- uClibc-0.9.33.2/ldso/ldso/microblaze/dl-sysdep.h 2012-05-15 09:20:09.000000000 +0200
  32695. +++ uClibc-git/ldso/ldso/microblaze/dl-sysdep.h 2014-06-02 17:40:33.954711653 +0200
  32696. @@ -12,9 +12,8 @@
  32697. Lesser General Public License for more details.
  32698. You should have received a copy of the GNU Lesser General Public
  32699. - License along with the GNU C Library; if not, write to the Free
  32700. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  32701. - 02111-1307 USA. */
  32702. + License along with the GNU C Library; if not, see
  32703. + <http://www.gnu.org/licenses/>. */
  32704. /* Use reloca */
  32705. #define ELF_USES_RELOCA
  32706. diff -Nur uClibc-0.9.33.2/ldso/ldso/microblaze/resolve.S uClibc-git/ldso/ldso/microblaze/resolve.S
  32707. --- uClibc-0.9.33.2/ldso/ldso/microblaze/resolve.S 2012-05-15 09:20:09.000000000 +0200
  32708. +++ uClibc-git/ldso/ldso/microblaze/resolve.S 2014-06-02 17:40:33.954711653 +0200
  32709. @@ -18,9 +18,8 @@
  32710. Lesser General Public License for more details.
  32711. You should have received a copy of the GNU Lesser General Public
  32712. - License along with the GNU C Library; if not, write to the Free
  32713. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  32714. - 02111-1307 USA. */
  32715. + License along with the GNU C Library; if not, see
  32716. + <http://www.gnu.org/licenses/>. */
  32717. .text
  32718. .align 4
  32719. diff -Nur uClibc-0.9.33.2/ldso/ldso/mips/dl-debug.h uClibc-git/ldso/ldso/mips/dl-debug.h
  32720. --- uClibc-0.9.33.2/ldso/ldso/mips/dl-debug.h 2012-05-15 09:20:09.000000000 +0200
  32721. +++ uClibc-git/ldso/ldso/mips/dl-debug.h 2014-06-02 17:40:33.954711653 +0200
  32722. @@ -40,6 +40,15 @@
  32723. [25] "R_MIPS_INSERT_A", "R_MIPS_INSERT_B", "R_MIPS_DELETE",
  32724. [28] "R_MIPS_HIGHER", "R_MIPS_HIGHEST", "R_MIPS_CALL_HI16",
  32725. [31] "R_MIPS_CALL_LO16", "R_MIPS_SCN_DISP", "R_MIPS_REL16",
  32726. - [34] "R_MIPS_ADD_IMMEDIATE", "R_MIPS_PJUMP", "R_MIPS_RELGOT",
  32727. - [37] "R_MIPS_JALR",
  32728. + [34] "R_MIPS_ADD_IMMEDIATE", "R_MIPS_PJUMP", "R_MIPS_RELGOT",
  32729. + [37] "R_MIPS_JALR", "R_MIPS_TLS_DTPMOD32", "R_MIPS_TLS_DTPREL32",
  32730. + [40] "R_MIPS_TLS_DTPMOD64", "R_MIPS_TLS_DTPREL64", "R_MIPS_TLS_GD",
  32731. + [43] "R_MIPS_TLS_LDM", "R_MIPS_TLS_DTPREL_HI16",
  32732. + [45] "R_MIPS_TLS_DTPREL_LO16",
  32733. + [46] "R_MIPS_TLS_GOTTPREL", "R_MIPS_TLS_TPREL32", "R_MIPS_TLS_TPREL64",
  32734. + [49] "R_MIPS_TLS_TPREL_HI16",
  32735. + [50] "R_MIPS_TLS_TPREL_LO16",
  32736. + [51] "R_MIPS_GLOB_DAT",
  32737. + [126] "R_MIPS_COPY", "R_MIPS_JUMP_SLOT",
  32738. +
  32739. };
  32740. diff -Nur uClibc-0.9.33.2/ldso/ldso/mips/dl-startup.h uClibc-git/ldso/ldso/mips/dl-startup.h
  32741. --- uClibc-0.9.33.2/ldso/ldso/mips/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  32742. +++ uClibc-git/ldso/ldso/mips/dl-startup.h 2014-06-02 17:40:33.954711653 +0200
  32743. @@ -12,6 +12,7 @@
  32744. " .globl _start\n"
  32745. " .ent _start\n"
  32746. " .type _start,@function\n"
  32747. + " .hidden _start\n"
  32748. "_start:\n"
  32749. " .set noreorder\n"
  32750. " move $25, $31\n"
  32751. diff -Nur uClibc-0.9.33.2/ldso/ldso/mips/elfinterp.c uClibc-git/ldso/ldso/mips/elfinterp.c
  32752. --- uClibc-0.9.33.2/ldso/ldso/mips/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
  32753. +++ uClibc-git/ldso/ldso/mips/elfinterp.c 2014-06-02 17:40:33.954711653 +0200
  32754. @@ -240,31 +240,19 @@
  32755. case R_MIPS_TLS_DTPMOD32:
  32756. if (tls_tpnt)
  32757. *(ElfW(Word) *)reloc_addr = tls_tpnt->l_tls_modid;
  32758. -#ifdef __SUPPORT_LD_DEBUG__
  32759. - _dl_dprintf(2, "TLS_DTPMOD : %s, %d, %d\n",
  32760. - symname, old_val, *((unsigned int *)reloc_addr));
  32761. -#endif
  32762. break;
  32763. case R_MIPS_TLS_DTPREL64:
  32764. case R_MIPS_TLS_DTPREL32:
  32765. *(ElfW(Word) *)reloc_addr +=
  32766. TLS_DTPREL_VALUE (symbol_addr);
  32767. -#ifdef __SUPPORT_LD_DEBUG__
  32768. - _dl_dprintf(2, "TLS_DTPREL : %s, %x, %x\n",
  32769. - symname, old_val, *((unsigned int *)reloc_addr));
  32770. -#endif
  32771. break;
  32772. case R_MIPS_TLS_TPREL32:
  32773. case R_MIPS_TLS_TPREL64:
  32774. CHECK_STATIC_TLS((struct link_map *)tls_tpnt);
  32775. - *(ElfW(Word) *)reloc_addr +=
  32776. + *(ElfW(Addr) *)reloc_addr +=
  32777. TLS_TPREL_VALUE (tls_tpnt, symbol_addr);
  32778. -#ifdef __SUPPORT_LD_DEBUG__
  32779. - _dl_dprintf(2, "TLS_TPREL : %s, %x, %x\n",
  32780. - symname, old_val, *((unsigned int *)reloc_addr));
  32781. -#endif
  32782. break;
  32783. }
  32784. @@ -325,11 +313,11 @@
  32785. _dl_exit(1);
  32786. }
  32787. }
  32788. - }
  32789. #if defined (__SUPPORT_LD_DEBUG__)
  32790. - if (_dl_debug_reloc && _dl_debug_detail && reloc_addr)
  32791. - _dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n", old_val, *reloc_addr, reloc_addr);
  32792. + if (_dl_debug_reloc && _dl_debug_detail && reloc_addr)
  32793. + _dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n", old_val, *reloc_addr, reloc_addr);
  32794. #endif
  32795. + }
  32796. return 0;
  32797. }
  32798. diff -Nur uClibc-0.9.33.2/ldso/ldso/mips/README uClibc-git/ldso/ldso/mips/README
  32799. --- uClibc-0.9.33.2/ldso/ldso/mips/README 2012-05-15 09:20:09.000000000 +0200
  32800. +++ uClibc-git/ldso/ldso/mips/README 2014-06-02 17:40:33.954711653 +0200
  32801. @@ -13,7 +13,7 @@
  32802. elfinterp.c
  32803. -----------
  32804. Contains the runtime resolver code taken from the function
  32805. -'__dl_runtime_resolve' in 'sysdeps/mips/dl-machine.h'. Also
  32806. +'__dl_runtime_resolve' in 'sysdeps/mips/dl-trampoline.h'. Also
  32807. contains the function to perform relocations for objects
  32808. other than the linker itself. The code was taken from the
  32809. function 'elf_machine_rel' in 'sysdeps/mips/dl-machine.h'.
  32810. @@ -47,6 +47,6 @@
  32811. ---------
  32812. Contains the low-level assembly code for the dynamic runtime
  32813. resolver. The code is taken from the assembly code function
  32814. -'_dl_runtime_resolve' in the file 'sysdeps/mips/dl-machine.h'.
  32815. +'_dl_runtime_resolve' in the file 'sysdeps/mips/dl-trampoline.h'.
  32816. The code looks a bit different since we only need to pass the
  32817. symbol index and the old GP register.
  32818. diff -Nur uClibc-0.9.33.2/ldso/ldso/powerpc/dl-startup.h uClibc-git/ldso/ldso/powerpc/dl-startup.h
  32819. --- uClibc-0.9.33.2/ldso/ldso/powerpc/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  32820. +++ uClibc-git/ldso/ldso/powerpc/dl-startup.h 2014-06-02 17:40:33.954711653 +0200
  32821. @@ -8,6 +8,7 @@
  32822. " .text\n"
  32823. " .globl _start\n"
  32824. " .type _start,@function\n"
  32825. + " .hidden _start\n"
  32826. "_start:\n"
  32827. " mr 3,1\n" /* Pass SP to _dl_start in r3 */
  32828. " li 0,0\n"
  32829. diff -Nur uClibc-0.9.33.2/ldso/ldso/powerpc/elfinterp.c uClibc-git/ldso/ldso/powerpc/elfinterp.c
  32830. --- uClibc-0.9.33.2/ldso/ldso/powerpc/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
  32831. +++ uClibc-git/ldso/ldso/powerpc/elfinterp.c 2014-06-02 17:40:33.954711653 +0200
  32832. @@ -234,12 +234,12 @@
  32833. case R_PPC_ADDR32:
  32834. case R_PPC_GLOB_DAT:
  32835. *reloc_addr = finaladdr;
  32836. - goto out_nocode; /* No code code modified */
  32837. + goto out_nocode; /* No code modified */
  32838. case R_PPC_JMP_SLOT:
  32839. {
  32840. if (tpnt->dynamic_info[DT_PPC_GOT_IDX] != 0) {
  32841. *reloc_addr = finaladdr;
  32842. - goto out_nocode; /* No code code modified */
  32843. + goto out_nocode; /* No code modified */
  32844. } else {
  32845. Elf32_Sword delta = finaladdr - (Elf32_Word)reloc_addr;
  32846. if (delta<<6>>6 == delta) {
  32847. @@ -275,7 +275,7 @@
  32848. symbol_addr, reloc_addr);
  32849. #endif
  32850. _dl_memcpy((char *) reloc_addr, (char *) finaladdr, sym_ref.sym->st_size);
  32851. - goto out_nocode; /* No code code modified */
  32852. + goto out_nocode; /* No code modified */
  32853. case R_PPC_ADDR16_HA:
  32854. finaladdr += 0x8000; /* fall through. */
  32855. case R_PPC_ADDR16_HI:
  32856. @@ -314,7 +314,7 @@
  32857. return -1;
  32858. #endif
  32859. case R_PPC_NONE:
  32860. - goto out_nocode; /* No code code modified */
  32861. + goto out_nocode; /* No code modified */
  32862. default:
  32863. _dl_dprintf(2, "%s: can't handle reloc type ", _dl_progname);
  32864. #if defined (__SUPPORT_LD_DEBUG__)
  32865. diff -Nur uClibc-0.9.33.2/ldso/ldso/sh/dl-startup.h uClibc-git/ldso/ldso/sh/dl-startup.h
  32866. --- uClibc-0.9.33.2/ldso/ldso/sh/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  32867. +++ uClibc-git/ldso/ldso/sh/dl-startup.h 2014-06-02 17:40:33.954711653 +0200
  32868. @@ -6,6 +6,7 @@
  32869. " .text\n"
  32870. " .globl _start\n"
  32871. " .type _start,@function\n"
  32872. + " .hidden _start\n"
  32873. "_start:\n"
  32874. " mov r15, r4\n"
  32875. " mov.l .L_dl_start, r0\n"
  32876. @@ -16,12 +17,22 @@
  32877. " mov.l .L_got, r12 ! Load the GOT on r12\n"
  32878. " mova .L_got, r0\n"
  32879. " add r0, r12\n"
  32880. + " mov.l .L_dl_skip_args,r0\n"
  32881. + " mov.l @(r0,r12),r0\n"
  32882. + " mov.l @r0,r0\n"
  32883. + " mov.l @r15,r5 ! Get the original argument count\n"
  32884. + " sub r0,r5 ! Subtract _dl_skip_args from it\n"
  32885. + " shll2 r0\n"
  32886. + " add r0,r15 ! Adjust the stack pointer to skip _dl_skip_args words\n"
  32887. + " mov.l r5,@r15 ! Store back the modified argument count\n"
  32888. " mov.l .L_dl_fini, r0\n"
  32889. " mov.l @(r0,r12), r4 ! Pass the finalizer in r4\n"
  32890. " jmp @r8\n"
  32891. " nop\n"
  32892. ".L_dl_start:\n"
  32893. " .long _dl_start-.jmp_loc\n"
  32894. + ".L_dl_skip_args:\n"
  32895. + " .long _dl_skip_args@GOT\n"
  32896. ".L_dl_fini:\n"
  32897. " .long _dl_fini@GOT\n"
  32898. ".L_got:\n"
  32899. diff -Nur uClibc-0.9.33.2/ldso/ldso/sh/elfinterp.c uClibc-git/ldso/ldso/sh/elfinterp.c
  32900. --- uClibc-0.9.33.2/ldso/ldso/sh/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
  32901. +++ uClibc-git/ldso/ldso/sh/elfinterp.c 2014-06-02 17:40:33.954711653 +0200
  32902. @@ -160,7 +160,9 @@
  32903. unsigned long old_val;
  32904. #endif
  32905. +#if defined USE_TLS && USE_TLS
  32906. struct elf_resolve *tls_tpnt = NULL;
  32907. +#endif
  32908. struct symbol_ref sym_ref;
  32909. reloc_addr = (unsigned long *)(intptr_t) (tpnt->loadaddr + (unsigned long) rpnt->r_offset);
  32910. @@ -193,7 +195,9 @@
  32911. _dl_debug_lookup (symname, tpnt, &symtab[symtab_index],
  32912. &sym_ref, elf_machine_type_class(reloc_type));
  32913. }
  32914. +#if defined USE_TLS && USE_TLS
  32915. tls_tpnt = sym_ref.tpnt;
  32916. +#endif
  32917. }
  32918. #if defined (__SUPPORT_LD_DEBUG__)
  32919. diff -Nur uClibc-0.9.33.2/ldso/ldso/sh64/dl-startup.h uClibc-git/ldso/ldso/sh64/dl-startup.h
  32920. --- uClibc-0.9.33.2/ldso/ldso/sh64/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  32921. +++ uClibc-git/ldso/ldso/sh64/dl-startup.h 2014-06-02 17:40:33.954711653 +0200
  32922. @@ -7,6 +7,7 @@
  32923. " .section .text..SHmedia32,\"ax\"\n" \
  32924. " .globl _start\n" \
  32925. " .type _start, @function\n" \
  32926. +" .hidden _start\n" \
  32927. " .align 5\n" \
  32928. "_start:\n" \
  32929. " ! Set r12 to point to GOT\n" \
  32930. diff -Nur uClibc-0.9.33.2/ldso/ldso/sparc/dl-startup.h uClibc-git/ldso/ldso/sparc/dl-startup.h
  32931. --- uClibc-0.9.33.2/ldso/ldso/sparc/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  32932. +++ uClibc-git/ldso/ldso/sparc/dl-startup.h 2014-06-02 17:40:33.954711653 +0200
  32933. @@ -8,6 +8,7 @@
  32934. .text\n\
  32935. .global _start\n\
  32936. .type _start,%function\n\
  32937. + .hidden _start\n\
  32938. .align 32\n\
  32939. .register %g2, #scratch\n\
  32940. _start:\n\
  32941. diff -Nur uClibc-0.9.33.2/ldso/ldso/sparc/elfinterp.c uClibc-git/ldso/ldso/sparc/elfinterp.c
  32942. --- uClibc-0.9.33.2/ldso/ldso/sparc/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
  32943. +++ uClibc-git/ldso/ldso/sparc/elfinterp.c 2014-06-02 17:40:33.958711675 +0200
  32944. @@ -275,8 +275,11 @@
  32945. _dl_memcpy((char *)reloc_addr,
  32946. (char *)symbol_addr,
  32947. sym_ref.sym->st_size);
  32948. - } else
  32949. + }
  32950. +#if defined (__SUPPORT_LD_DEBUG__)
  32951. + else
  32952. _dl_dprintf(_dl_debug_file, "no symbol_addr to copy !?\n");
  32953. +#endif
  32954. break;
  32955. #if defined USE_TLS && USE_TLS
  32956. case R_SPARC_TLS_DTPMOD32:
  32957. diff -Nur uClibc-0.9.33.2/ldso/ldso/x86_64/dl-startup.h uClibc-git/ldso/ldso/x86_64/dl-startup.h
  32958. --- uClibc-0.9.33.2/ldso/ldso/x86_64/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  32959. +++ uClibc-git/ldso/ldso/x86_64/dl-startup.h 2014-06-02 17:40:33.958711675 +0200
  32960. @@ -10,6 +10,7 @@
  32961. " .text\n"
  32962. " .global _start\n"
  32963. " .type _start,%function\n"
  32964. + " .hidden _start\n"
  32965. "_start:\n"
  32966. " movq %rsp, %rdi\n"
  32967. " call _dl_start\n"
  32968. diff -Nur uClibc-0.9.33.2/ldso/ldso/x86_64/dl-sysdep.h uClibc-git/ldso/ldso/x86_64/dl-sysdep.h
  32969. --- uClibc-0.9.33.2/ldso/ldso/x86_64/dl-sysdep.h 2012-05-15 09:20:09.000000000 +0200
  32970. +++ uClibc-git/ldso/ldso/x86_64/dl-sysdep.h 2014-06-02 17:40:33.958711675 +0200
  32971. @@ -16,9 +16,8 @@
  32972. Lesser General Public License for more details.
  32973. You should have received a copy of the GNU Lesser General Public
  32974. - License along with the GNU C Library; if not, write to the Free
  32975. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  32976. - 02111-1307 USA. */
  32977. + License along with the GNU C Library; if not, see
  32978. + <http://www.gnu.org/licenses/>. */
  32979. /* Define this if the system uses RELOCA. */
  32980. #define ELF_USES_RELOCA
  32981. diff -Nur uClibc-0.9.33.2/ldso/ldso/xtensa/dl-startup.h uClibc-git/ldso/ldso/xtensa/dl-startup.h
  32982. --- uClibc-0.9.33.2/ldso/ldso/xtensa/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  32983. +++ uClibc-git/ldso/ldso/xtensa/dl-startup.h 2014-06-02 17:40:33.958711675 +0200
  32984. @@ -11,8 +11,10 @@
  32985. __asm__ (
  32986. " .text\n"
  32987. " .align 4\n"
  32988. + " .literal_position\n"
  32989. " .global _start\n"
  32990. " .type _start, @function\n"
  32991. + " .hidden _start\n"
  32992. "_start:\n"
  32993. " # Compute load offset in a2: the GOT has not yet been relocated\n"
  32994. " # but the entries for local symbols contain the relative offsets\n"
  32995. diff -Nur uClibc-0.9.33.2/ldso/ldso/xtensa/dl-sysdep.h uClibc-git/ldso/ldso/xtensa/dl-sysdep.h
  32996. --- uClibc-0.9.33.2/ldso/ldso/xtensa/dl-sysdep.h 2012-05-15 09:20:09.000000000 +0200
  32997. +++ uClibc-git/ldso/ldso/xtensa/dl-sysdep.h 2014-06-02 17:40:33.958711675 +0200
  32998. @@ -14,9 +14,8 @@
  32999. Lesser General Public License for more details.
  33000. You should have received a copy of the GNU Lesser General Public
  33001. - License along with the GNU C Library; if not, write to the Free
  33002. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  33003. - Boston, MA 02110-1301, USA. */
  33004. + License along with the GNU C Library; if not, see
  33005. + <http://www.gnu.org/licenses/>. */
  33006. /* Define this if the system uses RELOCA. */
  33007. #define ELF_USES_RELOCA
  33008. diff -Nur uClibc-0.9.33.2/ldso/ldso/xtensa/resolve.S uClibc-git/ldso/ldso/xtensa/resolve.S
  33009. --- uClibc-0.9.33.2/ldso/ldso/xtensa/resolve.S 2012-05-15 09:20:09.000000000 +0200
  33010. +++ uClibc-git/ldso/ldso/xtensa/resolve.S 2014-06-02 17:40:33.958711675 +0200
  33011. @@ -14,9 +14,8 @@
  33012. Lesser General Public License for more details.
  33013. You should have received a copy of the GNU Lesser General Public
  33014. - License along with the GNU C Library; if not, write to the Free
  33015. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  33016. - Boston, MA 02110-1301, USA. */
  33017. + License along with the GNU C Library; if not, see
  33018. + <http://www.gnu.org/licenses/>. */
  33019. #define MIN_FRAME_SIZE 32
  33020. @@ -28,6 +27,7 @@
  33021. .text
  33022. .align 4
  33023. + .literal_position
  33024. .global _dl_linux_resolve
  33025. .type _dl_linux_resolve, @function
  33026. _dl_linux_resolve:
  33027. diff -Nur uClibc-0.9.33.2/ldso/libdl/libdl.c uClibc-git/ldso/libdl/libdl.c
  33028. --- uClibc-0.9.33.2/ldso/libdl/libdl.c 2012-05-15 09:20:09.000000000 +0200
  33029. +++ uClibc-git/ldso/libdl/libdl.c 2014-06-02 17:40:33.958711675 +0200
  33030. @@ -32,7 +32,7 @@
  33031. #include <ldso.h>
  33032. #include <stdio.h>
  33033. -#include <string.h> /* Needed for 'strstr' prototype' */
  33034. +#include <string.h>
  33035. #include <stdbool.h>
  33036. #include <bits/uClibc_mutex.h>
  33037. @@ -42,6 +42,7 @@
  33038. #if defined(USE_TLS) && USE_TLS
  33039. #include <ldsodefs.h>
  33040. +#include <dl-tls.h>
  33041. extern void _dl_add_to_slotinfo(struct link_map *l);
  33042. #endif
  33043. @@ -51,7 +52,6 @@
  33044. #ifdef SHARED
  33045. # if defined(USE_TLS) && USE_TLS
  33046. -# include <dl-tls.h>
  33047. extern struct link_map *_dl_update_slotinfo(unsigned long int req_modid);
  33048. # endif
  33049. @@ -269,7 +269,7 @@
  33050. #endif
  33051. #ifndef __LDSO_NO_CLEANUP__
  33052. -void dl_cleanup(void) __attribute__ ((destructor));
  33053. +void dl_cleanup(void) attribute_hidden __attribute__ ((destructor));
  33054. void dl_cleanup(void)
  33055. {
  33056. struct dyn_elf *h, *n;
  33057. @@ -296,11 +296,10 @@
  33058. return p - list;
  33059. }
  33060. -static void *do_dlopen(const char *libname, int flag)
  33061. +static void *do_dlopen(const char *libname, int flag, ElfW(Addr) from)
  33062. {
  33063. struct elf_resolve *tpnt, *tfrom;
  33064. struct dyn_elf *dyn_chain, *rpnt = NULL, *dyn_ptr, *relro_ptr, *handle;
  33065. - ElfW(Addr) from;
  33066. struct elf_resolve *tpnt1;
  33067. void (*dl_brk) (void);
  33068. int now_flag;
  33069. @@ -309,7 +308,9 @@
  33070. struct elf_resolve **init_fini_list;
  33071. static bool _dl_init;
  33072. struct elf_resolve **local_scope;
  33073. +#ifdef SHARED
  33074. struct r_scope_elem *ls;
  33075. +#endif
  33076. #if defined(USE_TLS) && USE_TLS
  33077. bool any_tls = false;
  33078. #endif
  33079. @@ -320,8 +321,6 @@
  33080. return NULL;
  33081. }
  33082. - from = (ElfW(Addr)) __builtin_return_address(0);
  33083. -
  33084. if (!_dl_init) {
  33085. _dl_init = true;
  33086. _dl_malloc_function = malloc;
  33087. @@ -335,7 +334,7 @@
  33088. # ifdef __SUPPORT_LD_DEBUG__
  33089. _dl_debug = getenv("LD_DEBUG");
  33090. if (_dl_debug) {
  33091. - if (_dl_strstr(_dl_debug, "all")) {
  33092. + if (strstr(_dl_debug, "all")) {
  33093. _dl_debug_detail = _dl_debug_move = _dl_debug_symbols
  33094. = _dl_debug_reloc = _dl_debug_bindings = _dl_debug_nofixups = (void*)1;
  33095. } else {
  33096. @@ -377,7 +376,7 @@
  33097. if (getenv("LD_BIND_NOW"))
  33098. now_flag = RTLD_NOW;
  33099. -#if !defined SHARED && defined __LDSO_LIBRARY_PATH__
  33100. +#if !defined SHARED && defined __LDSO_LD_LIBRARY_PATH__
  33101. /* When statically linked, the _dl_library_path is not yet initialized */
  33102. _dl_library_path = getenv("LD_LIBRARY_PATH");
  33103. #endif
  33104. @@ -393,7 +392,7 @@
  33105. return NULL;
  33106. }
  33107. dyn_chain = (struct dyn_elf *) malloc(sizeof(struct dyn_elf));
  33108. - _dl_memset(dyn_chain, 0, sizeof(struct dyn_elf));
  33109. + memset(dyn_chain, 0, sizeof(struct dyn_elf));
  33110. dyn_chain->dyn = tpnt;
  33111. tpnt->rtld_flags |= (flag & RTLD_GLOBAL);
  33112. @@ -444,7 +443,7 @@
  33113. /* This list is for dlsym() and relocation */
  33114. dyn_ptr->next = (struct dyn_elf *) malloc(sizeof(struct dyn_elf));
  33115. - _dl_memset (dyn_ptr->next, 0, sizeof (struct dyn_elf));
  33116. + memset (dyn_ptr->next, 0, sizeof (struct dyn_elf));
  33117. dyn_ptr = dyn_ptr->next;
  33118. dyn_ptr->dyn = tpnt1;
  33119. /* Used to record RTLD_LOCAL scope */
  33120. @@ -544,11 +543,18 @@
  33121. * to the GOT tables. We need to do this in reverse order so that COPY
  33122. * directives work correctly */
  33123. - /* Get the tail of the list */
  33124. +#ifdef SHARED
  33125. + /*
  33126. + * Get the tail of the list.
  33127. + * In the static case doesn't need to extend the global scope, it is
  33128. + * ready to be used as it is, because _dl_loaded_modules already points
  33129. + * to the dlopened library.
  33130. + */
  33131. for (ls = &_dl_loaded_modules->symbol_scope; ls && ls->next; ls = ls->next);
  33132. /* Extend the global scope by adding the local scope of the dlopened DSO. */
  33133. ls->next = &dyn_chain->dyn->symbol_scope;
  33134. +#endif
  33135. #ifdef __mips__
  33136. /*
  33137. * Relocation of the GOT entries for MIPS have to be done
  33138. @@ -661,7 +667,8 @@
  33139. void *ret;
  33140. __UCLIBC_MUTEX_CONDITIONAL_LOCK(_dl_mutex, 1);
  33141. - ret = do_dlopen(libname, flag);
  33142. + ret = do_dlopen(libname, flag,
  33143. + (ElfW(Addr)) __builtin_return_address(0));
  33144. __UCLIBC_MUTEX_CONDITIONAL_UNLOCK(_dl_mutex, 1);
  33145. return ret;
  33146. @@ -671,7 +678,7 @@
  33147. {
  33148. struct elf_resolve *tpnt, *tfrom;
  33149. struct dyn_elf *handle;
  33150. - ElfW(Addr) from;
  33151. + ElfW(Addr) from = 0;
  33152. struct dyn_elf *rpnt;
  33153. void *ret;
  33154. struct symbol_ref sym_ref = { NULL, NULL };
  33155. @@ -729,7 +736,13 @@
  33156. tpnt = NULL;
  33157. if (handle == _dl_symbol_tables)
  33158. tpnt = handle->dyn; /* Only search RTLD_GLOBAL objs if global object */
  33159. - ret = _dl_find_hash(name2, &handle->dyn->symbol_scope, tpnt, ELF_RTYPE_CLASS_DLSYM, &sym_ref);
  33160. +
  33161. + do {
  33162. + ret = _dl_find_hash(name2, &handle->dyn->symbol_scope, tpnt, ELF_RTYPE_CLASS_DLSYM, &sym_ref);
  33163. + if (ret != NULL)
  33164. + break;
  33165. + handle = handle->next;
  33166. + } while (from && handle);
  33167. #if defined(USE_TLS) && USE_TLS && defined SHARED
  33168. if (sym_ref.sym && (ELF_ST_TYPE(sym_ref.sym->st_info) == STT_TLS) && (sym_ref.tpnt)) {
  33169. @@ -1081,8 +1094,10 @@
  33170. * Dump information to stderr about the current loaded modules
  33171. */
  33172. #ifdef __USE_GNU
  33173. +# if 0
  33174. static const char type[][4] = { "Lib", "Exe", "Int", "Mod" };
  33175. +/* reimplement this, being a GNU extension it should be the same as on glibc */
  33176. int dlinfo(void)
  33177. {
  33178. struct elf_resolve *tpnt;
  33179. @@ -1109,6 +1124,7 @@
  33180. }
  33181. return 0;
  33182. }
  33183. +#endif
  33184. static int do_dladdr(const void *__address, Dl_info * __info)
  33185. {
  33186. diff -Nur uClibc-0.9.33.2/ldso/libdl/Makefile.in uClibc-git/ldso/libdl/Makefile.in
  33187. --- uClibc-0.9.33.2/ldso/libdl/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  33188. +++ uClibc-git/ldso/libdl/Makefile.in 2014-06-02 17:40:33.958711675 +0200
  33189. @@ -23,7 +23,7 @@
  33190. LDFLAGS-libdl.so := $(LDFLAGS)
  33191. ifeq ($(LDSO_NO_CLEANUP),)
  33192. -LDFLAGS-libdl.so += -Wl,-fini,dl_cleanup
  33193. +LDFLAGS-libdl.so += -Wl,-fini,$(SYMBOL_PREFIX)dl_cleanup
  33194. endif
  33195. LIBS-libdl.so := $(LIBS) $(ldso)
  33196. diff -Nur uClibc-0.9.33.2/ldso/man/dlopen.3 uClibc-git/ldso/man/dlopen.3
  33197. --- uClibc-0.9.33.2/ldso/man/dlopen.3 2012-05-15 09:20:09.000000000 +0200
  33198. +++ uClibc-git/ldso/man/dlopen.3 2014-06-02 17:40:33.958711675 +0200
  33199. @@ -19,9 +19,8 @@
  33200. .\" GNU General Public License for more details.
  33201. .\"
  33202. .\" You should have received a copy of the GNU General Public
  33203. -.\" License along with this manual; if not, write to the Free
  33204. -.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
  33205. -.\" USA.
  33206. +.\" License along with this manual; if not, see
  33207. +.\" <http://www.gnu.org/licenses/>.
  33208. .\"
  33209. .TH DLOPEN 3 "16 May 1995" "Linux" "Linux Programmer's Manual"
  33210. .SH NAME
  33211. diff -Nur uClibc-0.9.33.2/libc/.gitignore uClibc-git/libc/.gitignore
  33212. --- uClibc-0.9.33.2/libc/.gitignore 1970-01-01 01:00:00.000000000 +0100
  33213. +++ uClibc-git/libc/.gitignore 2014-06-02 17:40:33.958711675 +0200
  33214. @@ -0,0 +1 @@
  33215. +ucontext_i.[chs]
  33216. diff -Nur uClibc-0.9.33.2/libc/inet/addr.c uClibc-git/libc/inet/addr.c
  33217. --- uClibc-0.9.33.2/libc/inet/addr.c 2012-05-15 09:20:09.000000000 +0200
  33218. +++ uClibc-git/libc/inet/addr.c 2014-06-02 17:40:33.962711697 +0200
  33219. @@ -17,8 +17,6 @@
  33220. * Changed to use _int10tostr.
  33221. */
  33222. -#define __FORCE_GLIBC
  33223. -#include <features.h>
  33224. #include <stdio.h>
  33225. #include <string.h>
  33226. #include <ctype.h>
  33227. @@ -114,7 +112,7 @@
  33228. #define INET_NTOA_MAX_LEN 16 /* max 12 digits + 3 '.'s + 1 nul */
  33229. -char *inet_ntoa_r(struct in_addr in, char buf[INET_NTOA_MAX_LEN])
  33230. +static char *__inet_ntoa_r(struct in_addr in, char buf[INET_NTOA_MAX_LEN])
  33231. {
  33232. in_addr_t addr = ntohl(in.s_addr);
  33233. int i;
  33234. @@ -133,12 +131,12 @@
  33235. return p+1;
  33236. }
  33237. -libc_hidden_def(inet_ntoa_r)
  33238. +strong_alias(__inet_ntoa_r,inet_ntoa_r)
  33239. char *inet_ntoa(struct in_addr in)
  33240. {
  33241. static char buf[INET_NTOA_MAX_LEN];
  33242. - return inet_ntoa_r(in, buf);
  33243. + return __inet_ntoa_r(in, buf);
  33244. }
  33245. libc_hidden_def(inet_ntoa)
  33246. #endif
  33247. @@ -153,18 +151,18 @@
  33248. */
  33249. struct in_addr inet_makeaddr(in_addr_t net, in_addr_t host)
  33250. {
  33251. - in_addr_t addr;
  33252. + struct in_addr in;
  33253. if (net < 128)
  33254. - addr = (net << IN_CLASSA_NSHIFT) | (host & IN_CLASSA_HOST);
  33255. + in.s_addr = (net << IN_CLASSA_NSHIFT) | (host & IN_CLASSA_HOST);
  33256. else if (net < 65536)
  33257. - addr = (net << IN_CLASSB_NSHIFT) | (host & IN_CLASSB_HOST);
  33258. + in.s_addr = (net << IN_CLASSB_NSHIFT) | (host & IN_CLASSB_HOST);
  33259. else if (net < 16777216UL)
  33260. - addr = (net << IN_CLASSC_NSHIFT) | (host & IN_CLASSC_HOST);
  33261. + in.s_addr = (net << IN_CLASSC_NSHIFT) | (host & IN_CLASSC_HOST);
  33262. else
  33263. - addr = net | host;
  33264. - addr = htonl(addr);
  33265. - return *(struct in_addr *)&addr;
  33266. + in.s_addr = net | host;
  33267. + in.s_addr = htonl(in.s_addr);
  33268. + return in;
  33269. }
  33270. libc_hidden_def(inet_makeaddr)
  33271. #endif
  33272. diff -Nur uClibc-0.9.33.2/libc/inet/ether_addr.c uClibc-git/libc/inet/ether_addr.c
  33273. --- uClibc-0.9.33.2/libc/inet/ether_addr.c 2012-05-15 09:20:09.000000000 +0200
  33274. +++ uClibc-git/libc/inet/ether_addr.c 2014-06-02 17:40:33.962711697 +0200
  33275. @@ -13,9 +13,8 @@
  33276. Lesser General Public License for more details.
  33277. You should have received a copy of the GNU Lesser General Public
  33278. - License along with the GNU C Library; if not, write to the Free
  33279. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  33280. - 02111-1307 USA.
  33281. + License along with the GNU C Library; see the file COPYING.LIB. If
  33282. + not, see <http://www.gnu.org/licenses/>.
  33283. */
  33284. /*
  33285. @@ -23,8 +22,6 @@
  33286. * - initial uClibc port
  33287. */
  33288. -#define __FORCE_GLIBC
  33289. -#include <features.h>
  33290. #include <ctype.h>
  33291. #include <stdio.h>
  33292. #include <stdlib.h>
  33293. diff -Nur uClibc-0.9.33.2/libc/inet/gai_strerror.c uClibc-git/libc/inet/gai_strerror.c
  33294. --- uClibc-0.9.33.2/libc/inet/gai_strerror.c 2012-05-15 09:20:09.000000000 +0200
  33295. +++ uClibc-git/libc/inet/gai_strerror.c 2014-06-02 17:40:33.962711697 +0200
  33296. @@ -13,17 +13,13 @@
  33297. Lesser General Public License for more details.
  33298. You should have received a copy of the GNU Lesser General Public
  33299. - License along with the GNU C Library; if not, write to the Free
  33300. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  33301. - 02111-1307 USA. */
  33302. + License along with the GNU C Library; if not, see
  33303. + <http://www.gnu.org/licenses/>. */
  33304. -#define __FORCE_GLIBC
  33305. -#include <features.h>
  33306. #include <stdio.h>
  33307. #include <netdb.h>
  33308. +#include <libintl.h>
  33309. -#define N_(x) x
  33310. -#define _(x) x
  33311. static const struct
  33312. {
  33313. int code;
  33314. diff -Nur uClibc-0.9.33.2/libc/inet/getaddrinfo.c uClibc-git/libc/inet/getaddrinfo.c
  33315. --- uClibc-0.9.33.2/libc/inet/getaddrinfo.c 2012-05-15 09:20:09.000000000 +0200
  33316. +++ uClibc-git/libc/inet/getaddrinfo.c 2014-06-02 17:40:33.962711697 +0200
  33317. @@ -51,8 +51,6 @@
  33318. If these license terms cause you a real problem, contact the author. */
  33319. -#define __FORCE_GLIBC
  33320. -#include <features.h>
  33321. #include <assert.h>
  33322. #include <errno.h>
  33323. #include <netdb.h>
  33324. @@ -283,7 +281,7 @@
  33325. ai->ai_protocol = req->ai_protocol;
  33326. ai->ai_addrlen = sizeof(struct sockaddr_un);
  33327. ai->ai_addr = (void *)ai + sizeof(struct addrinfo);
  33328. -#if SALEN
  33329. +#if 0 /* SALEN */
  33330. ((struct sockaddr_un *)ai->ai_addr)->sun_len = sizeof(struct sockaddr_un);
  33331. #endif /* SALEN */
  33332. @@ -713,7 +711,7 @@
  33333. (*pai)->ai_protocol = st2->protocol;
  33334. (*pai)->ai_addrlen = socklen;
  33335. (*pai)->ai_addr = (void *) (*pai) + sizeof(struct addrinfo);
  33336. -#if defined SALEN
  33337. +#if 0 /* SALEN */
  33338. (*pai)->ai_addr->sa_len = socklen;
  33339. #endif
  33340. (*pai)->ai_addr->sa_family = family;
  33341. diff -Nur uClibc-0.9.33.2/libc/inet/herror.c uClibc-git/libc/inet/herror.c
  33342. --- uClibc-0.9.33.2/libc/inet/herror.c 2012-05-15 09:20:09.000000000 +0200
  33343. +++ uClibc-git/libc/inet/herror.c 2014-06-02 17:40:33.962711697 +0200
  33344. @@ -17,8 +17,6 @@
  33345. * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  33346. */
  33347. -#define __FORCE_GLIBC
  33348. -#include <features.h>
  33349. #include <stdio.h>
  33350. #include <string.h>
  33351. #include <netdb.h>
  33352. diff -Nur uClibc-0.9.33.2/libc/inet/hostid.c uClibc-git/libc/inet/hostid.c
  33353. --- uClibc-0.9.33.2/libc/inet/hostid.c 2012-05-15 09:20:09.000000000 +0200
  33354. +++ uClibc-git/libc/inet/hostid.c 2014-06-02 17:40:33.962711697 +0200
  33355. @@ -5,8 +5,6 @@
  33356. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  33357. */
  33358. -#define __FORCE_GLIBC
  33359. -#include <features.h>
  33360. #include <errno.h>
  33361. #include <unistd.h>
  33362. #include <sys/types.h>
  33363. diff -Nur uClibc-0.9.33.2/libc/inet/ifaddrs.c uClibc-git/libc/inet/ifaddrs.c
  33364. --- uClibc-0.9.33.2/libc/inet/ifaddrs.c 2012-05-15 09:20:09.000000000 +0200
  33365. +++ uClibc-git/libc/inet/ifaddrs.c 2014-06-02 17:40:33.962711697 +0200
  33366. @@ -13,12 +13,9 @@
  33367. Lesser General Public License for more details.
  33368. You should have received a copy of the GNU Lesser General Public
  33369. - License along with the GNU C Library; if not, write to the Free
  33370. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  33371. - 02111-1307 USA. */
  33372. + License along with the GNU C Library; if not, see
  33373. + <http://www.gnu.org/licenses/>. */
  33374. -#define __FORCE_GLIBC
  33375. -#include <features.h>
  33376. #include <alloca.h>
  33377. #include <assert.h>
  33378. #include <errno.h>
  33379. @@ -33,7 +30,6 @@
  33380. #include <string.h>
  33381. #include <sys/ioctl.h>
  33382. #include <sys/socket.h>
  33383. -#include <libc-internal.h>
  33384. #include <time.h>
  33385. #include <unistd.h>
  33386. diff -Nur uClibc-0.9.33.2/libc/inet/if_index.c uClibc-git/libc/inet/if_index.c
  33387. --- uClibc-0.9.33.2/libc/inet/if_index.c 2012-05-15 09:20:09.000000000 +0200
  33388. +++ uClibc-git/libc/inet/if_index.c 2014-06-02 17:40:33.962711697 +0200
  33389. @@ -13,15 +13,12 @@
  33390. Lesser General Public License for more details.
  33391. You should have received a copy of the GNU Lesser General Public
  33392. - License along with the GNU C Library; if not, write to the Free
  33393. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  33394. - 02111-1307 USA.
  33395. + License along with the GNU C Library; see the file COPYING.LIB. If
  33396. + not, see <http://www.gnu.org/licenses/>.
  33397. Reworked Dec 2002 by Erik Andersen <andersen@codepoet.org>
  33398. */
  33399. -#define __FORCE_GLIBC
  33400. -#include <features.h>
  33401. #include <string.h>
  33402. #include <alloca.h>
  33403. #include <errno.h>
  33404. @@ -31,7 +28,6 @@
  33405. #include <net/if.h>
  33406. #include <sys/socket.h>
  33407. #include <sys/ioctl.h>
  33408. -#include <libc-internal.h>
  33409. #include <not-cancel.h>
  33410. #include "netlinkaccess.h"
  33411. diff -Nur uClibc-0.9.33.2/libc/inet/in6_addr.c uClibc-git/libc/inet/in6_addr.c
  33412. --- uClibc-0.9.33.2/libc/inet/in6_addr.c 2012-05-15 09:20:09.000000000 +0200
  33413. +++ uClibc-git/libc/inet/in6_addr.c 2014-06-02 17:40:33.962711697 +0200
  33414. @@ -13,12 +13,9 @@
  33415. Lesser General Public License for more details.
  33416. You should have received a copy of the GNU Lesser General Public
  33417. - License along with the GNU C Library; if not, write to the Free
  33418. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  33419. - 02111-1307 USA. */
  33420. + License along with the GNU C Library; if not, see
  33421. + <http://www.gnu.org/licenses/>. */
  33422. -#define __FORCE_GLIBC
  33423. -#include <features.h>
  33424. #include <netinet/in.h>
  33425. #ifdef __UCLIBC_HAS_IPV6__
  33426. diff -Nur uClibc-0.9.33.2/libc/inet/inet_addr.c uClibc-git/libc/inet/inet_addr.c
  33427. --- uClibc-0.9.33.2/libc/inet/inet_addr.c 2012-05-15 09:20:09.000000000 +0200
  33428. +++ uClibc-git/libc/inet/inet_addr.c 2014-06-02 17:40:33.962711697 +0200
  33429. @@ -4,5 +4,5 @@
  33430. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  33431. */
  33432. -#define L_inet_makeaddr
  33433. +#define L_inet_addr
  33434. #include "addr.c"
  33435. diff -Nur uClibc-0.9.33.2/libc/inet/inet_makeaddr.c uClibc-git/libc/inet/inet_makeaddr.c
  33436. --- uClibc-0.9.33.2/libc/inet/inet_makeaddr.c 2012-05-15 09:20:09.000000000 +0200
  33437. +++ uClibc-git/libc/inet/inet_makeaddr.c 2014-06-02 17:40:33.962711697 +0200
  33438. @@ -4,5 +4,5 @@
  33439. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  33440. */
  33441. -#define L_inet_addr
  33442. +#define L_inet_makeaddr
  33443. #include "addr.c"
  33444. diff -Nur uClibc-0.9.33.2/libc/inet/inet_net.c uClibc-git/libc/inet/inet_net.c
  33445. --- uClibc-0.9.33.2/libc/inet/inet_net.c 2012-05-15 09:20:09.000000000 +0200
  33446. +++ uClibc-git/libc/inet/inet_net.c 2014-06-02 17:40:33.962711697 +0200
  33447. @@ -32,8 +32,6 @@
  33448. * SUCH DAMAGE.
  33449. */
  33450. -#define __FORCE_GLIBC
  33451. -#include <features.h>
  33452. #include <ctype.h>
  33453. #include <netinet/in.h>
  33454. #include <arpa/inet.h>
  33455. diff -Nur uClibc-0.9.33.2/libc/inet/Makefile.in uClibc-git/libc/inet/Makefile.in
  33456. --- uClibc-0.9.33.2/libc/inet/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  33457. +++ uClibc-git/libc/inet/Makefile.in 2014-06-02 17:40:33.958711675 +0200
  33458. @@ -11,33 +11,34 @@
  33459. INET_DIR := $(top_srcdir)libc/inet
  33460. INET_OUT := $(top_builddir)libc/inet
  33461. +V4_OR_V6 := $(findstring y,$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6))
  33462. CFLAGS-inet := -DRESOLVER="\"resolv.c\""
  33463. CSRC-y :=
  33464. # des uses ntohl
  33465. -CSRC-$(findstring y,$(UCLIBC_HAS_CRYPT_IMPL)$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6)) += ntohl.c
  33466. -CSRC-$(findstring y,$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6)) += \
  33467. +CSRC-$(findstring y,$(UCLIBC_HAS_CRYPT_IMPL)$(V4_OR_V6)) += ntohl.c
  33468. +CSRC-$(V4_OR_V6) += \
  33469. getservice.c getproto.c getnet.c hostid.c \
  33470. inet_net.c herror.c if_index.c gai_strerror.c getaddrinfo.c \
  33471. ifaddrs.c ntop.c
  33472. CSRC-$(UCLIBC_HAS_IPV6) += in6_addr.c
  33473. # multi source addr.c
  33474. -CSRC-$(findstring y,$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6)) += \
  33475. +CSRC-$(V4_OR_V6) += \
  33476. inet_aton.c inet_addr.c inet_ntoa.c inet_makeaddr.c \
  33477. inet_lnaof.c inet_netof.c
  33478. # multi source resolv.c
  33479. -CSRC-$(findstring y,$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6)) += \
  33480. +CSRC-$(V4_OR_V6) += \
  33481. encodeh.c decodeh.c encoded.c decoded.c \
  33482. encodeq.c encodea.c \
  33483. read_etc_hosts_r.c \
  33484. dnslookup.c opennameservers.c closenameservers.c \
  33485. getnameinfo.c \
  33486. gethostent.c gethostent_r.c
  33487. -CSRC-$(findstring y,$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6)) += \
  33488. +CSRC-$(V4_OR_V6) += \
  33489. get_hosts_byaddr_r.c get_hosts_byname_r.c \
  33490. gethostbyaddr_r.c gethostbyname_r.c gethostbyname2_r.c \
  33491. gethostbyaddr.c gethostbyname.c gethostbyname2.c
  33492. -CSRC-$(findstring y,$(UCLIBC_HAS_RESOLVER_SUPPORT)) += \
  33493. +CSRC-$(UCLIBC_HAS_RESOLVER_SUPPORT) += \
  33494. ns_netint.c ns_parse.c res_data.c \
  33495. res_init.c res_query.c res_comp.c ns_name.c \
  33496. _res_state.c
  33497. @@ -52,7 +53,7 @@
  33498. socketcalls_CSRC-$(UCLIBC_LINUX_SPECIFIC) += accept4.c
  33499. CSRC-$(UCLIBC_HAS_SOCKET) += $(socketcalls_CSRC-y) opensock.c
  33500. -CSRC-$(findstring y,$(UCLIBC_HAS_SOCKET)$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6)) += ethers.c ether_addr.c
  33501. +CSRC-$(findstring y,$(UCLIBC_HAS_SOCKET)$(V4_OR_V6)) += ethers.c ether_addr.c
  33502. INET_SRC := $(patsubst %.c,$(INET_DIR)/%.c,$(CSRC-y))
  33503. INET_OBJ := $(patsubst %.c,$(INET_OUT)/%.o,$(CSRC-y))
  33504. diff -Nur uClibc-0.9.33.2/libc/inet/netlinkaccess.h uClibc-git/libc/inet/netlinkaccess.h
  33505. --- uClibc-0.9.33.2/libc/inet/netlinkaccess.h 2012-05-15 09:20:09.000000000 +0200
  33506. +++ uClibc-git/libc/inet/netlinkaccess.h 2014-06-02 17:40:33.962711697 +0200
  33507. @@ -12,9 +12,8 @@
  33508. Lesser General Public License for more details.
  33509. You should have received a copy of the GNU Lesser General Public
  33510. - License along with the GNU C Library; if not, write to the Free
  33511. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  33512. - 02111-1307 USA. */
  33513. + License along with the GNU C Library; if not, see
  33514. + <http://www.gnu.org/licenses/>. */
  33515. #ifndef _NETLINKACCESS_H
  33516. #define _NETLINKACCESS_H 1
  33517. diff -Nur uClibc-0.9.33.2/libc/inet/ntohl.c uClibc-git/libc/inet/ntohl.c
  33518. --- uClibc-0.9.33.2/libc/inet/ntohl.c 2012-05-15 09:20:09.000000000 +0200
  33519. +++ uClibc-git/libc/inet/ntohl.c 2014-06-02 17:40:33.966711719 +0200
  33520. @@ -6,9 +6,6 @@
  33521. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  33522. */
  33523. -#include <stdint.h>
  33524. -#include <endian.h>
  33525. -#include <byteswap.h>
  33526. #include <netinet/in.h>
  33527. #undef ntohl
  33528. @@ -16,51 +13,30 @@
  33529. #undef htonl
  33530. #undef htons
  33531. -#if __BYTE_ORDER == __BIG_ENDIAN
  33532. -uint32_t ntohl (uint32_t x)
  33533. -{
  33534. - return x;
  33535. -}
  33536. -
  33537. -uint16_t ntohs (uint16_t x)
  33538. -{
  33539. - return x;
  33540. -}
  33541. -
  33542. -uint32_t htonl (uint32_t x)
  33543. -{
  33544. - return x;
  33545. -}
  33546. +#if __BYTE_ORDER != __BIG_ENDIAN && __BYTE_ORDER != __LITTLE_ENDIAN
  33547. +# error "You seem to have an unsupported byteorder"
  33548. +#endif
  33549. -uint16_t htons (uint16_t x)
  33550. -{
  33551. - return x;
  33552. -}
  33553. -#elif __BYTE_ORDER == __LITTLE_ENDIAN
  33554. uint32_t ntohl (uint32_t x)
  33555. {
  33556. +#if __BYTE_ORDER == __BIG_ENDIAN
  33557. + return x;
  33558. +#else
  33559. return __bswap_32(x);
  33560. +#endif
  33561. }
  33562. +libc_hidden_def(ntohl)
  33563. +strong_alias(ntohl,htonl)
  33564. +libc_hidden_def(htonl)
  33565. uint16_t ntohs (uint16_t x)
  33566. {
  33567. - return __bswap_16(x);
  33568. -}
  33569. -
  33570. -uint32_t htonl (uint32_t x)
  33571. -{
  33572. - return __bswap_32(x);
  33573. -}
  33574. -
  33575. -uint16_t htons (uint16_t x)
  33576. -{
  33577. - return __bswap_16(x);
  33578. -}
  33579. +#if __BYTE_ORDER == __BIG_ENDIAN
  33580. + return x;
  33581. #else
  33582. -#error "You seem to have an unsupported byteorder"
  33583. + return __bswap_16(x);
  33584. #endif
  33585. -
  33586. -libc_hidden_def(ntohl)
  33587. +}
  33588. libc_hidden_def(ntohs)
  33589. -libc_hidden_def(htonl)
  33590. +strong_alias(ntohs,htons)
  33591. libc_hidden_def(htons)
  33592. diff -Nur uClibc-0.9.33.2/libc/inet/ntop.c uClibc-git/libc/inet/ntop.c
  33593. --- uClibc-0.9.33.2/libc/inet/ntop.c 2012-05-15 09:20:09.000000000 +0200
  33594. +++ uClibc-git/libc/inet/ntop.c 2014-06-02 17:40:33.966711719 +0200
  33595. @@ -15,8 +15,6 @@
  33596. * SOFTWARE.
  33597. */
  33598. -#define __FORCE_GLIBC
  33599. -#include <features.h>
  33600. #include <sys/param.h>
  33601. #include <sys/types.h>
  33602. #include <sys/socket.h>
  33603. diff -Nur uClibc-0.9.33.2/libc/inet/opensock.c uClibc-git/libc/inet/opensock.c
  33604. --- uClibc-0.9.33.2/libc/inet/opensock.c 2012-05-15 09:20:09.000000000 +0200
  33605. +++ uClibc-git/libc/inet/opensock.c 2014-06-02 17:40:33.966711719 +0200
  33606. @@ -12,18 +12,11 @@
  33607. Lesser General Public License for more details.
  33608. You should have received a copy of the GNU Lesser General Public
  33609. - License along with the GNU C Library; if not, write to the Free
  33610. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  33611. - 02111-1307 USA. */
  33612. + License along with the GNU C Library; if not, see
  33613. + <http://www.gnu.org/licenses/>. */
  33614. -#include <assert.h>
  33615. -#include <errno.h>
  33616. -#include <stdio.h>
  33617. -#include <string.h>
  33618. -#include <unistd.h>
  33619. #include <sys/socket.h>
  33620. -#include <features.h>
  33621. -#include <libc-internal.h>
  33622. +#include <bits/kernel-features.h>
  33623. /* Return a socket of any type. The socket can be used in subsequent
  33624. ioctl calls to talk to the kernel. */
  33625. diff -Nur uClibc-0.9.33.2/libc/inet/resolv.c uClibc-git/libc/inet/resolv.c
  33626. --- uClibc-0.9.33.2/libc/inet/resolv.c 2012-05-15 09:20:09.000000000 +0200
  33627. +++ uClibc-git/libc/inet/resolv.c 2014-06-02 17:40:33.966711719 +0200
  33628. @@ -293,8 +293,6 @@
  33629. - a sequence of labels ending with a pointer
  33630. */
  33631. -#define __FORCE_GLIBC
  33632. -#include <features.h>
  33633. #include <string.h>
  33634. #include <stdio.h>
  33635. #include <stdio_ext.h>
  33636. @@ -317,6 +315,7 @@
  33637. #include <sys/utsname.h>
  33638. #include <sys/un.h>
  33639. #include <sys/stat.h>
  33640. +#include <sys/param.h>
  33641. #include <bits/uClibc_mutex.h>
  33642. #include "internal/parse_config.h"
  33643. @@ -406,7 +405,7 @@
  33644. } sockaddr46_t;
  33645. -__UCLIBC_MUTEX_EXTERN(__resolv_lock);
  33646. +__UCLIBC_MUTEX_EXTERN(__resolv_lock) attribute_hidden;
  33647. /* Protected by __resolv_lock */
  33648. extern void (*__res_sync)(void) attribute_hidden;
  33649. @@ -566,7 +565,7 @@
  33650. #ifdef L_encodeh
  33651. -int attribute_hidden __encode_header(struct resolv_header *h, unsigned char *dest, int maxlen)
  33652. +int __encode_header(struct resolv_header *h, unsigned char *dest, int maxlen)
  33653. {
  33654. if (maxlen < HFIXEDSZ)
  33655. return -1;
  33656. @@ -595,7 +594,7 @@
  33657. #ifdef L_decodeh
  33658. -void attribute_hidden __decode_header(unsigned char *data,
  33659. +void __decode_header(unsigned char *data,
  33660. struct resolv_header *h)
  33661. {
  33662. h->id = (data[0] << 8) | data[1];
  33663. @@ -619,7 +618,7 @@
  33664. /* Encode a dotted string into nameserver transport-level encoding.
  33665. This routine is fairly dumb, and doesn't attempt to compress
  33666. the data */
  33667. -int attribute_hidden __encode_dotted(const char *dotted, unsigned char *dest, int maxlen)
  33668. +int __encode_dotted(const char *dotted, unsigned char *dest, int maxlen)
  33669. {
  33670. unsigned used = 0;
  33671. @@ -657,7 +656,7 @@
  33672. /* Decode a dotted string from nameserver transport-level encoding.
  33673. This routine understands compressed data. */
  33674. -int attribute_hidden __decode_dotted(const unsigned char *packet,
  33675. +int __decode_dotted(const unsigned char *packet,
  33676. int offset,
  33677. int packet_len,
  33678. char *dest,
  33679. @@ -722,7 +721,7 @@
  33680. #ifdef L_encodeq
  33681. -int attribute_hidden __encode_question(const struct resolv_question *q,
  33682. +int __encode_question(const struct resolv_question *q,
  33683. unsigned char *dest,
  33684. int maxlen)
  33685. {
  33686. @@ -750,7 +749,7 @@
  33687. #ifdef L_encodea
  33688. -int attribute_hidden __encode_answer(struct resolv_answer *a, unsigned char *dest, int maxlen)
  33689. +int __encode_answer(struct resolv_answer *a, unsigned char *dest, int maxlen)
  33690. {
  33691. int i;
  33692. @@ -864,7 +863,7 @@
  33693. const char *name,
  33694. int type,
  33695. unsigned char *packet,
  33696. - int maxlen);
  33697. + int maxlen) attribute_hidden;
  33698. int __form_query(int id,
  33699. const char *name,
  33700. int type,
  33701. @@ -956,7 +955,7 @@
  33702. }
  33703. /* Must be called under __resolv_lock. */
  33704. -void attribute_hidden __open_nameservers(void)
  33705. +void __open_nameservers(void)
  33706. {
  33707. static uint32_t resolv_conf_mtime;
  33708. @@ -1122,7 +1121,7 @@
  33709. #ifdef L_closenameservers
  33710. /* Must be called under __resolv_lock. */
  33711. -void attribute_hidden __close_nameservers(void)
  33712. +void __close_nameservers(void)
  33713. {
  33714. if (__nameserver != (void*) &__local_nameserver)
  33715. free(__nameserver);
  33716. @@ -1230,7 +1229,7 @@
  33717. * appended. (why the filed is called "dotted" I have no idea)
  33718. * This is a malloced string. May be NULL because strdup failed.
  33719. */
  33720. -int attribute_hidden __dns_lookup(const char *name,
  33721. +int __dns_lookup(const char *name,
  33722. int type,
  33723. unsigned char **outpacket,
  33724. struct resolv_answer *a)
  33725. @@ -1472,9 +1471,11 @@
  33726. }
  33727. /* no more search domains to try */
  33728. }
  33729. - /* dont loop, this is "no such host" situation */
  33730. - h_errno = HOST_NOT_FOUND;
  33731. - goto fail1;
  33732. + if (h.rcode != SERVFAIL) {
  33733. + /* dont loop, this is "no such host" situation */
  33734. + h_errno = HOST_NOT_FOUND;
  33735. + goto fail1;
  33736. + }
  33737. }
  33738. /* Insert other non-fatal errors here, which do not warrant
  33739. * switching to next nameserver */
  33740. @@ -1594,7 +1595,7 @@
  33741. #define HALISTOFF (sizeof(char*) * MAXTOKENS)
  33742. #define INADDROFF (HALISTOFF + 2 * sizeof(char*))
  33743. -int attribute_hidden __read_etc_hosts_r(
  33744. +int __read_etc_hosts_r(
  33745. parser_t * parser,
  33746. const char *name,
  33747. int type,
  33748. @@ -1708,7 +1709,7 @@
  33749. #ifdef L_get_hosts_byname_r
  33750. -int attribute_hidden __get_hosts_byname_r(const char *name,
  33751. +int __get_hosts_byname_r(const char *name,
  33752. int type,
  33753. struct hostent *result_buf,
  33754. char *buf,
  33755. @@ -1724,7 +1725,7 @@
  33756. #ifdef L_get_hosts_byaddr_r
  33757. -int attribute_hidden __get_hosts_byaddr_r(const char *addr,
  33758. +int __get_hosts_byaddr_r(const char *addr,
  33759. int len,
  33760. int type,
  33761. struct hostent *result_buf,
  33762. @@ -1775,7 +1776,7 @@
  33763. unsigned flags)
  33764. {
  33765. int serrno = errno;
  33766. - unsigned ok;
  33767. + bool ok = 0;
  33768. struct hostent *hoste = NULL;
  33769. char domain[256];
  33770. @@ -1785,16 +1786,15 @@
  33771. if (sa == NULL || addrlen < sizeof(sa_family_t))
  33772. return EAI_FAMILY;
  33773. - ok = sa->sa_family;
  33774. - if (ok == AF_LOCAL) /* valid */;
  33775. + if (sa->sa_family == AF_LOCAL) /* valid */;
  33776. #ifdef __UCLIBC_HAS_IPV4__
  33777. - else if (ok == AF_INET) {
  33778. + else if (sa->sa_family == AF_INET) {
  33779. if (addrlen < sizeof(struct sockaddr_in))
  33780. return EAI_FAMILY;
  33781. }
  33782. #endif
  33783. #ifdef __UCLIBC_HAS_IPV6__
  33784. - else if (ok == AF_INET6) {
  33785. + else if (sa->sa_family == AF_INET6) {
  33786. if (addrlen < sizeof(struct sockaddr_in6))
  33787. return EAI_FAMILY;
  33788. }
  33789. @@ -1802,7 +1802,6 @@
  33790. else
  33791. return EAI_FAMILY;
  33792. - ok = 0;
  33793. if (host != NULL && hostlen > 0)
  33794. switch (sa->sa_family) {
  33795. case AF_INET:
  33796. @@ -1826,21 +1825,18 @@
  33797. if (hoste) {
  33798. char *c;
  33799. -#undef min
  33800. -#define min(x,y) (((x) > (y)) ? (y) : (x))
  33801. if ((flags & NI_NOFQDN)
  33802. && (getdomainname(domain, sizeof(domain)) == 0)
  33803. && (c = strstr(hoste->h_name, domain)) != NULL
  33804. && (c != hoste->h_name) && (*(--c) == '.')
  33805. ) {
  33806. strncpy(host, hoste->h_name,
  33807. - min(hostlen, (size_t) (c - hoste->h_name)));
  33808. - host[min(hostlen - 1, (size_t) (c - hoste->h_name))] = '\0';
  33809. + MIN(hostlen, (size_t) (c - hoste->h_name)));
  33810. + host[MIN(hostlen - 1, (size_t) (c - hoste->h_name))] = '\0';
  33811. } else {
  33812. strncpy(host, hoste->h_name, hostlen);
  33813. }
  33814. ok = 1;
  33815. -#undef min
  33816. }
  33817. }
  33818. @@ -3432,6 +3428,7 @@
  33819. */
  33820. }
  33821. +/* has to be called under __resolv_lock */
  33822. static int
  33823. __res_vinit(res_state rp, int preinit)
  33824. {
  33825. @@ -3440,7 +3437,6 @@
  33826. int m = 0;
  33827. #endif
  33828. - __UCLIBC_MUTEX_LOCK(__resolv_lock);
  33829. __close_nameservers();
  33830. __open_nameservers();
  33831. @@ -3532,29 +3528,87 @@
  33832. rp->options |= RES_INIT;
  33833. + return 0;
  33834. +}
  33835. +
  33836. +static unsigned int
  33837. +res_randomid(void)
  33838. +{
  33839. + return 0xffff & getpid();
  33840. +}
  33841. +
  33842. +/* Our res_init never fails (always returns 0) */
  33843. +int
  33844. +res_init(void)
  33845. +{
  33846. + /*
  33847. + * These three fields used to be statically initialized. This made
  33848. + * it hard to use this code in a shared library. It is necessary,
  33849. + * now that we're doing dynamic initialization here, that we preserve
  33850. + * the old semantics: if an application modifies one of these three
  33851. + * fields of _res before res_init() is called, res_init() will not
  33852. + * alter them. Of course, if an application is setting them to
  33853. + * _zero_ before calling res_init(), hoping to override what used
  33854. + * to be the static default, we can't detect it and unexpected results
  33855. + * will follow. Zero for any of these fields would make no sense,
  33856. + * so one can safely assume that the applications were already getting
  33857. + * unexpected results.
  33858. + *
  33859. + * _res.options is tricky since some apps were known to diddle the bits
  33860. + * before res_init() was first called. We can't replicate that semantic
  33861. + * with dynamic initialization (they may have turned bits off that are
  33862. + * set in RES_DEFAULT). Our solution is to declare such applications
  33863. + * "broken". They could fool us by setting RES_INIT but none do (yet).
  33864. + */
  33865. +
  33866. + __UCLIBC_MUTEX_LOCK(__resolv_lock);
  33867. +
  33868. + if (!_res.retrans)
  33869. + _res.retrans = RES_TIMEOUT;
  33870. + if (!_res.retry)
  33871. + _res.retry = 4;
  33872. + if (!(_res.options & RES_INIT))
  33873. + _res.options = RES_DEFAULT;
  33874. +
  33875. + /*
  33876. + * This one used to initialize implicitly to zero, so unless the app
  33877. + * has set it to something in particular, we can randomize it now.
  33878. + */
  33879. + if (!_res.id)
  33880. + _res.id = res_randomid();
  33881. +
  33882. + __res_sync = NULL;
  33883. + __res_vinit(&_res, 1);
  33884. + __res_sync = res_sync_func;
  33885. +
  33886. __UCLIBC_MUTEX_UNLOCK(__resolv_lock);
  33887. +
  33888. return 0;
  33889. }
  33890. +libc_hidden_def(res_init)
  33891. static void
  33892. -__res_iclose(void)
  33893. +__res_iclose(res_state statp)
  33894. {
  33895. + struct __res_state * rp = statp;
  33896. __UCLIBC_MUTEX_LOCK(__resolv_lock);
  33897. + if (rp == NULL)
  33898. + rp = __res_state();
  33899. __close_nameservers();
  33900. __res_sync = NULL;
  33901. #ifdef __UCLIBC_HAS_IPV6__
  33902. {
  33903. - char *p1 = (char*) &(_res.nsaddr_list[0]);
  33904. - int m = 0;
  33905. + char *p1 = (char*) &(rp->nsaddr_list[0]);
  33906. + unsigned int m = 0;
  33907. /* free nsaddrs[m] if they do not point to nsaddr_list[x] */
  33908. - while (m < ARRAY_SIZE(_res._u._ext.nsaddrs)) {
  33909. - char *p2 = (char*)(_res._u._ext.nsaddrs[m++]);
  33910. - if (p2 < p1 || (p2 - p1) > sizeof(_res.nsaddr_list))
  33911. + while (m < ARRAY_SIZE(rp->_u._ext.nsaddrs)) {
  33912. + char *p2 = (char*)(rp->_u._ext.nsaddrs[m++]);
  33913. + if (p2 < p1 || (p2 - p1) > (signed)sizeof(rp->nsaddr_list))
  33914. free(p2);
  33915. }
  33916. }
  33917. #endif
  33918. - memset(&_res, 0, sizeof(_res));
  33919. + memset(rp, 0, sizeof(struct __res_state));
  33920. __UCLIBC_MUTEX_UNLOCK(__resolv_lock);
  33921. }
  33922. @@ -3569,13 +3623,13 @@
  33923. void
  33924. res_nclose(res_state statp)
  33925. {
  33926. - __res_iclose();
  33927. + __res_iclose(statp);
  33928. }
  33929. #ifdef __UCLIBC_HAS_BSD_RES_CLOSE__
  33930. void res_close(void)
  33931. {
  33932. - __res_iclose();
  33933. + __res_iclose(NULL);
  33934. }
  33935. #endif
  33936. @@ -3595,74 +3649,14 @@
  33937. # if defined __UCLIBC_HAS_TLS__
  33938. # undef __resp
  33939. __thread struct __res_state *__resp = &_res;
  33940. -/*
  33941. - * FIXME: Add usage of hidden attribute for this when used in the shared
  33942. - * library. It currently crashes the linker when doing section
  33943. - * relocations.
  33944. - */
  33945. extern __thread struct __res_state *__libc_resp
  33946. - __attribute__ ((alias ("__resp"))) attribute_hidden;
  33947. + __attribute__ ((alias ("__resp"))) attribute_hidden attribute_tls_model_ie;
  33948. # else
  33949. # undef __resp
  33950. struct __res_state *__resp = &_res;
  33951. # endif
  33952. #endif /* !__UCLIBC_HAS_THREADS__ */
  33953. -static unsigned int
  33954. -res_randomid(void)
  33955. -{
  33956. - return 0xffff & getpid();
  33957. -}
  33958. -
  33959. -/* Our res_init never fails (always returns 0) */
  33960. -int
  33961. -res_init(void)
  33962. -{
  33963. - /*
  33964. - * These three fields used to be statically initialized. This made
  33965. - * it hard to use this code in a shared library. It is necessary,
  33966. - * now that we're doing dynamic initialization here, that we preserve
  33967. - * the old semantics: if an application modifies one of these three
  33968. - * fields of _res before res_init() is called, res_init() will not
  33969. - * alter them. Of course, if an application is setting them to
  33970. - * _zero_ before calling res_init(), hoping to override what used
  33971. - * to be the static default, we can't detect it and unexpected results
  33972. - * will follow. Zero for any of these fields would make no sense,
  33973. - * so one can safely assume that the applications were already getting
  33974. - * unexpected results.
  33975. - *
  33976. - * _res.options is tricky since some apps were known to diddle the bits
  33977. - * before res_init() was first called. We can't replicate that semantic
  33978. - * with dynamic initialization (they may have turned bits off that are
  33979. - * set in RES_DEFAULT). Our solution is to declare such applications
  33980. - * "broken". They could fool us by setting RES_INIT but none do (yet).
  33981. - */
  33982. -
  33983. - __UCLIBC_MUTEX_LOCK(__resolv_lock);
  33984. -
  33985. - if (!_res.retrans)
  33986. - _res.retrans = RES_TIMEOUT;
  33987. - if (!_res.retry)
  33988. - _res.retry = 4;
  33989. - if (!(_res.options & RES_INIT))
  33990. - _res.options = RES_DEFAULT;
  33991. -
  33992. - /*
  33993. - * This one used to initialize implicitly to zero, so unless the app
  33994. - * has set it to something in particular, we can randomize it now.
  33995. - */
  33996. - if (!_res.id)
  33997. - _res.id = res_randomid();
  33998. - __res_sync = res_sync_func;
  33999. -
  34000. - __UCLIBC_MUTEX_UNLOCK(__resolv_lock);
  34001. -
  34002. - __res_vinit(&_res, 1);
  34003. -
  34004. - return 0;
  34005. -}
  34006. -libc_hidden_def(res_init)
  34007. -
  34008. /*
  34009. * Set up default settings. If the configuration file exist, the values
  34010. * there will have precedence. Otherwise, the server address is set to
  34011. @@ -3687,7 +3681,11 @@
  34012. int
  34013. res_ninit(res_state statp)
  34014. {
  34015. - return __res_vinit(statp, 0);
  34016. + int ret;
  34017. + __UCLIBC_MUTEX_LOCK(__resolv_lock);
  34018. + ret = __res_vinit(statp, 0);
  34019. + __UCLIBC_MUTEX_UNLOCK(__resolv_lock);
  34020. + return ret;
  34021. }
  34022. #endif /* L_res_init */
  34023. @@ -3740,11 +3738,10 @@
  34024. free(a.dotted);
  34025. - if (a.atype == type) { /* CNAME */
  34026. - if (i > anslen)
  34027. - i = anslen;
  34028. - memcpy(answer, packet, i);
  34029. - }
  34030. + if (i > anslen)
  34031. + i = anslen;
  34032. + memcpy(answer, packet, i);
  34033. +
  34034. free(packet);
  34035. return i;
  34036. }
  34037. @@ -4227,7 +4224,7 @@
  34038. hp = (HEADER *) buf;
  34039. hp->id = getpid() & 0xffff;
  34040. hp->opcode = op;
  34041. - hp->rd = (_res.options & RES_RECURSE) != 0U;
  34042. + hp->rd = (_res_options & RES_RECURSE) != 0U;
  34043. hp->rcode = NOERROR;
  34044. cp = buf + HFIXEDSZ;
  34045. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/auth_none.c uClibc-git/libc/inet/rpc/auth_none.c
  34046. --- uClibc-0.9.33.2/libc/inet/rpc/auth_none.c 2012-05-15 09:20:09.000000000 +0200
  34047. +++ uClibc-git/libc/inet/rpc/auth_none.c 2014-06-02 17:40:33.966711719 +0200
  34048. @@ -35,8 +35,6 @@
  34049. * credentials and verifiers to remote systems.
  34050. */
  34051. -#define __FORCE_GLIBC
  34052. -#include <features.h>
  34053. #include "rpc_private.h"
  34054. @@ -66,49 +64,54 @@
  34055. char marshalled_client[MAX_MARSHAL_SIZE];
  34056. u_int mcnt;
  34057. };
  34058. +
  34059. +static struct authnone_private_s authnone_private;
  34060. #ifdef __UCLIBC_HAS_THREADS__
  34061. -#define authnone_private (*(struct authnone_private_s **)&RPC_THREAD_VARIABLE(authnone_private_s))
  34062. -#else
  34063. -static struct authnone_private_s *authnone_private;
  34064. +__libc_once_define(static, authnone_private_guard);
  34065. #endif
  34066. -AUTH *
  34067. -authnone_create (void)
  34068. +static void authnone_create_once (void);
  34069. +
  34070. +static void
  34071. +authnone_create_once (void)
  34072. {
  34073. struct authnone_private_s *ap;
  34074. XDR xdr_stream;
  34075. XDR *xdrs;
  34076. - ap = (struct authnone_private_s *) authnone_private;
  34077. - if (ap == NULL)
  34078. - {
  34079. - ap = (struct authnone_private_s *) calloc (1, sizeof (*ap));
  34080. - if (ap == NULL)
  34081. - return NULL;
  34082. - authnone_private = ap;
  34083. - }
  34084. - if (!ap->mcnt)
  34085. - {
  34086. - ap->no_client.ah_cred = ap->no_client.ah_verf = _null_auth;
  34087. - ap->no_client.ah_ops = (struct auth_ops *)&ops;
  34088. - xdrs = &xdr_stream;
  34089. - xdrmem_create (xdrs, ap->marshalled_client, (u_int) MAX_MARSHAL_SIZE,
  34090. - XDR_ENCODE);
  34091. - (void) xdr_opaque_auth (xdrs, &ap->no_client.ah_cred);
  34092. - (void) xdr_opaque_auth (xdrs, &ap->no_client.ah_verf);
  34093. - ap->mcnt = XDR_GETPOS (xdrs);
  34094. - XDR_DESTROY (xdrs);
  34095. - }
  34096. - return (&ap->no_client);
  34097. + ap = &authnone_private;
  34098. +
  34099. + ap->no_client.ah_cred = ap->no_client.ah_verf = _null_auth;
  34100. + ap->no_client.ah_ops = (struct auth_ops *) &ops;
  34101. + xdrs = &xdr_stream;
  34102. + xdrmem_create(xdrs, ap->marshalled_client,
  34103. + (u_int) MAX_MARSHAL_SIZE, XDR_ENCODE);
  34104. + (void) xdr_opaque_auth(xdrs, &ap->no_client.ah_cred);
  34105. + (void) xdr_opaque_auth(xdrs, &ap->no_client.ah_verf);
  34106. + ap->mcnt = XDR_GETPOS (xdrs);
  34107. + XDR_DESTROY (xdrs);
  34108. +}
  34109. +
  34110. +AUTH *
  34111. +authnone_create (void)
  34112. +{
  34113. +#ifdef __UCLIBC_HAS_THREADS__
  34114. + __libc_once (authnone_private_guard, authnone_create_once);
  34115. +#else
  34116. + authnone_create_once();
  34117. +#endif
  34118. + return &authnone_private.no_client;
  34119. }
  34120. libc_hidden_def(authnone_create)
  34121. static bool_t
  34122. -authnone_marshal (AUTH *client attribute_unused, XDR *xdrs)
  34123. +authnone_marshal (AUTH *client, XDR *xdrs)
  34124. {
  34125. struct authnone_private_s *ap;
  34126. - ap = authnone_private;
  34127. + /* authnone_create returned authnone_private->no_client, which is
  34128. + the first field of struct authnone_private_s. */
  34129. + ap = (struct authnone_private_s *) client;
  34130. if (ap == NULL)
  34131. return FALSE;
  34132. return (*xdrs->x_ops->x_putbytes) (xdrs, ap->marshalled_client, ap->mcnt);
  34133. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/auth_unix.c uClibc-git/libc/inet/rpc/auth_unix.c
  34134. --- uClibc-0.9.33.2/libc/inet/rpc/auth_unix.c 2012-05-15 09:20:09.000000000 +0200
  34135. +++ uClibc-git/libc/inet/rpc/auth_unix.c 2014-06-02 17:40:33.966711719 +0200
  34136. @@ -38,13 +38,11 @@
  34137. * for the credentials.
  34138. */
  34139. -#define __FORCE_GLIBC
  34140. -#include <features.h>
  34141. -
  34142. #include <limits.h>
  34143. #include <stdio.h>
  34144. #include <string.h>
  34145. #include <unistd.h>
  34146. +#include <libintl.h>
  34147. #include <sys/param.h>
  34148. #include <rpc/types.h>
  34149. @@ -52,10 +50,6 @@
  34150. #include <rpc/auth.h>
  34151. #include <rpc/auth_unix.h>
  34152. -#ifdef USE_IN_LIBIO
  34153. -# include <wchar.h>
  34154. -#endif
  34155. -
  34156. /*
  34157. * Unix authenticator operations vector
  34158. */
  34159. @@ -65,7 +59,7 @@
  34160. static bool_t authunix_refresh (AUTH *);
  34161. static void authunix_destroy (AUTH *);
  34162. -static struct auth_ops auth_unix_ops = {
  34163. +static const struct auth_ops auth_unix_ops = {
  34164. authunix_nextverf,
  34165. authunix_marshal,
  34166. authunix_validate,
  34167. @@ -111,13 +105,7 @@
  34168. if (auth == NULL || au == NULL)
  34169. {
  34170. no_memory:
  34171. -#ifdef USE_IN_LIBIO
  34172. - if (_IO_fwide (stderr, 0) > 0)
  34173. - (void) fwprintf (stderr, L"%s",
  34174. - _("authunix_create: out of memory\n"));
  34175. - else
  34176. -#endif
  34177. - (void) fputs (_("authunix_create: out of memory\n"), stderr);
  34178. + (void) fputs (_("authunix_create: out of memory\n"), stderr);
  34179. mem_free (auth, sizeof (*auth));
  34180. mem_free (au, sizeof (*au));
  34181. return NULL;
  34182. @@ -326,7 +314,7 @@
  34183. xdrmem_create (xdrs, au->au_marshed, MAX_AUTH_BYTES, XDR_ENCODE);
  34184. if ((!xdr_opaque_auth (xdrs, &(auth->ah_cred))) ||
  34185. (!xdr_opaque_auth (xdrs, &(auth->ah_verf))))
  34186. - perror (_("auth_none.c - Fatal marshalling problem"));
  34187. + perror (_("auth_unix.c - Fatal marshalling problem"));
  34188. else
  34189. au->au_mpos = XDR_GETPOS (xdrs);
  34190. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/bindresvport.c uClibc-git/libc/inet/rpc/bindresvport.c
  34191. --- uClibc-0.9.33.2/libc/inet/rpc/bindresvport.c 2012-05-15 09:20:09.000000000 +0200
  34192. +++ uClibc-git/libc/inet/rpc/bindresvport.c 2014-06-02 17:40:33.982711808 +0200
  34193. @@ -30,9 +30,6 @@
  34194. * Copyright (c) 1987 by Sun Microsystems, Inc.
  34195. */
  34196. -#define __FORCE_GLIBC
  34197. -#include <features.h>
  34198. -
  34199. #include <errno.h>
  34200. #include <unistd.h>
  34201. #include <string.h>
  34202. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/clnt_generic.c uClibc-git/libc/inet/rpc/clnt_generic.c
  34203. --- uClibc-0.9.33.2/libc/inet/rpc/clnt_generic.c 2012-05-15 09:20:09.000000000 +0200
  34204. +++ uClibc-git/libc/inet/rpc/clnt_generic.c 2014-06-02 17:40:33.982711808 +0200
  34205. @@ -30,9 +30,6 @@
  34206. * Copyright (C) 1987, Sun Microsystems, Inc.
  34207. */
  34208. -#define __FORCE_GLIBC
  34209. -#include <features.h>
  34210. -
  34211. #include <alloca.h>
  34212. #include <errno.h>
  34213. #include <string.h>
  34214. @@ -119,7 +116,7 @@
  34215. prttmpbuf = alloca (prtbuflen);
  34216. while (getprotobyname_r (proto, &protobuf, prttmpbuf, prtbuflen, &p) != 0
  34217. || p == NULL)
  34218. - if (errno != ERANGE)
  34219. + if (errno != ERANGE)
  34220. {
  34221. struct rpc_createerr *ce = &get_rpc_createerr ();
  34222. ce->cf_stat = RPC_UNKNOWNPROTO;
  34223. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/clnt_perror.c uClibc-git/libc/inet/rpc/clnt_perror.c
  34224. --- uClibc-0.9.33.2/libc/inet/rpc/clnt_perror.c 2012-05-15 09:20:09.000000000 +0200
  34225. +++ uClibc-git/libc/inet/rpc/clnt_perror.c 2014-06-02 17:40:33.982711808 +0200
  34226. @@ -38,19 +38,10 @@
  34227. *
  34228. */
  34229. -#define __FORCE_GLIBC
  34230. -#include <features.h>
  34231. -
  34232. #include <stdio.h>
  34233. #include <string.h>
  34234. #include "rpc_private.h"
  34235. -#ifdef USE_IN_LIBIO
  34236. -# include <wchar.h>
  34237. -# include <libio/iolibio.h>
  34238. -# define fputs(s, f) _IO_fputs (s, f)
  34239. -#endif
  34240. -
  34241. static char *auth_errmsg (enum auth_stat stat) internal_function;
  34242. #ifdef __UCLIBC_HAS_THREADS__
  34243. @@ -81,74 +72,74 @@
  34244. static const char rpc_errstr[] =
  34245. {
  34246. #define RPC_SUCCESS_IDX 0
  34247. - _("RPC: Success")
  34248. + N_("RPC: Success")
  34249. "\0"
  34250. #define RPC_CANTENCODEARGS_IDX (RPC_SUCCESS_IDX + sizeof "RPC: Success")
  34251. - _("RPC: Can't encode arguments")
  34252. + N_("RPC: Can't encode arguments")
  34253. "\0"
  34254. #define RPC_CANTDECODERES_IDX (RPC_CANTENCODEARGS_IDX \
  34255. + sizeof "RPC: Can't encode arguments")
  34256. - _("RPC: Can't decode result")
  34257. + N_("RPC: Can't decode result")
  34258. "\0"
  34259. #define RPC_CANTSEND_IDX (RPC_CANTDECODERES_IDX \
  34260. + sizeof "RPC: Can't decode result")
  34261. - _("RPC: Unable to send")
  34262. + N_("RPC: Unable to send")
  34263. "\0"
  34264. #define RPC_CANTRECV_IDX (RPC_CANTSEND_IDX \
  34265. + sizeof "RPC: Unable to send")
  34266. - _("RPC: Unable to receive")
  34267. + N_("RPC: Unable to receive")
  34268. "\0"
  34269. #define RPC_TIMEDOUT_IDX (RPC_CANTRECV_IDX \
  34270. + sizeof "RPC: Unable to receive")
  34271. - _("RPC: Timed out")
  34272. + N_("RPC: Timed out")
  34273. "\0"
  34274. #define RPC_VERSMISMATCH_IDX (RPC_TIMEDOUT_IDX \
  34275. + sizeof "RPC: Timed out")
  34276. - _("RPC: Incompatible versions of RPC")
  34277. + N_("RPC: Incompatible versions of RPC")
  34278. "\0"
  34279. #define RPC_AUTHERROR_IDX (RPC_VERSMISMATCH_IDX \
  34280. + sizeof "RPC: Incompatible versions of RPC")
  34281. - _("RPC: Authentication error")
  34282. + N_("RPC: Authentication error")
  34283. "\0"
  34284. #define RPC_PROGUNAVAIL_IDX (RPC_AUTHERROR_IDX \
  34285. + sizeof "RPC: Authentication error")
  34286. - _("RPC: Program unavailable")
  34287. + N_("RPC: Program unavailable")
  34288. "\0"
  34289. #define RPC_PROGVERSMISMATCH_IDX (RPC_PROGUNAVAIL_IDX \
  34290. + sizeof "RPC: Program unavailable")
  34291. - _("RPC: Program/version mismatch")
  34292. + N_("RPC: Program/version mismatch")
  34293. "\0"
  34294. #define RPC_PROCUNAVAIL_IDX (RPC_PROGVERSMISMATCH_IDX \
  34295. + sizeof "RPC: Program/version mismatch")
  34296. - _("RPC: Procedure unavailable")
  34297. + N_("RPC: Procedure unavailable")
  34298. "\0"
  34299. #define RPC_CANTDECODEARGS_IDX (RPC_PROCUNAVAIL_IDX \
  34300. + sizeof "RPC: Procedure unavailable")
  34301. - _("RPC: Server can't decode arguments")
  34302. + N_("RPC: Server can't decode arguments")
  34303. "\0"
  34304. #define RPC_SYSTEMERROR_IDX (RPC_CANTDECODEARGS_IDX \
  34305. + sizeof "RPC: Server can't decode arguments")
  34306. - _("RPC: Remote system error")
  34307. + N_("RPC: Remote system error")
  34308. "\0"
  34309. #define RPC_UNKNOWNHOST_IDX (RPC_SYSTEMERROR_IDX \
  34310. + sizeof "RPC: Remote system error")
  34311. - _("RPC: Unknown host")
  34312. + N_("RPC: Unknown host")
  34313. "\0"
  34314. #define RPC_UNKNOWNPROTO_IDX (RPC_UNKNOWNHOST_IDX \
  34315. + sizeof "RPC: Unknown host")
  34316. - _("RPC: Unknown protocol")
  34317. + N_("RPC: Unknown protocol")
  34318. "\0"
  34319. #define RPC_PMAPFAILURE_IDX (RPC_UNKNOWNPROTO_IDX \
  34320. + sizeof "RPC: Unknown protocol")
  34321. - _("RPC: Port mapper failure")
  34322. + N_("RPC: Port mapper failure")
  34323. "\0"
  34324. #define RPC_PROGNOTREGISTERED_IDX (RPC_PMAPFAILURE_IDX \
  34325. + sizeof "RPC: Port mapper failure")
  34326. - _("RPC: Program not registered")
  34327. + N_("RPC: Program not registered")
  34328. "\0"
  34329. #define RPC_FAILED_IDX (RPC_PROGNOTREGISTERED_IDX \
  34330. + sizeof "RPC: Program not registered")
  34331. - _("RPC: Failed (unspecified error)")
  34332. + N_("RPC: Failed (unspecified error)")
  34333. };
  34334. static const struct rpc_errtab rpc_errlist[] =
  34335. @@ -189,19 +180,14 @@
  34336. return (char*)_(rpc_errstr + rpc_errlist[i].message_off);
  34337. }
  34338. }
  34339. - return _("RPC: (unknown error code)");
  34340. + return N_("RPC: (unknown error code)");
  34341. }
  34342. libc_hidden_def(clnt_sperrno)
  34343. void
  34344. clnt_perrno (enum clnt_stat num)
  34345. {
  34346. -#ifdef USE_IN_LIBIO
  34347. - if (_IO_fwide (stderr, 0) > 0)
  34348. - (void) fwprintf (stderr, L"%s", clnt_sperrno (num));
  34349. - else
  34350. -#endif
  34351. - (void) fputs (clnt_sperrno (num), stderr);
  34352. + (void) fputs (clnt_sperrno (num), stderr);
  34353. }
  34354. /*
  34355. @@ -295,12 +281,7 @@
  34356. void
  34357. clnt_perror (CLIENT * rpch, const char *msg)
  34358. {
  34359. -#ifdef USE_IN_LIBIO
  34360. - if (_IO_fwide (stderr, 0) > 0)
  34361. - (void) fwprintf (stderr, L"%s", clnt_sperror (rpch, msg));
  34362. - else
  34363. -#endif
  34364. - (void) fputs (clnt_sperror (rpch, msg), stderr);
  34365. + (void) fputs (clnt_sperror (rpch, msg), stderr);
  34366. }
  34367. libc_hidden_def(clnt_perror)
  34368. @@ -352,12 +333,7 @@
  34369. void
  34370. clnt_pcreateerror (const char *msg)
  34371. {
  34372. -#ifdef USE_IN_LIBIO
  34373. - if (_IO_fwide (stderr, 0) > 0)
  34374. - (void) fwprintf (stderr, L"%s", clnt_spcreateerror (msg));
  34375. - else
  34376. -#endif
  34377. - (void) fputs (clnt_spcreateerror (msg), stderr);
  34378. + (void) fputs (clnt_spcreateerror (msg), stderr);
  34379. }
  34380. struct auth_errtab
  34381. @@ -369,34 +345,34 @@
  34382. static const char auth_errstr[] =
  34383. {
  34384. #define AUTH_OK_IDX 0
  34385. - _("Authentication OK")
  34386. + N_("Authentication OK")
  34387. "\0"
  34388. #define AUTH_BADCRED_IDX (AUTH_OK_IDX + sizeof "Authentication OK")
  34389. - _("Invalid client credential")
  34390. + N_("Invalid client credential")
  34391. "\0"
  34392. #define AUTH_REJECTEDCRED_IDX (AUTH_BADCRED_IDX \
  34393. + sizeof "Invalid client credential")
  34394. - _("Server rejected credential")
  34395. + N_("Server rejected credential")
  34396. "\0"
  34397. #define AUTH_BADVERF_IDX (AUTH_REJECTEDCRED_IDX \
  34398. + sizeof "Server rejected credential")
  34399. - _("Invalid client verifier")
  34400. + N_("Invalid client verifier")
  34401. "\0"
  34402. #define AUTH_REJECTEDVERF_IDX (AUTH_BADVERF_IDX \
  34403. + sizeof "Invalid client verifier")
  34404. - _("Server rejected verifier")
  34405. + N_("Server rejected verifier")
  34406. "\0"
  34407. #define AUTH_TOOWEAK_IDX (AUTH_REJECTEDVERF_IDX \
  34408. + sizeof "Server rejected verifier")
  34409. - _("Client credential too weak")
  34410. + N_("Client credential too weak")
  34411. "\0"
  34412. #define AUTH_INVALIDRESP_IDX (AUTH_TOOWEAK_IDX \
  34413. + sizeof "Client credential too weak")
  34414. - _("Invalid server verifier")
  34415. + N_("Invalid server verifier")
  34416. "\0"
  34417. #define AUTH_FAILED_IDX (AUTH_INVALIDRESP_IDX \
  34418. + sizeof "Invalid server verifier")
  34419. - _("Failed (unspecified error)")
  34420. + N_("Failed (unspecified error)")
  34421. };
  34422. static const struct auth_errtab auth_errlist[] =
  34423. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/clnt_raw.c uClibc-git/libc/inet/rpc/clnt_raw.c
  34424. --- uClibc-0.9.33.2/libc/inet/rpc/clnt_raw.c 2012-05-15 09:20:09.000000000 +0200
  34425. +++ uClibc-git/libc/inet/rpc/clnt_raw.c 2014-06-02 17:40:33.982711808 +0200
  34426. @@ -42,7 +42,6 @@
  34427. * any interference from the kernel.
  34428. */
  34429. -#define __FORCE_GLIBC
  34430. #include <features.h>
  34431. #include "rpc_private.h"
  34432. #include <rpc/svc.h>
  34433. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/clnt_simple.c uClibc-git/libc/inet/rpc/clnt_simple.c
  34434. --- uClibc-0.9.33.2/libc/inet/rpc/clnt_simple.c 2012-05-15 09:20:09.000000000 +0200
  34435. +++ uClibc-git/libc/inet/rpc/clnt_simple.c 2014-06-02 17:40:33.982711808 +0200
  34436. @@ -38,9 +38,6 @@
  34437. * Copyright (C) 1984, Sun Microsystems, Inc.
  34438. */
  34439. -#define __FORCE_GLIBC
  34440. -#include <features.h>
  34441. -
  34442. #include <alloca.h>
  34443. #include <errno.h>
  34444. #include <stdio.h>
  34445. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/clnt_tcp.c uClibc-git/libc/inet/rpc/clnt_tcp.c
  34446. --- uClibc-0.9.33.2/libc/inet/rpc/clnt_tcp.c 2012-05-15 09:20:09.000000000 +0200
  34447. +++ uClibc-git/libc/inet/rpc/clnt_tcp.c 2014-06-02 17:40:33.982711808 +0200
  34448. @@ -50,22 +50,14 @@
  34449. * Now go hang yourself.
  34450. */
  34451. -#define __FORCE_GLIBC
  34452. -#include <features.h>
  34453. -
  34454. #include <netdb.h>
  34455. #include <errno.h>
  34456. #include <stdio.h>
  34457. #include <unistd.h>
  34458. -#include <rpc/rpc.h>
  34459. +#include "rpc_private.h"
  34460. #include <sys/poll.h>
  34461. #include <sys/socket.h>
  34462. #include <rpc/pmap_clnt.h>
  34463. -#ifdef USE_IN_LIBIO
  34464. -# include <wchar.h>
  34465. -#endif
  34466. -
  34467. -extern u_long _create_xid (void) attribute_hidden;
  34468. #define MCALL_MSG_SIZE 24
  34469. @@ -130,13 +122,7 @@
  34470. if (h == NULL || ct == NULL)
  34471. {
  34472. struct rpc_createerr *ce = &get_rpc_createerr ();
  34473. -#ifdef USE_IN_LIBIO
  34474. - if (_IO_fwide (stderr, 0) > 0)
  34475. - (void) fwprintf (stderr, L"%s",
  34476. - _("clnttcp_create: out of memory\n"));
  34477. - else
  34478. -#endif
  34479. - (void) fputs (_("clnttcp_create: out of memory\n"), stderr);
  34480. + (void) fputs (_("clnttcp_create: out of memory\n"), stderr);
  34481. ce->cf_stat = RPC_SYSTEMERROR;
  34482. ce->cf_error.re_errno = ENOMEM;
  34483. goto fooy;
  34484. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/clnt_udp.c uClibc-git/libc/inet/rpc/clnt_udp.c
  34485. --- uClibc-0.9.33.2/libc/inet/rpc/clnt_udp.c 2012-05-15 09:20:09.000000000 +0200
  34486. +++ uClibc-git/libc/inet/rpc/clnt_udp.c 2014-06-02 17:40:33.982711808 +0200
  34487. @@ -37,12 +37,9 @@
  34488. * Copyright (C) 1984, Sun Microsystems, Inc.
  34489. */
  34490. -#define __FORCE_GLIBC
  34491. -#include <features.h>
  34492. -
  34493. #include <stdio.h>
  34494. #include <unistd.h>
  34495. -#include <rpc/rpc.h>
  34496. +#include "rpc_private.h"
  34497. #include <rpc/xdr.h>
  34498. #include <rpc/clnt.h>
  34499. #include <sys/poll.h>
  34500. @@ -52,20 +49,12 @@
  34501. #include <errno.h>
  34502. #include <rpc/pmap_clnt.h>
  34503. #include <net/if.h>
  34504. -#ifdef USE_IN_LIBIO
  34505. -# include <wchar.h>
  34506. -#endif
  34507. #ifdef IP_RECVERR
  34508. #include "errqueue.h"
  34509. #include <sys/uio.h>
  34510. #endif
  34511. -/* CMSG_NXTHDR is using it */
  34512. -
  34513. -
  34514. -extern u_long _create_xid (void) attribute_hidden;
  34515. -
  34516. /*
  34517. * UDP bases client side rpc operations
  34518. */
  34519. @@ -116,7 +105,7 @@
  34520. * NB: The rpch->cl_auth is initialized to null authentication.
  34521. * Caller may wish to set this something more useful.
  34522. *
  34523. - * wait is the amount of time used between retransmitting a call if
  34524. + * _wait is the amount of time used between retransmitting a call if
  34525. * no response has been heard; retransmission occurs until the actual
  34526. * rpc call times out.
  34527. *
  34528. @@ -125,7 +114,7 @@
  34529. */
  34530. CLIENT *
  34531. clntudp_bufcreate (struct sockaddr_in *raddr, u_long program, u_long version,
  34532. - struct timeval wait, int *sockp, u_int sendsz,
  34533. + struct timeval _wait, int *sockp, u_int sendsz,
  34534. u_int recvsz)
  34535. {
  34536. CLIENT *cl;
  34537. @@ -139,13 +128,7 @@
  34538. if (cl == NULL || cu == NULL)
  34539. {
  34540. struct rpc_createerr *ce = &get_rpc_createerr ();
  34541. -#ifdef USE_IN_LIBIO
  34542. - if (_IO_fwide (stderr, 0) > 0)
  34543. - (void) fwprintf (stderr, L"%s",
  34544. - _("clntudp_create: out of memory\n"));
  34545. - else
  34546. -#endif
  34547. - (void) fputs (_("clntudp_create: out of memory\n"), stderr);
  34548. + (void) fputs (_("clntudp_create: out of memory\n"), stderr);
  34549. ce->cf_stat = RPC_SYSTEMERROR;
  34550. ce->cf_error.re_errno = ENOMEM;
  34551. goto fooy;
  34552. @@ -166,7 +149,7 @@
  34553. cl->cl_private = (caddr_t) cu;
  34554. cu->cu_raddr = *raddr;
  34555. cu->cu_rlen = sizeof (cu->cu_raddr);
  34556. - cu->cu_wait = wait;
  34557. + cu->cu_wait = _wait;
  34558. cu->cu_total.tv_sec = -1;
  34559. cu->cu_total.tv_usec = -1;
  34560. cu->cu_sendsz = sendsz;
  34561. @@ -224,10 +207,10 @@
  34562. libc_hidden_def(clntudp_bufcreate)
  34563. CLIENT *
  34564. -clntudp_create (struct sockaddr_in *raddr, u_long program, u_long version, struct timeval wait, int *sockp)
  34565. +clntudp_create (struct sockaddr_in *raddr, u_long program, u_long version, struct timeval _wait, int *sockp)
  34566. {
  34567. - return clntudp_bufcreate (raddr, program, version, wait, sockp,
  34568. + return clntudp_bufcreate (raddr, program, version, _wait, sockp,
  34569. UDPMSGSIZE, UDPMSGSIZE);
  34570. }
  34571. libc_hidden_def(clntudp_create)
  34572. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/clnt_unix.c uClibc-git/libc/inet/rpc/clnt_unix.c
  34573. --- uClibc-0.9.33.2/libc/inet/rpc/clnt_unix.c 2012-05-15 09:20:09.000000000 +0200
  34574. +++ uClibc-git/libc/inet/rpc/clnt_unix.c 2014-06-02 17:40:33.982711808 +0200
  34575. @@ -46,24 +46,15 @@
  34576. * Now go hang yourself.
  34577. */
  34578. -#define __FORCE_GLIBC
  34579. -#include <features.h>
  34580. -
  34581. #include <netdb.h>
  34582. #include <errno.h>
  34583. #include <stdio.h>
  34584. #include <unistd.h>
  34585. -#include <rpc/rpc.h>
  34586. +#include "rpc_private.h"
  34587. #include <sys/uio.h>
  34588. #include <sys/poll.h>
  34589. #include <sys/socket.h>
  34590. #include <rpc/pmap_clnt.h>
  34591. -#ifdef USE_IN_LIBIO
  34592. -# include <wchar.h>
  34593. -#endif
  34594. -
  34595. -
  34596. -extern u_long _create_xid (void) attribute_hidden;
  34597. #define MCALL_MSG_SIZE 24
  34598. @@ -128,13 +119,7 @@
  34599. if (h == NULL || ct == NULL)
  34600. {
  34601. struct rpc_createerr *ce = &get_rpc_createerr ();
  34602. -#ifdef USE_IN_LIBIO
  34603. - if (_IO_fwide (stderr, 0) > 0)
  34604. - (void) fwprintf (stderr, L"%s",
  34605. - _("clntunix_create: out of memory\n"));
  34606. - else
  34607. -#endif
  34608. - (void) fputs (_("clntunix_create: out of memory\n"), stderr);
  34609. + (void) fputs (_("clntunix_create: out of memory\n"), stderr);
  34610. ce->cf_stat = RPC_SYSTEMERROR;
  34611. ce->cf_error.re_errno = ENOMEM;
  34612. goto fooy;
  34613. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/create_xid.c uClibc-git/libc/inet/rpc/create_xid.c
  34614. --- uClibc-0.9.33.2/libc/inet/rpc/create_xid.c 2012-05-15 09:20:09.000000000 +0200
  34615. +++ uClibc-git/libc/inet/rpc/create_xid.c 2014-06-02 17:40:33.982711808 +0200
  34616. @@ -13,17 +13,13 @@
  34617. Lesser General Public License for more details.
  34618. You should have received a copy of the GNU Lesser General Public
  34619. - License along with the GNU C Library; if not, write to the Free
  34620. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  34621. - 02111-1307 USA. */
  34622. -
  34623. -#define __FORCE_GLIBC
  34624. -#include <features.h>
  34625. + License along with the GNU C Library; if not, see
  34626. + <http://www.gnu.org/licenses/>. */
  34627. #include <unistd.h>
  34628. #include <stdlib.h>
  34629. #include <sys/time.h>
  34630. -#include <rpc/rpc.h>
  34631. +#include "rpc_private.h"
  34632. /* The RPC code is not threadsafe, but new code should be threadsafe. */
  34633. @@ -34,7 +30,6 @@
  34634. static smallint is_initialized;
  34635. static struct drand48_data __rpc_lrand48_data;
  34636. -u_long _create_xid (void) attribute_hidden;
  34637. u_long _create_xid (void)
  34638. {
  34639. long res;
  34640. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/errqueue.h uClibc-git/libc/inet/rpc/errqueue.h
  34641. --- uClibc-0.9.33.2/libc/inet/rpc/errqueue.h 2012-05-15 09:20:09.000000000 +0200
  34642. +++ uClibc-git/libc/inet/rpc/errqueue.h 2014-06-02 17:40:33.982711808 +0200
  34643. @@ -12,9 +12,8 @@
  34644. Lesser General Public License for more details.
  34645. You should have received a copy of the GNU Lesser General Public
  34646. - License along with the GNU C Library; if not, write to the Free
  34647. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  34648. - 02111-1307 USA. */
  34649. + License along with the GNU C Library; if not, see
  34650. + <http://www.gnu.org/licenses/>. */
  34651. /* Linux version. */
  34652. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/get_myaddress.c uClibc-git/libc/inet/rpc/get_myaddress.c
  34653. --- uClibc-0.9.33.2/libc/inet/rpc/get_myaddress.c 2012-05-15 09:20:09.000000000 +0200
  34654. +++ uClibc-git/libc/inet/rpc/get_myaddress.c 2014-06-02 17:40:33.982711808 +0200
  34655. @@ -44,6 +44,7 @@
  34656. #include <sys/socket.h>
  34657. #include <stdio.h>
  34658. #include <unistd.h>
  34659. +#include <libintl.h>
  34660. #include <net/if.h>
  34661. #include <sys/ioctl.h>
  34662. /* Order of following two #includes reversed by roland@gnu */
  34663. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/getrpcent.c uClibc-git/libc/inet/rpc/getrpcent.c
  34664. --- uClibc-0.9.33.2/libc/inet/rpc/getrpcent.c 2012-05-15 09:20:09.000000000 +0200
  34665. +++ uClibc-git/libc/inet/rpc/getrpcent.c 2014-06-02 17:40:33.982711808 +0200
  34666. @@ -33,8 +33,6 @@
  34667. * Copyright (c) 1985 by Sun Microsystems, Inc.
  34668. */
  34669. -#define __FORCE_GLIBC
  34670. -#include <features.h>
  34671. #include <stdio.h>
  34672. #include <string.h>
  34673. #include <sys/types.h>
  34674. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/getrpcport.c uClibc-git/libc/inet/rpc/getrpcport.c
  34675. --- uClibc-0.9.33.2/libc/inet/rpc/getrpcport.c 2012-05-15 09:20:09.000000000 +0200
  34676. +++ uClibc-git/libc/inet/rpc/getrpcport.c 2014-06-02 17:40:33.982711808 +0200
  34677. @@ -35,9 +35,6 @@
  34678. * Copyright (c) 1985 by Sun Microsystems, Inc.
  34679. */
  34680. -#define __FORCE_GLIBC
  34681. -#include <features.h>
  34682. -
  34683. #include <alloca.h>
  34684. #include <errno.h>
  34685. #include <stdio.h>
  34686. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/Makefile.in uClibc-git/libc/inet/rpc/Makefile.in
  34687. --- uClibc-0.9.33.2/libc/inet/rpc/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  34688. +++ uClibc-git/libc/inet/rpc/Makefile.in 2014-06-02 17:40:33.966711719 +0200
  34689. @@ -9,9 +9,8 @@
  34690. CFLAGS-rpc := -fno-strict-aliasing
  34691. -ifneq ($(UCLIBC_HAS_FULL_RPC),y)
  34692. # For now, only compile the stuff needed to do an NFS mount....
  34693. -CSRC:= authunix_prot.c auth_none.c auth_unix.c bindresvport.c \
  34694. +CSRC_NFS = authunix_prot.c auth_none.c auth_unix.c bindresvport.c \
  34695. clnt_perror.c clnt_simple.c clnt_tcp.c clnt_udp.c \
  34696. create_xid.c getrpcent.c \
  34697. pmap_clnt.c pm_getmaps.c pm_getport.c pmap_prot.c pmap_prot2.c \
  34698. @@ -19,27 +18,23 @@
  34699. rpc_prot.c rpc_thread.c rtime.c ruserpass.c sa_len.c \
  34700. svc.c svc_auth.c svc_authux.c \
  34701. xdr.c xdr_array.c xdr_mem.c xdr_rec.c xdr_reference.c
  34702. -endif
  34703. INET_RPC_DIR:=$(top_srcdir)libc/inet/rpc
  34704. INET_RPC_OUT:=$(top_builddir)libc/inet/rpc
  34705. -ifeq ($(UCLIBC_HAS_FULL_RPC),y)
  34706. -INET_RPC_SRC:=$(wildcard $(INET_RPC_DIR)/*.c)
  34707. -else
  34708. -INET_RPC_SRC:=$(patsubst %.c,$(INET_RPC_DIR)/%.c,$(CSRC))
  34709. -endif
  34710. -# rpc_thread.oS is better, because the header adds unneeded references to __pthread_internal_tsd*
  34711. -INET_RPC_SRC:=$(filter-out $(INET_RPC_DIR)/rpc_thread.c,$(INET_RPC_SRC))
  34712. +CSRC_ALL = $(notdir $(wildcard $(INET_RPC_DIR)/*.c))
  34713. +CSRC-y := $(if $(UCLIBC_HAS_FULL_RPC),$(CSRC_ALL),$(CSRC_NFS))
  34714. +# rpc_thread.oS is better, because the header adds unneeded references
  34715. +# to __pthread_internal_tsd*
  34716. +CSRC-y := $(filter-out rpc_thread.c,$(CSRC-y))
  34717. -INET_RPC_OBJ:=$(patsubst $(INET_RPC_DIR)/%.c,$(INET_RPC_OUT)/%.o,$(INET_RPC_SRC))
  34718. -
  34719. -libc-static-$(UCLIBC_HAS_RPC)+=$(INET_RPC_OUT)/rpc_thread.o
  34720. -libc-shared-$(UCLIBC_HAS_RPC)+=$(INET_RPC_OUT)/rpc_thread.oS
  34721. +INET_RPC_SRC:=$(patsubst %.c,$(INET_RPC_DIR)/%.c,$(CSRC-y))
  34722. +INET_RPC_OBJ:=$(patsubst %.c,$(INET_RPC_OUT)/%.o,$(CSRC-y))
  34723. +libc-static-$(UCLIBC_HAS_RPC) += $(INET_RPC_OUT)/rpc_thread.o
  34724. +libc-shared-$(UCLIBC_HAS_RPC) += $(INET_RPC_OUT)/rpc_thread.oS
  34725. libc-nomulti-$(UCLIBC_HAS_RPC) += $(INET_RPC_OUT)/rpc_thread.o
  34726. -
  34727. -libc-$(UCLIBC_HAS_RPC)+=$(INET_RPC_OBJ)
  34728. +libc-$(UCLIBC_HAS_RPC) += $(INET_RPC_OBJ)
  34729. objclean-y+=CLEAN_libc/inet/rpc
  34730. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/pmap_clnt.c uClibc-git/libc/inet/rpc/pmap_clnt.c
  34731. --- uClibc-0.9.33.2/libc/inet/rpc/pmap_clnt.c 2012-05-15 09:20:09.000000000 +0200
  34732. +++ uClibc-git/libc/inet/rpc/pmap_clnt.c 2014-06-02 17:40:33.982711808 +0200
  34733. @@ -34,9 +34,6 @@
  34734. * Client interface to pmap rpc service.
  34735. */
  34736. -#define __FORCE_GLIBC
  34737. -#include <features.h>
  34738. -
  34739. #include <stdio.h>
  34740. #include <unistd.h>
  34741. #include <net/if.h>
  34742. @@ -44,7 +41,7 @@
  34743. #include <sys/socket.h>
  34744. #include <netinet/in.h>
  34745. #include <arpa/inet.h>
  34746. -#include <rpc/rpc.h>
  34747. +#include "rpc_private.h"
  34748. #include <rpc/pmap_prot.h>
  34749. #include <rpc/pmap_clnt.h>
  34750. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/pmap_rmt.c uClibc-git/libc/inet/rpc/pmap_rmt.c
  34751. --- uClibc-0.9.33.2/libc/inet/rpc/pmap_rmt.c 2012-05-15 09:20:09.000000000 +0200
  34752. +++ uClibc-git/libc/inet/rpc/pmap_rmt.c 2014-06-02 17:40:33.982711808 +0200
  34753. @@ -39,12 +39,9 @@
  34754. * Copyright (C) 1984, Sun Microsystems, Inc.
  34755. */
  34756. -#define __FORCE_GLIBC
  34757. -#include <features.h>
  34758. -
  34759. #include <unistd.h>
  34760. #include <string.h>
  34761. -#include <rpc/rpc.h>
  34762. +#include "rpc_private.h"
  34763. #include <rpc/pmap_prot.h>
  34764. #include <rpc/pmap_clnt.h>
  34765. #include <rpc/pmap_rmt.h>
  34766. @@ -52,17 +49,12 @@
  34767. #include <sys/socket.h>
  34768. #include <stdio.h>
  34769. #include <errno.h>
  34770. -#undef _POSIX_SOURCE /* Ultrix <sys/param.h> needs --roland@gnu */
  34771. #include <sys/param.h> /* Ultrix needs before net/if --roland@gnu */
  34772. #include <net/if.h>
  34773. #include <sys/ioctl.h>
  34774. #include <arpa/inet.h>
  34775. #define MAX_BROADCAST_SIZE 1400
  34776. -
  34777. -
  34778. -extern u_long _create_xid (void) attribute_hidden;
  34779. -
  34780. static const struct timeval timeout = {3, 0};
  34781. /*
  34782. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/pm_getmaps.c uClibc-git/libc/inet/rpc/pm_getmaps.c
  34783. --- uClibc-0.9.33.2/libc/inet/rpc/pm_getmaps.c 2012-05-15 09:20:09.000000000 +0200
  34784. +++ uClibc-git/libc/inet/rpc/pm_getmaps.c 2014-06-02 17:40:33.982711808 +0200
  34785. @@ -39,7 +39,7 @@
  34786. * Copyright (C) 1984, Sun Microsystems, Inc.
  34787. */
  34788. -#include <rpc/rpc.h>
  34789. +#include "rpc_private.h"
  34790. #include <rpc/pmap_prot.h>
  34791. #include <rpc/pmap_clnt.h>
  34792. #include <netdb.h>
  34793. @@ -78,7 +78,7 @@
  34794. }
  34795. CLNT_DESTROY (client);
  34796. }
  34797. - /* (void)__close(_socket); CLNT_DESTROY already closed it */
  34798. + /* (void)close(_socket); CLNT_DESTROY already closed it */
  34799. address->sin_port = 0;
  34800. return head;
  34801. }
  34802. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/pm_getport.c uClibc-git/libc/inet/rpc/pm_getport.c
  34803. --- uClibc-0.9.33.2/libc/inet/rpc/pm_getport.c 2012-05-15 09:20:09.000000000 +0200
  34804. +++ uClibc-git/libc/inet/rpc/pm_getport.c 2014-06-02 17:40:33.982711808 +0200
  34805. @@ -65,7 +65,19 @@
  34806. struct pmap parms;
  34807. address->sin_port = htons (PMAPPORT);
  34808. - client = clntudp_bufcreate (address, PMAPPROG,
  34809. + if (protocol == IPPROTO_TCP)
  34810. + {
  34811. + // glibc does this:
  34812. + ///* Don't need a reserved port to get ports from the portmapper. */
  34813. + //socket = __get_socket(address); // does socket(TCP),bind(),connect(address)
  34814. + //if (_socket != -1)
  34815. + // closeit = true;
  34816. + // do we need/want to do the same?
  34817. + client = clnttcp_create (address, PMAPPROG,
  34818. + PMAPVERS, &_socket, RPCSMALLMSGSIZE, RPCSMALLMSGSIZE);
  34819. + }
  34820. + else
  34821. + client = clntudp_bufcreate (address, PMAPPROG,
  34822. PMAPVERS, timeout, &_socket, RPCSMALLMSGSIZE, RPCSMALLMSGSIZE);
  34823. if (client != (CLIENT *) NULL)
  34824. {
  34825. @@ -87,7 +99,7 @@
  34826. }
  34827. CLNT_DESTROY (client);
  34828. }
  34829. - /* (void)__close(_socket); CLNT_DESTROY already closed it */
  34830. + /* (void)close(_socket); CLNT_DESTROY already closed it */
  34831. address->sin_port = 0;
  34832. return port;
  34833. }
  34834. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rcmd.c uClibc-git/libc/inet/rpc/rcmd.c
  34835. --- uClibc-0.9.33.2/libc/inet/rpc/rcmd.c 2012-05-15 09:20:09.000000000 +0200
  34836. +++ uClibc-git/libc/inet/rpc/rcmd.c 2014-06-02 17:40:33.982711808 +0200
  34837. @@ -76,7 +76,6 @@
  34838. #include <pwd.h>
  34839. #include <errno.h>
  34840. #include <stdio.h>
  34841. -#include <stdio_ext.h>
  34842. #include <ctype.h>
  34843. #include <string.h>
  34844. #include <libintl.h>
  34845. @@ -87,6 +86,11 @@
  34846. #include <sys/uio.h>
  34847. #include <bits/uClibc_alloc.h>
  34848. +/* sigsetmask and sigblock are not provided anymore, until this file is corrected,
  34849. + * include the sources */
  34850. +#include "../../signal/sigblock.c"
  34851. +#include "../../signal/sigsetmask.c"
  34852. +
  34853. /* some forward declarations */
  34854. static int __ivaliduser2(FILE *hostf, u_int32_t raddr,
  34855. @@ -146,7 +150,7 @@
  34856. pfd[1].events = POLLIN;
  34857. *ahost = hp->h_name;
  34858. - oldmask = sigblock(sigmask(SIGURG)); /* __sigblock */
  34859. + oldmask = sigblock(__sigmask(SIGURG)); /* sigblock */
  34860. for (timo = 1, lport = IPPORT_RESERVED - 1;;) {
  34861. s = rresvport(&lport);
  34862. if (s < 0) {
  34863. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rexec.c uClibc-git/libc/inet/rpc/rexec.c
  34864. --- uClibc-0.9.33.2/libc/inet/rpc/rexec.c 2012-05-15 09:20:09.000000000 +0200
  34865. +++ uClibc-git/libc/inet/rpc/rexec.c 2014-06-02 17:40:33.982711808 +0200
  34866. @@ -27,8 +27,6 @@
  34867. * SUCH DAMAGE.
  34868. */
  34869. -#define __FORCE_GLIBC
  34870. -#include <features.h>
  34871. #include <sys/types.h>
  34872. #include <sys/socket.h>
  34873. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rpc_cmsg.c uClibc-git/libc/inet/rpc/rpc_cmsg.c
  34874. --- uClibc-0.9.33.2/libc/inet/rpc/rpc_cmsg.c 2012-05-15 09:20:09.000000000 +0200
  34875. +++ uClibc-git/libc/inet/rpc/rpc_cmsg.c 2014-06-02 17:40:33.982711808 +0200
  34876. @@ -38,9 +38,6 @@
  34877. *
  34878. */
  34879. -#define __FORCE_GLIBC
  34880. -#include <features.h>
  34881. -
  34882. #include <string.h>
  34883. #include <sys/param.h>
  34884. #include <rpc/rpc.h>
  34885. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rpc_dtablesize.c uClibc-git/libc/inet/rpc/rpc_dtablesize.c
  34886. --- uClibc-0.9.33.2/libc/inet/rpc/rpc_dtablesize.c 2012-05-15 09:20:09.000000000 +0200
  34887. +++ uClibc-git/libc/inet/rpc/rpc_dtablesize.c 2014-06-02 17:40:33.982711808 +0200
  34888. @@ -31,10 +31,6 @@
  34889. static char sccsid[] = "@(#)rpc_dtablesize.c 1.2 87/08/11 Copyr 1987 Sun Micro";
  34890. #endif
  34891. -#define __FORCE_GLIBC
  34892. -#define __USE_BSD
  34893. -#include <features.h>
  34894. -
  34895. #include <unistd.h>
  34896. #include <rpc/clnt.h>
  34897. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rpc_private.h uClibc-git/libc/inet/rpc/rpc_private.h
  34898. --- uClibc-0.9.33.2/libc/inet/rpc/rpc_private.h 2012-05-15 09:20:09.000000000 +0200
  34899. +++ uClibc-git/libc/inet/rpc/rpc_private.h 2014-06-02 17:40:33.982711808 +0200
  34900. @@ -1,5 +1,7 @@
  34901. -#ifndef _RPC_RPC_H
  34902. +#ifndef _RPC_PRIVATE_H
  34903. +#define _RPC_PRIVATE_H
  34904. #include <rpc/rpc.h>
  34905. +#include <libintl.h>
  34906. /* Now define the internal interfaces. */
  34907. extern u_long _create_xid (void) attribute_hidden;
  34908. @@ -12,14 +14,13 @@
  34909. */
  34910. #ifdef __UCLIBC_HAS_THREADS__
  34911. #include <pthread.h>
  34912. +#include <bits/libc-lock.h>
  34913. struct rpc_thread_variables {
  34914. fd_set svc_fdset_s; /* Global, rpc_common.c */
  34915. struct rpc_createerr rpc_createerr_s; /* Global, rpc_common.c */
  34916. struct pollfd *svc_pollfd_s; /* Global, rpc_common.c */
  34917. int svc_max_pollfd_s; /* Global, rpc_common.c */
  34918. - void *authnone_private_s; /* auth_none.c */
  34919. -
  34920. void *clnt_perr_buf_s; /* clnt_perr.c */
  34921. void *clntraw_private_s; /* clnt_raw.c */
  34922. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rpc_prot.c uClibc-git/libc/inet/rpc/rpc_prot.c
  34923. --- uClibc-0.9.33.2/libc/inet/rpc/rpc_prot.c 2012-05-15 09:20:09.000000000 +0200
  34924. +++ uClibc-git/libc/inet/rpc/rpc_prot.c 2014-06-02 17:40:33.982711808 +0200
  34925. @@ -44,9 +44,6 @@
  34926. * routines are also in this program.
  34927. */
  34928. -#define __FORCE_GLIBC
  34929. -#include <features.h>
  34930. -
  34931. #include <sys/param.h>
  34932. #include <rpc/rpc.h>
  34933. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rpc_thread.c uClibc-git/libc/inet/rpc/rpc_thread.c
  34934. --- uClibc-0.9.33.2/libc/inet/rpc/rpc_thread.c 2012-05-15 09:20:09.000000000 +0200
  34935. +++ uClibc-git/libc/inet/rpc/rpc_thread.c 2014-06-02 17:40:33.982711808 +0200
  34936. @@ -4,8 +4,6 @@
  34937. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  34938. */
  34939. -#define __FORCE_GLIBC
  34940. -#include <features.h>
  34941. #include <stdio.h>
  34942. #include <assert.h>
  34943. #include "rpc_private.h"
  34944. @@ -32,7 +30,6 @@
  34945. __rpc_thread_svc_cleanup ();
  34946. __rpc_thread_clnt_cleanup ();
  34947. /*__rpc_thread_key_cleanup (); */
  34948. - free (tvp->authnone_private_s);
  34949. free (tvp->clnt_perr_buf_s);
  34950. free (tvp->clntraw_private_s);
  34951. free (tvp->svcraw_private_s);
  34952. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rtime.c uClibc-git/libc/inet/rpc/rtime.c
  34953. --- uClibc-0.9.33.2/libc/inet/rpc/rtime.c 2012-05-15 09:20:09.000000000 +0200
  34954. +++ uClibc-git/libc/inet/rpc/rtime.c 2014-06-02 17:40:33.982711808 +0200
  34955. @@ -43,9 +43,6 @@
  34956. * what unix uses.
  34957. */
  34958. -#define __FORCE_GLIBC
  34959. -#include <features.h>
  34960. -
  34961. #include <stdio.h>
  34962. #include <unistd.h>
  34963. #include <rpc/rpc.h>
  34964. @@ -150,4 +147,3 @@
  34965. timep->tv_usec = 0;
  34966. return 0;
  34967. }
  34968. -libc_hidden_def (rtime)
  34969. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/ruserpass.c uClibc-git/libc/inet/rpc/ruserpass.c
  34970. --- uClibc-0.9.33.2/libc/inet/rpc/ruserpass.c 2012-05-15 09:20:09.000000000 +0200
  34971. +++ uClibc-git/libc/inet/rpc/ruserpass.c 2014-06-02 17:40:33.982711808 +0200
  34972. @@ -27,8 +27,6 @@
  34973. * SUCH DAMAGE.
  34974. */
  34975. -#define __FORCE_GLIBC
  34976. -#include <features.h>
  34977. #include <sys/types.h>
  34978. #include <sys/stat.h>
  34979. @@ -37,13 +35,14 @@
  34980. #include <errno.h>
  34981. #include <netdb.h>
  34982. #include <stdio.h>
  34983. -#include <stdio_ext.h>
  34984. +#ifdef __UCLIBC_HAS_THREADS__
  34985. +# include <stdio_ext.h>
  34986. +#endif
  34987. #include <stdlib.h>
  34988. #include <string.h>
  34989. #include <unistd.h>
  34990. +#include <libintl.h>
  34991. -
  34992. -#define _(X) (X)
  34993. /* #include "ftp_var.h" */
  34994. static int token (void);
  34995. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/sa_len.c uClibc-git/libc/inet/rpc/sa_len.c
  34996. --- uClibc-0.9.33.2/libc/inet/rpc/sa_len.c 2012-05-15 09:20:09.000000000 +0200
  34997. +++ uClibc-git/libc/inet/rpc/sa_len.c 2014-06-02 17:40:33.982711808 +0200
  34998. @@ -12,17 +12,14 @@
  34999. Lesser General Public License for more details.
  35000. You should have received a copy of the GNU Lesser General Public
  35001. - License along with the GNU C Library; if not, write to the Free
  35002. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  35003. - 02111-1307 USA. */
  35004. + License along with the GNU C Library; if not, see
  35005. + <http://www.gnu.org/licenses/>. */
  35006. -#define __FORCE_GLIBC
  35007. -#include <features.h>
  35008. #include <sys/socket.h>
  35009. #include <netinet/in.h>
  35010. -#include <netipx/ipx.h>
  35011. #include <sys/un.h>
  35012. #if 0
  35013. +#include <netipx/ipx.h>
  35014. #include <netash/ash.h>
  35015. #include <netatalk/at.h>
  35016. #include <netax25/ax25.h>
  35017. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_auth.c uClibc-git/libc/inet/rpc/svc_auth.c
  35018. --- uClibc-0.9.33.2/libc/inet/rpc/svc_auth.c 2012-05-15 09:20:09.000000000 +0200
  35019. +++ uClibc-git/libc/inet/rpc/svc_auth.c 2014-06-02 17:40:33.982711808 +0200
  35020. @@ -58,9 +58,9 @@
  35021. static enum auth_stat _svcauth_null (struct svc_req *, struct rpc_msg *);
  35022. /* no authentication */
  35023. -extern enum auth_stat _svcauth_unix (struct svc_req *, struct rpc_msg *);
  35024. +extern enum auth_stat _svcauth_unix (struct svc_req *, struct rpc_msg *) attribute_hidden;
  35025. /* unix style (uid, gids) */
  35026. -extern enum auth_stat _svcauth_short (struct svc_req *, struct rpc_msg *);
  35027. +extern enum auth_stat _svcauth_short (struct svc_req *, struct rpc_msg *) attribute_hidden;
  35028. /* short hand unix style */
  35029. #ifdef CONFIG_AUTH_DES
  35030. extern enum auth_stat _svcauth_des (struct svc_req *, struct rpc_msg *);
  35031. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_authux.c uClibc-git/libc/inet/rpc/svc_authux.c
  35032. --- uClibc-0.9.33.2/libc/inet/rpc/svc_authux.c 2012-05-15 09:20:09.000000000 +0200
  35033. +++ uClibc-git/libc/inet/rpc/svc_authux.c 2014-06-02 17:40:33.982711808 +0200
  35034. @@ -38,9 +38,6 @@
  35035. * Copyright (C) 1984, Sun Microsystems, Inc.
  35036. */
  35037. -#define __FORCE_GLIBC
  35038. -#include <features.h>
  35039. -
  35040. #include <stdio.h>
  35041. #include <string.h>
  35042. #include <rpc/rpc.h>
  35043. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc.c uClibc-git/libc/inet/rpc/svc.c
  35044. --- uClibc-0.9.33.2/libc/inet/rpc/svc.c 2012-05-15 09:20:09.000000000 +0200
  35045. +++ uClibc-git/libc/inet/rpc/svc.c 2014-06-02 17:40:33.982711808 +0200
  35046. @@ -36,9 +36,6 @@
  35047. * Copyright (C) 1984, Sun Microsystems, Inc.
  35048. */
  35049. -#define __FORCE_GLIBC
  35050. -#include <features.h>
  35051. -
  35052. #include <errno.h>
  35053. #include <unistd.h>
  35054. #include <string.h>
  35055. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_raw.c uClibc-git/libc/inet/rpc/svc_raw.c
  35056. --- uClibc-0.9.33.2/libc/inet/rpc/svc_raw.c 2012-05-15 09:20:09.000000000 +0200
  35057. +++ uClibc-git/libc/inet/rpc/svc_raw.c 2014-06-02 17:40:33.982711808 +0200
  35058. @@ -40,8 +40,6 @@
  35059. * Copyright (C) 1984, Sun Microsystems, Inc.
  35060. */
  35061. -#define __FORCE_GLIBC
  35062. -#include <features.h>
  35063. #include "rpc_private.h"
  35064. #include <rpc/svc.h>
  35065. @@ -69,7 +67,7 @@
  35066. static bool_t svcraw_freeargs (SVCXPRT *, xdrproc_t, caddr_t);
  35067. static void svcraw_destroy (SVCXPRT *);
  35068. -static struct xp_ops server_ops =
  35069. +static const struct xp_ops server_ops =
  35070. {
  35071. svcraw_recv,
  35072. svcraw_stat,
  35073. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_run.c uClibc-git/libc/inet/rpc/svc_run.c
  35074. --- uClibc-0.9.33.2/libc/inet/rpc/svc_run.c 2012-05-15 09:20:09.000000000 +0200
  35075. +++ uClibc-git/libc/inet/rpc/svc_run.c 2014-06-02 17:40:33.982711808 +0200
  35076. @@ -31,13 +31,10 @@
  35077. * Wait for input, call server program.
  35078. */
  35079. -#define __FORCE_GLIBC
  35080. -#include <features.h>
  35081. -
  35082. #include <errno.h>
  35083. #include <unistd.h>
  35084. #include <sys/poll.h>
  35085. -#include <rpc/rpc.h>
  35086. +#include "rpc_private.h"
  35087. /* used by svc_[max_]pollfd */
  35088. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_simple.c uClibc-git/libc/inet/rpc/svc_simple.c
  35089. --- uClibc-0.9.33.2/libc/inet/rpc/svc_simple.c 2012-05-15 09:20:09.000000000 +0200
  35090. +++ uClibc-git/libc/inet/rpc/svc_simple.c 2014-06-02 17:40:33.982711808 +0200
  35091. @@ -38,9 +38,6 @@
  35092. * Copyright (C) 1984, Sun Microsystems, Inc.
  35093. */
  35094. -#define __FORCE_GLIBC
  35095. -#include <features.h>
  35096. -
  35097. #include <stdio.h>
  35098. #include <string.h>
  35099. #include <unistd.h>
  35100. @@ -49,13 +46,6 @@
  35101. #include <sys/socket.h>
  35102. #include <netdb.h>
  35103. -#ifdef USE_IN_LIBIO
  35104. -# include <wchar.h>
  35105. -# include <libio/iolibio.h>
  35106. -# define fputs(s, f) _IO_fputs (s, f)
  35107. -#endif
  35108. -
  35109. -
  35110. struct proglst_
  35111. {
  35112. char *(*p_progname) (char *);
  35113. @@ -127,12 +117,7 @@
  35114. return 0;
  35115. err_out:
  35116. -#ifdef USE_IN_LIBIO
  35117. - if (_IO_fwide (stderr, 0) > 0)
  35118. - (void) __fwprintf (stderr, L"%s", buf);
  35119. - else
  35120. -#endif
  35121. - (void) fputs (buf, stderr);
  35122. + (void) fputs (buf, stderr);
  35123. free (buf);
  35124. return -1;
  35125. }
  35126. @@ -186,12 +171,7 @@
  35127. return;
  35128. }
  35129. (void) asprintf (&buf, _("never registered prog %d\n"), prog);
  35130. -#ifdef USE_IN_LIBIO
  35131. - if (_IO_fwide (stderr, 0) > 0)
  35132. - __fwprintf (stderr, L"%s", buf);
  35133. - else
  35134. -#endif
  35135. - fputs (buf, stderr);
  35136. + fputs (buf, stderr);
  35137. free (buf);
  35138. exit (1);
  35139. }
  35140. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_tcp.c uClibc-git/libc/inet/rpc/svc_tcp.c
  35141. --- uClibc-0.9.33.2/libc/inet/rpc/svc_tcp.c 2012-05-15 09:20:09.000000000 +0200
  35142. +++ uClibc-git/libc/inet/rpc/svc_tcp.c 2014-06-02 17:40:33.982711808 +0200
  35143. @@ -41,25 +41,15 @@
  35144. * and a record/tcp stream.
  35145. */
  35146. -#define __FORCE_GLIBC
  35147. -#include <features.h>
  35148. -
  35149. #include <stdio.h>
  35150. #include <unistd.h>
  35151. #include <string.h>
  35152. -#include <rpc/rpc.h>
  35153. +#include "rpc_private.h"
  35154. #include <sys/socket.h>
  35155. #include <sys/poll.h>
  35156. #include <errno.h>
  35157. #include <stdlib.h>
  35158. -#ifdef USE_IN_LIBIO
  35159. -# include <wchar.h>
  35160. -# include <libio/iolibio.h>
  35161. -# define fputs(s, f) _IO_fputs (s, f)
  35162. -#endif
  35163. -
  35164. -
  35165. /*
  35166. * Ops vector for TCP/IP based rpc service handle
  35167. */
  35168. @@ -180,12 +170,7 @@
  35169. xprt = (SVCXPRT *) mem_alloc (sizeof (SVCXPRT));
  35170. if (r == NULL || xprt == NULL)
  35171. {
  35172. -#ifdef USE_IN_LIBIO
  35173. - if (_IO_fwide (stderr, 0) > 0)
  35174. - (void) __fwprintf (stderr, L"%s", _("svctcp_create: out of memory\n"));
  35175. - else
  35176. -#endif
  35177. - (void) fputs (_("svctcp_create: out of memory\n"), stderr);
  35178. + (void) fputs (_("svctcp_create: out of memory\n"), stderr);
  35179. mem_free (r, sizeof (*r));
  35180. mem_free (xprt, sizeof (SVCXPRT));
  35181. return NULL;
  35182. @@ -225,13 +210,7 @@
  35183. cd = (struct tcp_conn *) mem_alloc (sizeof (struct tcp_conn));
  35184. if (xprt == (SVCXPRT *) NULL || cd == NULL)
  35185. {
  35186. -#ifdef USE_IN_LIBIO
  35187. - if (_IO_fwide (stderr, 0) > 0)
  35188. - (void) __fwprintf (stderr, L"%s",
  35189. - _("svc_tcp: makefd_xprt: out of memory\n"));
  35190. - else
  35191. -#endif
  35192. - (void) fputs (_("svc_tcp: makefd_xprt: out of memory\n"), stderr);
  35193. + (void) fputs (_("svc_tcp: makefd_xprt: out of memory\n"), stderr);
  35194. mem_free (xprt, sizeof (SVCXPRT));
  35195. mem_free (cd, sizeof (struct tcp_conn));
  35196. return NULL;
  35197. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_udp.c uClibc-git/libc/inet/rpc/svc_udp.c
  35198. --- uClibc-0.9.33.2/libc/inet/rpc/svc_udp.c 2012-05-15 09:20:09.000000000 +0200
  35199. +++ uClibc-git/libc/inet/rpc/svc_udp.c 2014-06-02 17:40:33.986711829 +0200
  35200. @@ -39,13 +39,10 @@
  35201. * Copyright (C) 1984, Sun Microsystems, Inc.
  35202. */
  35203. -#define __FORCE_GLIBC
  35204. -#include <features.h>
  35205. -
  35206. #include <stdio.h>
  35207. #include <unistd.h>
  35208. #include <string.h>
  35209. -#include <rpc/rpc.h>
  35210. +#include "rpc_private.h"
  35211. #include <sys/socket.h>
  35212. #include <errno.h>
  35213. @@ -53,13 +50,6 @@
  35214. #include <sys/uio.h>
  35215. #endif
  35216. -#ifdef USE_IN_LIBIO
  35217. -# include <wchar.h>
  35218. -# include <libio/iolibio.h>
  35219. -# define fputs(s, f) _IO_fputs (s, f)
  35220. -#endif
  35221. -
  35222. -
  35223. #define rpc_buffer(xprt) ((xprt)->xp_p1)
  35224. #ifndef MAX
  35225. #define MAX(a, b) ((a > b) ? a : b)
  35226. @@ -151,12 +141,7 @@
  35227. buf = mem_alloc (((MAX (sendsz, recvsz) + 3) / 4) * 4);
  35228. if (xprt == NULL || su == NULL || buf == NULL)
  35229. {
  35230. -#ifdef USE_IN_LIBIO
  35231. - if (_IO_fwide (stderr, 0) > 0)
  35232. - (void) fwprintf (stderr, L"%s", _("svcudp_create: out of memory\n"));
  35233. - else
  35234. -#endif
  35235. - (void) fputs (_("svcudp_create: out of memory\n"), stderr);
  35236. + (void) fputs (_("svcudp_create: out of memory\n"), stderr);
  35237. mem_free (xprt, sizeof (SVCXPRT));
  35238. mem_free (su, sizeof (*su));
  35239. mem_free (buf, ((MAX (sendsz, recvsz) + 3) / 4) * 4);
  35240. @@ -177,13 +162,7 @@
  35241. + sizeof(struct cmsghdr) + sizeof (struct in_pktinfo))
  35242. > sizeof (xprt->xp_pad))
  35243. {
  35244. -# ifdef USE_IN_LIBIO
  35245. - if (_IO_fwide (stderr, 0) > 0)
  35246. - (void) fwprintf (stderr, L"%s",
  35247. - _("svcudp_create: xp_pad is too small for IP_PKTINFO\n"));
  35248. - else
  35249. -# endif
  35250. - (void) fputs (_("svcudp_create: xp_pad is too small for IP_PKTINFO\n"),
  35251. + (void) fputs (_("svcudp_create: xp_pad is too small for IP_PKTINFO\n"),
  35252. stderr);
  35253. return NULL;
  35254. }
  35255. @@ -378,16 +357,8 @@
  35256. #define SPARSENESS 4 /* 75% sparse */
  35257. -#ifdef USE_IN_LIBIO
  35258. -# define CACHE_PERROR(msg) \
  35259. - if (_IO_fwide (stderr, 0) > 0) \
  35260. - (void) __fwprintf(stderr, L"%s\n", msg); \
  35261. - else \
  35262. - (void) fprintf(stderr, "%s\n", msg)
  35263. -#else
  35264. -# define CACHE_PERROR(msg) \
  35265. +#define CACHE_PERROR(msg) \
  35266. (void) fprintf(stderr,"%s\n", msg)
  35267. -#endif
  35268. #define ALLOC(type, size) \
  35269. (type *) mem_alloc((unsigned) (sizeof(type) * (size)))
  35270. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_unix.c uClibc-git/libc/inet/rpc/svc_unix.c
  35271. --- uClibc-0.9.33.2/libc/inet/rpc/svc_unix.c 2012-05-15 09:20:09.000000000 +0200
  35272. +++ uClibc-git/libc/inet/rpc/svc_unix.c 2014-06-02 17:40:33.986711829 +0200
  35273. @@ -37,13 +37,10 @@
  35274. * and a record/unix stream.
  35275. */
  35276. -#define __FORCE_GLIBC
  35277. -#include <features.h>
  35278. -
  35279. #include <stdio.h>
  35280. #include <unistd.h>
  35281. #include <string.h>
  35282. -#include <rpc/rpc.h>
  35283. +#include "rpc_private.h"
  35284. #include <rpc/svc.h>
  35285. #include <sys/socket.h>
  35286. #include <sys/uio.h>
  35287. @@ -51,11 +48,6 @@
  35288. #include <errno.h>
  35289. #include <stdlib.h>
  35290. -#ifdef USE_IN_LIBIO
  35291. -# include <wchar.h>
  35292. -#endif
  35293. -
  35294. -
  35295. /*
  35296. * Ops vector for AF_UNIX based rpc service handle
  35297. */
  35298. @@ -176,12 +168,7 @@
  35299. xprt = (SVCXPRT *) mem_alloc (sizeof (SVCXPRT));
  35300. if (r == NULL || xprt == NULL)
  35301. {
  35302. -#ifdef USE_IN_LIBIO
  35303. - if (_IO_fwide (stderr, 0) > 0)
  35304. - __fwprintf (stderr, L"%s", _("svcunix_create: out of memory\n"));
  35305. - else
  35306. -#endif
  35307. - fputs (_("svcunix_create: out of memory\n"), stderr);
  35308. + fputs (_("svcunix_create: out of memory\n"), stderr);
  35309. mem_free (r, sizeof (*r));
  35310. mem_free (xprt, sizeof (SVCXPRT));
  35311. return NULL;
  35312. @@ -221,13 +208,7 @@
  35313. cd = (struct unix_conn *) mem_alloc (sizeof (struct unix_conn));
  35314. if (xprt == (SVCXPRT *) NULL || cd == (struct unix_conn *) NULL)
  35315. {
  35316. -#ifdef USE_IN_LIBIO
  35317. - if (_IO_fwide (stderr, 0) > 0)
  35318. - (void) __fwprintf (stderr, L"%s",
  35319. - _("svc_unix: makefd_xprt: out of memory\n"));
  35320. - else
  35321. -#endif
  35322. - (void) fputs (_("svc_unix: makefd_xprt: out of memory\n"), stderr);
  35323. + (void) fputs (_("svc_unix: makefd_xprt: out of memory\n"), stderr);
  35324. mem_free (xprt, sizeof (SVCXPRT));
  35325. mem_free (cd, sizeof (struct unix_conn));
  35326. return NULL;
  35327. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr_array.c uClibc-git/libc/inet/rpc/xdr_array.c
  35328. --- uClibc-0.9.33.2/libc/inet/rpc/xdr_array.c 2012-05-15 09:20:09.000000000 +0200
  35329. +++ uClibc-git/libc/inet/rpc/xdr_array.c 2014-06-02 17:40:33.986711829 +0200
  35330. @@ -40,23 +40,15 @@
  35331. * arrays. See xdr.h for more info on the interface to xdr.
  35332. */
  35333. -#define __FORCE_GLIBC
  35334. -#include <features.h>
  35335. -
  35336. #include <stdio.h>
  35337. #include <string.h>
  35338. #include <rpc/types.h>
  35339. #include <rpc/xdr.h>
  35340. #include <limits.h>
  35341. -
  35342. -#ifdef USE_IN_LIBIO
  35343. -# include <wchar.h>
  35344. -#endif
  35345. -
  35346. +#include <libintl.h>
  35347. #define LASTUNSIGNED ((u_int)0-1)
  35348. -
  35349. /*
  35350. * XDR an array of arbitrary elements
  35351. * *addrp is a pointer to the array, *sizep is the number of elements.
  35352. @@ -102,13 +94,7 @@
  35353. *addrp = target = mem_alloc (nodesize);
  35354. if (target == NULL)
  35355. {
  35356. -#ifdef USE_IN_LIBIO
  35357. - if (_IO_fwide (stderr, 0) > 0)
  35358. - (void) fwprintf (stderr, L"%s",
  35359. - _("xdr_array: out of memory\n"));
  35360. - else
  35361. -#endif
  35362. - (void) fputs (_("xdr_array: out of memory\n"), stderr);
  35363. + (void) fputs (_("xdr_array: out of memory\n"), stderr);
  35364. return FALSE;
  35365. }
  35366. memset (target, 0, nodesize);
  35367. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr.c uClibc-git/libc/inet/rpc/xdr.c
  35368. --- uClibc-0.9.33.2/libc/inet/rpc/xdr.c 2012-05-15 09:20:09.000000000 +0200
  35369. +++ uClibc-git/libc/inet/rpc/xdr.c 2014-06-02 17:40:33.986711829 +0200
  35370. @@ -41,21 +41,14 @@
  35371. * xdr.
  35372. */
  35373. -#define __FORCE_GLIBC
  35374. -#include <features.h>
  35375. -
  35376. #include <stdio.h>
  35377. #include <limits.h>
  35378. #include <string.h>
  35379. +#include <libintl.h>
  35380. #include <rpc/types.h>
  35381. #include <rpc/xdr.h>
  35382. -#ifdef USE_IN_LIBIO
  35383. -# include <wchar.h>
  35384. -#endif
  35385. -
  35386. -
  35387. /*
  35388. * constants specific to the xdr "protocol"
  35389. */
  35390. @@ -564,12 +557,7 @@
  35391. }
  35392. if (sp == NULL)
  35393. {
  35394. -#ifdef USE_IN_LIBIO
  35395. - if (_IO_fwide (stderr, 0) > 0)
  35396. - (void) fwprintf (stderr, L"%s", _("xdr_bytes: out of memory\n"));
  35397. - else
  35398. -#endif
  35399. - (void) fputs (_("xdr_bytes: out of memory\n"), stderr);
  35400. + (void) fputs (_("xdr_bytes: out of memory\n"), stderr);
  35401. return FALSE;
  35402. }
  35403. /* fall into ... */
  35404. @@ -706,13 +694,7 @@
  35405. *cpp = sp = (char *) mem_alloc (nodesize);
  35406. if (sp == NULL)
  35407. {
  35408. -#ifdef USE_IN_LIBIO
  35409. - if (_IO_fwide (stderr, 0) > 0)
  35410. - (void) fwprintf (stderr, L"%s",
  35411. - _("xdr_string: out of memory\n"));
  35412. - else
  35413. -#endif
  35414. - (void) fputs (_("xdr_string: out of memory\n"), stderr);
  35415. + (void) fputs (_("xdr_string: out of memory\n"), stderr);
  35416. return FALSE;
  35417. }
  35418. sp[size] = 0;
  35419. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr_float.c uClibc-git/libc/inet/rpc/xdr_float.c
  35420. --- uClibc-0.9.33.2/libc/inet/rpc/xdr_float.c 2012-05-15 09:20:09.000000000 +0200
  35421. +++ uClibc-git/libc/inet/rpc/xdr_float.c 2014-06-02 17:40:33.986711829 +0200
  35422. @@ -41,9 +41,6 @@
  35423. * xdr.
  35424. */
  35425. -#define __FORCE_GLIBC
  35426. -#include <features.h>
  35427. -
  35428. #include <stdio.h>
  35429. #include <endian.h>
  35430. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr_intXX_t.c uClibc-git/libc/inet/rpc/xdr_intXX_t.c
  35431. --- uClibc-0.9.33.2/libc/inet/rpc/xdr_intXX_t.c 2012-05-15 09:20:09.000000000 +0200
  35432. +++ uClibc-git/libc/inet/rpc/xdr_intXX_t.c 2014-06-02 17:40:33.986711829 +0200
  35433. @@ -13,9 +13,8 @@
  35434. Lesser General Public License for more details.
  35435. You should have received a copy of the GNU Lesser General Public
  35436. - License along with the GNU C Library; if not, write to the Free
  35437. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  35438. - 02111-1307 USA. */
  35439. + License along with the GNU C Library; if not, see
  35440. + <http://www.gnu.org/licenses/>. */
  35441. #include <rpc/types.h>
  35442. #include <rpc/xdr.h>
  35443. @@ -47,6 +46,7 @@
  35444. return FALSE;
  35445. }
  35446. }
  35447. +strong_alias_untyped(xdr_int64_t,xdr_quad_t)
  35448. /* XDR 64bit unsigned integers */
  35449. bool_t
  35450. @@ -75,6 +75,7 @@
  35451. return FALSE;
  35452. }
  35453. }
  35454. +strong_alias_untyped(xdr_uint64_t,xdr_u_quad_t)
  35455. /* XDR 32bit integers */
  35456. bool_t
  35457. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr_mem.c uClibc-git/libc/inet/rpc/xdr_mem.c
  35458. --- uClibc-0.9.33.2/libc/inet/rpc/xdr_mem.c 2012-05-15 09:20:09.000000000 +0200
  35459. +++ uClibc-git/libc/inet/rpc/xdr_mem.c 2014-06-02 17:40:33.986711829 +0200
  35460. @@ -77,9 +77,7 @@
  35461. xdrmem_create (XDR *xdrs, const caddr_t addr, u_int size, enum xdr_op op)
  35462. {
  35463. xdrs->x_op = op;
  35464. - /* We have to add the const since the `struct xdr_ops' in `struct XDR'
  35465. - is not `const'. */
  35466. - xdrs->x_ops = (struct xdr_ops *) &xdrmem_ops;
  35467. + xdrs->x_ops = &xdrmem_ops;
  35468. xdrs->x_private = xdrs->x_base = addr;
  35469. xdrs->x_handy = size;
  35470. }
  35471. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr_rec.c uClibc-git/libc/inet/rpc/xdr_rec.c
  35472. --- uClibc-0.9.33.2/libc/inet/rpc/xdr_rec.c 2012-05-15 09:20:09.000000000 +0200
  35473. +++ uClibc-git/libc/inet/rpc/xdr_rec.c 2014-06-02 17:40:33.986711829 +0200
  35474. @@ -44,21 +44,10 @@
  35475. * The other 31 bits encode the byte length of the fragment.
  35476. */
  35477. -#define __FORCE_GLIBC
  35478. -#include <features.h>
  35479. -
  35480. -
  35481. #include <stdio.h>
  35482. #include <string.h>
  35483. #include <unistd.h>
  35484. -#include <rpc/rpc.h>
  35485. -
  35486. -#ifdef USE_IN_LIBIO
  35487. -# include <wchar.h>
  35488. -# include <libio/iolibio.h>
  35489. -# define fputs(s, f) _IO_fputs (s, f)
  35490. -#endif
  35491. -
  35492. +#include "rpc_private.h"
  35493. static bool_t xdrrec_getbytes (XDR *, caddr_t, u_int);
  35494. static bool_t xdrrec_putbytes (XDR *, const char *, u_int);
  35495. @@ -165,12 +154,7 @@
  35496. if (rstrm == NULL || buf == NULL)
  35497. {
  35498. -#ifdef USE_IN_LIBIO
  35499. - if (_IO_fwide (stderr, 0) > 0)
  35500. - (void) fwprintf (stderr, L"%s", _("xdrrec_create: out of memory\n"));
  35501. - else
  35502. -#endif
  35503. - (void) fputs (_("xdrrec_create: out of memory\n"), stderr);
  35504. + (void) fputs (_("xdrrec_create: out of memory\n"), stderr);
  35505. mem_free (rstrm, sizeof (RECSTREAM));
  35506. mem_free (buf, sendsize + recvsize + BYTES_PER_XDR_UNIT);
  35507. /*
  35508. @@ -193,9 +177,7 @@
  35509. /*
  35510. * now the rest ...
  35511. */
  35512. - /* We have to add the const since the `struct xdr_ops' in `struct XDR'
  35513. - is not `const'. */
  35514. - xdrs->x_ops = (struct xdr_ops *) &xdrrec_ops;
  35515. + xdrs->x_ops = &xdrrec_ops;
  35516. xdrs->x_private = (caddr_t) rstrm;
  35517. rstrm->tcp_handle = tcp_handle;
  35518. rstrm->readit = readit;
  35519. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr_reference.c uClibc-git/libc/inet/rpc/xdr_reference.c
  35520. --- uClibc-0.9.33.2/libc/inet/rpc/xdr_reference.c 2012-05-15 09:20:09.000000000 +0200
  35521. +++ uClibc-git/libc/inet/rpc/xdr_reference.c 2014-06-02 17:40:33.986711829 +0200
  35522. @@ -40,20 +40,11 @@
  35523. * "pointers". See xdr.h for more info on the interface to xdr.
  35524. */
  35525. -#define __FORCE_GLIBC
  35526. -#include <features.h>
  35527. -
  35528. #include <stdio.h>
  35529. #include <string.h>
  35530. #include <rpc/types.h>
  35531. #include <rpc/xdr.h>
  35532. -
  35533. -#ifdef USE_IN_LIBIO
  35534. -# include <wchar.h>
  35535. -# include <libio/iolibio.h>
  35536. -# define fputs(s, f) _IO_fputs (s, f)
  35537. -#endif
  35538. -
  35539. +#include <libintl.h>
  35540. #define LASTUNSIGNED ((u_int)0-1)
  35541. @@ -82,13 +73,7 @@
  35542. *pp = loc = (caddr_t) mem_alloc (size);
  35543. if (loc == NULL)
  35544. {
  35545. -#ifdef USE_IN_LIBIO
  35546. - if (_IO_fwide (stderr, 0) > 0)
  35547. - (void) fwprintf (stderr, L"%s",
  35548. - _("xdr_reference: out of memory\n"));
  35549. - else
  35550. -#endif
  35551. - (void) fputs (_("xdr_reference: out of memory\n"), stderr);
  35552. + (void) fputs (_("xdr_reference: out of memory\n"), stderr);
  35553. return FALSE;
  35554. }
  35555. memset (loc, 0, (int) size);
  35556. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr_stdio.c uClibc-git/libc/inet/rpc/xdr_stdio.c
  35557. --- uClibc-0.9.33.2/libc/inet/rpc/xdr_stdio.c 2012-05-15 09:20:09.000000000 +0200
  35558. +++ uClibc-git/libc/inet/rpc/xdr_stdio.c 2014-06-02 17:40:33.986711829 +0200
  35559. @@ -41,15 +41,6 @@
  35560. #include <stdio.h>
  35561. #include <rpc/xdr.h>
  35562. -#ifdef USE_IN_LIBIO
  35563. -# include <libio/iolibio.h>
  35564. -# define fflush(s) _IO_fflush (s)
  35565. -# define fread(p, m, n, s) _IO_fread (p, m, n, s)
  35566. -# define ftell(s) _IO_ftell (s)
  35567. -# define fwrite(p, m, n, s) _IO_fwrite (p, m, n, s)
  35568. -#endif
  35569. -
  35570. -
  35571. static bool_t xdrstdio_getlong (XDR *, long *);
  35572. static bool_t xdrstdio_putlong (XDR *, const long *);
  35573. static bool_t xdrstdio_getbytes (XDR *, caddr_t, u_int);
  35574. @@ -87,9 +78,7 @@
  35575. xdrstdio_create (XDR *xdrs, FILE *file, enum xdr_op op)
  35576. {
  35577. xdrs->x_op = op;
  35578. - /* We have to add the const since the `struct xdr_ops' in `struct XDR'
  35579. - is not `const'. */
  35580. - xdrs->x_ops = (struct xdr_ops *) &xdrstdio_ops;
  35581. + xdrs->x_ops = &xdrstdio_ops;
  35582. xdrs->x_private = (caddr_t) file;
  35583. xdrs->x_handy = 0;
  35584. xdrs->x_base = 0;
  35585. diff -Nur uClibc-0.9.33.2/libc/inet/socketcalls.c uClibc-git/libc/inet/socketcalls.c
  35586. --- uClibc-0.9.33.2/libc/inet/socketcalls.c 2012-05-15 09:20:09.000000000 +0200
  35587. +++ uClibc-git/libc/inet/socketcalls.c 2014-06-02 17:40:33.986711829 +0200
  35588. @@ -4,15 +4,12 @@
  35589. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  35590. */
  35591. -#define __FORCE_GLIBC
  35592. -#include <features.h>
  35593. -#include <errno.h>
  35594. -#include <syscall.h>
  35595. +#include <stddef.h>
  35596. +#include <sys/syscall.h>
  35597. #include <sys/socket.h>
  35598. +#include <cancel.h>
  35599. #ifdef __NR_socketcall
  35600. -extern int __socketcall(int call, unsigned long *args) attribute_hidden;
  35601. -
  35602. /* Various socketcall numbers */
  35603. #define SYS_SOCKET 1
  35604. #define SYS_BIND 2
  35605. @@ -34,53 +31,24 @@
  35606. #define SYS_ACCEPT4 18
  35607. #endif
  35608. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35609. -#include <sysdep-cancel.h>
  35610. -#include <pthreadP.h>
  35611. -#else
  35612. -#define SINGLE_THREAD_P 1
  35613. -#endif
  35614. -
  35615. #ifdef L_accept
  35616. -extern __typeof(accept) __libc_accept;
  35617. -#ifdef __NR_accept
  35618. -#define __NR___sys_accept __NR_accept
  35619. -static
  35620. -_syscall3(int, __sys_accept, int, call, struct sockaddr *, addr, socklen_t *,addrlen)
  35621. -int __libc_accept(int s, struct sockaddr *addr, socklen_t * addrlen)
  35622. -{
  35623. - if (SINGLE_THREAD_P)
  35624. - return __sys_accept(s, addr, addrlen);
  35625. -
  35626. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35627. - int oldtype = LIBC_CANCEL_ASYNC ();
  35628. - int result = __sys_accept(s, addr, addrlen);
  35629. - LIBC_CANCEL_RESET (oldtype);
  35630. - return result;
  35631. -#endif
  35632. -}
  35633. -#elif defined(__NR_socketcall)
  35634. -int __libc_accept(int s, struct sockaddr *addr, socklen_t * addrlen)
  35635. +static int __NC(accept)(int sockfd, struct sockaddr *addr, socklen_t *addrlen)
  35636. {
  35637. +# ifdef __NR_accept
  35638. + return INLINE_SYSCALL(accept, 3, sockfd, addr, addrlen);
  35639. +# else
  35640. unsigned long args[3];
  35641. - args[0] = s;
  35642. + args[0] = sockfd;
  35643. args[1] = (unsigned long) addr;
  35644. args[2] = (unsigned long) addrlen;
  35645. - if (SINGLE_THREAD_P)
  35646. - return __socketcall(SYS_ACCEPT, args);
  35647. -
  35648. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35649. - int oldtype = LIBC_CANCEL_ASYNC ();
  35650. - int result = __socketcall(SYS_ACCEPT, args);
  35651. - LIBC_CANCEL_RESET (oldtype);
  35652. - return result;
  35653. -#endif
  35654. + return __socketcall(SYS_ACCEPT, args);
  35655. +# endif
  35656. }
  35657. -#endif
  35658. -weak_alias(__libc_accept,accept)
  35659. -libc_hidden_weak(accept)
  35660. +CANCELLABLE_SYSCALL(int, accept, (int sockfd, struct sockaddr *addr, socklen_t *addrlen),
  35661. + (sockfd, addr, addrlen))
  35662. +lt_libc_hidden(accept)
  35663. #endif
  35664. #ifdef L_accept4
  35665. @@ -124,104 +92,81 @@
  35666. #endif
  35667. #ifdef L_bind
  35668. -#ifdef __NR_bind
  35669. -_syscall3(int, bind, int, sockfd, const struct sockaddr *, myaddr, socklen_t, addrlen)
  35670. -#elif defined(__NR_socketcall)
  35671. int bind(int sockfd, const struct sockaddr *myaddr, socklen_t addrlen)
  35672. {
  35673. +# ifdef __NR_bind
  35674. + return INLINE_SYSCALL(bind, 3, sockfd, myaddr, addrlen);
  35675. +# else
  35676. unsigned long args[3];
  35677. args[0] = sockfd;
  35678. args[1] = (unsigned long) myaddr;
  35679. args[2] = addrlen;
  35680. return __socketcall(SYS_BIND, args);
  35681. +# endif
  35682. }
  35683. -#endif
  35684. libc_hidden_def(bind)
  35685. #endif
  35686. #ifdef L_connect
  35687. -extern __typeof(connect) __libc_connect;
  35688. -#ifdef __NR_connect
  35689. -#define __NR___sys_connect __NR_connect
  35690. -static
  35691. -_syscall3(int, __sys_connect, int, sockfd, const struct sockaddr *, saddr, socklen_t, addrlen)
  35692. -int __libc_connect(int sockfd, const struct sockaddr *saddr, socklen_t addrlen)
  35693. -{
  35694. - if (SINGLE_THREAD_P)
  35695. - return __sys_connect(sockfd, saddr, addrlen);
  35696. -
  35697. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35698. - int oldtype = LIBC_CANCEL_ASYNC ();
  35699. - int result = __sys_connect(sockfd, saddr, addrlen);
  35700. - LIBC_CANCEL_RESET (oldtype);
  35701. - return result;
  35702. -#endif
  35703. -}
  35704. -#elif defined(__NR_socketcall)
  35705. -int __libc_connect(int sockfd, const struct sockaddr *saddr, socklen_t addrlen)
  35706. +static int __NC(connect)(int sockfd, const struct sockaddr *saddr, socklen_t addrlen)
  35707. {
  35708. +# ifdef __NR_connect
  35709. + return INLINE_SYSCALL(connect, 3, sockfd, saddr, addrlen);
  35710. +# else
  35711. unsigned long args[3];
  35712. args[0] = sockfd;
  35713. args[1] = (unsigned long) saddr;
  35714. args[2] = addrlen;
  35715. -
  35716. - if (SINGLE_THREAD_P)
  35717. - return __socketcall(SYS_CONNECT, args);
  35718. -
  35719. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35720. - int oldtype = LIBC_CANCEL_ASYNC ();
  35721. - int result = __socketcall(SYS_CONNECT, args);
  35722. - LIBC_CANCEL_RESET (oldtype);
  35723. - return result;
  35724. -#endif
  35725. + return __socketcall(SYS_CONNECT, args);
  35726. +# endif
  35727. }
  35728. -#endif
  35729. -weak_alias(__libc_connect,connect)
  35730. -libc_hidden_weak(connect)
  35731. +CANCELLABLE_SYSCALL(int, connect, (int sockfd, const struct sockaddr *saddr, socklen_t addrlen),
  35732. + (sockfd, saddr, addrlen))
  35733. +lt_libc_hidden(connect)
  35734. #endif
  35735. #ifdef L_getpeername
  35736. -#ifdef __NR_getpeername
  35737. -_syscall3(int, getpeername, int, sockfd, struct sockaddr *, addr, socklen_t *,paddrlen)
  35738. -#elif defined(__NR_socketcall)
  35739. -int getpeername(int sockfd, struct sockaddr *addr, socklen_t * paddrlen)
  35740. +int getpeername(int sockfd, struct sockaddr *addr, socklen_t *paddrlen)
  35741. {
  35742. +# ifdef __NR_getpeername
  35743. + return INLINE_SYSCALL(getpeername, 3, sockfd, addr, paddrlen);
  35744. +# else
  35745. unsigned long args[3];
  35746. args[0] = sockfd;
  35747. args[1] = (unsigned long) addr;
  35748. args[2] = (unsigned long) paddrlen;
  35749. return __socketcall(SYS_GETPEERNAME, args);
  35750. +# endif
  35751. }
  35752. #endif
  35753. -#endif
  35754. #ifdef L_getsockname
  35755. -#ifdef __NR_getsockname
  35756. -_syscall3(int, getsockname, int, sockfd, struct sockaddr *, addr, socklen_t *,paddrlen)
  35757. -#elif defined(__NR_socketcall)
  35758. int getsockname(int sockfd, struct sockaddr *addr, socklen_t * paddrlen)
  35759. {
  35760. +# ifdef __NR_getsockname
  35761. + return INLINE_SYSCALL(getsockname, 3, sockfd, addr, paddrlen);
  35762. +# else
  35763. unsigned long args[3];
  35764. args[0] = sockfd;
  35765. args[1] = (unsigned long) addr;
  35766. args[2] = (unsigned long) paddrlen;
  35767. return __socketcall(SYS_GETSOCKNAME, args);
  35768. +# endif
  35769. }
  35770. -#endif
  35771. libc_hidden_def(getsockname)
  35772. #endif
  35773. #ifdef L_getsockopt
  35774. -#ifdef __NR_getsockopt
  35775. -_syscall5(int, getsockopt, int, fd, int, level, int, optname, __ptr_t, optval, socklen_t *, optlen)
  35776. -#elif defined(__NR_socketcall)
  35777. -int getsockopt(int fd, int level, int optname, __ptr_t optval,
  35778. - socklen_t * optlen)
  35779. +int getsockopt(int fd, int level, int optname, void *optval,
  35780. + socklen_t *optlen)
  35781. {
  35782. +# ifdef __NR_getsockopt
  35783. + return INLINE_SYSCALL(getsockopt, 5, fd, level, optname, optval, optlen);
  35784. +# else
  35785. unsigned long args[5];
  35786. args[0] = fd;
  35787. @@ -230,101 +175,56 @@
  35788. args[3] = (unsigned long) optval;
  35789. args[4] = (unsigned long) optlen;
  35790. return (__socketcall(SYS_GETSOCKOPT, args));
  35791. +# endif
  35792. }
  35793. #endif
  35794. -#endif
  35795. #ifdef L_listen
  35796. -#ifdef __NR_listen
  35797. -_syscall2(int, listen, int, sockfd, int, backlog)
  35798. -#elif defined(__NR_socketcall)
  35799. int listen(int sockfd, int backlog)
  35800. {
  35801. +# ifdef __NR_listen
  35802. + return INLINE_SYSCALL(listen, 2, sockfd, backlog);
  35803. +# else
  35804. unsigned long args[2];
  35805. args[0] = sockfd;
  35806. args[1] = backlog;
  35807. return __socketcall(SYS_LISTEN, args);
  35808. +# endif
  35809. }
  35810. -#endif
  35811. libc_hidden_def(listen)
  35812. #endif
  35813. #ifdef L_recv
  35814. -extern __typeof(recv) __libc_recv;
  35815. -#ifdef __NR_recv
  35816. -#define __NR___sys_recv __NR_recv
  35817. -static
  35818. -_syscall4(ssize_t, __sys_recv, int, sockfd, __ptr_t, buffer, size_t, len,
  35819. - int, flags)
  35820. -ssize_t __libc_recv(int sockfd, __ptr_t buffer, size_t len, int flags)
  35821. -{
  35822. - if (SINGLE_THREAD_P)
  35823. - return __sys_recv(sockfd, buffer, len, flags);
  35824. -
  35825. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35826. - int oldtype = LIBC_CANCEL_ASYNC ();
  35827. - int result = __sys_recv(sockfd, buffer, len, flags);
  35828. - LIBC_CANCEL_RESET (oldtype);
  35829. - return result;
  35830. -#endif
  35831. -}
  35832. -#elif defined(__NR_socketcall)
  35833. -/* recv, recvfrom added by bir7@leland.stanford.edu */
  35834. -ssize_t __libc_recv(int sockfd, __ptr_t buffer, size_t len, int flags)
  35835. +static ssize_t __NC(recv)(int sockfd, void *buffer, size_t len, int flags)
  35836. {
  35837. +# ifdef __NR_recv
  35838. + return (ssize_t)INLINE_SYSCALL(recv, 4, sockfd, buffer, len, flags);
  35839. +# elif defined __NR_recvfrom && defined _syscall6
  35840. + return __NC(recvfrom)(sockfd, buffer, len, flags, NULL, NULL);
  35841. +# else
  35842. unsigned long args[4];
  35843. args[0] = sockfd;
  35844. args[1] = (unsigned long) buffer;
  35845. args[2] = len;
  35846. args[3] = flags;
  35847. -
  35848. - if (SINGLE_THREAD_P)
  35849. - return (__socketcall(SYS_RECV, args));
  35850. -
  35851. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35852. - int oldtype = LIBC_CANCEL_ASYNC ();
  35853. - int result = __socketcall(SYS_RECV, args);
  35854. - LIBC_CANCEL_RESET (oldtype);
  35855. - return result;
  35856. -#endif
  35857. -}
  35858. -#elif defined(__NR_recvfrom)
  35859. -ssize_t __libc_recv(int sockfd, __ptr_t buffer, size_t len, int flags)
  35860. -{
  35861. - return (recvfrom(sockfd, buffer, len, flags, NULL, NULL));
  35862. + return (ssize_t)__socketcall(SYS_RECV, args);
  35863. +# endif
  35864. }
  35865. -#endif
  35866. -weak_alias(__libc_recv,recv)
  35867. -libc_hidden_weak(recv)
  35868. +CANCELLABLE_SYSCALL(ssize_t, recv, (int sockfd, void *buffer, size_t len, int flags),
  35869. + (sockfd, buffer, len, flags))
  35870. +lt_libc_hidden(recv)
  35871. #endif
  35872. #ifdef L_recvfrom
  35873. -extern __typeof(recvfrom) __libc_recvfrom;
  35874. -#ifdef __NR_recvfrom
  35875. -#define __NR___sys_recvfrom __NR_recvfrom
  35876. -static
  35877. -_syscall6(ssize_t, __sys_recvfrom, int, sockfd, __ptr_t, buffer, size_t, len,
  35878. - int, flags, struct sockaddr *, to, socklen_t *, tolen)
  35879. -ssize_t __libc_recvfrom(int sockfd, __ptr_t buffer, size_t len, int flags,
  35880. - struct sockaddr *to, socklen_t * tolen)
  35881. -{
  35882. - if (SINGLE_THREAD_P)
  35883. - return __sys_recvfrom(sockfd, buffer, len, flags, to, tolen);
  35884. -
  35885. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35886. - int oldtype = LIBC_CANCEL_ASYNC ();
  35887. - int result = __sys_recvfrom(sockfd, buffer, len, flags, to, tolen);
  35888. - LIBC_CANCEL_RESET (oldtype);
  35889. - return result;
  35890. -#endif
  35891. -}
  35892. -#elif defined(__NR_socketcall)
  35893. -/* recv, recvfrom added by bir7@leland.stanford.edu */
  35894. -ssize_t __libc_recvfrom(int sockfd, __ptr_t buffer, size_t len, int flags,
  35895. - struct sockaddr *to, socklen_t * tolen)
  35896. +ssize_t __NC(recvfrom)(int sockfd, void *buffer, size_t len, int flags,
  35897. + struct sockaddr *to, socklen_t *tolen)
  35898. {
  35899. +# if defined __NR_recvfrom && defined _syscall6
  35900. + return (ssize_t)INLINE_SYSCALL(recvfrom, 6, sockfd, buffer, len,
  35901. + flags, to, tolen);
  35902. +# else
  35903. unsigned long args[6];
  35904. args[0] = sockfd;
  35905. @@ -333,180 +233,82 @@
  35906. args[3] = flags;
  35907. args[4] = (unsigned long) to;
  35908. args[5] = (unsigned long) tolen;
  35909. -
  35910. - if (SINGLE_THREAD_P)
  35911. - return (__socketcall(SYS_RECVFROM, args));
  35912. -
  35913. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35914. - int oldtype = LIBC_CANCEL_ASYNC ();
  35915. - int result = __socketcall(SYS_RECVFROM, args);
  35916. - LIBC_CANCEL_RESET (oldtype);
  35917. - return result;
  35918. -#endif
  35919. + return (ssize_t)__socketcall(SYS_RECVFROM, args);
  35920. +# endif
  35921. }
  35922. -#endif
  35923. -weak_alias(__libc_recvfrom,recvfrom)
  35924. -libc_hidden_weak(recvfrom)
  35925. +CANCELLABLE_SYSCALL(ssize_t, recvfrom, (int sockfd, void *buffer, size_t len,
  35926. + int flags, struct sockaddr *to, socklen_t *tolen),
  35927. + (sockfd, buffer, len, flags, to, tolen))
  35928. +lt_libc_hidden(recvfrom)
  35929. #endif
  35930. #ifdef L_recvmsg
  35931. -extern __typeof(recvmsg) __libc_recvmsg;
  35932. -#ifdef __NR_recvmsg
  35933. -#define __NR___sys_recvmsg __NR_recvmsg
  35934. -static
  35935. -_syscall3(ssize_t, __sys_recvmsg, int, sockfd, struct msghdr *, msg, int, flags)
  35936. -ssize_t __libc_recvmsg(int sockfd, struct msghdr *msg, int flags)
  35937. -{
  35938. - if (SINGLE_THREAD_P)
  35939. - return __sys_recvmsg(sockfd, msg, flags);
  35940. -
  35941. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35942. - int oldtype = LIBC_CANCEL_ASYNC ();
  35943. - int result = __sys_recvmsg(sockfd, msg, flags);
  35944. - LIBC_CANCEL_RESET (oldtype);
  35945. - return result;
  35946. -#endif
  35947. -}
  35948. -#elif defined(__NR_socketcall)
  35949. -ssize_t __libc_recvmsg(int sockfd, struct msghdr *msg, int flags)
  35950. +static ssize_t __NC(recvmsg)(int sockfd, struct msghdr *msg, int flags)
  35951. {
  35952. +# ifdef __NR_recvmsg
  35953. + return (ssize_t)INLINE_SYSCALL(recvmsg, 3, sockfd, msg, flags);
  35954. +# else
  35955. unsigned long args[3];
  35956. args[0] = sockfd;
  35957. args[1] = (unsigned long) msg;
  35958. args[2] = flags;
  35959. -
  35960. - if (SINGLE_THREAD_P)
  35961. - return (__socketcall(SYS_RECVMSG, args));
  35962. -
  35963. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35964. - int oldtype = LIBC_CANCEL_ASYNC ();
  35965. - int result = __socketcall(SYS_RECVMSG, args);
  35966. - LIBC_CANCEL_RESET (oldtype);
  35967. - return result;
  35968. -#endif
  35969. + return (ssize_t)__socketcall(SYS_RECVMSG, args);
  35970. +# endif
  35971. }
  35972. -#endif
  35973. -weak_alias(__libc_recvmsg,recvmsg)
  35974. -libc_hidden_weak(recvmsg)
  35975. +CANCELLABLE_SYSCALL(ssize_t, recvmsg, (int sockfd, struct msghdr *msg, int flags),
  35976. + (sockfd, msg, flags))
  35977. +lt_libc_hidden(recvmsg)
  35978. #endif
  35979. #ifdef L_send
  35980. -extern __typeof(send) __libc_send;
  35981. -#ifdef __NR_send
  35982. -#define __NR___sys_send __NR_send
  35983. -static
  35984. -_syscall4(ssize_t, __sys_send, int, sockfd, const void *, buffer, size_t, len, int, flags)
  35985. -ssize_t __libc_send(int sockfd, const void *buffer, size_t len, int flags)
  35986. -{
  35987. - if (SINGLE_THREAD_P)
  35988. - return __sys_send(sockfd, buffer, len, flags);
  35989. -
  35990. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35991. - int oldtype = LIBC_CANCEL_ASYNC ();
  35992. - int result = __sys_send(sockfd, buffer, len, flags);
  35993. - LIBC_CANCEL_RESET (oldtype);
  35994. - return result;
  35995. -#endif
  35996. -}
  35997. -#elif defined(__NR_socketcall)
  35998. -/* send, sendto added by bir7@leland.stanford.edu */
  35999. -ssize_t __libc_send(int sockfd, const void *buffer, size_t len, int flags)
  36000. +static ssize_t __NC(send)(int sockfd, const void *buffer, size_t len, int flags)
  36001. {
  36002. +# ifdef __NR_send
  36003. + return (ssize_t)INLINE_SYSCALL(send, 4, sockfd, buffer, len, flags);
  36004. +# elif defined __NR_sendto && defined _syscall6
  36005. + return __NC(sendto)(sockfd, buffer, len, flags, NULL, 0);
  36006. +# else
  36007. unsigned long args[4];
  36008. args[0] = sockfd;
  36009. args[1] = (unsigned long) buffer;
  36010. args[2] = len;
  36011. args[3] = flags;
  36012. -
  36013. - if (SINGLE_THREAD_P)
  36014. - return (__socketcall(SYS_SEND, args));
  36015. -
  36016. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  36017. - int oldtype = LIBC_CANCEL_ASYNC ();
  36018. - int result = __socketcall(SYS_SEND, args);
  36019. - LIBC_CANCEL_RESET (oldtype);
  36020. - return result;
  36021. -#endif
  36022. -}
  36023. -
  36024. -#elif defined(__NR_sendto)
  36025. -ssize_t __libc_send(int sockfd, const void *buffer, size_t len, int flags)
  36026. -{
  36027. - return (sendto(sockfd, buffer, len, flags, NULL, 0));
  36028. + return (ssize_t)__socketcall(SYS_SEND, args);
  36029. +# endif
  36030. }
  36031. -#endif
  36032. -weak_alias(__libc_send,send)
  36033. -libc_hidden_weak(send)
  36034. +CANCELLABLE_SYSCALL(ssize_t, send, (int sockfd, const void *buffer, size_t len, int flags),
  36035. + (sockfd, buffer, len, flags))
  36036. +lt_libc_hidden(send)
  36037. #endif
  36038. #ifdef L_sendmsg
  36039. -extern __typeof(sendmsg) __libc_sendmsg;
  36040. -#ifdef __NR_sendmsg
  36041. -#define __NR___sys_sendmsg __NR_sendmsg
  36042. -static
  36043. -_syscall3(ssize_t, __sys_sendmsg, int, sockfd, const struct msghdr *, msg, int, flags)
  36044. -ssize_t __libc_sendmsg(int sockfd, const struct msghdr *msg, int flags)
  36045. -{
  36046. - if (SINGLE_THREAD_P)
  36047. - return __sys_sendmsg(sockfd, msg, flags);
  36048. -
  36049. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  36050. - int oldtype = LIBC_CANCEL_ASYNC ();
  36051. - int result = __sys_sendmsg(sockfd, msg, flags);
  36052. - LIBC_CANCEL_RESET (oldtype);
  36053. - return result;
  36054. -#endif
  36055. -}
  36056. -#elif defined(__NR_socketcall)
  36057. -ssize_t __libc_sendmsg(int sockfd, const struct msghdr *msg, int flags)
  36058. +static ssize_t __NC(sendmsg)(int sockfd, const struct msghdr *msg, int flags)
  36059. {
  36060. +# ifdef __NR_sendmsg
  36061. + return (ssize_t)INLINE_SYSCALL(sendmsg, 3, sockfd, msg, flags);
  36062. +# else
  36063. unsigned long args[3];
  36064. args[0] = sockfd;
  36065. args[1] = (unsigned long) msg;
  36066. args[2] = flags;
  36067. -
  36068. - if (SINGLE_THREAD_P)
  36069. - return (__socketcall(SYS_SENDMSG, args));
  36070. -
  36071. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  36072. - int oldtype = LIBC_CANCEL_ASYNC ();
  36073. - int result = __socketcall(SYS_SENDMSG, args);
  36074. - LIBC_CANCEL_RESET (oldtype);
  36075. - return result;
  36076. -#endif
  36077. + return (ssize_t)__socketcall(SYS_SENDMSG, args);
  36078. +# endif
  36079. }
  36080. -#endif
  36081. -weak_alias(__libc_sendmsg,sendmsg)
  36082. -libc_hidden_weak(sendmsg)
  36083. +CANCELLABLE_SYSCALL(ssize_t, sendmsg, (int sockfd, const struct msghdr *msg, int flags),
  36084. + (sockfd, msg, flags))
  36085. +lt_libc_hidden(sendmsg)
  36086. #endif
  36087. #ifdef L_sendto
  36088. -extern __typeof(sendto) __libc_sendto;
  36089. -#ifdef __NR_sendto
  36090. -#define __NR___sys_sendto __NR_sendto
  36091. -static
  36092. -_syscall6(ssize_t, __sys_sendto, int, sockfd, const void *, buffer,
  36093. - size_t, len, int, flags, const struct sockaddr *, to, socklen_t, tolen)
  36094. -ssize_t __libc_sendto(int sockfd, const void *buffer, size_t len, int flags,const struct sockaddr *to, socklen_t tolen)
  36095. -{
  36096. - if (SINGLE_THREAD_P)
  36097. - return __sys_sendto(sockfd, buffer, len, flags, to, tolen);
  36098. -
  36099. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  36100. - int oldtype = LIBC_CANCEL_ASYNC ();
  36101. - int result = __sys_sendto(sockfd, buffer, len, flags, to, tolen);
  36102. - LIBC_CANCEL_RESET (oldtype);
  36103. - return result;
  36104. -#endif
  36105. -}
  36106. -#elif defined(__NR_socketcall)
  36107. -/* send, sendto added by bir7@leland.stanford.edu */
  36108. -ssize_t __libc_sendto(int sockfd, const void *buffer, size_t len, int flags,
  36109. - const struct sockaddr *to, socklen_t tolen)
  36110. +ssize_t __NC(sendto)(int sockfd, const void *buffer, size_t len, int flags,
  36111. + const struct sockaddr *to, socklen_t tolen)
  36112. {
  36113. +# if defined __NR_sendto && defined _syscall6
  36114. + return (ssize_t)INLINE_SYSCALL(sendto, 6, sockfd, buffer, len, flags, to, tolen);
  36115. +# else
  36116. unsigned long args[6];
  36117. args[0] = sockfd;
  36118. @@ -515,30 +317,21 @@
  36119. args[3] = flags;
  36120. args[4] = (unsigned long) to;
  36121. args[5] = tolen;
  36122. -
  36123. - if (SINGLE_THREAD_P)
  36124. - return (__socketcall(SYS_SENDTO, args));
  36125. -
  36126. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  36127. - int oldtype = LIBC_CANCEL_ASYNC ();
  36128. - int result = __socketcall(SYS_SENDTO, args);
  36129. - LIBC_CANCEL_RESET (oldtype);
  36130. - return result;
  36131. -#endif
  36132. + return (ssize_t)__socketcall(SYS_SENDTO, args);
  36133. +# endif
  36134. }
  36135. -#endif
  36136. -weak_alias(__libc_sendto,sendto)
  36137. -libc_hidden_weak(sendto)
  36138. +CANCELLABLE_SYSCALL(ssize_t, sendto, (int sockfd, const void *buffer, size_t len,
  36139. + int flags, const struct sockaddr *to, socklen_t tolen),
  36140. + (sockfd, buffer, len, flags, to, tolen))
  36141. +lt_libc_hidden(sendto)
  36142. #endif
  36143. #ifdef L_setsockopt
  36144. -#ifdef __NR_setsockopt
  36145. -_syscall5(int, setsockopt, int, fd, int, level, int, optname, const void *, optval, socklen_t, optlen)
  36146. -#elif defined(__NR_socketcall)
  36147. -/* [sg]etsockoptions by bir7@leland.stanford.edu */
  36148. -int setsockopt(int fd, int level, int optname, const void *optval,
  36149. - socklen_t optlen)
  36150. +int setsockopt(int fd, int level, int optname, const void *optval, socklen_t optlen)
  36151. {
  36152. +# ifdef __NR_setsockopt
  36153. + return INLINE_SYSCALL(setsockopt, 5, fd, level, optname, optval, optlen);
  36154. +# else
  36155. unsigned long args[5];
  36156. args[0] = fd;
  36157. @@ -546,51 +339,50 @@
  36158. args[2] = optname;
  36159. args[3] = (unsigned long) optval;
  36160. args[4] = optlen;
  36161. - return (__socketcall(SYS_SETSOCKOPT, args));
  36162. + return __socketcall(SYS_SETSOCKOPT, args);
  36163. +# endif
  36164. }
  36165. -#endif
  36166. libc_hidden_def(setsockopt)
  36167. #endif
  36168. #ifdef L_shutdown
  36169. -#ifdef __NR_shutdown
  36170. -_syscall2(int, shutdown, int, sockfd, int, how)
  36171. -#elif defined(__NR_socketcall)
  36172. -/* shutdown by bir7@leland.stanford.edu */
  36173. int shutdown(int sockfd, int how)
  36174. {
  36175. +# ifdef __NR_shutdown
  36176. + return INLINE_SYSCALL(shutdown, 2, sockfd, how);
  36177. +# else
  36178. unsigned long args[2];
  36179. args[0] = sockfd;
  36180. args[1] = how;
  36181. - return (__socketcall(SYS_SHUTDOWN, args));
  36182. + return __socketcall(SYS_SHUTDOWN, args);
  36183. +# endif
  36184. }
  36185. #endif
  36186. -#endif
  36187. #ifdef L_socket
  36188. -#ifdef __NR_socket
  36189. -_syscall3(int, socket, int, family, int, type, int, protocol)
  36190. -#elif defined(__NR_socketcall)
  36191. int socket(int family, int type, int protocol)
  36192. {
  36193. +# ifdef __NR_socket
  36194. + return INLINE_SYSCALL(socket, 3, family, type, protocol);
  36195. +# else
  36196. unsigned long args[3];
  36197. args[0] = family;
  36198. args[1] = type;
  36199. args[2] = (unsigned long) protocol;
  36200. return __socketcall(SYS_SOCKET, args);
  36201. +# endif
  36202. }
  36203. -#endif
  36204. libc_hidden_def(socket)
  36205. #endif
  36206. #ifdef L_socketpair
  36207. -#ifdef __NR_socketpair
  36208. -_syscall4(int, socketpair, int, family, int, type, int, protocol, int *, sockvec)
  36209. -#elif defined(__NR_socketcall)
  36210. int socketpair(int family, int type, int protocol, int sockvec[2])
  36211. {
  36212. +# ifdef __NR_socketpair
  36213. + return INLINE_SYSCALL(socketpair, 4, family, type, protocol, sockvec);
  36214. +# else
  36215. unsigned long args[4];
  36216. args[0] = family;
  36217. @@ -598,7 +390,6 @@
  36218. args[2] = protocol;
  36219. args[3] = (unsigned long) sockvec;
  36220. return __socketcall(SYS_SOCKETPAIR, args);
  36221. +# endif
  36222. }
  36223. #endif
  36224. -#endif
  36225. -
  36226. diff -Nur uClibc-0.9.33.2/libc/misc/assert/__assert.c uClibc-git/libc/misc/assert/__assert.c
  36227. --- uClibc-0.9.33.2/libc/misc/assert/__assert.c 2012-05-15 09:20:09.000000000 +0200
  36228. +++ uClibc-git/libc/misc/assert/__assert.c 2014-06-02 17:40:33.986711829 +0200
  36229. @@ -13,8 +13,8 @@
  36230. * Library General Public License for more details.
  36231. *
  36232. * You should have received a copy of the GNU Library General Public
  36233. - * License along with this library; if not, write to the Free
  36234. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  36235. + * License along with this library; if not, see
  36236. + * <http://www.gnu.org/licenses/>.
  36237. */
  36238. /* Oct 28, 2002
  36239. diff -Nur uClibc-0.9.33.2/libc/misc/assert/Makefile.in uClibc-git/libc/misc/assert/Makefile.in
  36240. --- uClibc-0.9.33.2/libc/misc/assert/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  36241. +++ uClibc-git/libc/misc/assert/Makefile.in 2014-06-02 17:40:33.986711829 +0200
  36242. @@ -7,13 +7,13 @@
  36243. subdirs += libc/misc/assert
  36244. -CSRC := __assert.c
  36245. +CSRC-y := __assert.c
  36246. MISC_ASSERT_DIR := $(top_srcdir)libc/misc/assert
  36247. MISC_ASSERT_OUT := $(top_builddir)libc/misc/assert
  36248. -MISC_ASSERT_SRC := $(MISC_ASSERT_DIR)/__assert.c
  36249. -MISC_ASSERT_OBJ := $(MISC_ASSERT_OUT)/__assert.o
  36250. +MISC_ASSERT_SRC := $(patsubst %.c,$(MISC_ASSERT_DIR)/%.c,$(CSRC-y))
  36251. +MISC_ASSERT_OBJ := $(patsubst %.c,$(MISC_ASSERT_OUT)/%.o,$(CSRC-y))
  36252. libc-y += $(MISC_ASSERT_OBJ)
  36253. diff -Nur uClibc-0.9.33.2/libc/misc/ctype/ctype.c uClibc-git/libc/misc/ctype/ctype.c
  36254. --- uClibc-0.9.33.2/libc/misc/ctype/ctype.c 2012-05-15 09:20:09.000000000 +0200
  36255. +++ uClibc-git/libc/misc/ctype/ctype.c 2014-06-02 17:40:33.986711829 +0200
  36256. @@ -11,8 +11,8 @@
  36257. * Library General Public License for more details.
  36258. *
  36259. * You should have received a copy of the GNU Library General Public
  36260. - * License along with this library; if not, write to the Free
  36261. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  36262. + * License along with this library; if not, see
  36263. + * <http://www.gnu.org/licenses/>.
  36264. */
  36265. /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
  36266. @@ -36,10 +36,6 @@
  36267. #include <assert.h>
  36268. #include <locale.h>
  36269. -#ifdef __UCLIBC_HAS_XLOCALE__
  36270. -# include <xlocale.h>
  36271. -#endif
  36272. -
  36273. /**********************************************************************/
  36274. #ifdef __UCLIBC_HAS_CTYPE_TABLES__
  36275. diff -Nur uClibc-0.9.33.2/libc/misc/ctype/Makefile.in uClibc-git/libc/misc/ctype/Makefile.in
  36276. --- uClibc-0.9.33.2/libc/misc/ctype/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  36277. +++ uClibc-git/libc/misc/ctype/Makefile.in 2014-06-02 17:40:33.986711829 +0200
  36278. @@ -8,31 +8,25 @@
  36279. subdirs += libc/misc/ctype
  36280. # multi source ctype.c
  36281. -COM_SRC := \
  36282. +COM_SRC-y := \
  36283. isalnum.c isalpha.c iscntrl.c isdigit.c \
  36284. isgraph.c islower.c isprint.c ispunct.c isspace.c \
  36285. isupper.c isxdigit.c tolower.c toupper.c \
  36286. isblank.c
  36287. -ifeq ($(UCLIBC_SUSV4_LEGACY),y)
  36288. -COM_SRC += isascii.c toascii.c
  36289. -endif
  36290. -CSRC := $(COM_SRC)
  36291. +COM_SRC-$(UCLIBC_SUSV4_LEGACY) += isascii.c toascii.c
  36292. +CSRC-y := $(COM_SRC-y)
  36293. -ifeq ($(UCLIBC_HAS_CTYPE_TABLES),y)
  36294. -CSRC += __C_ctype_b.c __C_ctype_tolower.c __C_ctype_toupper.c \
  36295. +CSRC-$(UCLIBC_HAS_CTYPE_TABLES) += \
  36296. + __C_ctype_b.c __C_ctype_tolower.c __C_ctype_toupper.c \
  36297. __ctype_b_loc.c __ctype_tolower_loc.c __ctype_toupper_loc.c \
  36298. __ctype_assert.c isctype.c
  36299. -endif
  36300. -
  36301. -ifeq ($(UCLIBC_HAS_XLOCALE),y)
  36302. -CSRC += $(patsubst %.c,%_l.c,$(COM_SRC))
  36303. -endif
  36304. +CSRC-$(UCLIBC_HAS_XLOCALE) += $(patsubst %.c,%_l.c,$(COM_SRC-y))
  36305. MISC_CTYPE_DIR := $(top_srcdir)libc/misc/ctype
  36306. MISC_CTYPE_OUT := $(top_builddir)libc/misc/ctype
  36307. -MISC_CTYPE_SRC := $(patsubst %.c,$(MISC_CTYPE_DIR)/%.c,$(CSRC))
  36308. -MISC_CTYPE_OBJ := $(patsubst %.c,$(MISC_CTYPE_OUT)/%.o,$(CSRC))
  36309. +MISC_CTYPE_SRC := $(patsubst %.c,$(MISC_CTYPE_DIR)/%.c,$(CSRC-y))
  36310. +MISC_CTYPE_OBJ := $(patsubst %.c,$(MISC_CTYPE_OUT)/%.o,$(CSRC-y))
  36311. libc-y += $(MISC_CTYPE_OBJ)
  36312. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/alphasort64.c uClibc-git/libc/misc/dirent/alphasort64.c
  36313. --- uClibc-0.9.33.2/libc/misc/dirent/alphasort64.c 2012-05-15 09:20:09.000000000 +0200
  36314. +++ uClibc-git/libc/misc/dirent/alphasort64.c 2014-06-02 17:40:33.990711852 +0200
  36315. @@ -5,12 +5,14 @@
  36316. */
  36317. #include <_lfs_64.h>
  36318. -
  36319. #include <dirent.h>
  36320. -#include <string.h>
  36321. -#include "dirstream.h"
  36322. +
  36323. +#if __WORDSIZE != 64
  36324. +# include <string.h>
  36325. +# include "dirstream.h"
  36326. int alphasort64(const struct dirent64 **a, const struct dirent64 **b)
  36327. {
  36328. - return strcmp((*a)->d_name, (*b)->d_name);
  36329. + return strcoll((*a)->d_name, (*b)->d_name);
  36330. }
  36331. +#endif
  36332. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/alphasort.c uClibc-git/libc/misc/dirent/alphasort.c
  36333. --- uClibc-0.9.33.2/libc/misc/dirent/alphasort.c 2012-05-15 09:20:09.000000000 +0200
  36334. +++ uClibc-git/libc/misc/dirent/alphasort.c 2014-06-02 17:40:33.990711852 +0200
  36335. @@ -10,6 +10,8 @@
  36336. int alphasort(const struct dirent **a, const struct dirent **b)
  36337. {
  36338. - return strcmp((*a)->d_name, (*b)->d_name);
  36339. + return strcoll((*a)->d_name, (*b)->d_name);
  36340. }
  36341. -
  36342. +#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
  36343. +strong_alias_untyped(alphasort,alphasort64)
  36344. +#endif
  36345. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/dirstream.h uClibc-git/libc/misc/dirent/dirstream.h
  36346. --- uClibc-0.9.33.2/libc/misc/dirent/dirstream.h 2012-05-15 09:20:09.000000000 +0200
  36347. +++ uClibc-git/libc/misc/dirent/dirstream.h 2014-06-02 17:40:33.990711852 +0200
  36348. @@ -13,8 +13,7 @@
  36349. You should have received a copy of the GNU Library General Public
  36350. License along with the GNU C Library; see the file COPYING.LIB. If
  36351. -not, write to the, 1992 Free Software Foundation, Inc., 675 Mass Ave,
  36352. -Cambridge, MA 02139, USA. */
  36353. +not, see <http://www.gnu.org/licenses/>. */
  36354. /*
  36355. * POSIX Standard: 5.1.2 Directory Operations <dirent.h>
  36356. @@ -29,18 +28,6 @@
  36357. #include <bits/uClibc_mutex.h>
  36358. -/* For now, syscall readdir () only supports one entry at a time. It
  36359. - * will be changed in the future.
  36360. -#define NUMENT 3
  36361. -*/
  36362. -#ifndef NUMENT
  36363. -#define NUMENT 1
  36364. -#endif
  36365. -
  36366. -#define SINGLE_READDIR 11
  36367. -#define MULTI_READDIR 12
  36368. -#define NEW_READDIR 13
  36369. -
  36370. /* Directory stream type. */
  36371. struct __dirstream {
  36372. /* file descriptor */
  36373. @@ -65,10 +52,4 @@
  36374. __UCLIBC_MUTEX(dd_lock);
  36375. }; /* stream data from opendir() */
  36376. -
  36377. -extern ssize_t __getdents(int fd, char *buf, size_t count) attribute_hidden;
  36378. -#ifdef __UCLIBC_HAS_LFS__
  36379. -extern ssize_t __getdents64 (int fd, char *buf, size_t count) attribute_hidden;
  36380. -#endif
  36381. -
  36382. #endif /* dirent.h */
  36383. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/Makefile.in uClibc-git/libc/misc/dirent/Makefile.in
  36384. --- uClibc-0.9.33.2/libc/misc/dirent/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  36385. +++ uClibc-git/libc/misc/dirent/Makefile.in 2014-06-02 17:40:33.990711852 +0200
  36386. @@ -7,18 +7,18 @@
  36387. subdirs += libc/misc/dirent
  36388. -CSRC := alphasort.c closedir.c dirfd.c opendir.c readdir.c rewinddir.c \
  36389. - scandir.c seekdir.c telldir.c readdir_r.c versionsort.c
  36390. -
  36391. -ifeq ($(UCLIBC_HAS_LFS),y)
  36392. -CSRC += readdir64.c alphasort64.c scandir64.c readdir64_r.c versionsort64.c
  36393. -endif
  36394. +CSRC := alphasort.c readdir.c scandir.c versionsort.c
  36395. +CSRC_R := readdir_r.c
  36396. +CSRC-y := closedir.c dirfd.c opendir.c rewinddir.c seekdir.c telldir.c $(CSRC) \
  36397. + $(CSRC_R)
  36398. +CSRC-$(UCLIBC_HAS_LFS) += $(patsubst %.c,%64.c,$(CSRC))
  36399. +CSRC-$(UCLIBC_HAS_LFS) += $(patsubst %_r.c,%64_r.c,$(CSRC_R))
  36400. MISC_DIRENT_DIR := $(top_srcdir)libc/misc/dirent
  36401. MISC_DIRENT_OUT := $(top_builddir)libc/misc/dirent
  36402. -MISC_DIRENT_SRC := $(patsubst %.c,$(MISC_DIRENT_DIR)/%.c,$(CSRC))
  36403. -MISC_DIRENT_OBJ := $(patsubst %.c,$(MISC_DIRENT_OUT)/%.o,$(CSRC))
  36404. +MISC_DIRENT_SRC := $(patsubst %.c,$(MISC_DIRENT_DIR)/%.c,$(CSRC-y))
  36405. +MISC_DIRENT_OBJ := $(patsubst %.c,$(MISC_DIRENT_OUT)/%.o,$(CSRC-y))
  36406. libc-y += $(MISC_DIRENT_OBJ)
  36407. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/readdir64.c uClibc-git/libc/misc/dirent/readdir64.c
  36408. --- uClibc-0.9.33.2/libc/misc/dirent/readdir64.c 2012-05-15 09:20:09.000000000 +0200
  36409. +++ uClibc-git/libc/misc/dirent/readdir64.c 2014-06-02 17:40:33.998711896 +0200
  36410. @@ -5,52 +5,12 @@
  36411. */
  36412. #include <_lfs_64.h>
  36413. -
  36414. -#include <errno.h>
  36415. -#include <stdlib.h>
  36416. -#include <string.h>
  36417. -#include <unistd.h>
  36418. #include <dirent.h>
  36419. -#include "dirstream.h"
  36420. -
  36421. -struct dirent64 *readdir64(DIR * dir)
  36422. -{
  36423. - ssize_t bytes;
  36424. - struct dirent64 *de;
  36425. -
  36426. - if (!dir) {
  36427. - __set_errno(EBADF);
  36428. - return NULL;
  36429. - }
  36430. -
  36431. - __UCLIBC_MUTEX_LOCK(dir->dd_lock);
  36432. -
  36433. - do {
  36434. - if (dir->dd_size <= dir->dd_nextloc) {
  36435. - /* read dir->dd_max bytes of directory entries. */
  36436. - bytes = __getdents64(dir->dd_fd, dir->dd_buf, dir->dd_max);
  36437. - if (bytes <= 0) {
  36438. - de = NULL;
  36439. - goto all_done;
  36440. - }
  36441. - dir->dd_size = bytes;
  36442. - dir->dd_nextloc = 0;
  36443. - }
  36444. -
  36445. - de = (struct dirent64 *) (((char *) dir->dd_buf) + dir->dd_nextloc);
  36446. -
  36447. - /* Am I right? H.J. */
  36448. - dir->dd_nextloc += de->d_reclen;
  36449. -
  36450. - /* We have to save the next offset here. */
  36451. - dir->dd_nextoff = de->d_off;
  36452. -
  36453. - /* Skip deleted files. */
  36454. - } while (de->d_ino == 0);
  36455. -all_done:
  36456. - __UCLIBC_MUTEX_UNLOCK(dir->dd_lock);
  36457. +#if __WORDSIZE != 64
  36458. +# define __READDIR readdir64
  36459. +# define __DIRENT_TYPE struct dirent64
  36460. +# define __GETDENTS __getdents64
  36461. - return de;
  36462. -}
  36463. -libc_hidden_def(readdir64)
  36464. +# include "readdir.c"
  36465. +#endif
  36466. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/readdir64_r.c uClibc-git/libc/misc/dirent/readdir64_r.c
  36467. --- uClibc-0.9.33.2/libc/misc/dirent/readdir64_r.c 2012-05-15 09:20:09.000000000 +0200
  36468. +++ uClibc-git/libc/misc/dirent/readdir64_r.c 2014-06-02 17:40:33.998711896 +0200
  36469. @@ -5,62 +5,12 @@
  36470. */
  36471. #include <_lfs_64.h>
  36472. -
  36473. -#include <errno.h>
  36474. -#include <stdlib.h>
  36475. -#include <string.h>
  36476. -#include <unistd.h>
  36477. #include <dirent.h>
  36478. -#include "dirstream.h"
  36479. -
  36480. -
  36481. -int readdir64_r(DIR *dir, struct dirent64 *entry, struct dirent64 **result)
  36482. -{
  36483. - int ret;
  36484. - ssize_t bytes;
  36485. - struct dirent64 *de;
  36486. -
  36487. - if (!dir) {
  36488. - __set_errno(EBADF);
  36489. - return(EBADF);
  36490. - }
  36491. - de = NULL;
  36492. -
  36493. - __UCLIBC_MUTEX_LOCK(dir->dd_lock);
  36494. -
  36495. - do {
  36496. - if (dir->dd_size <= dir->dd_nextloc) {
  36497. - /* read dir->dd_max bytes of directory entries. */
  36498. - bytes = __getdents64(dir->dd_fd, dir->dd_buf, dir->dd_max);
  36499. - if (bytes <= 0) {
  36500. - *result = NULL;
  36501. - ret = (bytes==0)? 0 : errno;
  36502. - goto all_done;
  36503. - }
  36504. - dir->dd_size = bytes;
  36505. - dir->dd_nextloc = 0;
  36506. - }
  36507. -
  36508. - de = (struct dirent64 *) (((char *) dir->dd_buf) + dir->dd_nextloc);
  36509. -
  36510. - /* Am I right? H.J. */
  36511. - dir->dd_nextloc += de->d_reclen;
  36512. -
  36513. - /* We have to save the next offset here. */
  36514. - dir->dd_nextoff = de->d_off;
  36515. - /* Skip deleted files. */
  36516. - } while (de->d_ino == 0);
  36517. -
  36518. - if (de == NULL) {
  36519. - *result = NULL;
  36520. - } else {
  36521. - *result = memcpy (entry, de, de->d_reclen);
  36522. - }
  36523. - ret = 0;
  36524. -all_done:
  36525. +#if __WORDSIZE != 64
  36526. +# define __READDIR_R readdir64_r
  36527. +# define __DIRENT_TYPE struct dirent64
  36528. +# define __GETDENTS __getdents64
  36529. - __UCLIBC_MUTEX_UNLOCK(dir->dd_lock);
  36530. - return((de != NULL)? 0 : ret);
  36531. -}
  36532. -libc_hidden_def(readdir64_r)
  36533. +# include "readdir_r.c"
  36534. +#endif
  36535. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/readdir.c uClibc-git/libc/misc/dirent/readdir.c
  36536. --- uClibc-0.9.33.2/libc/misc/dirent/readdir.c 2012-05-15 09:20:09.000000000 +0200
  36537. +++ uClibc-git/libc/misc/dirent/readdir.c 2014-06-02 17:40:33.998711896 +0200
  36538. @@ -4,20 +4,22 @@
  36539. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  36540. */
  36541. -#include <features.h>
  36542. -
  36543. -#include <errno.h>
  36544. -#include <stdlib.h>
  36545. -#include <string.h>
  36546. -#include <unistd.h>
  36547. #include <dirent.h>
  36548. +#include <errno.h>
  36549. +#define __need_NULL
  36550. +#include <stddef.h>
  36551. #include "dirstream.h"
  36552. +#ifndef __READDIR
  36553. +# define __READDIR readdir
  36554. +# define __DIRENT_TYPE struct dirent
  36555. +# define __GETDENTS __getdents
  36556. +#endif
  36557. -struct dirent *readdir(DIR * dir)
  36558. +__DIRENT_TYPE *__READDIR(DIR * dir)
  36559. {
  36560. ssize_t bytes;
  36561. - struct dirent *de;
  36562. + __DIRENT_TYPE *de;
  36563. if (!dir) {
  36564. __set_errno(EBADF);
  36565. @@ -29,7 +31,7 @@
  36566. do {
  36567. if (dir->dd_size <= dir->dd_nextloc) {
  36568. /* read dir->dd_max bytes of directory entries. */
  36569. - bytes = __getdents(dir->dd_fd, dir->dd_buf, dir->dd_max);
  36570. + bytes = __GETDENTS(dir->dd_fd, dir->dd_buf, dir->dd_max);
  36571. if (bytes <= 0) {
  36572. de = NULL;
  36573. goto all_done;
  36574. @@ -38,7 +40,7 @@
  36575. dir->dd_nextloc = 0;
  36576. }
  36577. - de = (struct dirent *) (((char *) dir->dd_buf) + dir->dd_nextloc);
  36578. + de = (__DIRENT_TYPE *) (((char *) dir->dd_buf) + dir->dd_nextloc);
  36579. /* Am I right? H.J. */
  36580. dir->dd_nextloc += de->d_reclen;
  36581. @@ -53,4 +55,8 @@
  36582. __UCLIBC_MUTEX_UNLOCK(dir->dd_lock);
  36583. return de;
  36584. }
  36585. -libc_hidden_def(readdir)
  36586. +libc_hidden_def(__READDIR)
  36587. +#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
  36588. +strong_alias_untyped(readdir,readdir64)
  36589. +libc_hidden_def(readdir64)
  36590. +#endif
  36591. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/readdir_r.c uClibc-git/libc/misc/dirent/readdir_r.c
  36592. --- uClibc-0.9.33.2/libc/misc/dirent/readdir_r.c 2012-05-15 09:20:09.000000000 +0200
  36593. +++ uClibc-git/libc/misc/dirent/readdir_r.c 2014-06-02 17:40:33.998711896 +0200
  36594. @@ -4,19 +4,24 @@
  36595. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  36596. */
  36597. +#include <dirent.h>
  36598. #include <errno.h>
  36599. -#include <stdlib.h>
  36600. #include <string.h>
  36601. -#include <unistd.h>
  36602. -#include <dirent.h>
  36603. +#define __need_NULL
  36604. +#include <stddef.h>
  36605. #include "dirstream.h"
  36606. +#ifndef __READDIR_R
  36607. +# define __READDIR_R readdir_r
  36608. +# define __DIRENT_TYPE struct dirent
  36609. +# define __GETDENTS __getdents
  36610. +#endif
  36611. -int readdir_r(DIR *dir, struct dirent *entry, struct dirent **result)
  36612. +int __READDIR_R(DIR *dir, __DIRENT_TYPE *entry, __DIRENT_TYPE **result)
  36613. {
  36614. int ret;
  36615. ssize_t bytes;
  36616. - struct dirent *de;
  36617. + __DIRENT_TYPE *de;
  36618. if (!dir) {
  36619. __set_errno(EBADF);
  36620. @@ -29,7 +34,7 @@
  36621. do {
  36622. if (dir->dd_size <= dir->dd_nextloc) {
  36623. /* read dir->dd_max bytes of directory entries. */
  36624. - bytes = __getdents(dir->dd_fd, dir->dd_buf, dir->dd_max);
  36625. + bytes = __GETDENTS(dir->dd_fd, dir->dd_buf, dir->dd_max);
  36626. if (bytes <= 0) {
  36627. *result = NULL;
  36628. ret = (bytes==0)? 0 : errno;
  36629. @@ -39,7 +44,7 @@
  36630. dir->dd_nextloc = 0;
  36631. }
  36632. - de = (struct dirent *) (((char *) dir->dd_buf) + dir->dd_nextloc);
  36633. + de = (__DIRENT_TYPE *) (((char *) dir->dd_buf) + dir->dd_nextloc);
  36634. /* Am I right? H.J. */
  36635. dir->dd_nextloc += de->d_reclen;
  36636. @@ -61,4 +66,8 @@
  36637. __UCLIBC_MUTEX_UNLOCK(dir->dd_lock);
  36638. return((de != NULL)? 0 : ret);
  36639. }
  36640. -libc_hidden_def(readdir_r)
  36641. +libc_hidden_def(__READDIR_R)
  36642. +#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
  36643. +strong_alias_untyped(readdir_r,readdir64_r)
  36644. +libc_hidden_def(readdir64_r)
  36645. +#endif
  36646. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/scandir64.c uClibc-git/libc/misc/dirent/scandir64.c
  36647. --- uClibc-0.9.33.2/libc/misc/dirent/scandir64.c 2012-05-15 09:20:09.000000000 +0200
  36648. +++ uClibc-git/libc/misc/dirent/scandir64.c 2014-06-02 17:40:33.998711896 +0200
  36649. @@ -1,111 +1,16 @@
  36650. -/* Copyright (C) 1992-1998, 2000 Free Software Foundation, Inc.
  36651. - This file is part of the GNU C Library.
  36652. -
  36653. - The GNU C Library is free software; you can redistribute it and/or
  36654. - modify it under the terms of the GNU Lesser General Public
  36655. - License as published by the Free Software Foundation; either
  36656. - version 2.1 of the License, or (at your option) any later version.
  36657. -
  36658. - The GNU C Library is distributed in the hope that it will be useful,
  36659. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  36660. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  36661. - Lesser General Public License for more details.
  36662. -
  36663. - You should have received a copy of the GNU Lesser General Public
  36664. - License along with the GNU C Library; if not, write to the Free
  36665. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  36666. - 02111-1307 USA.
  36667. - */
  36668. -
  36669. -/* Modified for uClibc by Erik Andersen
  36670. - */
  36671. +/*
  36672. + * Copyright (C) 2000-2011 Erik Andersen <andersen@uclibc.org>
  36673. + *
  36674. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  36675. + */
  36676. #include <_lfs_64.h>
  36677. -
  36678. #include <dirent.h>
  36679. -#include <stdio.h>
  36680. -#include <string.h>
  36681. -#include <stdlib.h>
  36682. -#include <errno.h>
  36683. -#include <sys/types.h>
  36684. -#include "dirstream.h"
  36685. -
  36686. -int scandir64(const char *dir, struct dirent64 ***namelist,
  36687. - int (*selector) (const struct dirent64 *),
  36688. - int (*compar) (const struct dirent64 **, const struct dirent64 **))
  36689. -{
  36690. - DIR *dp = opendir (dir);
  36691. - struct dirent64 *current;
  36692. - struct dirent64 **names = NULL;
  36693. - size_t names_size = 0, pos;
  36694. - int save;
  36695. -
  36696. - if (dp == NULL)
  36697. - return -1;
  36698. -
  36699. - save = errno;
  36700. - __set_errno (0);
  36701. -
  36702. - pos = 0;
  36703. - while ((current = readdir64 (dp)) != NULL) {
  36704. - int use_it = selector == NULL;
  36705. -
  36706. - if (! use_it)
  36707. - {
  36708. - use_it = (*selector) (current);
  36709. - /* The selector function might have changed errno.
  36710. - * It was zero before and it need to be again to make
  36711. - * the latter tests work. */
  36712. - if (! use_it)
  36713. - __set_errno (0);
  36714. - }
  36715. - if (use_it)
  36716. - {
  36717. - struct dirent64 *vnew;
  36718. - size_t dsize;
  36719. -
  36720. - /* Ignore errors from selector or readdir64 */
  36721. - __set_errno (0);
  36722. -
  36723. - if (unlikely(pos == names_size))
  36724. - {
  36725. - struct dirent64 **new;
  36726. - if (names_size == 0)
  36727. - names_size = 10;
  36728. - else
  36729. - names_size *= 2;
  36730. - new = (struct dirent64 **) realloc (names,
  36731. - names_size * sizeof (struct dirent64 *));
  36732. - if (new == NULL)
  36733. - break;
  36734. - names = new;
  36735. - }
  36736. -
  36737. - dsize = &current->d_name[_D_ALLOC_NAMLEN(current)] - (char*)current;
  36738. - vnew = (struct dirent64 *) malloc (dsize);
  36739. - if (vnew == NULL)
  36740. - break;
  36741. -
  36742. - names[pos++] = (struct dirent64 *) memcpy (vnew, current, dsize);
  36743. - }
  36744. - }
  36745. - if (unlikely(errno != 0))
  36746. - {
  36747. - save = errno;
  36748. - closedir (dp);
  36749. - while (pos > 0)
  36750. - free (names[--pos]);
  36751. - free (names);
  36752. - __set_errno (save);
  36753. - return -1;
  36754. - }
  36755. - closedir (dp);
  36756. - __set_errno (save);
  36757. +#if __WORDSIZE != 64
  36758. +# define __SCANDIR scandir64
  36759. +# define __DIRENT_TYPE struct dirent64
  36760. +# define __READDIR readdir64
  36761. - /* Sort the list if we have a comparison function to sort with. */
  36762. - if (compar != NULL)
  36763. - qsort (names, pos, sizeof (struct dirent64 *), (comparison_fn_t) compar);
  36764. - *namelist = names;
  36765. - return pos;
  36766. -}
  36767. +# include "scandir.c"
  36768. +#endif
  36769. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/scandir.c uClibc-git/libc/misc/dirent/scandir.c
  36770. --- uClibc-0.9.33.2/libc/misc/dirent/scandir.c 2012-05-15 09:20:09.000000000 +0200
  36771. +++ uClibc-git/libc/misc/dirent/scandir.c 2014-06-02 17:40:33.998711896 +0200
  36772. @@ -1,24 +1,29 @@
  36773. +/* vi: set sw=4 ts=4: */
  36774. /*
  36775. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  36776. + * Copyright (C) 2000-2011 Erik Andersen <andersen@uclibc.org>
  36777. *
  36778. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  36779. */
  36780. #include <dirent.h>
  36781. -#include <stdio.h>
  36782. #include <string.h>
  36783. #include <stdlib.h>
  36784. #include <errno.h>
  36785. -#include <sys/types.h>
  36786. #include "dirstream.h"
  36787. -int scandir(const char *dir, struct dirent ***namelist,
  36788. - int (*selector) (const struct dirent *),
  36789. - int (*compar) (const struct dirent **, const struct dirent **))
  36790. +#ifndef __SCANDIR
  36791. +# define __SCANDIR scandir
  36792. +# define __DIRENT_TYPE struct dirent
  36793. +# define __READDIR readdir
  36794. +#endif
  36795. +
  36796. +int __SCANDIR(const char *dir, __DIRENT_TYPE ***namelist,
  36797. + int (*selector) (const __DIRENT_TYPE *),
  36798. + int (*compar) (const __DIRENT_TYPE **, const __DIRENT_TYPE **))
  36799. {
  36800. DIR *dp = opendir (dir);
  36801. - struct dirent *current;
  36802. - struct dirent **names = NULL;
  36803. + __DIRENT_TYPE *current;
  36804. + __DIRENT_TYPE **names = NULL;
  36805. size_t names_size = 0, pos;
  36806. int save;
  36807. @@ -29,7 +34,7 @@
  36808. __set_errno (0);
  36809. pos = 0;
  36810. - while ((current = readdir (dp)) != NULL) {
  36811. + while ((current = __READDIR (dp)) != NULL) {
  36812. int use_it = selector == NULL;
  36813. if (! use_it)
  36814. @@ -43,7 +48,7 @@
  36815. }
  36816. if (use_it)
  36817. {
  36818. - struct dirent *vnew;
  36819. + __DIRENT_TYPE *vnew;
  36820. size_t dsize;
  36821. /* Ignore errors from selector or readdir */
  36822. @@ -51,24 +56,24 @@
  36823. if (unlikely(pos == names_size))
  36824. {
  36825. - struct dirent **new;
  36826. + __DIRENT_TYPE **new;
  36827. if (names_size == 0)
  36828. names_size = 10;
  36829. else
  36830. names_size *= 2;
  36831. - new = (struct dirent **) realloc (names,
  36832. - names_size * sizeof (struct dirent *));
  36833. + new = (__DIRENT_TYPE **) realloc (names,
  36834. + names_size * sizeof (__DIRENT_TYPE *));
  36835. if (new == NULL)
  36836. break;
  36837. names = new;
  36838. }
  36839. dsize = &current->d_name[_D_ALLOC_NAMLEN(current)] - (char*)current;
  36840. - vnew = (struct dirent *) malloc (dsize);
  36841. + vnew = (__DIRENT_TYPE *) malloc (dsize);
  36842. if (vnew == NULL)
  36843. break;
  36844. - names[pos++] = (struct dirent *) memcpy (vnew, current, dsize);
  36845. + names[pos++] = (__DIRENT_TYPE *) memcpy (vnew, current, dsize);
  36846. }
  36847. }
  36848. @@ -88,7 +93,10 @@
  36849. /* Sort the list if we have a comparison function to sort with. */
  36850. if (compar != NULL)
  36851. - qsort (names, pos, sizeof (struct dirent *), (comparison_fn_t) compar);
  36852. + qsort (names, pos, sizeof (__DIRENT_TYPE *), (comparison_fn_t) compar);
  36853. *namelist = names;
  36854. return pos;
  36855. }
  36856. +#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
  36857. +strong_alias_untyped(scandir,scandir64)
  36858. +#endif
  36859. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/versionsort64.c uClibc-git/libc/misc/dirent/versionsort64.c
  36860. --- uClibc-0.9.33.2/libc/misc/dirent/versionsort64.c 2012-05-15 09:20:09.000000000 +0200
  36861. +++ uClibc-git/libc/misc/dirent/versionsort64.c 2014-06-02 17:40:33.998711896 +0200
  36862. @@ -5,12 +5,14 @@
  36863. */
  36864. #include <_lfs_64.h>
  36865. -
  36866. #include <dirent.h>
  36867. -#include <string.h>
  36868. -#include "dirstream.h"
  36869. +
  36870. +#if __WORDSIZE != 64
  36871. +# include <string.h>
  36872. +# include "dirstream.h"
  36873. int versionsort64(const struct dirent64 **a, const struct dirent64 **b)
  36874. {
  36875. return strverscmp((*a)->d_name, (*b)->d_name);
  36876. }
  36877. +#endif
  36878. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/versionsort.c uClibc-git/libc/misc/dirent/versionsort.c
  36879. --- uClibc-0.9.33.2/libc/misc/dirent/versionsort.c 2012-05-15 09:20:09.000000000 +0200
  36880. +++ uClibc-git/libc/misc/dirent/versionsort.c 2014-06-02 17:40:33.998711896 +0200
  36881. @@ -12,3 +12,6 @@
  36882. {
  36883. return strverscmp((*a)->d_name, (*b)->d_name);
  36884. }
  36885. +#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
  36886. +strong_alias_untyped(versionsort,versionsort64)
  36887. +#endif
  36888. diff -Nur uClibc-0.9.33.2/libc/misc/elf/dl-iterate-phdr.c uClibc-git/libc/misc/elf/dl-iterate-phdr.c
  36889. --- uClibc-0.9.33.2/libc/misc/elf/dl-iterate-phdr.c 2012-05-15 09:20:09.000000000 +0200
  36890. +++ uClibc-git/libc/misc/elf/dl-iterate-phdr.c 2014-06-02 17:40:33.998711896 +0200
  36891. @@ -18,10 +18,7 @@
  36892. /* we want this in libc but nowhere else */
  36893. #ifdef __USE_GNU
  36894. -extern __typeof(dl_iterate_phdr) __dl_iterate_phdr;
  36895. -
  36896. -hidden_proto(__dl_iterate_phdr)
  36897. -int
  36898. +static int
  36899. __dl_iterate_phdr (int (*callback) (struct dl_phdr_info *info, size_t size, void *data), void *data)
  36900. {
  36901. int ret = 0;
  36902. @@ -41,7 +38,6 @@
  36903. #endif
  36904. return ret;
  36905. }
  36906. -hidden_def (__dl_iterate_phdr)
  36907. # ifdef SHARED
  36908. diff -Nur uClibc-0.9.33.2/libc/misc/elf/dl-support.c uClibc-git/libc/misc/elf/dl-support.c
  36909. --- uClibc-0.9.33.2/libc/misc/elf/dl-support.c 2012-05-15 09:20:09.000000000 +0200
  36910. +++ uClibc-git/libc/misc/elf/dl-support.c 2014-06-02 17:40:33.998711896 +0200
  36911. @@ -19,6 +19,7 @@
  36912. #include <ldsodefs.h>
  36913. #include <string.h>
  36914. #endif
  36915. +#include <bits/uClibc_page.h>
  36916. #if defined(USE_TLS) && USE_TLS
  36917. @@ -28,6 +29,7 @@
  36918. ElfW(Phdr) *_dl_phdr;
  36919. size_t _dl_phnum;
  36920. +size_t _dl_pagesize;
  36921. void internal_function _dl_aux_init (ElfW(auxv_t) *av);
  36922. void internal_function _dl_aux_init (ElfW(auxv_t) *av)
  36923. @@ -37,6 +39,9 @@
  36924. /* Get the number of program headers from the aux vect */
  36925. _dl_phnum = (size_t) av[AT_PHNUM].a_un.a_val;
  36926. +
  36927. + /* Get the pagesize from the aux vect */
  36928. + _dl_pagesize = (av[AT_PAGESZ].a_un.a_val) ? (size_t) av[AT_PAGESZ].a_un.a_val : PAGE_SIZE;
  36929. }
  36930. #if defined(USE_TLS) && USE_TLS
  36931. diff -Nur uClibc-0.9.33.2/libc/misc/error/err.c uClibc-git/libc/misc/error/err.c
  36932. --- uClibc-0.9.33.2/libc/misc/error/err.c 2012-05-15 09:20:09.000000000 +0200
  36933. +++ uClibc-git/libc/misc/error/err.c 2014-06-02 17:40:33.998711896 +0200
  36934. @@ -11,9 +11,6 @@
  36935. #include <stdarg.h>
  36936. #include <errno.h>
  36937. #include <err.h>
  36938. -#ifdef __UCLIBC_HAS_THREADS__
  36939. -#include <pthread.h>
  36940. -#endif
  36941. #ifdef __UCLIBC_MJN3_ONLY__
  36942. #warning REMINDER: Deal with wide oriented stderr case.
  36943. @@ -50,68 +47,68 @@
  36944. __STDIO_AUTO_THREADUNLOCK(stderr);
  36945. }
  36946. -void vwarn(const char *format, va_list args)
  36947. +static void __vwarn(const char *format, va_list args)
  36948. {
  36949. vwarn_work(format, args, 1);
  36950. }
  36951. -libc_hidden_def(vwarn)
  36952. +strong_alias(__vwarn,vwarn)
  36953. void warn(const char *format, ...)
  36954. {
  36955. va_list args;
  36956. va_start(args, format);
  36957. - vwarn(format, args);
  36958. + __vwarn(format, args);
  36959. va_end(args);
  36960. }
  36961. -void vwarnx(const char *format, va_list args)
  36962. +static void __vwarnx(const char *format, va_list args)
  36963. {
  36964. vwarn_work(format, args, 0);
  36965. }
  36966. -libc_hidden_def(vwarnx)
  36967. +strong_alias(__vwarnx,vwarnx)
  36968. void warnx(const char *format, ...)
  36969. {
  36970. va_list args;
  36971. va_start(args, format);
  36972. - vwarnx(format, args);
  36973. + __vwarnx(format, args);
  36974. va_end(args);
  36975. }
  36976. -void verr(int status, const char *format, va_list args)
  36977. +static void attribute_noreturn __verr(int status, const char *format, va_list args)
  36978. {
  36979. - vwarn(format, args);
  36980. + __vwarn(format, args);
  36981. exit(status);
  36982. }
  36983. -libc_hidden_def(verr)
  36984. +strong_alias(__verr,verr)
  36985. -void attribute_noreturn err(int status, const char *format, ...)
  36986. +void err(int status, const char *format, ...)
  36987. {
  36988. va_list args;
  36989. va_start(args, format);
  36990. - verr(status, format, args);
  36991. + __verr(status, format, args);
  36992. /* This should get optimized away. We'll leave it now for safety. */
  36993. /* The loop is added only to keep gcc happy. */
  36994. while(1)
  36995. va_end(args);
  36996. }
  36997. -void verrx(int status, const char *format, va_list args)
  36998. +static void attribute_noreturn __verrx(int status, const char *format, va_list args)
  36999. {
  37000. - vwarnx(format, args);
  37001. + __vwarnx(format, args);
  37002. exit(status);
  37003. }
  37004. -libc_hidden_def(verrx)
  37005. +strong_alias(__verrx,verrx)
  37006. -void attribute_noreturn errx(int status, const char *format, ...)
  37007. +void errx(int status, const char *format, ...)
  37008. {
  37009. va_list args;
  37010. va_start(args, format);
  37011. - verrx(status, format, args);
  37012. + __verrx(status, format, args);
  37013. /* This should get optimized away. We'll leave it now for safety. */
  37014. /* The loop is added only to keep gcc happy. */
  37015. while(1)
  37016. diff -Nur uClibc-0.9.33.2/libc/misc/error/error.c uClibc-git/libc/misc/error/error.c
  37017. --- uClibc-0.9.33.2/libc/misc/error/error.c 2012-05-15 09:20:09.000000000 +0200
  37018. +++ uClibc-git/libc/misc/error/error.c 2014-06-02 17:40:33.998711896 +0200
  37019. @@ -13,9 +13,8 @@
  37020. Lesser General Public License for more details.
  37021. You should have received a copy of the GNU Lesser General Public
  37022. - License along with the GNU C Library; if not, write to the Free
  37023. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  37024. - 02111-1307 USA. */
  37025. + License along with the GNU C Library; if not, see
  37026. + <http://www.gnu.org/licenses/>. */
  37027. /* Written by David MacKenzie <djm@gnu.ai.mit.edu>. */
  37028. /* Adjusted slightly by Erik Andersen <andersen@uclibc.org> */
  37029. @@ -37,8 +36,7 @@
  37030. function without parameters instead. */
  37031. void (*error_print_progname) (void) = NULL;
  37032. -extern __typeof(error) __error attribute_hidden;
  37033. -void __error (int status, int errnum, const char *message, ...)
  37034. +void error (int status, int errnum, const char *message, ...)
  37035. {
  37036. va_list args;
  37037. @@ -60,11 +58,9 @@
  37038. if (status)
  37039. exit (status);
  37040. }
  37041. -weak_alias(__error,error)
  37042. -extern __typeof(error_at_line) __error_at_line attribute_hidden;
  37043. -void __error_at_line (int status, int errnum, const char *file_name,
  37044. - unsigned int line_number, const char *message, ...)
  37045. +void error_at_line (int status, int errnum, const char *file_name,
  37046. + unsigned int line_number, const char *message, ...)
  37047. {
  37048. va_list args;
  37049. @@ -103,4 +99,3 @@
  37050. if (status)
  37051. exit (status);
  37052. }
  37053. -weak_alias(__error_at_line,error_at_line)
  37054. diff -Nur uClibc-0.9.33.2/libc/misc/error/Makefile.in uClibc-git/libc/misc/error/Makefile.in
  37055. --- uClibc-0.9.33.2/libc/misc/error/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  37056. +++ uClibc-git/libc/misc/error/Makefile.in 2014-06-02 17:40:33.998711896 +0200
  37057. @@ -7,19 +7,15 @@
  37058. subdirs += libc/misc/error
  37059. -CSRC :=
  37060. -ifeq ($(UCLIBC_HAS_BSD_ERR),y)
  37061. -CSRC += err.c
  37062. -endif
  37063. -ifeq ($(UCLIBC_HAS_GNU_ERROR),y)
  37064. -CSRC += error.c
  37065. -endif
  37066. +CSRC-y :=
  37067. +CSRC-$(UCLIBC_HAS_BSD_ERR) += err.c
  37068. +CSRC-$(UCLIBC_HAS_GNU_ERROR) += error.c
  37069. MISC_ERROR_DIR := $(top_srcdir)libc/misc/error
  37070. MISC_ERROR_OUT := $(top_builddir)libc/misc/error
  37071. -MISC_ERROR_SRC := $(patsubst %.c,$(MISC_ERROR_DIR)/%.c,$(CSRC))
  37072. -MISC_ERROR_OBJ := $(patsubst %.c,$(MISC_ERROR_OUT)/%.o,$(CSRC))
  37073. +MISC_ERROR_SRC := $(patsubst %.c,$(MISC_ERROR_DIR)/%.c,$(CSRC-y))
  37074. +MISC_ERROR_OBJ := $(patsubst %.c,$(MISC_ERROR_OUT)/%.o,$(CSRC-y))
  37075. libc-y += $(MISC_ERROR_OBJ)
  37076. diff -Nur uClibc-0.9.33.2/libc/misc/file/isfdtype.c uClibc-git/libc/misc/file/isfdtype.c
  37077. --- uClibc-0.9.33.2/libc/misc/file/isfdtype.c 1970-01-01 01:00:00.000000000 +0100
  37078. +++ uClibc-git/libc/misc/file/isfdtype.c 2014-06-02 17:40:33.998711896 +0200
  37079. @@ -0,0 +1,40 @@
  37080. +/* Determine whether descriptor has given property.
  37081. + Copyright (C) 1996-2013 Free Software Foundation, Inc.
  37082. + This file is part of the GNU C Library.
  37083. +
  37084. + The GNU C Library is free software; you can redistribute it and/or
  37085. + modify it under the terms of the GNU Lesser General Public
  37086. + License as published by the Free Software Foundation; either
  37087. + version 2.1 of the License, or (at your option) any later version.
  37088. +
  37089. + The GNU C Library is distributed in the hope that it will be useful,
  37090. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  37091. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  37092. + Lesser General Public License for more details.
  37093. +
  37094. + You should have received a copy of the GNU Lesser General Public
  37095. + License along with the GNU C Library; if not, see
  37096. + <http://www.gnu.org/licenses/>. */
  37097. +
  37098. +#include <errno.h>
  37099. +#include <sys/stat.h>
  37100. +#include <sys/socket.h>
  37101. +#include <sys/types.h>
  37102. +#ifdef __UCLIBC_HAS_LFS__
  37103. +# include <_lfs_64.h>
  37104. +#else
  37105. +# define stat64 stat
  37106. +# define fstat64 fstat
  37107. +#endif
  37108. +
  37109. +int
  37110. +isfdtype (int fildes, int fdtype)
  37111. +{
  37112. + struct stat64 st;
  37113. + int save_error = errno;
  37114. + int result = fstat64 (fildes, &st);
  37115. + __set_errno (save_error);
  37116. + if (result)
  37117. + return result;
  37118. + return (st.st_mode & S_IFMT) == (mode_t) fdtype;
  37119. +}
  37120. diff -Nur uClibc-0.9.33.2/libc/misc/file/lockf64.c uClibc-git/libc/misc/file/lockf64.c
  37121. --- uClibc-0.9.33.2/libc/misc/file/lockf64.c 2012-05-15 09:20:09.000000000 +0200
  37122. +++ uClibc-git/libc/misc/file/lockf64.c 2014-06-02 17:40:33.998711896 +0200
  37123. @@ -13,8 +13,7 @@
  37124. You should have received a copy of the GNU Library General Public
  37125. License along with the GNU C Library; see the file COPYING.LIB. If not,
  37126. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  37127. - Boston, MA 02111-1307, USA. */
  37128. + see <http://www.gnu.org/licenses/>. */
  37129. #include <_lfs_64.h>
  37130. @@ -90,4 +89,3 @@
  37131. return fcntl(fd, cmd, &fl);
  37132. }
  37133. -libc_hidden_def(lockf64)
  37134. diff -Nur uClibc-0.9.33.2/libc/misc/file/lockf.c uClibc-git/libc/misc/file/lockf.c
  37135. --- uClibc-0.9.33.2/libc/misc/file/lockf.c 2012-05-15 09:20:09.000000000 +0200
  37136. +++ uClibc-git/libc/misc/file/lockf.c 2014-06-02 17:40:33.998711896 +0200
  37137. @@ -13,19 +13,15 @@
  37138. You should have received a copy of the GNU Library General Public
  37139. License along with the GNU C Library; see the file COPYING.LIB. If not,
  37140. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  37141. - Boston, MA 02111-1307, USA. */
  37142. + see <http://www.gnu.org/licenses/>. */
  37143. #include <features.h>
  37144. -
  37145. #include <sys/types.h>
  37146. -#include <unistd.h>
  37147. #include <fcntl.h>
  37148. +#include <unistd.h>
  37149. #include <errno.h>
  37150. #include <string.h>
  37151. -
  37152. -
  37153. /* lockf is a simplified interface to fcntl's locking facilities. */
  37154. int lockf (int fd, int cmd, off_t len)
  37155. diff -Nur uClibc-0.9.33.2/libc/misc/file/Makefile.in uClibc-git/libc/misc/file/Makefile.in
  37156. --- uClibc-0.9.33.2/libc/misc/file/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  37157. +++ uClibc-git/libc/misc/file/Makefile.in 2014-06-02 17:40:33.998711896 +0200
  37158. @@ -10,12 +10,12 @@
  37159. MISC_FILE_DIR := $(top_srcdir)libc/misc/file
  37160. MISC_FILE_OUT := $(top_builddir)libc/misc/file
  37161. -MISC_FILE_SRC := $(wildcard $(MISC_FILE_DIR)/*.c)
  37162. -ifneq ($(UCLIBC_HAS_LFS),y)
  37163. -MISC_FILE_SRC := $(filter-out $(MISC_FILE_DIR)/lockf64.c,$(MISC_FILE_SRC))
  37164. -endif
  37165. -MISC_FILE_OBJ := $(patsubst $(MISC_FILE_DIR)/%.c,$(MISC_FILE_OUT)/%.o,$(MISC_FILE_SRC))
  37166. +CSRC-y := $(wildcard $(MISC_FILE_DIR)/*.c)
  37167. +CSRC_LFS := $(wildcard $(MISC_FILE_DIR)/*64.c)
  37168. +CSRC-y := $(filter-out $(CSRC_LFS),$(CSRC-y))
  37169. +CSRC-$(UCLIBC_HAS_LFS) += $(CSRC_LFS)
  37170. +MISC_FILE_OBJ := $(patsubst $(MISC_FILE_DIR)/%.c,$(MISC_FILE_OUT)/%.o,$(CSRC-y))
  37171. libc-y += $(MISC_FILE_OBJ)
  37172. libc-nomulti-$(UCLIBC_HAS_LFS) += $(MISC_FILE_OUT)/lockf64.o
  37173. diff -Nur uClibc-0.9.33.2/libc/misc/fnmatch/fnmatch.c uClibc-git/libc/misc/fnmatch/fnmatch.c
  37174. --- uClibc-0.9.33.2/libc/misc/fnmatch/fnmatch.c 2012-05-15 09:20:09.000000000 +0200
  37175. +++ uClibc-git/libc/misc/fnmatch/fnmatch.c 2014-06-02 17:40:34.002711919 +0200
  37176. @@ -13,9 +13,8 @@
  37177. Lesser General Public License for more details.
  37178. You should have received a copy of the GNU Lesser General Public
  37179. - License along with the GNU C Library; if not, write to the Free
  37180. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  37181. - 02111-1307 USA. */
  37182. + License along with the GNU C Library; if not, see
  37183. + <http://www.gnu.org/licenses/>. */
  37184. #ifdef HAVE_CONFIG_H
  37185. # include <config.h>
  37186. @@ -54,10 +53,6 @@
  37187. # include <stdlib.h>
  37188. #endif
  37189. -#ifdef __UCLIBC__
  37190. -# define __memset memset
  37191. -#endif
  37192. -
  37193. /* For platform which support the ISO C amendement 1 functionality we
  37194. support user defined character classes. */
  37195. #if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H)
  37196. @@ -347,7 +342,7 @@
  37197. wchar_t *wstring = NULL;
  37198. /* Convert the strings into wide characters. */
  37199. - __memset (&ps, '\0', sizeof (ps));
  37200. + memset (&ps, '\0', sizeof (ps));
  37201. p = pattern;
  37202. #ifdef _LIBC
  37203. n = strnlen (pattern, 1024);
  37204. @@ -364,7 +359,7 @@
  37205. already done? */
  37206. return -1;
  37207. if (p)
  37208. - __memset (&ps, '\0', sizeof (ps));
  37209. + memset (&ps, '\0', sizeof (ps));
  37210. }
  37211. if (__builtin_expect (p != NULL, 0))
  37212. {
  37213. @@ -396,7 +391,7 @@
  37214. already done? */
  37215. return -1;
  37216. if (p)
  37217. - __memset (&ps, '\0', sizeof (ps));
  37218. + memset (&ps, '\0', sizeof (ps));
  37219. }
  37220. if (__builtin_expect (p != NULL, 0))
  37221. {
  37222. diff -Nur uClibc-0.9.33.2/libc/misc/fnmatch/fnmatch_loop.c uClibc-git/libc/misc/fnmatch/fnmatch_loop.c
  37223. --- uClibc-0.9.33.2/libc/misc/fnmatch/fnmatch_loop.c 2012-05-15 09:20:09.000000000 +0200
  37224. +++ uClibc-git/libc/misc/fnmatch/fnmatch_loop.c 2014-06-02 17:40:34.002711919 +0200
  37225. @@ -13,9 +13,8 @@
  37226. Lesser General Public License for more details.
  37227. You should have received a copy of the GNU Lesser General Public
  37228. - License along with the GNU C Library; if not, write to the Free
  37229. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  37230. - 02111-1307 USA. */
  37231. + License along with the GNU C Library; if not, see
  37232. + <http://www.gnu.org/licenses/>. */
  37233. /* Match STRING against the filename pattern PATTERN, returning zero if
  37234. it matches, nonzero if not. */
  37235. @@ -508,7 +507,7 @@
  37236. if (symb_table[2 * elem] == hash
  37237. && (c1
  37238. == extra[symb_table[2 * elem + 1]])
  37239. - && __memcmp (str,
  37240. + && memcmp (str,
  37241. &extra[symb_table[2 * elem
  37242. + 1]
  37243. + 1], c1) == 0)
  37244. @@ -729,7 +728,7 @@
  37245. if (symb_table[2 * elem] == hash
  37246. && (c1
  37247. == extra[symb_table[2 * elem + 1]])
  37248. - && __memcmp (str,
  37249. + && memcmp (str,
  37250. &extra[symb_table[2 * elem + 1]
  37251. + 1], c1) == 0)
  37252. {
  37253. diff -Nur uClibc-0.9.33.2/libc/misc/fnmatch/fnmatch_old.c uClibc-git/libc/misc/fnmatch/fnmatch_old.c
  37254. --- uClibc-0.9.33.2/libc/misc/fnmatch/fnmatch_old.c 2012-05-15 09:20:09.000000000 +0200
  37255. +++ uClibc-git/libc/misc/fnmatch/fnmatch_old.c 2014-06-02 17:40:34.002711919 +0200
  37256. @@ -12,8 +12,7 @@
  37257. You should have received a copy of the GNU Library General Public
  37258. License along with this library; see the file COPYING.LIB. If
  37259. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  37260. -Cambridge, MA 02139, USA. */
  37261. +not, see <http://www.gnu.org/licenses/>. */
  37262. #ifdef HAVE_CONFIG_H
  37263. # include <config.h>
  37264. diff -Nur uClibc-0.9.33.2/libc/misc/fnmatch/Makefile.in uClibc-git/libc/misc/fnmatch/Makefile.in
  37265. --- uClibc-0.9.33.2/libc/misc/fnmatch/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  37266. +++ uClibc-git/libc/misc/fnmatch/Makefile.in 2014-06-02 17:40:34.002711919 +0200
  37267. @@ -7,17 +7,13 @@
  37268. subdirs += libc/misc/fnmatch
  37269. -ifeq ($(UCLIBC_HAS_FNMATCH_OLD),y)
  37270. -CSRC := fnmatch_old.c
  37271. -else
  37272. -CSRC := fnmatch.c
  37273. -endif
  37274. +CSRC-y := $(if $(UCLIBC_HAS_FNMATCH_OLD),fnmatch_old.c,fnmatch.c)
  37275. MISC_FNMATCH_DIR := $(top_srcdir)libc/misc/fnmatch
  37276. MISC_FNMATCH_OUT := $(top_builddir)libc/misc/fnmatch
  37277. -MISC_FNMATCH_SRC := $(patsubst %.c,$(MISC_FNMATCH_DIR)/%.c,$(CSRC))
  37278. -MISC_FNMATCH_OBJ := $(patsubst %.c,$(MISC_FNMATCH_OUT)/%.o,$(CSRC))
  37279. +MISC_FNMATCH_SRC := $(patsubst %.c,$(MISC_FNMATCH_DIR)/%.c,$(CSRC-y))
  37280. +MISC_FNMATCH_OBJ := $(patsubst %.c,$(MISC_FNMATCH_OUT)/%.o,$(CSRC-y))
  37281. libc-$(UCLIBC_HAS_FNMATCH) += $(MISC_FNMATCH_OBJ)
  37282. diff -Nur uClibc-0.9.33.2/libc/misc/fts/fts.c uClibc-git/libc/misc/fts/fts.c
  37283. --- uClibc-0.9.33.2/libc/misc/fts/fts.c 2012-05-15 09:20:09.000000000 +0200
  37284. +++ uClibc-git/libc/misc/fts/fts.c 2014-06-02 17:40:34.002711919 +0200
  37285. @@ -38,6 +38,7 @@
  37286. #include <unistd.h>
  37287. #ifdef __UCLIBC_HAS_LFS__
  37288. +/* this is wrong, either you include this header as first, or not at all */
  37289. # include <_lfs_64.h>
  37290. #else
  37291. # define stat64 stat
  37292. @@ -576,7 +577,7 @@
  37293. FTSENT *cur, *tail;
  37294. DIR *dirp;
  37295. void *oldaddr;
  37296. - int cderrno, descend, len, level, nlinks, saved_errno,
  37297. + int /*cderrno,*/ descend, len, level, nlinks, saved_errno,
  37298. nostat, doadjust;
  37299. size_t maxlen;
  37300. char *cp;
  37301. @@ -641,14 +642,14 @@
  37302. * needed sorted entries or stat information, they had better be
  37303. * checking FTS_NS on the returned nodes.
  37304. */
  37305. - cderrno = 0;
  37306. + /* cderrno = 0; */
  37307. if (nlinks || type == BREAD) {
  37308. if (fts_safe_changedir(sp, cur, dirfd(dirp), NULL)) {
  37309. if (nlinks && type == BREAD)
  37310. cur->fts_errno = errno;
  37311. cur->fts_flags |= FTS_DONTCHDIR;
  37312. descend = 0;
  37313. - cderrno = errno;
  37314. + /* cderrno = errno; */
  37315. (void)closedir(dirp);
  37316. dirp = NULL;
  37317. } else
  37318. diff -Nur uClibc-0.9.33.2/libc/misc/fts/Makefile.in uClibc-git/libc/misc/fts/Makefile.in
  37319. --- uClibc-0.9.33.2/libc/misc/fts/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  37320. +++ uClibc-git/libc/misc/fts/Makefile.in 2014-06-02 17:40:34.002711919 +0200
  37321. @@ -7,13 +7,13 @@
  37322. #
  37323. subdirs += libc/misc/fts
  37324. -CSRC := fts.c
  37325. +CSRC-y := fts.c
  37326. MISC_FTS_DIR := $(top_srcdir)libc/misc/fts
  37327. MISC_FTS_OUT := $(top_builddir)libc/misc/fts
  37328. -MISC_FTS_SRC := $(patsubst %.c,$(MISC_FTS_DIR)/%.c,$(CSRC))
  37329. -MISC_FTS_OBJ := $(patsubst %.c,$(MISC_FTS_OUT)/%.o,$(CSRC))
  37330. +MISC_FTS_SRC := $(patsubst %.c,$(MISC_FTS_DIR)/%.c,$(CSRC-y))
  37331. +MISC_FTS_OBJ := $(patsubst %.c,$(MISC_FTS_OUT)/%.o,$(CSRC-y))
  37332. libc-$(UCLIBC_HAS_FTS) += $(MISC_FTS_OBJ)
  37333. diff -Nur uClibc-0.9.33.2/libc/misc/ftw/ftw64.c uClibc-git/libc/misc/ftw/ftw64.c
  37334. --- uClibc-0.9.33.2/libc/misc/ftw/ftw64.c 2012-05-15 09:20:09.000000000 +0200
  37335. +++ uClibc-git/libc/misc/ftw/ftw64.c 2014-06-02 17:40:34.002711919 +0200
  37336. @@ -14,9 +14,8 @@
  37337. Lesser General Public License for more details.
  37338. You should have received a copy of the GNU Lesser General Public
  37339. - License along with the GNU C Library; if not, write to the Free
  37340. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  37341. - 02111-1307 USA. */
  37342. + License along with the GNU C Library; if not, see
  37343. + <http://www.gnu.org/licenses/>. */
  37344. #define FTW_NAME ftw64
  37345. #define NFTW_NAME nftw64
  37346. diff -Nur uClibc-0.9.33.2/libc/misc/ftw/ftw.c uClibc-git/libc/misc/ftw/ftw.c
  37347. --- uClibc-0.9.33.2/libc/misc/ftw/ftw.c 2012-05-15 09:20:09.000000000 +0200
  37348. +++ uClibc-git/libc/misc/ftw/ftw.c 2014-06-02 17:40:34.002711919 +0200
  37349. @@ -14,15 +14,16 @@
  37350. Lesser General Public License for more details.
  37351. You should have received a copy of the GNU Lesser General Public
  37352. - License along with the GNU C Library; if not, write to the Free
  37353. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  37354. - 02111-1307 USA. */
  37355. + License along with the GNU C Library; if not, see
  37356. + <http://www.gnu.org/licenses/>. */
  37357. #ifdef HAVE_CONFIG_H
  37358. # include <config.h>
  37359. #endif
  37360. #include <features.h>
  37361. +/* need errno.h before undefining _LIBC */
  37362. +#include <errno.h>
  37363. #ifdef __UCLIBC__
  37364. #undef _LIBC
  37365. #define HAVE_DIRENT_H 1
  37366. @@ -32,6 +33,7 @@
  37367. #endif
  37368. #if __GNUC__
  37369. +# undef alloca
  37370. # define alloca __builtin_alloca
  37371. #else
  37372. # if HAVE_ALLOCA_H
  37373. @@ -67,7 +69,6 @@
  37374. # endif
  37375. #endif
  37376. -#include <errno.h>
  37377. #include <ftw.h>
  37378. #include <limits.h>
  37379. #include <search.h>
  37380. @@ -77,11 +78,7 @@
  37381. #if HAVE_SYS_PARAM_H || defined _LIBC
  37382. # include <sys/param.h>
  37383. #endif
  37384. -#ifdef _LIBC
  37385. -# include <include/sys/stat.h>
  37386. -#else
  37387. -# include <sys/stat.h>
  37388. -#endif
  37389. +#include <sys/stat.h>
  37390. #if !defined _LIBC && !HAVE_DECL_STPCPY && !defined stpcpy
  37391. char *stpcpy ();
  37392. diff -Nur uClibc-0.9.33.2/libc/misc/ftw/Makefile.in uClibc-git/libc/misc/ftw/Makefile.in
  37393. --- uClibc-0.9.33.2/libc/misc/ftw/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  37394. +++ uClibc-git/libc/misc/ftw/Makefile.in 2014-06-02 17:40:34.002711919 +0200
  37395. @@ -7,16 +7,14 @@
  37396. subdirs += libc/misc/ftw
  37397. -CSRC := ftw.c
  37398. -ifeq ($(UCLIBC_HAS_LFS),y)
  37399. -CSRC += ftw64.c
  37400. -endif
  37401. +CSRC-y := ftw.c
  37402. +CSRC-$(UCLIBC_HAS_LFS) += ftw64.c
  37403. MISC_FTW_DIR := $(top_srcdir)libc/misc/ftw
  37404. MISC_FTW_OUT := $(top_builddir)libc/misc/ftw
  37405. -MISC_FTW_SRC := $(patsubst %.c,$(MISC_FTW_DIR)/%.c,$(CSRC))
  37406. -MISC_FTW_OBJ := $(patsubst %.c,$(MISC_FTW_OUT)/%.o,$(CSRC))
  37407. +MISC_FTW_SRC := $(patsubst %.c,$(MISC_FTW_DIR)/%.c,$(CSRC-y))
  37408. +MISC_FTW_OBJ := $(patsubst %.c,$(MISC_FTW_OUT)/%.o,$(CSRC-y))
  37409. libc-$(findstring y,$(UCLIBC_HAS_FTW)$(UCLIBC_HAS_NFTW)) += $(MISC_FTW_OBJ)
  37410. diff -Nur uClibc-0.9.33.2/libc/misc/glob/glob.c uClibc-git/libc/misc/glob/glob.c
  37411. --- uClibc-0.9.33.2/libc/misc/glob/glob.c 2012-05-15 09:20:09.000000000 +0200
  37412. +++ uClibc-git/libc/misc/glob/glob.c 2014-06-02 17:40:34.002711919 +0200
  37413. @@ -12,9 +12,8 @@
  37414. Lesser General Public License for more details.
  37415. You should have received a copy of the GNU Lesser General Public
  37416. - License along with the GNU C Library; if not, write to the Free
  37417. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  37418. - 02111-1307 USA. */
  37419. + License along with the GNU C Library; if not, see
  37420. + <http://www.gnu.org/licenses/>. */
  37421. #undef ENABLE_GLOB_BRACE_EXPANSION
  37422. #undef ENABLE_GLOB_TILDE_EXPANSION
  37423. diff -Nur uClibc-0.9.33.2/libc/misc/glob/Makefile.in uClibc-git/libc/misc/glob/Makefile.in
  37424. --- uClibc-0.9.33.2/libc/misc/glob/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  37425. +++ uClibc-git/libc/misc/glob/Makefile.in 2014-06-02 17:40:34.002711919 +0200
  37426. @@ -7,23 +7,15 @@
  37427. subdirs += libc/misc/glob
  37428. -ifeq ($(UCLIBC_HAS_GNU_GLOB),y)
  37429. -CSRC := glob.c
  37430. -ifeq ($(UCLIBC_HAS_LFS),y)
  37431. -CSRC += glob64.c
  37432. -endif
  37433. -else
  37434. -CSRC := glob-susv3.c
  37435. -ifeq ($(UCLIBC_HAS_LFS),y)
  37436. -CSRC += glob64-susv3.c
  37437. -endif
  37438. -endif
  37439. +VARIANT := $(if $(UCLIBC_HAS_GNU_GLOB),,-susv3)
  37440. +CSRC-y := glob$(VARIANT).c
  37441. +CSRC-$(UCLIBC_HAS_LFS) += glob64$(VARIANT).c
  37442. MISC_GLOB_DIR := $(top_srcdir)libc/misc/glob
  37443. MISC_GLOB_OUT := $(top_builddir)libc/misc/glob
  37444. -MISC_GLOB_SRC := $(patsubst %.c,$(MISC_GLOB_DIR)/%.c,$(CSRC))
  37445. -MISC_GLOB_OBJ := $(patsubst %.c,$(MISC_GLOB_OUT)/%.o,$(CSRC))
  37446. +MISC_GLOB_SRC := $(patsubst %.c,$(MISC_GLOB_DIR)/%.c,$(CSRC-y))
  37447. +MISC_GLOB_OBJ := $(patsubst %.c,$(MISC_GLOB_OUT)/%.o,$(CSRC-y))
  37448. libc-$(UCLIBC_HAS_GLOB) += $(MISC_GLOB_OBJ)
  37449. diff -Nur uClibc-0.9.33.2/libc/misc/gnu/Makefile.in uClibc-git/libc/misc/gnu/Makefile.in
  37450. --- uClibc-0.9.33.2/libc/misc/gnu/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  37451. +++ uClibc-git/libc/misc/gnu/Makefile.in 2014-06-02 17:40:34.002711919 +0200
  37452. @@ -7,13 +7,14 @@
  37453. subdirs += libc/misc/gnu
  37454. -CSRC := obstack.c
  37455. +CSRC-y :=
  37456. +CSRC-$(UCLIBC_HAS_OBSTACK) := obstack.c obprintf.c
  37457. MISC_GNU_DIR := $(top_srcdir)libc/misc/gnu
  37458. MISC_GNU_OUT := $(top_builddir)libc/misc/gnu
  37459. -MISC_GNU_SRC := $(MISC_GNU_DIR)/obstack.c
  37460. -MISC_GNU_OBJ := $(MISC_GNU_OUT)/obstack.o
  37461. +MISC_GNU_SRC := $(patsubst %.c,$(MISC_GNU_DIR)/%.c,$(CSRC-y))
  37462. +MISC_GNU_OBJ := $(patsubst %.c,$(MISC_GNU_OUT)/%.o,$(CSRC-y))
  37463. libc-y += $(MISC_GNU_OBJ)
  37464. diff -Nur uClibc-0.9.33.2/libc/misc/gnu/obprintf.c uClibc-git/libc/misc/gnu/obprintf.c
  37465. --- uClibc-0.9.33.2/libc/misc/gnu/obprintf.c 1970-01-01 01:00:00.000000000 +0100
  37466. +++ uClibc-git/libc/misc/gnu/obprintf.c 2014-06-02 17:40:34.002711919 +0200
  37467. @@ -0,0 +1,29 @@
  37468. +/* Copyright (C) 2013 Gentoo Foundation
  37469. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  37470. + */
  37471. +
  37472. +#include <stdio.h>
  37473. +#include <stdarg.h>
  37474. +#include <obstack.h>
  37475. +
  37476. +int
  37477. +obstack_vprintf (struct obstack *obstack, const char *format, va_list args)
  37478. +{
  37479. + int n;
  37480. + char *s;
  37481. + n = vasprintf(&s, format, args);
  37482. + obstack_grow(obstack, s, n);
  37483. + return n;
  37484. +}
  37485. +libc_hidden_def(obstack_vprintf)
  37486. +
  37487. +int
  37488. +obstack_printf (struct obstack *obstack, const char *format, ...)
  37489. +{
  37490. + int n;
  37491. + va_list ap;
  37492. + va_start (ap, format);
  37493. + n = obstack_vprintf (obstack, format, ap);
  37494. + va_end (ap);
  37495. + return n;
  37496. +}
  37497. diff -Nur uClibc-0.9.33.2/libc/misc/gnu/obstack.c uClibc-git/libc/misc/gnu/obstack.c
  37498. --- uClibc-0.9.33.2/libc/misc/gnu/obstack.c 2012-05-15 09:20:09.000000000 +0200
  37499. +++ uClibc-git/libc/misc/gnu/obstack.c 2014-06-02 17:40:34.002711919 +0200
  37500. @@ -14,9 +14,8 @@
  37501. Lesser General Public License for more details.
  37502. You should have received a copy of the GNU Lesser General Public
  37503. - License along with the GNU C Library; if not, write to the Free
  37504. - Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  37505. - Boston, MA 02110-1301, USA. */
  37506. + License along with the GNU C Library; if not, see
  37507. + <http://www.gnu.org/licenses/>. */
  37508. #ifdef HAVE_CONFIG_H
  37509. @@ -30,11 +29,6 @@
  37510. #else
  37511. # define HAVE_INTTYPES_H 1
  37512. # define HAVE_STDINT_H 1
  37513. -# define SHLIB_COMPAT(x,y,z) 0
  37514. -# undef libc_hidden_def
  37515. -# define libc_hidden_def(x)
  37516. -# undef strong_alias
  37517. -# define strong_alias(x,y)
  37518. #endif
  37519. #else
  37520. # include "obstack.h"
  37521. @@ -112,19 +106,19 @@
  37522. `print_and_abort'. */
  37523. static void print_and_abort (void);
  37524. static void (*__obstack_alloc_failed_handler) (void) = print_and_abort;
  37525. -weak_alias(__obstack_alloc_failed_handler,obstack_alloc_failed_handler)
  37526. +strong_alias(__obstack_alloc_failed_handler,obstack_alloc_failed_handler)
  37527. /* Exit value used when `print_and_abort' is used. */
  37528. # include <stdlib.h>
  37529. # ifdef _LIBC
  37530. static int __obstack_exit_failure = EXIT_FAILURE;
  37531. -weak_alias(__obstack_exit_failure,obstack_exit_failure)
  37532. +strong_alias(__obstack_exit_failure,obstack_exit_failure)
  37533. # else
  37534. # include "exitfail.h"
  37535. # define __obstack_exit_failure exit_failure
  37536. # endif
  37537. -# ifdef _LIBC
  37538. +# if 0
  37539. # if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)
  37540. /* A looong time ago (before 1994, anyway; we're not sure) this global variable
  37541. was used by non-GNU-C macros to avoid multiple evaluation. The GNU C
  37542. @@ -328,9 +322,7 @@
  37543. /* The new chunk certainly contains no empty object yet. */
  37544. h->maybe_empty_object = 0;
  37545. }
  37546. -# ifdef _LIBC
  37547. -libc_hidden_def (_obstack_newchunk)
  37548. -# endif
  37549. +libc_hidden_def(_obstack_newchunk)
  37550. /* Return nonzero if object OBJ has been allocated from obstack H.
  37551. This is here for debugging.
  37552. @@ -393,7 +385,7 @@
  37553. abort ();
  37554. }
  37555. -# ifdef _LIBC
  37556. +# if 0
  37557. /* Older versions of libc used a function _obstack_free intended to be
  37558. called by non-GCC compilers. */
  37559. strong_alias (obstack_free, _obstack_free)
  37560. @@ -418,9 +410,6 @@
  37561. # else
  37562. # include "gettext.h"
  37563. # endif
  37564. -/* NLS: Disable gettext in obstack for now: */
  37565. -# undef _
  37566. -# define _(Str) (Str)
  37567. # ifndef _
  37568. # define _(msgid) gettext (msgid)
  37569. # endif
  37570. diff -Nur uClibc-0.9.33.2/libc/misc/internals/errno.c uClibc-git/libc/misc/internals/errno.c
  37571. --- uClibc-0.9.33.2/libc/misc/internals/errno.c 2012-05-15 09:20:09.000000000 +0200
  37572. +++ uClibc-git/libc/misc/internals/errno.c 2014-06-02 17:40:34.006711940 +0200
  37573. @@ -1,21 +1,14 @@
  37574. #include <features.h>
  37575. +#include <errno.h>
  37576. +#undef errno
  37577. #ifdef __UCLIBC_HAS_TLS__
  37578. __thread int errno;
  37579. -__thread int h_errno;
  37580. -
  37581. extern __thread int __libc_errno __attribute__ ((alias ("errno"))) attribute_hidden;
  37582. -extern __thread int __libc_h_errno __attribute__ ((alias ("h_errno"))) attribute_hidden;
  37583. -#define h_errno __libc_h_errno
  37584. -
  37585. #else
  37586. -#include "internal_errno.h"
  37587. +extern int errno;
  37588. int errno = 0;
  37589. -int h_errno = 0;
  37590. -#ifdef __UCLIBC_HAS_THREADS__
  37591. -libc_hidden_def(errno)
  37592. -weak_alias(errno, _errno)
  37593. -libc_hidden_def(h_errno)
  37594. -weak_alias(h_errno, _h_errno)
  37595. -#endif
  37596. +# ifdef __UCLIBC_HAS_THREADS__
  37597. +strong_alias(errno,_errno)
  37598. +# endif
  37599. #endif
  37600. diff -Nur uClibc-0.9.33.2/libc/misc/internals/__errno_location.c uClibc-git/libc/misc/internals/__errno_location.c
  37601. --- uClibc-0.9.33.2/libc/misc/internals/__errno_location.c 2012-05-15 09:20:09.000000000 +0200
  37602. +++ uClibc-git/libc/misc/internals/__errno_location.c 2014-06-02 17:40:34.002711919 +0200
  37603. @@ -4,17 +4,15 @@
  37604. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  37605. */
  37606. -#include "internal_errno.h"
  37607. +#include <features.h>
  37608. +#include <errno.h>
  37609. -/* psm: moved to bits/errno.h: */
  37610. -int *
  37611. -#ifndef __UCLIBC_HAS_THREADS__
  37612. -weak_const_function
  37613. +#ifndef __UCLIBC_HAS_TLS__
  37614. +# undef errno
  37615. +extern int errno;
  37616. #endif
  37617. -__errno_location (void)
  37618. +
  37619. +int weak_const_function *__errno_location(void)
  37620. {
  37621. return &errno;
  37622. }
  37623. -#ifdef IS_IN_libc /* not really need, only to keep in sync w/ libc_hidden_proto */
  37624. -libc_hidden_weak(__errno_location)
  37625. -#endif
  37626. diff -Nur uClibc-0.9.33.2/libc/misc/internals/h_errno.c uClibc-git/libc/misc/internals/h_errno.c
  37627. --- uClibc-0.9.33.2/libc/misc/internals/h_errno.c 1970-01-01 01:00:00.000000000 +0100
  37628. +++ uClibc-git/libc/misc/internals/h_errno.c 2014-06-02 17:40:34.006711940 +0200
  37629. @@ -0,0 +1,14 @@
  37630. +#include <features.h>
  37631. +#include <netdb.h>
  37632. +#undef h_errno
  37633. +
  37634. +#ifdef __UCLIBC_HAS_TLS__
  37635. +__thread int h_errno;
  37636. +extern __thread int __libc_h_errno __attribute__ ((alias ("h_errno"))) attribute_hidden;
  37637. +#else
  37638. +extern int h_errno;
  37639. +int h_errno = 0;
  37640. +# ifdef __UCLIBC_HAS_THREADS__
  37641. +strong_alias(h_errno,_h_errno)
  37642. +# endif
  37643. +#endif
  37644. diff -Nur uClibc-0.9.33.2/libc/misc/internals/__h_errno_location.c uClibc-git/libc/misc/internals/__h_errno_location.c
  37645. --- uClibc-0.9.33.2/libc/misc/internals/__h_errno_location.c 2012-05-15 09:20:09.000000000 +0200
  37646. +++ uClibc-git/libc/misc/internals/__h_errno_location.c 2014-06-02 17:40:34.006711940 +0200
  37647. @@ -4,10 +4,15 @@
  37648. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  37649. */
  37650. -#include "internal_errno.h"
  37651. +#include <features.h>
  37652. +#include <netdb.h>
  37653. -int * weak_const_function __h_errno_location (void)
  37654. +#ifndef __UCLIBC_HAS_TLS__
  37655. +# undef h_errno
  37656. +extern int h_errno;
  37657. +#endif
  37658. +
  37659. +int weak_const_function *__h_errno_location(void)
  37660. {
  37661. return &h_errno;
  37662. }
  37663. -libc_hidden_weak(__h_errno_location)
  37664. diff -Nur uClibc-0.9.33.2/libc/misc/internals/internal_errno.h uClibc-git/libc/misc/internals/internal_errno.h
  37665. --- uClibc-0.9.33.2/libc/misc/internals/internal_errno.h 2012-05-15 09:20:09.000000000 +0200
  37666. +++ uClibc-git/libc/misc/internals/internal_errno.h 1970-01-01 01:00:00.000000000 +0100
  37667. @@ -1,21 +0,0 @@
  37668. -/*
  37669. - *
  37670. - */
  37671. -
  37672. -#include <features.h>
  37673. -#include <errno.h>
  37674. -#include <netdb.h>
  37675. -
  37676. -#ifndef __UCLIBC_HAS_TLS__
  37677. -
  37678. -#undef errno
  37679. -#undef h_errno
  37680. -
  37681. -extern int h_errno;
  37682. -extern int errno;
  37683. -
  37684. -#ifdef __UCLIBC_HAS_THREADS__
  37685. -libc_hidden_proto(h_errno)
  37686. -libc_hidden_proto(errno)
  37687. -#endif
  37688. -#endif
  37689. diff -Nur uClibc-0.9.33.2/libc/misc/internals/Makefile.in uClibc-git/libc/misc/internals/Makefile.in
  37690. --- uClibc-0.9.33.2/libc/misc/internals/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  37691. +++ uClibc-git/libc/misc/internals/Makefile.in 2014-06-02 17:40:34.002711919 +0200
  37692. @@ -7,14 +7,14 @@
  37693. subdirs += libc/misc/internals
  37694. -CSRC := tempname.c errno.c __errno_location.c __h_errno_location.c \
  37695. +CSRC-y := tempname.c errno.c h_errno.c __errno_location.c __h_errno_location.c \
  37696. parse_config.c
  37697. MISC_INTERNALS_DIR := $(top_srcdir)libc/misc/internals
  37698. MISC_INTERNALS_OUT := $(top_builddir)libc/misc/internals
  37699. -MISC_INTERNALS_SRC := $(patsubst %.c,$(MISC_INTERNALS_DIR)/%.c,$(CSRC))
  37700. -MISC_INTERNALS_OBJ := $(patsubst %.c,$(MISC_INTERNALS_OUT)/%.o,$(CSRC))
  37701. +MISC_INTERNALS_SRC := $(patsubst %.c,$(MISC_INTERNALS_DIR)/%.c,$(CSRC-y))
  37702. +MISC_INTERNALS_OBJ := $(patsubst %.c,$(MISC_INTERNALS_OUT)/%.o,$(CSRC-y))
  37703. CFLAGS-__uClibc_main.c := $(SSP_DISABLE_FLAGS)
  37704. diff -Nur uClibc-0.9.33.2/libc/misc/internals/parse_config.c uClibc-git/libc/misc/internals/parse_config.c
  37705. --- uClibc-0.9.33.2/libc/misc/internals/parse_config.c 2012-05-15 09:20:09.000000000 +0200
  37706. +++ uClibc-git/libc/misc/internals/parse_config.c 2014-06-02 17:40:34.006711940 +0200
  37707. @@ -129,7 +129,7 @@
  37708. return parser;
  37709. }
  37710. -parser_t attribute_hidden * FAST_FUNC config_open(const char *filename)
  37711. +parser_t * FAST_FUNC config_open(const char *filename)
  37712. {
  37713. return config_open2(filename, fopen_or_warn_stdin);
  37714. }
  37715. @@ -142,7 +142,7 @@
  37716. }
  37717. #endif
  37718. -void attribute_hidden FAST_FUNC config_close(parser_t *parser)
  37719. +void FAST_FUNC config_close(parser_t *parser)
  37720. {
  37721. if (parser) {
  37722. fclose(parser->fp);
  37723. @@ -176,7 +176,7 @@
  37724. (but more than 0) are found. Empty lines are always skipped (not warned about).
  37725. */
  37726. #undef config_read
  37727. -int attribute_hidden FAST_FUNC config_read(parser_t *parser, char ***tokens,
  37728. +int FAST_FUNC config_read(parser_t *parser, char ***tokens,
  37729. unsigned flags, const char *delims)
  37730. {
  37731. char *line;
  37732. diff -Nur uClibc-0.9.33.2/libc/misc/internals/tempname.c uClibc-git/libc/misc/internals/tempname.c
  37733. --- uClibc-0.9.33.2/libc/misc/internals/tempname.c 2012-05-15 09:20:09.000000000 +0200
  37734. +++ uClibc-git/libc/misc/internals/tempname.c 2014-06-02 17:40:34.006711940 +0200
  37735. @@ -13,8 +13,7 @@
  37736. You should have received a copy of the GNU Library General Public
  37737. License along with the GNU C Library; see the file COPYING.LIB. If not,
  37738. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  37739. - Boston, MA 02111-1307, USA. */
  37740. + see <http://www.gnu.org/licenses/>. */
  37741. /* March 11, 2002 Manuel Novoa III
  37742. *
  37743. @@ -58,7 +57,7 @@
  37744. for use with mk[s]temp. Will fail (-1) if DIR is non-null and
  37745. doesn't exist, none of the searched dirs exists, or there's not
  37746. enough space in TMPL. */
  37747. -int attribute_hidden ___path_search (char *tmpl, size_t tmpl_len, const char *dir,
  37748. +int ___path_search (char *tmpl, size_t tmpl_len, const char *dir,
  37749. const char *pfx /*, int try_tmpdir*/)
  37750. {
  37751. /*const char *d; */
  37752. diff -Nur uClibc-0.9.33.2/libc/misc/internals/__uClibc_main.c uClibc-git/libc/misc/internals/__uClibc_main.c
  37753. --- uClibc-0.9.33.2/libc/misc/internals/__uClibc_main.c 2012-05-15 09:20:09.000000000 +0200
  37754. +++ uClibc-git/libc/misc/internals/__uClibc_main.c 2014-06-02 17:40:34.006711940 +0200
  37755. @@ -15,9 +15,6 @@
  37756. */
  37757. #include <features.h>
  37758. -#ifndef __UCLIBC_HAS_THREADS_NATIVE__
  37759. -#define _ERRNO_H
  37760. -#endif
  37761. #include <unistd.h>
  37762. #include <stdlib.h>
  37763. #include <string.h>
  37764. @@ -25,20 +22,23 @@
  37765. #include <link.h>
  37766. #include <bits/uClibc_page.h>
  37767. #include <paths.h>
  37768. -#include <unistd.h>
  37769. -#include <asm/errno.h>
  37770. +#include <errno.h>
  37771. +#include <netdb.h>
  37772. +#include <stdio.h>
  37773. +#ifndef __ARCH_HAS_NO_LDSO__
  37774. #include <fcntl.h>
  37775. -#include <sys/stat.h>
  37776. -#include <sys/sysmacros.h>
  37777. +#endif
  37778. #ifdef __UCLIBC_HAS_THREADS_NATIVE__
  37779. -#include <errno.h>
  37780. #include <pthread-functions.h>
  37781. #include <not-cancel.h>
  37782. #include <atomic.h>
  37783. #endif
  37784. #ifdef __UCLIBC_HAS_THREADS__
  37785. #include <pthread.h>
  37786. -#endif
  37787. +#endif
  37788. +#ifdef __UCLIBC_HAS_LOCALE__
  37789. +#include <locale.h>
  37790. +#endif
  37791. #ifndef SHARED
  37792. void *__libc_stack_end = NULL;
  37793. @@ -116,12 +116,6 @@
  37794. /*
  37795. * Prototypes.
  37796. */
  37797. -extern int *weak_const_function __errno_location(void);
  37798. -extern int *weak_const_function __h_errno_location(void);
  37799. -extern void weak_function _stdio_init(void) attribute_hidden;
  37800. -#ifdef __UCLIBC_HAS_LOCALE__
  37801. -extern void weak_function _locale_init(void) attribute_hidden;
  37802. -#endif
  37803. #ifdef __UCLIBC_HAS_THREADS__
  37804. #if !defined (__UCLIBC_HAS_THREADS_NATIVE__) || defined (SHARED)
  37805. extern void weak_function __pthread_initialize_minimal(void);
  37806. @@ -146,18 +140,24 @@
  37807. # endif
  37808. #endif
  37809. -#if defined (__LDSO_STANDALONE_SUPPORT__) && defined (SHARED) && defined __sh__
  37810. -extern unsigned long _dl_skip_args;
  37811. +#ifdef SHARED
  37812. +extern int _dl_secure;
  37813. #endif
  37814. +extern size_t _dl_pagesize;
  37815. -attribute_hidden const char *__uclibc_progname = "";
  37816. -#ifdef __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__
  37817. -const char *program_invocation_short_name = "";
  37818. -const char *program_invocation_name = "";
  37819. -#endif
  37820. -#ifdef __UCLIBC_HAS___PROGNAME__
  37821. -weak_alias (program_invocation_short_name, __progname)
  37822. -weak_alias (program_invocation_name, __progname_full)
  37823. +const char *__uclibc_progname = "";
  37824. +#if !defined __UCLIBC_HAS___PROGNAME__ && defined __USE_GNU && defined __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__
  37825. +# define __progname program_invocation_short_name
  37826. +# define __progname_full program_invocation_name
  37827. +#endif
  37828. +#if defined __UCLIBC_HAS___PROGNAME__ || (defined __USE_GNU && defined __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__)
  37829. +const char *__progname = "";
  37830. +/* psm: why have a visible __progname_full? */
  37831. +const char *__progname_full = "";
  37832. +# if defined __UCLIBC_HAS___PROGNAME__ && defined __USE_GNU && defined __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__
  37833. +weak_alias (__progname, program_invocation_short_name)
  37834. +weak_alias (__progname_full, program_invocation_name)
  37835. +# endif
  37836. #endif
  37837. /*
  37838. @@ -167,7 +167,6 @@
  37839. char **__environ = 0;
  37840. weak_alias(__environ, environ)
  37841. -/* TODO: don't export __pagesize; we cant now because libpthread uses it */
  37842. size_t __pagesize = 0;
  37843. #ifndef O_NOFOLLOW
  37844. @@ -192,6 +191,7 @@
  37845. }
  37846. }
  37847. +#ifndef SHARED
  37848. static int __check_suid(void)
  37849. {
  37850. uid_t uid, euid;
  37851. @@ -208,6 +208,7 @@
  37852. return 0; /* we are not suid */
  37853. }
  37854. #endif
  37855. +#endif
  37856. /* __uClibc_init completely initialize uClibc so it is ready to use.
  37857. *
  37858. @@ -222,8 +223,7 @@
  37859. * __uClibc_main.
  37860. */
  37861. -extern void __uClibc_init(void);
  37862. -libc_hidden_proto(__uClibc_init)
  37863. +extern void __uClibc_init(void) attribute_hidden;
  37864. void __uClibc_init(void)
  37865. {
  37866. /* Don't recurse */
  37867. @@ -276,7 +276,6 @@
  37868. _stdio_init();
  37869. }
  37870. -libc_hidden_def(__uClibc_init)
  37871. #ifdef __UCLIBC_CTOR_DTOR__
  37872. void attribute_hidden (*__app_fini)(void) = NULL;
  37873. @@ -284,8 +283,7 @@
  37874. void attribute_hidden (*__rtld_fini)(void) = NULL;
  37875. -extern void __uClibc_fini(void);
  37876. -libc_hidden_proto(__uClibc_fini)
  37877. +extern void __uClibc_fini(void) attribute_hidden;
  37878. void __uClibc_fini(void)
  37879. {
  37880. #ifdef __UCLIBC_CTOR_DTOR__
  37881. @@ -304,7 +302,6 @@
  37882. if (__rtld_fini != NULL)
  37883. (__rtld_fini)();
  37884. }
  37885. -libc_hidden_def(__uClibc_fini)
  37886. #ifndef SHARED
  37887. extern void __nptl_deallocate_tsd (void) __attribute ((weak));
  37888. @@ -323,7 +320,7 @@
  37889. char **argv, void (*app_init)(void), void (*app_fini)(void),
  37890. void (*rtld_fini)(void), void *stack_end attribute_unused)
  37891. {
  37892. -#ifndef __ARCH_HAS_NO_LDSO__
  37893. +#if !defined __ARCH_HAS_NO_LDSO__ && !defined SHARED
  37894. unsigned long *aux_dat;
  37895. ElfW(auxv_t) auxvt[AT_EGID + 1];
  37896. #endif
  37897. @@ -339,18 +336,6 @@
  37898. __rtld_fini = rtld_fini;
  37899. -#if defined __LDSO_STANDALONE_SUPPORT__ && defined SHARED && defined __sh__
  37900. - /*
  37901. - * Skip ld.so and its arguments
  37902. - * Other archs except for SH do this in _dl_start before passing
  37903. - * control to the application.
  37904. - * FIXME: align SH _dl_start to other archs and remove this from here,
  37905. - * so that we can keep the visibility hidden.
  37906. - */
  37907. - argc -= _dl_skip_args;
  37908. - argv += _dl_skip_args;
  37909. -#endif
  37910. -
  37911. /* The environment begins right after argv. */
  37912. __environ = &argv[argc + 1];
  37913. @@ -361,7 +346,7 @@
  37914. __environ = &argv[argc];
  37915. }
  37916. -#ifndef __ARCH_HAS_NO_LDSO__
  37917. +#if !defined __ARCH_HAS_NO_LDSO__ && !defined SHARED
  37918. /* Pull stuff from the ELF header when possible */
  37919. memset(auxvt, 0x00, sizeof(auxvt));
  37920. aux_dat = (unsigned long*)__environ;
  37921. @@ -376,13 +361,11 @@
  37922. }
  37923. aux_dat += 2;
  37924. }
  37925. -#ifndef SHARED
  37926. /* Get the program headers (_dl_phdr) from the aux vector
  37927. It will be used into __libc_setup_tls. */
  37928. _dl_aux_init (auxvt);
  37929. #endif
  37930. -#endif
  37931. /* We need to initialize uClibc. If we are dynamically linked this
  37932. * may have already been completed by the shared lib loader. We call
  37933. @@ -390,15 +373,20 @@
  37934. __uClibc_init();
  37935. #ifndef __ARCH_HAS_NO_LDSO__
  37936. - /* Make certain getpagesize() gives the correct answer */
  37937. - __pagesize = (auxvt[AT_PAGESZ].a_un.a_val)? auxvt[AT_PAGESZ].a_un.a_val : PAGE_SIZE;
  37938. + /* Make certain getpagesize() gives the correct answer.
  37939. + * _dl_pagesize is defined into ld.so if SHARED or into libc.a otherwise. */
  37940. + __pagesize = _dl_pagesize;
  37941. +#ifndef SHARED
  37942. /* Prevent starting SUID binaries where the stdin. stdout, and
  37943. * stderr file descriptors are not already opened. */
  37944. if ((auxvt[AT_UID].a_un.a_val == (size_t)-1 && __check_suid()) ||
  37945. (auxvt[AT_UID].a_un.a_val != (size_t)-1 &&
  37946. (auxvt[AT_UID].a_un.a_val != auxvt[AT_EUID].a_un.a_val ||
  37947. auxvt[AT_GID].a_un.a_val != auxvt[AT_EGID].a_un.a_val)))
  37948. +#else
  37949. + if (_dl_secure)
  37950. +#endif
  37951. {
  37952. __check_one_fd (STDIN_FILENO, O_RDONLY | O_NOFOLLOW);
  37953. __check_one_fd (STDOUT_FILENO, O_RDWR | O_NOFOLLOW);
  37954. @@ -407,14 +395,14 @@
  37955. #endif
  37956. __uclibc_progname = *argv;
  37957. -#ifdef __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__
  37958. +#if defined __UCLIBC_HAS___PROGNAME__ || (defined __USE_GNU && defined __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__)
  37959. if (*argv != NULL) {
  37960. - program_invocation_name = *argv;
  37961. - program_invocation_short_name = strrchr(*argv, '/');
  37962. - if (program_invocation_short_name != NULL)
  37963. - ++program_invocation_short_name;
  37964. + __progname_full = *argv;
  37965. + __progname = strrchr(*argv, '/');
  37966. + if (__progname != NULL)
  37967. + ++__progname;
  37968. else
  37969. - program_invocation_short_name = program_invocation_name;
  37970. + __progname = *argv;
  37971. }
  37972. #endif
  37973. diff -Nur uClibc-0.9.33.2/libc/misc/locale/locale.c uClibc-git/libc/misc/locale/locale.c
  37974. --- uClibc-0.9.33.2/libc/misc/locale/locale.c 2012-05-15 09:20:09.000000000 +0200
  37975. +++ uClibc-git/libc/misc/locale/locale.c 2014-06-02 17:40:34.006711940 +0200
  37976. @@ -11,8 +11,8 @@
  37977. * Library General Public License for more details.
  37978. *
  37979. * You should have received a copy of the GNU Library General Public
  37980. - * License along with this library; if not, write to the Free
  37981. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  37982. + * License along with this library; if not, see
  37983. + * <http://www.gnu.org/licenses/>.
  37984. */
  37985. /* Nov. 1, 2002
  37986. @@ -85,19 +85,17 @@
  37987. #endif
  37988. #endif
  37989. -/* Need to include this before locale.h and xlocale.h! */
  37990. +/* Need to include this before locale.h! */
  37991. #include <bits/uClibc_locale.h>
  37992. #undef CODESET_LIST
  37993. #define CODESET_LIST (__locale_mmap->codeset_list)
  37994. #ifdef __UCLIBC_HAS_XLOCALE__
  37995. -#include <xlocale.h>
  37996. #include <locale.h>
  37997. #else /* __UCLIBC_HAS_XLOCALE__ */
  37998. /* We need this internally... */
  37999. #define __UCLIBC_HAS_XLOCALE__ 1
  38000. -#include <xlocale.h>
  38001. #include <locale.h>
  38002. #undef __UCLIBC_HAS_XLOCALE__
  38003. #endif /* __UCLIBC_HAS_XLOCALE__ */
  38004. @@ -908,7 +906,6 @@
  38005. _locale_set_l((unsigned char*) C_LOCALE_SELECTOR, base);
  38006. }
  38007. -void _locale_init(void) attribute_hidden;
  38008. void _locale_init(void)
  38009. {
  38010. /* TODO: mmap the locale file */
  38011. @@ -1396,6 +1393,7 @@
  38012. {
  38013. return __curlocale_var; /* This is overriden by the thread version. */
  38014. }
  38015. +libc_hidden_weak(__curlocale)
  38016. __locale_t weak_function __curlocale_set(__locale_t newloc)
  38017. {
  38018. @@ -1404,6 +1402,7 @@
  38019. __curlocale_var = newloc;
  38020. return oldloc;
  38021. }
  38022. +libc_hidden_weak(__curlocale_set)
  38023. #endif
  38024. diff -Nur uClibc-0.9.33.2/libc/misc/locale/Makefile.in uClibc-git/libc/misc/locale/Makefile.in
  38025. --- uClibc-0.9.33.2/libc/misc/locale/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  38026. +++ uClibc-git/libc/misc/locale/Makefile.in 2014-06-02 17:40:34.006711940 +0200
  38027. @@ -8,19 +8,16 @@
  38028. subdirs += libc/misc/locale
  38029. # multi source locale.c
  38030. -CSRC := setlocale.c localeconv.c _locale_init.c nl_langinfo.c
  38031. -ifeq ($(UCLIBC_HAS_LOCALE),y)
  38032. -CSRC += newlocale.c __locale_mbrtowc_l.c
  38033. -endif
  38034. -ifeq ($(UCLIBC_HAS_XLOCALE),y)
  38035. -CSRC += nl_langinfo_l.c duplocale.c freelocale.c uselocale.c __curlocale.c
  38036. -endif
  38037. +CSRC-y := setlocale.c localeconv.c _locale_init.c nl_langinfo.c
  38038. +CSRC-$(UCLIBC_HAS_LOCALE) += newlocale.c __locale_mbrtowc_l.c
  38039. +CSRC-$(UCLIBC_HAS_XLOCALE) += nl_langinfo_l.c duplocale.c freelocale.c \
  38040. + uselocale.c __curlocale.c
  38041. MISC_LOCALE_DIR := $(top_srcdir)libc/misc/locale
  38042. MISC_LOCALE_OUT := $(top_builddir)libc/misc/locale
  38043. -MISC_LOCALE_SRC := $(patsubst %.c,$(MISC_LOCALE_DIR)/%.c,$(CSRC))
  38044. -MISC_LOCALE_OBJ := $(patsubst %.c,$(MISC_LOCALE_OUT)/%.o,$(CSRC))
  38045. +MISC_LOCALE_SRC := $(patsubst %.c,$(MISC_LOCALE_DIR)/%.c,$(CSRC-y))
  38046. +MISC_LOCALE_OBJ := $(patsubst %.c,$(MISC_LOCALE_OUT)/%.o,$(CSRC-y))
  38047. libc-y += $(MISC_LOCALE_OBJ)
  38048. diff -Nur uClibc-0.9.33.2/libc/misc/mntent/Makefile.in uClibc-git/libc/misc/mntent/Makefile.in
  38049. --- uClibc-0.9.33.2/libc/misc/mntent/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  38050. +++ uClibc-git/libc/misc/mntent/Makefile.in 2014-06-02 17:40:34.022712029 +0200
  38051. @@ -7,13 +7,13 @@
  38052. subdirs += libc/misc/mntent
  38053. -CSRC := mntent.c
  38054. +CSRC-y := mntent.c
  38055. MISC_MNTENT_DIR := $(top_srcdir)libc/misc/mntent
  38056. MISC_MNTENT_OUT := $(top_builddir)libc/misc/mntent
  38057. -MISC_MNTENT_SRC := $(MISC_MNTENT_DIR)/mntent.c
  38058. -MISC_MNTENT_OBJ := $(MISC_MNTENT_OUT)/mntent.o
  38059. +MISC_MNTENT_SRC := $(patsubst %.c,$(MISC_MNTENT_DIR)/%.c,$(CSRC-y))
  38060. +MISC_MNTENT_OBJ := $(patsubst %.c,$(MISC_MNTENT_OUT)/%.o,$(CSRC-y))
  38061. libc-y += $(MISC_MNTENT_OBJ)
  38062. diff -Nur uClibc-0.9.33.2/libc/misc/pthread/tsd.c uClibc-git/libc/misc/pthread/tsd.c
  38063. --- uClibc-0.9.33.2/libc/misc/pthread/tsd.c 2012-05-15 09:20:09.000000000 +0200
  38064. +++ uClibc-git/libc/misc/pthread/tsd.c 2014-06-02 17:40:34.022712029 +0200
  38065. @@ -1,5 +1,5 @@
  38066. /* libpthread sets _dl_error_catch_tsd to point to this function.
  38067. - We define it here instead of in libpthread so t here instead of in libpthread so that it doesn't
  38068. + We define it here instead of in libpthread so that it doesn't
  38069. need to have a TLS segment of its own just for this one pointer. */
  38070. void **__libc_dl_error_tsd(void) __attribute__ ((const));
  38071. diff -Nur uClibc-0.9.33.2/libc/misc/regex/Makefile.in uClibc-git/libc/misc/regex/Makefile.in
  38072. --- uClibc-0.9.33.2/libc/misc/regex/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  38073. +++ uClibc-git/libc/misc/regex/Makefile.in 2014-06-02 17:40:34.022712029 +0200
  38074. @@ -7,17 +7,14 @@
  38075. subdirs += libc/misc/regex
  38076. -ifeq ($(UCLIBC_HAS_REGEX_OLD),y)
  38077. -CSRC := regex_old.c
  38078. -else
  38079. -CSRC := regex.c
  38080. -endif
  38081. +VARIANT := $(if $(UCLIBC_HAS_REGEX_OLD),_old)
  38082. +CSRC-y := regex$(VARIANT).c
  38083. MISC_REGEX_DIR := $(top_srcdir)libc/misc/regex
  38084. MISC_REGEX_OUT := $(top_builddir)libc/misc/regex
  38085. -MISC_REGEX_SRC := $(patsubst %.c,$(MISC_REGEX_DIR)/%.c,$(CSRC))
  38086. -MISC_REGEX_OBJ := $(patsubst %.c,$(MISC_REGEX_OUT)/%.o,$(CSRC))
  38087. +MISC_REGEX_SRC := $(patsubst %.c,$(MISC_REGEX_DIR)/%.c,$(CSRC-y))
  38088. +MISC_REGEX_OBJ := $(patsubst %.c,$(MISC_REGEX_OUT)/%.o,$(CSRC-y))
  38089. libc-$(UCLIBC_HAS_REGEX) += $(MISC_REGEX_OBJ)
  38090. diff -Nur uClibc-0.9.33.2/libc/misc/regex/regcomp.c uClibc-git/libc/misc/regex/regcomp.c
  38091. --- uClibc-0.9.33.2/libc/misc/regex/regcomp.c 2012-05-15 09:20:09.000000000 +0200
  38092. +++ uClibc-git/libc/misc/regex/regcomp.c 2014-06-02 17:40:34.022712029 +0200
  38093. @@ -14,9 +14,8 @@
  38094. Lesser General Public License for more details.
  38095. You should have received a copy of the GNU Lesser General Public
  38096. - License along with the GNU C Library; if not, write to the Free
  38097. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38098. - 02111-1307 USA. */
  38099. + License along with the GNU C Library; if not, see
  38100. + <http://www.gnu.org/licenses/>. */
  38101. static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern,
  38102. size_t length, reg_syntax_t syntax);
  38103. @@ -91,7 +90,7 @@
  38104. re_charset_t *mbcset,
  38105. int *equiv_class_alloc,
  38106. const unsigned char *name);
  38107. -static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans,
  38108. +static reg_errcode_t build_charclass (__RE_TRANSLATE_TYPE trans,
  38109. bitset_t sbcset,
  38110. re_charset_t *mbcset,
  38111. int *char_class_alloc,
  38112. @@ -100,13 +99,13 @@
  38113. #else /* not RE_ENABLE_I18N */
  38114. static reg_errcode_t build_equiv_class (bitset_t sbcset,
  38115. const unsigned char *name);
  38116. -static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans,
  38117. +static reg_errcode_t build_charclass (__RE_TRANSLATE_TYPE trans,
  38118. bitset_t sbcset,
  38119. const unsigned char *class_name,
  38120. reg_syntax_t syntax);
  38121. #endif /* not RE_ENABLE_I18N */
  38122. static bin_tree_t *build_charclass_op (re_dfa_t *dfa,
  38123. - RE_TRANSLATE_TYPE trans,
  38124. + __RE_TRANSLATE_TYPE trans,
  38125. const unsigned char *class_name,
  38126. const unsigned char *extra,
  38127. int non_match, reg_errcode_t *err);
  38128. @@ -3414,11 +3413,11 @@
  38129. static reg_errcode_t
  38130. #ifdef RE_ENABLE_I18N
  38131. -build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
  38132. +build_charclass (__RE_TRANSLATE_TYPE trans, bitset_t sbcset,
  38133. re_charset_t *mbcset, int *char_class_alloc,
  38134. const unsigned char *class_name, reg_syntax_t syntax)
  38135. #else
  38136. -build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
  38137. +build_charclass (__RE_TRANSLATE_TYPE trans, bitset_t sbcset,
  38138. const unsigned char *class_name, reg_syntax_t syntax)
  38139. #endif
  38140. {
  38141. @@ -3496,7 +3495,7 @@
  38142. }
  38143. static bin_tree_t *
  38144. -build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans,
  38145. +build_charclass_op (re_dfa_t *dfa, __RE_TRANSLATE_TYPE trans,
  38146. const unsigned char *class_name,
  38147. const unsigned char *extra, int non_match,
  38148. reg_errcode_t *err)
  38149. diff -Nur uClibc-0.9.33.2/libc/misc/regex/regex.c uClibc-git/libc/misc/regex/regex.c
  38150. --- uClibc-0.9.33.2/libc/misc/regex/regex.c 2012-05-15 09:20:09.000000000 +0200
  38151. +++ uClibc-git/libc/misc/regex/regex.c 2014-06-02 17:40:34.022712029 +0200
  38152. @@ -14,9 +14,8 @@
  38153. Lesser General Public License for more details.
  38154. You should have received a copy of the GNU Lesser General Public
  38155. - License along with the GNU C Library; if not, write to the Free
  38156. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38157. - 02111-1307 USA. */
  38158. + License along with the GNU C Library; if not, see
  38159. + <http://www.gnu.org/licenses/>. */
  38160. #include <features.h>
  38161. @@ -30,7 +29,12 @@
  38162. # include <stdlib.h>
  38163. # ifdef __UCLIBC_HAS_WCHAR__
  38164. # define RE_ENABLE_I18N
  38165. +# define HAVE_WCHAR_H 1
  38166. +# define HAVE_WCRTOMB 1
  38167. +# define HAVE_MBRTOWC 1
  38168. +# define HAVE_WCSCOLL 1
  38169. # include <wchar.h>
  38170. +# define HAVE_WCTYPE_H 1
  38171. # include <wctype.h>
  38172. # define __iswctype iswctype
  38173. # define __wcrtomb wcrtomb
  38174. @@ -38,6 +42,9 @@
  38175. # define __wctype wctype
  38176. # endif
  38177. # include <ctype.h>
  38178. +# ifdef __UCLIBC_HAS_LOCALE__
  38179. +# define HAVE_LOCALE_H 1
  38180. +# endif
  38181. #endif
  38182. /* Make sure noone compiles this code with a C++ compiler. */
  38183. diff -Nur uClibc-0.9.33.2/libc/misc/regex/regexec.c uClibc-git/libc/misc/regex/regexec.c
  38184. --- uClibc-0.9.33.2/libc/misc/regex/regexec.c 2012-05-15 09:20:09.000000000 +0200
  38185. +++ uClibc-git/libc/misc/regex/regexec.c 2014-06-02 17:40:34.026712051 +0200
  38186. @@ -14,9 +14,8 @@
  38187. Lesser General Public License for more details.
  38188. You should have received a copy of the GNU Lesser General Public
  38189. - License along with the GNU C Library; if not, write to the Free
  38190. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38191. - 02111-1307 USA. */
  38192. + License along with the GNU C Library; if not, see
  38193. + <http://www.gnu.org/licenses/>. */
  38194. static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags,
  38195. int n) internal_function;
  38196. @@ -564,7 +563,7 @@
  38197. re_match_context_t mctx;
  38198. char *fastmap = (preg->fastmap != NULL && preg->fastmap_accurate
  38199. && range && !preg->can_be_null) ? preg->fastmap : NULL;
  38200. - RE_TRANSLATE_TYPE t = preg->translate;
  38201. + __RE_TRANSLATE_TYPE t = preg->translate;
  38202. memset (&mctx, '\0', sizeof (re_match_context_t));
  38203. mctx.dfa = dfa;
  38204. diff -Nur uClibc-0.9.33.2/libc/misc/regex/regex_internal.c uClibc-git/libc/misc/regex/regex_internal.c
  38205. --- uClibc-0.9.33.2/libc/misc/regex/regex_internal.c 2012-05-15 09:20:09.000000000 +0200
  38206. +++ uClibc-git/libc/misc/regex/regex_internal.c 2014-06-02 17:40:34.022712029 +0200
  38207. @@ -14,13 +14,12 @@
  38208. Lesser General Public License for more details.
  38209. You should have received a copy of the GNU Lesser General Public
  38210. - License along with the GNU C Library; if not, write to the Free
  38211. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38212. - 02111-1307 USA. */
  38213. + License along with the GNU C Library; if not, see
  38214. + <http://www.gnu.org/licenses/>. */
  38215. static void re_string_construct_common (const char *str, int len,
  38216. re_string_t *pstr,
  38217. - RE_TRANSLATE_TYPE trans, int icase,
  38218. + __RE_TRANSLATE_TYPE trans, int icase,
  38219. const re_dfa_t *dfa) internal_function;
  38220. static re_dfastate_t *create_ci_newstate (const re_dfa_t *dfa,
  38221. const re_node_set *nodes,
  38222. @@ -38,7 +37,7 @@
  38223. static reg_errcode_t
  38224. internal_function
  38225. re_string_allocate (re_string_t *pstr, const char *str, int len, int init_len,
  38226. - RE_TRANSLATE_TYPE trans, int icase, const re_dfa_t *dfa)
  38227. + __RE_TRANSLATE_TYPE trans, int icase, const re_dfa_t *dfa)
  38228. {
  38229. reg_errcode_t ret;
  38230. int init_buf_len;
  38231. @@ -66,7 +65,7 @@
  38232. static reg_errcode_t
  38233. internal_function
  38234. re_string_construct (re_string_t *pstr, const char *str, int len,
  38235. - RE_TRANSLATE_TYPE trans, int icase, const re_dfa_t *dfa)
  38236. + __RE_TRANSLATE_TYPE trans, int icase, const re_dfa_t *dfa)
  38237. {
  38238. reg_errcode_t ret;
  38239. memset (pstr, '\0', sizeof (re_string_t));
  38240. @@ -162,7 +161,7 @@
  38241. static void
  38242. internal_function
  38243. re_string_construct_common (const char *str, int len, re_string_t *pstr,
  38244. - RE_TRANSLATE_TYPE trans, int icase,
  38245. + __RE_TRANSLATE_TYPE trans, int icase,
  38246. const re_dfa_t *dfa)
  38247. {
  38248. pstr->raw_mbs = (const unsigned char *) str;
  38249. diff -Nur uClibc-0.9.33.2/libc/misc/regex/regex_internal.h uClibc-git/libc/misc/regex/regex_internal.h
  38250. --- uClibc-0.9.33.2/libc/misc/regex/regex_internal.h 2012-05-15 09:20:09.000000000 +0200
  38251. +++ uClibc-git/libc/misc/regex/regex_internal.h 2014-06-02 17:40:34.022712029 +0200
  38252. @@ -14,16 +14,14 @@
  38253. Lesser General Public License for more details.
  38254. You should have received a copy of the GNU Lesser General Public
  38255. - License along with the GNU C Library; if not, write to the Free
  38256. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38257. - 02111-1307 USA. */
  38258. + License along with the GNU C Library; if not, see
  38259. + <http://www.gnu.org/licenses/>. */
  38260. #ifndef _REGEX_INTERNAL_H
  38261. #define _REGEX_INTERNAL_H 1
  38262. #include <assert.h>
  38263. #include <ctype.h>
  38264. -#include <stdio.h>
  38265. #include <stdlib.h>
  38266. #include <string.h>
  38267. @@ -315,7 +313,7 @@
  38268. the beginning of the input string. */
  38269. unsigned int tip_context;
  38270. /* The translation passed as a part of an argument of re_compile_pattern. */
  38271. - RE_TRANSLATE_TYPE trans;
  38272. + __RE_TRANSLATE_TYPE trans;
  38273. /* Copy of re_dfa_t's word_char. */
  38274. re_const_bitset_ptr_t word_char;
  38275. /* 1 if REG_ICASE. */
  38276. diff -Nur uClibc-0.9.33.2/libc/misc/regex/regex_old.c uClibc-git/libc/misc/regex/regex_old.c
  38277. --- uClibc-0.9.33.2/libc/misc/regex/regex_old.c 2012-05-15 09:20:09.000000000 +0200
  38278. +++ uClibc-git/libc/misc/regex/regex_old.c 2014-06-02 17:40:34.026712051 +0200
  38279. @@ -16,25 +16,25 @@
  38280. Lesser General Public License for more details.
  38281. You should have received a copy of the GNU Lesser General Public
  38282. - License along with the GNU C Library; if not, write to the Free
  38283. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38284. - 02111-1307 USA. */
  38285. + License along with the GNU C Library; if not, see
  38286. + <http://www.gnu.org/licenses/>. */
  38287. /* To exclude some unwanted junk.... */
  38288. #undef emacs
  38289. #include <features.h>
  38290. /* unistd.h must be included with _LIBC defined: we need smallint */
  38291. #include <unistd.h>
  38292. +#include <stdio.h>
  38293. #ifdef __UCLIBC__
  38294. # undef _LIBC
  38295. # define _REGEX_RE_COMP
  38296. # define STDC_HEADERS
  38297. -# define RE_TRANSLATE_TYPE char *
  38298. +# define __RE_TRANSLATE_TYPE char *
  38299. +# define RE_TRANSLATE_TYPE __RE_TRANSLATE_TYPE
  38300. #endif
  38301. #include <stdlib.h>
  38302. #include <stdint.h>
  38303. #include <string.h>
  38304. -#include <stdio.h>
  38305. /* AIX requires this to be the first thing in the file. */
  38306. #if defined _AIX && !defined REGEX_MALLOC
  38307. @@ -64,10 +64,9 @@
  38308. # include <wctype.h>
  38309. # endif
  38310. -# if defined _LIBC || defined __UCLIBC__
  38311. +# ifdef _LIBC
  38312. /* We have to keep the namespace clean. */
  38313. -# ifndef __UCLIBC__
  38314. # define btowc __btowc
  38315. /* We are also using some library internals. */
  38316. @@ -76,7 +75,6 @@
  38317. # include <langinfo.h>
  38318. # include <locale/coll-lookup.h>
  38319. # endif
  38320. -# endif
  38321. /* This is for other GNU distributions with internationalized messages. */
  38322. # if defined HAVE_LIBINTL_H || defined _LIBC
  38323. @@ -177,6 +175,7 @@
  38324. /* Get the interface, including the syntax bits. */
  38325. # include <regex.h>
  38326. +# define translate __REPB_PREFIX(translate)
  38327. /* isalpha etc. are used for the character classes. */
  38328. # include <ctype.h>
  38329. @@ -1896,7 +1895,7 @@
  38330. static reg_errcode_t wcs_compile_range (CHAR_T range_start,
  38331. const CHAR_T **p_ptr,
  38332. const CHAR_T *pend,
  38333. - char *translate,
  38334. + __RE_TRANSLATE_TYPE translate,
  38335. reg_syntax_t syntax,
  38336. UCHAR_T *b,
  38337. CHAR_T *char_set);
  38338. @@ -1905,7 +1904,7 @@
  38339. static reg_errcode_t byte_compile_range (unsigned int range_start,
  38340. const char **p_ptr,
  38341. const char *pend,
  38342. - char *translate,
  38343. + __RE_TRANSLATE_TYPE translate,
  38344. reg_syntax_t syntax,
  38345. unsigned char *b);
  38346. # endif /* WCHAR */
  38347. @@ -2338,7 +2337,7 @@
  38348. #endif /* WCHAR */
  38349. /* How to translate the characters in the pattern. */
  38350. - RE_TRANSLATE_TYPE translate = bufp->translate;
  38351. + __RE_TRANSLATE_TYPE translate = bufp->translate;
  38352. /* Address of the count-byte of the most recently inserted `exactn'
  38353. command. This makes it possible to tell if a new exact-match
  38354. @@ -4402,7 +4401,7 @@
  38355. wcs_compile_range (
  38356. CHAR_T range_start_char,
  38357. const CHAR_T **p_ptr, const CHAR_T *pend,
  38358. - RE_TRANSLATE_TYPE translate,
  38359. + __RE_TRANSLATE_TYPE translate,
  38360. reg_syntax_t syntax,
  38361. CHAR_T *b, CHAR_T *char_set)
  38362. {
  38363. @@ -4488,7 +4487,7 @@
  38364. byte_compile_range (
  38365. unsigned int range_start_char,
  38366. const char **p_ptr, const char *pend,
  38367. - RE_TRANSLATE_TYPE translate,
  38368. + __RE_TRANSLATE_TYPE translate,
  38369. reg_syntax_t syntax,
  38370. unsigned char *b)
  38371. {
  38372. @@ -5060,7 +5059,7 @@
  38373. {
  38374. int val;
  38375. register char *fastmap = bufp->fastmap;
  38376. - register RE_TRANSLATE_TYPE translate = bufp->translate;
  38377. + register __RE_TRANSLATE_TYPE translate = bufp->translate;
  38378. int total_size = size1 + size2;
  38379. int endpos = startpos + range;
  38380. #ifdef WCHAR
  38381. @@ -5477,7 +5476,7 @@
  38382. UCHAR_T *end,
  38383. PREFIX(register_info_type) *reg_info);
  38384. static int PREFIX(bcmp_translate) (const CHAR_T *s1, const CHAR_T *s2,
  38385. - int len, char *translate);
  38386. + int len, __RE_TRANSLATE_TYPE translate);
  38387. #else /* not INSIDE_RECURSION */
  38388. /* re_match_2 matches the compiled pattern in BUFP against the
  38389. @@ -5637,7 +5636,7 @@
  38390. UCHAR_T *just_past_start_mem = 0;
  38391. /* We use this to map every character in the string. */
  38392. - RE_TRANSLATE_TYPE translate = bufp->translate;
  38393. + __RE_TRANSLATE_TYPE translate = bufp->translate;
  38394. /* Failure point stack. Each place that can handle a failure further
  38395. down the line pushes a failure point on this stack. It consists of
  38396. @@ -7212,6 +7211,10 @@
  38397. POP_FAILURE_POINT (sdummy, pdummy,
  38398. dummy_low_reg, dummy_high_reg,
  38399. reg_dummy, reg_dummy, reg_info_dummy);
  38400. +
  38401. + /* Silence 'set but not used' warnings. */
  38402. + (void) pdummy;
  38403. + (void) sdummy;
  38404. }
  38405. /* Note fall through. */
  38406. @@ -7802,7 +7805,7 @@
  38407. PREFIX(bcmp_translate) (
  38408. const CHAR_T *s1, const CHAR_T *s2,
  38409. register int len,
  38410. - RE_TRANSLATE_TYPE translate)
  38411. + __RE_TRANSLATE_TYPE translate)
  38412. {
  38413. register const UCHAR_T *p1 = (const UCHAR_T *) s1;
  38414. register const UCHAR_T *p2 = (const UCHAR_T *) s2;
  38415. @@ -8002,8 +8005,8 @@
  38416. unsigned i;
  38417. preg->translate
  38418. - = (RE_TRANSLATE_TYPE) malloc (CHAR_SET_SIZE
  38419. - * sizeof (*(RE_TRANSLATE_TYPE)0));
  38420. + = (__RE_TRANSLATE_TYPE) malloc (CHAR_SET_SIZE
  38421. + * sizeof (*(__RE_TRANSLATE_TYPE)0));
  38422. if (preg->translate == NULL)
  38423. return (int) REG_ESPACE;
  38424. diff -Nur uClibc-0.9.33.2/libc/misc/search/hsearch.c uClibc-git/libc/misc/search/hsearch.c
  38425. --- uClibc-0.9.33.2/libc/misc/search/hsearch.c 2012-05-15 09:20:09.000000000 +0200
  38426. +++ uClibc-git/libc/misc/search/hsearch.c 2014-06-02 17:40:34.026712051 +0200
  38427. @@ -13,9 +13,8 @@
  38428. Lesser General Public License for more details.
  38429. You should have received a copy of the GNU Lesser General Public
  38430. - License along with the GNU C Library; if not, write to the Free
  38431. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38432. - 02111-1307 USA. */
  38433. + License along with the GNU C Library; if not, see
  38434. + <http://www.gnu.org/licenses/>. */
  38435. #include <search.h>
  38436. diff -Nur uClibc-0.9.33.2/libc/misc/search/_hsearch_r.c uClibc-git/libc/misc/search/_hsearch_r.c
  38437. --- uClibc-0.9.33.2/libc/misc/search/_hsearch_r.c 2012-05-15 09:20:09.000000000 +0200
  38438. +++ uClibc-git/libc/misc/search/_hsearch_r.c 2014-06-02 17:40:34.026712051 +0200
  38439. @@ -13,12 +13,11 @@
  38440. Lesser General Public License for more details.
  38441. You should have received a copy of the GNU Lesser General Public
  38442. - License along with the GNU C Library; if not, write to the Free
  38443. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38444. - 02111-1307 USA. */
  38445. + License along with the GNU C Library; if not, see
  38446. + <http://www.gnu.org/licenses/>. */
  38447. #include <errno.h>
  38448. -#include <malloc.h>
  38449. +#include <stdlib.h>
  38450. #include <string.h>
  38451. #include <search.h>
  38452. diff -Nur uClibc-0.9.33.2/libc/misc/search/insremque.c uClibc-git/libc/misc/search/insremque.c
  38453. --- uClibc-0.9.33.2/libc/misc/search/insremque.c 2012-05-15 09:20:09.000000000 +0200
  38454. +++ uClibc-git/libc/misc/search/insremque.c 2014-06-02 17:40:34.026712051 +0200
  38455. @@ -13,8 +13,7 @@
  38456. You should have received a copy of the GNU Library General Public
  38457. License along with the GNU C Library; see the file COPYING.LIB. If not,
  38458. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  38459. - Boston, MA 02111-1307, USA. */
  38460. + see <http://www.gnu.org/licenses/>. */
  38461. #include <features.h>
  38462. #include <stddef.h>
  38463. @@ -27,12 +26,20 @@
  38464. void
  38465. insque (void *elem, void *prev)
  38466. {
  38467. - struct qelem *next = ((struct qelem *) prev)->q_forw;
  38468. - ((struct qelem *) prev)->q_forw = (struct qelem *) elem;
  38469. - if (next != NULL)
  38470. - next->q_back = (struct qelem *) elem;
  38471. - ((struct qelem *) elem)->q_forw = next;
  38472. - ((struct qelem *) elem)->q_back = (struct qelem *) prev;
  38473. + if (prev == NULL)
  38474. + {
  38475. + ((struct qelem *) elem)->q_forw = NULL;
  38476. + ((struct qelem *) elem)->q_back = NULL;
  38477. + }
  38478. + else
  38479. + {
  38480. + struct qelem *next = ((struct qelem *) prev)->q_forw;
  38481. + ((struct qelem *) prev)->q_forw = (struct qelem *) elem;
  38482. + if (next != NULL)
  38483. + next->q_back = (struct qelem *) elem;
  38484. + ((struct qelem *) elem)->q_forw = next;
  38485. + ((struct qelem *) elem)->q_back = (struct qelem *) prev;
  38486. + }
  38487. }
  38488. #endif
  38489. diff -Nur uClibc-0.9.33.2/libc/misc/search/Makefile.in uClibc-git/libc/misc/search/Makefile.in
  38490. --- uClibc-0.9.33.2/libc/misc/search/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  38491. +++ uClibc-git/libc/misc/search/Makefile.in 2014-06-02 17:40:34.026712051 +0200
  38492. @@ -7,25 +7,25 @@
  38493. subdirs += libc/misc/search
  38494. -CSRC := hsearch.c
  38495. +CSRC-y := hsearch.c
  38496. # multi source _tsearch.c
  38497. -CSRC += tsearch.c tfind.c tdelete.c twalk.c tdestroy.c
  38498. +CSRC-y += tsearch.c tfind.c tdelete.c twalk.c tdestroy.c
  38499. # multi source _lsearch.c
  38500. -CSRC += lfind.c lsearch.c
  38501. +CSRC-y += lfind.c lsearch.c
  38502. # multi source insremque.c
  38503. -CSRC += insque.c remque.c
  38504. +CSRC-y += insque.c remque.c
  38505. # multi source _hsearch_r.c
  38506. -CSRC += hcreate_r.c hdestroy_r.c hsearch_r.c
  38507. +CSRC-y += hcreate_r.c hdestroy_r.c hsearch_r.c
  38508. MISC_SEARCH_DIR := $(top_srcdir)libc/misc/search
  38509. MISC_SEARCH_OUT := $(top_builddir)libc/misc/search
  38510. -MISC_SEARCH_SRC := $(patsubst %.c,$(MISC_SEARCH_DIR)/%.c,$(CSRC))
  38511. -MISC_SEARCH_OBJ := $(patsubst %.c,$(MISC_SEARCH_OUT)/%.o,$(CSRC))
  38512. +MISC_SEARCH_SRC := $(patsubst %.c,$(MISC_SEARCH_DIR)/%.c,$(CSRC-y))
  38513. +MISC_SEARCH_OBJ := $(patsubst %.c,$(MISC_SEARCH_OUT)/%.o,$(CSRC-y))
  38514. libc-y += $(MISC_SEARCH_OBJ)
  38515. diff -Nur uClibc-0.9.33.2/libc/misc/search/_tsearch.c uClibc-git/libc/misc/search/_tsearch.c
  38516. --- uClibc-0.9.33.2/libc/misc/search/_tsearch.c 2012-05-15 09:20:09.000000000 +0200
  38517. +++ uClibc-git/libc/misc/search/_tsearch.c 2014-06-02 17:40:34.026712051 +0200
  38518. @@ -13,8 +13,7 @@
  38519. You should have received a copy of the GNU Library General Public
  38520. License along with the GNU C Library; see the file COPYING.LIB. If
  38521. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  38522. -Cambridge, MA 02139, USA. */
  38523. +not, see <http://www.gnu.org/licenses/>. */
  38524. /*
  38525. * Tree search generalized from Knuth (6.2.2) Algorithm T just like
  38526. @@ -50,7 +49,7 @@
  38527. int (*compar)(); ordering function
  38528. */
  38529. -void *tsearch(__const void *key, void **vrootp, __compar_fn_t compar)
  38530. +void *tsearch(const void *key, void **vrootp, __compar_fn_t compar)
  38531. {
  38532. register node *q;
  38533. register node **rootp = (node **) vrootp;
  38534. @@ -80,7 +79,7 @@
  38535. #endif
  38536. #ifdef L_tfind
  38537. -void *tfind(__const void *key, void * __const *vrootp, __compar_fn_t compar)
  38538. +void *tfind(const void *key, void * const *vrootp, __compar_fn_t compar)
  38539. {
  38540. register node **rootp = (node **) vrootp;
  38541. @@ -107,7 +106,7 @@
  38542. register node **rootp; address of the root of tree
  38543. int (*compar)(); comparison function
  38544. */
  38545. -void *tdelete(__const void *key, void ** vrootp, __compar_fn_t compar)
  38546. +void *tdelete(const void *key, void ** vrootp, __compar_fn_t compar)
  38547. {
  38548. node *p;
  38549. register node *q;
  38550. @@ -157,7 +156,7 @@
  38551. register void (*action)(); Function to be called at each node
  38552. register int level;
  38553. */
  38554. -static void trecurse(__const void *vroot, __action_fn_t action, int level)
  38555. +static void trecurse(const void *vroot, __action_fn_t action, int level)
  38556. {
  38557. register node *root = (node *) vroot;
  38558. @@ -180,9 +179,9 @@
  38559. void (*action)(); Function to be called at each node
  38560. PTR
  38561. */
  38562. -void twalk(__const void *vroot, __action_fn_t action)
  38563. +void twalk(const void *vroot, __action_fn_t action)
  38564. {
  38565. - register __const node *root = (node *) vroot;
  38566. + register const node *root = (node *) vroot;
  38567. if (root != (node *)0 && action != (__action_fn_t) 0)
  38568. trecurse(root, action, 0);
  38569. diff -Nur uClibc-0.9.33.2/libc/misc/statfs/fstatfs64.c uClibc-git/libc/misc/statfs/fstatfs64.c
  38570. --- uClibc-0.9.33.2/libc/misc/statfs/fstatfs64.c 2012-05-15 09:20:09.000000000 +0200
  38571. +++ uClibc-git/libc/misc/statfs/fstatfs64.c 2014-06-02 17:40:34.026712051 +0200
  38572. @@ -13,9 +13,8 @@
  38573. Lesser General Public License for more details.
  38574. You should have received a copy of the GNU Lesser General Public
  38575. - License along with the GNU C Library; if not, write to the Free
  38576. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38577. - 02111-1307 USA. */
  38578. + License along with the GNU C Library; if not, see
  38579. + <http://www.gnu.org/licenses/>. */
  38580. #include <_lfs_64.h>
  38581. @@ -23,8 +22,10 @@
  38582. #include <string.h>
  38583. #include <sys/statfs.h>
  38584. #include <sys/statvfs.h>
  38585. +#include <sys/syscall.h>
  38586. #include <stddef.h>
  38587. +#if defined __NR_fstatfs
  38588. extern __typeof(fstatfs) __libc_fstatfs;
  38589. /* Return information about the filesystem on which FD resides. */
  38590. @@ -43,9 +44,24 @@
  38591. buf->f_files = buf32.f_files;
  38592. buf->f_ffree = buf32.f_ffree;
  38593. buf->f_fsid = buf32.f_fsid;
  38594. +# ifdef _STATFS_F_FRSIZE
  38595. + buf->f_frsize = buf32.f_frsize;
  38596. +# endif
  38597. buf->f_namelen = buf32.f_namelen;
  38598. memcpy (buf->f_spare, buf32.f_spare, sizeof (buf32.f_spare));
  38599. return 0;
  38600. }
  38601. +#else
  38602. +/*
  38603. + * Use the fstatfs64 system call if fstatfs is not defined
  38604. + * This is for backwards compatibility and it should be
  38605. + * made default in the future
  38606. + */
  38607. +int fstatfs64(int fd, struct statfs64 *buf)
  38608. +{
  38609. + /* Signature has 2 arguments but syscalls wants 3 */
  38610. + return INLINE_SYSCALL(fstatfs64, 3, fd, sizeof(*buf), buf);
  38611. +}
  38612. +#endif
  38613. libc_hidden_def(fstatfs64)
  38614. diff -Nur uClibc-0.9.33.2/libc/misc/statfs/fstatvfs64.c uClibc-git/libc/misc/statfs/fstatvfs64.c
  38615. --- uClibc-0.9.33.2/libc/misc/statfs/fstatvfs64.c 2012-05-15 09:20:09.000000000 +0200
  38616. +++ uClibc-git/libc/misc/statfs/fstatvfs64.c 2014-06-02 17:40:34.026712051 +0200
  38617. @@ -13,9 +13,8 @@
  38618. Lesser General Public License for more details.
  38619. You should have received a copy of the GNU Lesser General Public
  38620. - License along with the GNU C Library; if not, write to the Free
  38621. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38622. - 02111-1307 USA. */
  38623. + License along with the GNU C Library; if not, see
  38624. + <http://www.gnu.org/licenses/>. */
  38625. #include <_lfs_64.h>
  38626. diff -Nur uClibc-0.9.33.2/libc/misc/statfs/fstatvfs.c uClibc-git/libc/misc/statfs/fstatvfs.c
  38627. --- uClibc-0.9.33.2/libc/misc/statfs/fstatvfs.c 2012-05-15 09:20:09.000000000 +0200
  38628. +++ uClibc-git/libc/misc/statfs/fstatvfs.c 2014-06-02 17:40:34.026712051 +0200
  38629. @@ -13,9 +13,8 @@
  38630. Lesser General Public License for more details.
  38631. You should have received a copy of the GNU Lesser General Public
  38632. - License along with the GNU C Library; if not, write to the Free
  38633. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38634. - 02111-1307 USA. */
  38635. + License along with the GNU C Library; if not, see
  38636. + <http://www.gnu.org/licenses/>. */
  38637. #include <features.h>
  38638. #include <errno.h>
  38639. diff -Nur uClibc-0.9.33.2/libc/misc/statfs/internal_statvfs.c uClibc-git/libc/misc/statfs/internal_statvfs.c
  38640. --- uClibc-0.9.33.2/libc/misc/statfs/internal_statvfs.c 2012-05-15 09:20:09.000000000 +0200
  38641. +++ uClibc-git/libc/misc/statfs/internal_statvfs.c 2014-06-02 17:40:34.026712051 +0200
  38642. @@ -13,14 +13,20 @@
  38643. Lesser General Public License for more details.
  38644. You should have received a copy of the GNU Lesser General Public
  38645. - License along with the GNU C Library; if not, write to the Free
  38646. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38647. - 02111-1307 USA. */
  38648. + License along with the GNU C Library; if not, see
  38649. + <http://www.gnu.org/licenses/>. */
  38650. +
  38651. +/* The kernel hints us if the f_flags is valid */
  38652. +#define ST_VALID 0x0020
  38653. /* Now fill in the fields we have information for. */
  38654. buf->f_bsize = fsbuf.f_bsize;
  38655. - /* Linux does not support f_frsize, so set it to the full block size. */
  38656. +#ifdef _STATFS_F_FRSIZE
  38657. + buf->f_frsize = fsbuf.f_frsize;
  38658. +#else
  38659. + /* No support for f_frsize so set it to the full block size. */
  38660. buf->f_frsize = fsbuf.f_bsize;
  38661. +#endif
  38662. buf->f_blocks = fsbuf.f_blocks;
  38663. buf->f_bfree = fsbuf.f_bfree;
  38664. buf->f_bavail = fsbuf.f_bavail;
  38665. @@ -28,7 +34,7 @@
  38666. buf->f_ffree = fsbuf.f_ffree;
  38667. if (sizeof (buf->f_fsid) == sizeof (fsbuf.f_fsid))
  38668. buf->f_fsid = (fsbuf.f_fsid.__val[0]
  38669. - | ((unsigned long int) fsbuf.f_fsid.__val[1]
  38670. + | ((unsigned long long int) fsbuf.f_fsid.__val[1]
  38671. << (8 * (sizeof (buf->f_fsid)
  38672. - sizeof (fsbuf.f_fsid.__val[0])))));
  38673. else
  38674. @@ -39,10 +45,7 @@
  38675. buf->__f_unused = 0;
  38676. #endif
  38677. buf->f_namemax = fsbuf.f_namelen;
  38678. - memset (buf->__f_spare, '\0', 6 * sizeof (int));
  38679. -
  38680. - /* What remains to do is to fill the fields f_favail and f_flag. */
  38681. -
  38682. + memset (buf->__f_spare, '\0', sizeof(buf->__f_spare));
  38683. /* XXX I have no idea how to compute f_favail. Any idea??? */
  38684. buf->f_favail = buf->f_ffree;
  38685. @@ -51,61 +54,63 @@
  38686. file. The way we can test for matching filesystem is using the
  38687. device number. */
  38688. buf->f_flag = 0;
  38689. - if (STAT (&st) >= 0)
  38690. - {
  38691. - int save_errno = errno;
  38692. - struct mntent mntbuf;
  38693. - FILE *mtab;
  38694. -
  38695. - mtab = setmntent ("/proc/mounts", "r");
  38696. - if (mtab == NULL)
  38697. - mtab = setmntent (_PATH_MOUNTED, "r");
  38698. -
  38699. - if (mtab != NULL)
  38700. - {
  38701. - char tmpbuf[1024];
  38702. -
  38703. - while (getmntent_r (mtab, &mntbuf, tmpbuf, sizeof (tmpbuf)))
  38704. - {
  38705. - struct stat fsst;
  38706. -
  38707. - /* Find out about the device the current entry is for. */
  38708. - if (stat (mntbuf.mnt_dir, &fsst) >= 0
  38709. - && st.st_dev == fsst.st_dev)
  38710. - {
  38711. - /* Bingo, we found the entry for the device FD is on.
  38712. - Now interpret the option string. */
  38713. - char *cp = mntbuf.mnt_opts;
  38714. - char *opt;
  38715. -
  38716. - while ((opt = strsep (&cp, ",")) != NULL)
  38717. - if (strcmp (opt, "ro") == 0)
  38718. - buf->f_flag |= ST_RDONLY;
  38719. - else if (strcmp (opt, "nosuid") == 0)
  38720. - buf->f_flag |= ST_NOSUID;
  38721. + if (STAT (&st) >= 0
  38722. +#ifdef _STATFS_F_FLAGS
  38723. + && (fsbuf.f_flags & ST_VALID) == 0
  38724. +#endif
  38725. + ) {
  38726. + int save_errno = errno;
  38727. + struct mntent mntbuf;
  38728. + FILE *mtab;
  38729. +
  38730. + mtab = setmntent ("/proc/mounts", "r");
  38731. + if (mtab == NULL)
  38732. + mtab = setmntent (_PATH_MOUNTED, "r");
  38733. + if (mtab != NULL) {
  38734. + char tmpbuf[1024];
  38735. +
  38736. + while (getmntent_r (mtab, &mntbuf, tmpbuf, sizeof (tmpbuf))) {
  38737. + struct stat fsst;
  38738. +
  38739. + /* Find out about the device the current entry is for. */
  38740. + if (stat (mntbuf.mnt_dir, &fsst) >= 0
  38741. + && st.st_dev == fsst.st_dev) {
  38742. + /* Bingo, we found the entry for the device FD is on.
  38743. + Now interpret the option string. */
  38744. + char *cp = mntbuf.mnt_opts;
  38745. + char *opt;
  38746. +
  38747. + while ((opt = strsep (&cp, ",")) != NULL)
  38748. + if (strcmp (opt, "ro") == 0)
  38749. + buf->f_flag |= ST_RDONLY;
  38750. + else if (strcmp (opt, "nosuid") == 0)
  38751. + buf->f_flag |= ST_NOSUID;
  38752. #ifdef __USE_GNU
  38753. - else if (strcmp (opt, "noexec") == 0)
  38754. - buf->f_flag |= ST_NOEXEC;
  38755. - else if (strcmp (opt, "nodev") == 0)
  38756. - buf->f_flag |= ST_NODEV;
  38757. - else if (strcmp (opt, "sync") == 0)
  38758. - buf->f_flag |= ST_SYNCHRONOUS;
  38759. - else if (strcmp (opt, "mand") == 0)
  38760. - buf->f_flag |= ST_MANDLOCK;
  38761. - else if (strcmp (opt, "noatime") == 0)
  38762. - buf->f_flag |= ST_NOATIME;
  38763. - else if (strcmp (opt, "nodiratime") == 0)
  38764. - buf->f_flag |= ST_NODIRATIME;
  38765. + else if (strcmp (opt, "noexec") == 0)
  38766. + buf->f_flag |= ST_NOEXEC;
  38767. + else if (strcmp (opt, "nodev") == 0)
  38768. + buf->f_flag |= ST_NODEV;
  38769. + else if (strcmp (opt, "sync") == 0)
  38770. + buf->f_flag |= ST_SYNCHRONOUS;
  38771. + else if (strcmp (opt, "mand") == 0)
  38772. + buf->f_flag |= ST_MANDLOCK;
  38773. + else if (strcmp (opt, "noatime") == 0)
  38774. + buf->f_flag |= ST_NOATIME;
  38775. + else if (strcmp (opt, "nodiratime") == 0)
  38776. + buf->f_flag |= ST_NODIRATIME;
  38777. + else if (strcmp (opt, "relatime") == 0)
  38778. + buf->f_flag |= ST_RELATIME;
  38779. #endif
  38780. -
  38781. - /* We can stop looking for more entries. */
  38782. - break;
  38783. + /* We can stop looking for more entries. */
  38784. + break;
  38785. + }
  38786. }
  38787. - }
  38788. -
  38789. - /* Close the file. */
  38790. - endmntent (mtab);
  38791. - }
  38792. -
  38793. - __set_errno (save_errno);
  38794. - }
  38795. + /* Close the file. */
  38796. + endmntent (mtab);
  38797. + }
  38798. + __set_errno (save_errno);
  38799. + }
  38800. +#ifdef _STATFS_F_FLAGS
  38801. + else
  38802. + buf->f_flag = fsbuf.f_flags ^ ST_VALID;
  38803. +#endif
  38804. diff -Nur uClibc-0.9.33.2/libc/misc/statfs/Makefile.in uClibc-git/libc/misc/statfs/Makefile.in
  38805. --- uClibc-0.9.33.2/libc/misc/statfs/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  38806. +++ uClibc-git/libc/misc/statfs/Makefile.in 2014-06-02 17:40:34.026712051 +0200
  38807. @@ -7,19 +7,16 @@
  38808. subdirs += libc/misc/statfs
  38809. -CSRC := statvfs.c fstatvfs.c
  38810. -ifeq ($(UCLIBC_HAS_LFS),y)
  38811. -ifeq ($(UCLIBC_LINUX_SPECIFIC),y)
  38812. -CSRC += fstatfs64.c statfs64.c
  38813. -endif
  38814. -CSRC += statvfs64.c fstatvfs64.c
  38815. -endif
  38816. +CSRC-y := statvfs.c fstatvfs.c
  38817. +CSRC-$(UCLIBC_HAS_LFS) += $(patsubst %.c,%64.c,$(CSRC-y))
  38818. +CSRC-$(if $(findstring yy,$(UCLIBC_HAS_LFS)$(UCLIBC_LINUX_SPECIFIC)),y) += \
  38819. + fstatfs64.c statfs64.c
  38820. MISC_STATFS_DIR := $(top_srcdir)libc/misc/statfs
  38821. MISC_STATFS_OUT := $(top_builddir)libc/misc/statfs
  38822. -MISC_STATFS_SRC := $(patsubst %.c,$(MISC_STATFS_DIR)/%.c,$(CSRC))
  38823. -MISC_STATFS_OBJ := $(patsubst %.c,$(MISC_STATFS_OUT)/%.o,$(CSRC))
  38824. +MISC_STATFS_SRC := $(patsubst %.c,$(MISC_STATFS_DIR)/%.c,$(CSRC-y))
  38825. +MISC_STATFS_OBJ := $(patsubst %.c,$(MISC_STATFS_OUT)/%.o,$(CSRC-y))
  38826. libc-y += $(MISC_STATFS_OBJ)
  38827. diff -Nur uClibc-0.9.33.2/libc/misc/statfs/statfs64.c uClibc-git/libc/misc/statfs/statfs64.c
  38828. --- uClibc-0.9.33.2/libc/misc/statfs/statfs64.c 2012-05-15 09:20:09.000000000 +0200
  38829. +++ uClibc-git/libc/misc/statfs/statfs64.c 2014-06-02 17:40:34.026712051 +0200
  38830. @@ -13,18 +13,19 @@
  38831. Lesser General Public License for more details.
  38832. You should have received a copy of the GNU Lesser General Public
  38833. - License along with the GNU C Library; if not, write to the Free
  38834. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38835. - 02111-1307 USA. */
  38836. + License along with the GNU C Library; if not, see
  38837. + <http://www.gnu.org/licenses/>. */
  38838. #include <_lfs_64.h>
  38839. #include <string.h>
  38840. #include <stddef.h>
  38841. #include <sys/statfs.h>
  38842. +#include <sys/syscall.h>
  38843. extern __typeof(statfs) __libc_statfs;
  38844. +#if defined __NR_statfs
  38845. /* Return information about the filesystem on which FILE resides. */
  38846. int statfs64 (const char *file, struct statfs64 *buf)
  38847. {
  38848. @@ -42,8 +43,21 @@
  38849. buf->f_ffree = buf32.f_ffree;
  38850. buf->f_fsid = buf32.f_fsid;
  38851. buf->f_namelen = buf32.f_namelen;
  38852. +#ifdef _STATFS_F_FRSIZE
  38853. + buf->f_frsize = buf32.f_frsize;
  38854. +#endif
  38855. +#ifdef _STATFS_F_FLAGS
  38856. + buf->f_flags = buf32.f_flags;
  38857. +#endif
  38858. memcpy (buf->f_spare, buf32.f_spare, sizeof (buf32.f_spare));
  38859. return 0;
  38860. }
  38861. +#else
  38862. +int statfs64 (const char *file, struct statfs64 *buf)
  38863. +{
  38864. + return INLINE_SYSCALL(statfs64, 3, file, sizeof(*buf), buf);
  38865. +}
  38866. +#endif
  38867. +
  38868. libc_hidden_def(statfs64)
  38869. diff -Nur uClibc-0.9.33.2/libc/misc/statfs/statvfs64.c uClibc-git/libc/misc/statfs/statvfs64.c
  38870. --- uClibc-0.9.33.2/libc/misc/statfs/statvfs64.c 2012-05-15 09:20:09.000000000 +0200
  38871. +++ uClibc-git/libc/misc/statfs/statvfs64.c 2014-06-02 17:40:34.030712073 +0200
  38872. @@ -13,9 +13,8 @@
  38873. Lesser General Public License for more details.
  38874. You should have received a copy of the GNU Lesser General Public
  38875. - License along with the GNU C Library; if not, write to the Free
  38876. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38877. - 02111-1307 USA. */
  38878. + License along with the GNU C Library; if not, see
  38879. + <http://www.gnu.org/licenses/>. */
  38880. #include <_lfs_64.h>
  38881. diff -Nur uClibc-0.9.33.2/libc/misc/statfs/statvfs.c uClibc-git/libc/misc/statfs/statvfs.c
  38882. --- uClibc-0.9.33.2/libc/misc/statfs/statvfs.c 2012-05-15 09:20:09.000000000 +0200
  38883. +++ uClibc-git/libc/misc/statfs/statvfs.c 2014-06-02 17:40:34.026712051 +0200
  38884. @@ -13,9 +13,8 @@
  38885. Lesser General Public License for more details.
  38886. You should have received a copy of the GNU Lesser General Public
  38887. - License along with the GNU C Library; if not, write to the Free
  38888. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38889. - 02111-1307 USA. */
  38890. + License along with the GNU C Library; if not, see
  38891. + <http://www.gnu.org/licenses/>. */
  38892. #include <features.h>
  38893. #include <errno.h>
  38894. diff -Nur uClibc-0.9.33.2/libc/misc/syslog/Makefile.in uClibc-git/libc/misc/syslog/Makefile.in
  38895. --- uClibc-0.9.33.2/libc/misc/syslog/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  38896. +++ uClibc-git/libc/misc/syslog/Makefile.in 2014-06-02 17:40:34.030712073 +0200
  38897. @@ -7,13 +7,13 @@
  38898. subdirs += libc/misc/syslog
  38899. -CSRC := syslog.c
  38900. +CSRC-y := syslog.c
  38901. MISC_SYSLOG_DIR := $(top_srcdir)libc/misc/syslog
  38902. MISC_SYSLOG_OUT := $(top_builddir)libc/misc/syslog
  38903. -MISC_SYSLOG_SRC := $(patsubst %.c,$(MISC_SYSLOG_DIR)/%.c,$(CSRC))
  38904. -MISC_SYSLOG_OBJ := $(patsubst %.c,$(MISC_SYSLOG_OUT)/%.o,$(CSRC))
  38905. +MISC_SYSLOG_SRC := $(patsubst %.c,$(MISC_SYSLOG_DIR)/%.c,$(CSRC-y))
  38906. +MISC_SYSLOG_OBJ := $(patsubst %.c,$(MISC_SYSLOG_OUT)/%.o,$(CSRC-y))
  38907. ifeq ($(UCLIBC_HAS_SYSLOG),y)
  38908. libc-y += $(MISC_SYSLOG_OBJ)
  38909. diff -Nur uClibc-0.9.33.2/libc/misc/syslog/syslog.c uClibc-git/libc/misc/syslog/syslog.c
  38910. --- uClibc-0.9.33.2/libc/misc/syslog/syslog.c 2012-05-15 09:20:09.000000000 +0200
  38911. +++ uClibc-git/libc/misc/syslog/syslog.c 2014-06-02 17:40:34.030712073 +0200
  38912. @@ -58,8 +58,6 @@
  38913. * - Major code cleanup.
  38914. */
  38915. -#define __FORCE_GLIBC
  38916. -#include <features.h>
  38917. #include <sys/types.h>
  38918. #include <sys/socket.h>
  38919. #include <sys/file.h>
  38920. @@ -177,14 +175,17 @@
  38921. openlog_intern(ident, logstat, logfac);
  38922. __UCLIBC_MUTEX_UNLOCK(mylock);
  38923. }
  38924. -libc_hidden_def(openlog)
  38925. /*
  38926. * syslog, vsyslog --
  38927. * print message on log file; output is intended for syslogd(8).
  38928. */
  38929. +static
  38930. +#ifndef __USE_BSD
  38931. +__always_inline
  38932. +#endif
  38933. void
  38934. -vsyslog(int pri, const char *fmt, va_list ap)
  38935. +__vsyslog(int pri, const char *fmt, va_list ap)
  38936. {
  38937. register char *p;
  38938. char *last_chr, *head_end, *end, *stdp;
  38939. @@ -303,7 +304,9 @@
  38940. getout:
  38941. __UCLIBC_MUTEX_UNLOCK(mylock);
  38942. }
  38943. -libc_hidden_def(vsyslog)
  38944. +#ifdef __USE_BSD
  38945. +strong_alias(__vsyslog,vsyslog)
  38946. +#endif
  38947. void
  38948. syslog(int pri, const char *fmt, ...)
  38949. @@ -311,7 +314,7 @@
  38950. va_list ap;
  38951. va_start(ap, fmt);
  38952. - vsyslog(pri, fmt, ap);
  38953. + __vsyslog(pri, fmt, ap);
  38954. va_end(ap);
  38955. }
  38956. libc_hidden_def(syslog)
  38957. @@ -326,7 +329,6 @@
  38958. closelog_intern(0); /* 0: reset LogXXX globals to default */
  38959. __UCLIBC_MUTEX_UNLOCK(mylock);
  38960. }
  38961. -libc_hidden_def(closelog)
  38962. /* setlogmask -- set the log mask level */
  38963. int setlogmask(int pmask)
  38964. @@ -335,9 +337,9 @@
  38965. omask = LogMask;
  38966. if (pmask != 0) {
  38967. - __UCLIBC_MUTEX_LOCK(mylock);
  38968. +/* __UCLIBC_MUTEX_LOCK(mylock);*/
  38969. LogMask = pmask;
  38970. - __UCLIBC_MUTEX_UNLOCK(mylock);
  38971. +/* __UCLIBC_MUTEX_UNLOCK(mylock);*/
  38972. }
  38973. return omask;
  38974. }
  38975. diff -Nur uClibc-0.9.33.2/libc/misc/sysvipc/ftok.c uClibc-git/libc/misc/sysvipc/ftok.c
  38976. --- uClibc-0.9.33.2/libc/misc/sysvipc/ftok.c 2012-05-15 09:20:09.000000000 +0200
  38977. +++ uClibc-git/libc/misc/sysvipc/ftok.c 2014-06-02 17:40:34.030712073 +0200
  38978. @@ -14,8 +14,7 @@
  38979. You should have received a copy of the GNU Library General Public
  38980. License along with the GNU C Library; see the file COPYING.LIB. If not,
  38981. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  38982. - Boston, MA 02111-1307, USA. */
  38983. + see <http://www.gnu.org/licenses/>. */
  38984. #include <sys/ipc.h>
  38985. #include <sys/stat.h>
  38986. diff -Nur uClibc-0.9.33.2/libc/misc/sysvipc/ipc.h uClibc-git/libc/misc/sysvipc/ipc.h
  38987. --- uClibc-0.9.33.2/libc/misc/sysvipc/ipc.h 2012-05-15 09:20:09.000000000 +0200
  38988. +++ uClibc-git/libc/misc/sysvipc/ipc.h 2014-06-02 17:40:34.030712073 +0200
  38989. @@ -3,10 +3,14 @@
  38990. #include <syscall.h>
  38991. #include <bits/wordsize.h>
  38992. -#if __WORDSIZE == 32 || defined __alpha__ || defined __mips__
  38993. -# define __IPC_64 0x100
  38994. +#ifndef __ARCH_HAS_DEPRECATED_SYSCALLS__
  38995. +# define __IPC_64 0x0
  38996. #else
  38997. -# define __IPC_64 0x0
  38998. +# if __WORDSIZE == 32 || defined __alpha__ || defined __mips__
  38999. +# define __IPC_64 0x100
  39000. +# else
  39001. +# define __IPC_64 0x0
  39002. +# endif
  39003. #endif
  39004. #ifdef __NR_ipc
  39005. diff -Nur uClibc-0.9.33.2/libc/misc/sysvipc/Makefile.in uClibc-git/libc/misc/sysvipc/Makefile.in
  39006. --- uClibc-0.9.33.2/libc/misc/sysvipc/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  39007. +++ uClibc-git/libc/misc/sysvipc/Makefile.in 2014-06-02 17:40:34.030712073 +0200
  39008. @@ -7,22 +7,22 @@
  39009. subdirs += libc/misc/sysvipc
  39010. -CSRC := ftok.c __syscall_ipc.c
  39011. +CSRC-y := ftok.c __syscall_ipc.c
  39012. # multi source sem.c
  39013. -CSRC += semget.c semctl.c semop.c semtimedop.c
  39014. +CSRC-y += semget.c semctl.c semop.c semtimedop.c
  39015. # multi source shm.c
  39016. -CSRC += shmat.c shmctl.c shmdt.c shmget.c
  39017. +CSRC-y += shmat.c shmctl.c shmdt.c shmget.c
  39018. # multi source msgq.c
  39019. -CSRC += msgctl.c msgget.c msgrcv.c msgsnd.c
  39020. +CSRC-y += msgctl.c msgget.c msgrcv.c msgsnd.c
  39021. MISC_SYSVIPC_DIR := $(top_srcdir)libc/misc/sysvipc
  39022. MISC_SYSVIPC_OUT := $(top_builddir)libc/misc/sysvipc
  39023. -MISC_SYSVIPC_SRC := $(patsubst %.c,$(MISC_SYSVIPC_DIR)/%.c,$(CSRC))
  39024. -MISC_SYSVIPC_OBJ := $(patsubst %.c,$(MISC_SYSVIPC_OUT)/%.o,$(CSRC))
  39025. +MISC_SYSVIPC_SRC := $(patsubst %.c,$(MISC_SYSVIPC_DIR)/%.c,$(CSRC-y))
  39026. +MISC_SYSVIPC_OBJ := $(patsubst %.c,$(MISC_SYSVIPC_OUT)/%.o,$(CSRC-y))
  39027. libc-y += $(MISC_SYSVIPC_OBJ)
  39028. diff -Nur uClibc-0.9.33.2/libc/misc/sysvipc/sem.c uClibc-git/libc/misc/sysvipc/sem.c
  39029. --- uClibc-0.9.33.2/libc/misc/sysvipc/sem.c 2012-05-15 09:20:09.000000000 +0200
  39030. +++ uClibc-git/libc/misc/sysvipc/sem.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. #include <errno.h>
  39038. #include <sys/sem.h>
  39039. diff -Nur uClibc-0.9.33.2/libc/misc/sysvipc/shm.c uClibc-git/libc/misc/sysvipc/shm.c
  39040. --- uClibc-0.9.33.2/libc/misc/sysvipc/shm.c 2012-05-15 09:20:09.000000000 +0200
  39041. +++ uClibc-git/libc/misc/sysvipc/shm.c 2014-06-02 17:40:34.046712162 +0200
  39042. @@ -14,8 +14,7 @@
  39043. You should have received a copy of the GNU Library General Public
  39044. License along with the GNU C Library; see the file COPYING.LIB. If not,
  39045. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  39046. - Boston, MA 02111-1307, USA. */
  39047. + see <http://www.gnu.org/licenses/>. */
  39048. /* SHMLBA uses it on most of the archs (not mips) */
  39049. #define __getpagesize getpagesize
  39050. @@ -54,13 +53,13 @@
  39051. #ifdef L_shmctl
  39052. /* Provide operations to control over shared memory segments. */
  39053. #ifdef __NR_shmctl
  39054. -#define __NR___libc_shmctl __NR_shmctl
  39055. -static __inline__ _syscall3(int, __libc_shmctl, int, shmid, int, cmd, struct shmid_ds *, buf)
  39056. +#define __NR___syscall_shmctl __NR_shmctl
  39057. +static __always_inline _syscall3(int, __syscall_shmctl, int, shmid, int, cmd, struct shmid_ds *, buf)
  39058. #endif
  39059. int shmctl(int shmid, int cmd, struct shmid_ds *buf)
  39060. {
  39061. #ifdef __NR_shmctl
  39062. - return __libc_shmctl(shmid, cmd | __IPC_64, buf);
  39063. + return __syscall_shmctl(shmid, cmd | __IPC_64, buf);
  39064. #else
  39065. return __syscall_ipc(IPCOP_shmctl, shmid, cmd | __IPC_64, 0, buf, 0);
  39066. #endif
  39067. diff -Nur uClibc-0.9.33.2/libc/misc/time/ftime.c uClibc-git/libc/misc/time/ftime.c
  39068. --- uClibc-0.9.33.2/libc/misc/time/ftime.c 2012-05-15 09:20:09.000000000 +0200
  39069. +++ uClibc-git/libc/misc/time/ftime.c 2014-06-02 17:40:34.062712251 +0200
  39070. @@ -12,9 +12,8 @@
  39071. Lesser General Public License for more details.
  39072. You should have received a copy of the GNU Lesser General Public
  39073. - License along with the GNU C Library; if not, write to the Free
  39074. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39075. - 02111-1307 USA. */
  39076. + License along with the GNU C Library; if not, see
  39077. + <http://www.gnu.org/licenses/>. */
  39078. #include <sys/timeb.h>
  39079. #include <sys/time.h>
  39080. diff -Nur uClibc-0.9.33.2/libc/misc/time/Makefile.in uClibc-git/libc/misc/time/Makefile.in
  39081. --- uClibc-0.9.33.2/libc/misc/time/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  39082. +++ uClibc-git/libc/misc/time/Makefile.in 2014-06-02 17:40:34.046712162 +0200
  39083. @@ -7,33 +7,24 @@
  39084. subdirs += libc/misc/time
  39085. -CSRC := adjtime.c
  39086. -ifeq ($(UCLIBC_SUSV3_LEGACY),y)
  39087. -CSRC += ftime.c
  39088. -endif
  39089. +CSRC-y := adjtime.c
  39090. +CSRC-$(UCLIBC_SUSV3_LEGACY) += ftime.c
  39091. # multi source time.c
  39092. -CSRC += asctime.c asctime_r.c clock.c ctime.c ctime_r.c gmtime.c gmtime_r.c \
  39093. +CSRC-y += asctime.c asctime_r.c clock.c ctime.c ctime_r.c gmtime.c gmtime_r.c \
  39094. localtime.c localtime_r.c mktime.c strftime.c strptime.c tzset.c \
  39095. _time_t2tm.c __time_tm.c _time_mktime.c dysize.c timegm.c \
  39096. _time_mktime_tzi.c _time_localtime_tzi.c
  39097. -ifeq ($(UCLIBC_HAS_FLOATS),y)
  39098. -CSRC += difftime.c
  39099. -endif
  39100. -ifeq ($(UCLIBC_HAS_XLOCALE),y)
  39101. -CSRC += strftime_l.c strptime_l.c
  39102. -endif
  39103. -ifeq ($(UCLIBC_HAS_WCHAR),y)
  39104. -CSRC += wcsftime.c
  39105. -ifeq ($(UCLIBC_HAS_XLOCALE),y)
  39106. -CSRC += wcsftime_l.c
  39107. -endif
  39108. -endif
  39109. +CSRC-$(UCLIBC_HAS_FLOATS) += difftime.c
  39110. +CSRC-$(UCLIBC_HAS_XLOCALE) += strftime_l.c strptime_l.c
  39111. +CSRC-$(UCLIBC_HAS_WCHAR) += wcsftime.c
  39112. +CSRC-$(if $(findstring yy,$(UCLIBC_HAS_WCHAR)$(UCLIBC_HAS_XLOCALE)),y) += \
  39113. + wcsftime_l.c
  39114. MISC_TIME_DIR := $(top_srcdir)libc/misc/time
  39115. MISC_TIME_OUT := $(top_builddir)libc/misc/time
  39116. -MISC_TIME_SRC := $(patsubst %.c,$(MISC_TIME_DIR)/%.c,$(CSRC))
  39117. -MISC_TIME_OBJ := $(patsubst %.c,$(MISC_TIME_OUT)/%.o,$(CSRC))
  39118. +MISC_TIME_SRC := $(patsubst %.c,$(MISC_TIME_DIR)/%.c,$(CSRC-y))
  39119. +MISC_TIME_OBJ := $(patsubst %.c,$(MISC_TIME_OUT)/%.o,$(CSRC-y))
  39120. libc-y += $(MISC_TIME_OBJ)
  39121. diff -Nur uClibc-0.9.33.2/libc/misc/time/time.c uClibc-git/libc/misc/time/time.c
  39122. --- uClibc-0.9.33.2/libc/misc/time/time.c 2012-05-15 09:20:09.000000000 +0200
  39123. +++ uClibc-git/libc/misc/time/time.c 2014-06-02 17:40:34.062712251 +0200
  39124. @@ -149,10 +149,6 @@
  39125. #ifdef __UCLIBC_HAS_WCHAR__
  39126. #include <wchar.h>
  39127. #endif
  39128. -#ifdef __UCLIBC_HAS_XLOCALE__
  39129. -#include <xlocale.h>
  39130. -#endif
  39131. -
  39132. #ifndef __isleap
  39133. #define __isleap(y) ( !((y) % 4) && ( ((y) % 100) || !((y) % 400) ) )
  39134. @@ -212,7 +208,7 @@
  39135. char tzname[TZNAME_MAX+1];
  39136. } rule_struct;
  39137. -__UCLIBC_MUTEX_EXTERN(_time_tzlock);
  39138. +__UCLIBC_MUTEX_EXTERN(_time_tzlock) attribute_hidden;
  39139. extern rule_struct _time_tzinfo[2] attribute_hidden;
  39140. @@ -605,11 +601,11 @@
  39141. } ll_tzname_item_t;
  39142. /* Structures form a list "UTC" -> "???" -> "tzname1" -> "tzname2"... */
  39143. -struct {
  39144. +static struct {
  39145. struct ll_tzname_item *next;
  39146. char tzname[4];
  39147. } ll_tzname_UNKNOWN = { NULL, "???" };
  39148. -const struct {
  39149. +static const struct {
  39150. struct ll_tzname_item *next;
  39151. char tzname[4];
  39152. } ll_tzname_UTC = { (void*)&ll_tzname_UNKNOWN, "UTC" };
  39153. @@ -671,7 +667,7 @@
  39154. isleap = __isleap(i);
  39155. --i;
  39156. day0 = (1
  39157. - + i /* Normal years increment 1 wday. */
  39158. + + i /* Normal years increment 1 wday. */
  39159. + (i/4)
  39160. - (i/100)
  39161. + (i/400) ) % 7;
  39162. @@ -684,20 +680,22 @@
  39163. }
  39164. } else if (r->rule_type == 'M') {
  39165. /* Find 0-based day number for 1st of the month. */
  39166. - day = 31*r->month - day_cor[r->month -1];
  39167. + day = 31 * r->month - day_cor[r->month - 1];
  39168. if (isleap && (day >= 59)) {
  39169. ++day;
  39170. }
  39171. - monlen = 31 + day_cor[r->month -1] - day_cor[r->month];
  39172. + monlen = 31 + day_cor[r->month - 1] - day_cor[r->month];
  39173. if (isleap && (r->month == 2)) {
  39174. ++monlen;
  39175. }
  39176. - /* Wweekday (0 is Sunday) of 1st of the month
  39177. + /* Weekday (0 is Sunday) of 1st of the month
  39178. * is (day0 + day) % 7. */
  39179. - if ((mday = r->day - ((day0 + day) % 7)) >= 0) {
  39180. - mday -= 7; /* Back up into prev month since r->week>0. */
  39181. + mday = r->day - ((day0 + day) % 7);
  39182. + if (mday >= 0) {
  39183. + mday -= 7; /* Back up into prev month since r->week > 0. */
  39184. }
  39185. - if ((mday += 7 * r->week) >= monlen) {
  39186. + mday += 7 * r->week;
  39187. + if (mday >= monlen) {
  39188. mday -= 7;
  39189. }
  39190. /* So, 0-based day number is... */
  39191. @@ -2100,7 +2098,8 @@
  39192. daylight = !!_time_tzinfo[1].tzname[0];
  39193. timezone = _time_tzinfo[0].gmt_offset;
  39194. -#if defined(__UCLIBC_HAS_TZ_FILE__) || defined(__UCLIBC_HAS_TZ_CACHING__)
  39195. +#if (defined(__UCLIBC_HAS_TZ_FILE__) && !defined(__UCLIBC_HAS_TZ_FILE_READ_MANY__)) || \
  39196. + defined(__UCLIBC_HAS_TZ_CACHING__)
  39197. FAST_DONE:
  39198. #endif
  39199. __UCLIBC_MUTEX_UNLOCK(_time_tzlock);
  39200. diff -Nur uClibc-0.9.33.2/libc/misc/ttyent/getttyent.c uClibc-git/libc/misc/ttyent/getttyent.c
  39201. --- uClibc-0.9.33.2/libc/misc/ttyent/getttyent.c 2012-05-15 09:20:09.000000000 +0200
  39202. +++ uClibc-git/libc/misc/ttyent/getttyent.c 2014-06-02 17:40:34.082712361 +0200
  39203. @@ -30,12 +30,11 @@
  39204. #include <features.h>
  39205. #include <ttyent.h>
  39206. #include <stdio.h>
  39207. -#include <stdio_ext.h>
  39208. #include <ctype.h>
  39209. #include <string.h>
  39210. #include <stdlib.h>
  39211. #ifdef __UCLIBC_HAS_THREADS__
  39212. -# include <pthread.h>
  39213. +# include <stdio_ext.h>
  39214. #endif
  39215. static char zapchar;
  39216. diff -Nur uClibc-0.9.33.2/libc/misc/ttyent/Makefile.in uClibc-git/libc/misc/ttyent/Makefile.in
  39217. --- uClibc-0.9.33.2/libc/misc/ttyent/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  39218. +++ uClibc-git/libc/misc/ttyent/Makefile.in 2014-06-02 17:40:34.082712361 +0200
  39219. @@ -7,13 +7,13 @@
  39220. subdirs += libc/misc/ttyent
  39221. -CSRC := getttyent.c
  39222. +CSRC-y := getttyent.c
  39223. MISC_TTYENT_DIR := $(top_srcdir)libc/misc/ttyent
  39224. MISC_TTYENT_OUT := $(top_builddir)libc/misc/ttyent
  39225. -MISC_TTYENT_SRC := $(patsubst %.c,$(MISC_TTYENT_DIR)/%.c,$(CSRC))
  39226. -MISC_TTYENT_OBJ := $(patsubst %.c,$(MISC_TTYENT_OUT)/%.o,$(CSRC))
  39227. +MISC_TTYENT_SRC := $(patsubst %.c,$(MISC_TTYENT_DIR)/%.c,$(CSRC-y))
  39228. +MISC_TTYENT_OBJ := $(patsubst %.c,$(MISC_TTYENT_OUT)/%.o,$(CSRC-y))
  39229. libc-y += $(MISC_TTYENT_OBJ)
  39230. diff -Nur uClibc-0.9.33.2/libc/misc/utmp/Makefile.in uClibc-git/libc/misc/utmp/Makefile.in
  39231. --- uClibc-0.9.33.2/libc/misc/utmp/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  39232. +++ uClibc-git/libc/misc/utmp/Makefile.in 2014-06-02 17:40:34.082712361 +0200
  39233. @@ -7,17 +7,14 @@
  39234. subdirs += libc/misc/utmp
  39235. -CSRC := utent.c wtent.c
  39236. -
  39237. -ifeq ($(UCLIBC_HAS_UTMPX),y)
  39238. -CSRC += utxent.c
  39239. -endif
  39240. +CSRC-y := utent.c wtent.c
  39241. +CSRC-$(UCLIBC_HAS_UTMPX) += utxent.c
  39242. MISC_UTMP_DIR := $(top_srcdir)libc/misc/utmp
  39243. MISC_UTMP_OUT := $(top_builddir)libc/misc/utmp
  39244. -MISC_UTMP_SRC := $(patsubst %.c,$(MISC_UTMP_DIR)/%.c,$(CSRC))
  39245. -MISC_UTMP_OBJ := $(patsubst %.c,$(MISC_UTMP_OUT)/%.o,$(CSRC))
  39246. +MISC_UTMP_SRC := $(patsubst %.c,$(MISC_UTMP_DIR)/%.c,$(CSRC-y))
  39247. +MISC_UTMP_OBJ := $(patsubst %.c,$(MISC_UTMP_OUT)/%.o,$(CSRC-y))
  39248. libc-y += $(MISC_UTMP_OBJ)
  39249. diff -Nur uClibc-0.9.33.2/libc/misc/utmp/utent.c uClibc-git/libc/misc/utmp/utent.c
  39250. --- uClibc-0.9.33.2/libc/misc/utmp/utent.c 2012-05-15 09:20:09.000000000 +0200
  39251. +++ uClibc-git/libc/misc/utmp/utent.c 2014-06-02 17:40:34.082712361 +0200
  39252. @@ -19,32 +19,22 @@
  39253. #include <errno.h>
  39254. #include <string.h>
  39255. #include <utmp.h>
  39256. +#ifdef __UCLIBC_HAS_UTMPX__
  39257. +# include <utmpx.h>
  39258. +#endif
  39259. #include <not-cancel.h>
  39260. #include <bits/uClibc_mutex.h>
  39261. __UCLIBC_MUTEX_STATIC(utmplock, PTHREAD_MUTEX_INITIALIZER);
  39262. -
  39263. -/* Do not create extra unlocked functions if no locking is needed */
  39264. -#if defined __UCLIBC_HAS_THREADS__
  39265. -# define static_if_threaded static
  39266. -#else
  39267. -# define static_if_threaded /* nothing */
  39268. -# define __setutent setutent
  39269. -# define __getutent getutent
  39270. -# define __getutid getutid
  39271. -#endif
  39272. -
  39273. -
  39274. /* Some global crap */
  39275. static int static_fd = -1;
  39276. static struct utmp static_utmp;
  39277. static const char default_file_name[] = _PATH_UTMP;
  39278. static const char *static_ut_name = default_file_name;
  39279. -
  39280. /* This function must be called with the LOCK held */
  39281. -static_if_threaded void __setutent(void)
  39282. +static void __setutent_unlocked(void)
  39283. {
  39284. if (static_fd < 0) {
  39285. static_fd = open_not_cancel_2(static_ut_name, O_RDWR | O_CLOEXEC);
  39286. @@ -63,17 +53,24 @@
  39287. lseek(static_fd, 0, SEEK_SET);
  39288. }
  39289. #if defined __UCLIBC_HAS_THREADS__
  39290. -void setutent(void)
  39291. +static void __setutent(void)
  39292. {
  39293. __UCLIBC_MUTEX_LOCK(utmplock);
  39294. - __setutent();
  39295. + __setutent_unlocked();
  39296. __UCLIBC_MUTEX_UNLOCK(utmplock);
  39297. }
  39298. +#else
  39299. +static void __setutent(void);
  39300. +strong_alias(__setutent_unlocked,__setutent)
  39301. +#endif
  39302. +strong_alias(__setutent,setutent)
  39303. +
  39304. +#ifdef __UCLIBC_HAS_UTMPX__
  39305. +strong_alias(__setutent,setutxent)
  39306. #endif
  39307. -libc_hidden_def(setutent)
  39308. /* This function must be called with the LOCK held */
  39309. -static_if_threaded struct utmp *__getutent(void)
  39310. +static struct utmp *__getutent_unlocked(void)
  39311. {
  39312. if (static_fd < 0) {
  39313. __setutent();
  39314. @@ -89,19 +86,29 @@
  39315. return NULL;
  39316. }
  39317. #if defined __UCLIBC_HAS_THREADS__
  39318. -struct utmp *getutent(void)
  39319. +static struct utmp *__getutent(void)
  39320. {
  39321. struct utmp *ret;
  39322. __UCLIBC_MUTEX_LOCK(utmplock);
  39323. - ret = __getutent();
  39324. + ret = __getutent_unlocked();
  39325. __UCLIBC_MUTEX_UNLOCK(utmplock);
  39326. return ret;
  39327. }
  39328. +#else
  39329. +static struct utmp *__getutent(void);
  39330. +strong_alias(__getutent_unlocked,__getutent)
  39331. +#endif
  39332. +strong_alias(__getutent,getutent)
  39333. +
  39334. +#ifdef __UCLIBC_HAS_UTMPX__
  39335. +struct utmpx *getutxent(void)
  39336. +{
  39337. + return (struct utmpx *) __getutent ();
  39338. +}
  39339. #endif
  39340. -libc_hidden_def(getutent)
  39341. -void endutent(void)
  39342. +static void __endutent(void)
  39343. {
  39344. __UCLIBC_MUTEX_LOCK(utmplock);
  39345. if (static_fd >= 0)
  39346. @@ -109,10 +116,14 @@
  39347. static_fd = -1;
  39348. __UCLIBC_MUTEX_UNLOCK(utmplock);
  39349. }
  39350. -libc_hidden_def(endutent)
  39351. +strong_alias(__endutent,endutent)
  39352. +
  39353. +#ifdef __UCLIBC_HAS_UTMPX__
  39354. +strong_alias(__endutent,endutxent)
  39355. +#endif
  39356. /* This function must be called with the LOCK held */
  39357. -static_if_threaded struct utmp *__getutid(const struct utmp *utmp_entry)
  39358. +static struct utmp *__getutid_unlocked(const struct utmp *utmp_entry)
  39359. {
  39360. struct utmp *lutmp;
  39361. unsigned type;
  39362. @@ -122,7 +133,7 @@
  39363. type = utmp_entry->ut_type - 1;
  39364. type /= 4;
  39365. - while ((lutmp = __getutent()) != NULL) {
  39366. + while ((lutmp = __getutent_unlocked()) != NULL) {
  39367. if (type == 0 && lutmp->ut_type == utmp_entry->ut_type) {
  39368. /* one of RUN_LVL, BOOT_TIME, NEW_TIME, OLD_TIME */
  39369. return lutmp;
  39370. @@ -136,24 +147,34 @@
  39371. return NULL;
  39372. }
  39373. #if defined __UCLIBC_HAS_THREADS__
  39374. -struct utmp *getutid(const struct utmp *utmp_entry)
  39375. +static struct utmp *__getutid(const struct utmp *utmp_entry)
  39376. {
  39377. struct utmp *ret;
  39378. __UCLIBC_MUTEX_LOCK(utmplock);
  39379. - ret = __getutid(utmp_entry);
  39380. + ret = __getutid_unlocked(utmp_entry);
  39381. __UCLIBC_MUTEX_UNLOCK(utmplock);
  39382. return ret;
  39383. }
  39384. +#else
  39385. +static struct utmp *__getutid(const struct utmp *utmp_entry);
  39386. +strong_alias(__getutid_unlocked,__getutid)
  39387. +#endif
  39388. +strong_alias(__getutid,getutid)
  39389. +
  39390. +#ifdef __UCLIBC_HAS_UTMPX__
  39391. +struct utmpx *getutxid(const struct utmpx *utmp_entry)
  39392. +{
  39393. + return (struct utmpx *) __getutid ((const struct utmp *) utmp_entry);
  39394. +}
  39395. #endif
  39396. -libc_hidden_def(getutid)
  39397. -struct utmp *getutline(const struct utmp *utmp_entry)
  39398. +static struct utmp *__getutline(const struct utmp *utmp_entry)
  39399. {
  39400. struct utmp *lutmp;
  39401. __UCLIBC_MUTEX_LOCK(utmplock);
  39402. - while ((lutmp = __getutent()) != NULL) {
  39403. + while ((lutmp = __getutent_unlocked()) != NULL) {
  39404. if (lutmp->ut_type == USER_PROCESS || lutmp->ut_type == LOGIN_PROCESS) {
  39405. if (strncmp(lutmp->ut_line, utmp_entry->ut_line, sizeof(lutmp->ut_line)) == 0) {
  39406. break;
  39407. @@ -163,16 +184,23 @@
  39408. __UCLIBC_MUTEX_UNLOCK(utmplock);
  39409. return lutmp;
  39410. }
  39411. -libc_hidden_def(getutline)
  39412. +strong_alias(__getutline,getutline)
  39413. +
  39414. +#ifdef __UCLIBC_HAS_UTMPX__
  39415. +struct utmpx *getutxline(const struct utmpx *utmp_entry)
  39416. +{
  39417. + return (struct utmpx *) __getutline ((const struct utmp *) utmp_entry);
  39418. +}
  39419. +#endif
  39420. -struct utmp *pututline(const struct utmp *utmp_entry)
  39421. +static struct utmp *__pututline(const struct utmp *utmp_entry)
  39422. {
  39423. __UCLIBC_MUTEX_LOCK(utmplock);
  39424. /* Ignore the return value. That way, if they've already positioned
  39425. the file pointer where they want it, everything will work out. */
  39426. lseek(static_fd, (off_t) - sizeof(struct utmp), SEEK_CUR);
  39427. - if (__getutid(utmp_entry) != NULL)
  39428. + if (__getutid_unlocked(utmp_entry) != NULL)
  39429. lseek(static_fd, (off_t) - sizeof(struct utmp), SEEK_CUR);
  39430. else
  39431. lseek(static_fd, (off_t) 0, SEEK_END);
  39432. @@ -182,9 +210,16 @@
  39433. __UCLIBC_MUTEX_UNLOCK(utmplock);
  39434. return (struct utmp *)utmp_entry;
  39435. }
  39436. -libc_hidden_def(pututline)
  39437. +strong_alias(__pututline,pututline)
  39438. +
  39439. +#ifdef __UCLIBC_HAS_UTMPX__
  39440. +struct utmpx *pututxline (const struct utmpx *utmp_entry)
  39441. +{
  39442. + return (struct utmpx *) __pututline ((const struct utmp *) utmp_entry);
  39443. +}
  39444. +#endif
  39445. -int utmpname(const char *new_ut_name)
  39446. +static int __utmpname(const char *new_ut_name)
  39447. {
  39448. __UCLIBC_MUTEX_LOCK(utmplock);
  39449. if (new_ut_name != NULL) {
  39450. @@ -205,4 +240,8 @@
  39451. __UCLIBC_MUTEX_UNLOCK(utmplock);
  39452. return 0; /* or maybe return -(static_ut_name != new_ut_name)? */
  39453. }
  39454. -libc_hidden_def(utmpname)
  39455. +strong_alias(__utmpname,utmpname)
  39456. +
  39457. +#ifdef __UCLIBC_HAS_UTMPX__
  39458. +strong_alias(__utmpname,utmpxname)
  39459. +#endif
  39460. diff -Nur uClibc-0.9.33.2/libc/misc/utmp/utxent.c uClibc-git/libc/misc/utmp/utxent.c
  39461. --- uClibc-0.9.33.2/libc/misc/utmp/utxent.c 2012-05-15 09:20:09.000000000 +0200
  39462. +++ uClibc-git/libc/misc/utmp/utxent.c 2014-06-02 17:40:34.082712361 +0200
  39463. @@ -13,6 +13,7 @@
  39464. #include <utmpx.h>
  39465. #include <utmp.h>
  39466. +#if 0 /* moved to utent.c */
  39467. void setutxent(void)
  39468. {
  39469. setutent ();
  39470. @@ -48,10 +49,12 @@
  39471. return utmpname (new_ut_name);
  39472. }
  39473. +/* moved to wtent.c */
  39474. void updwtmpx (const char *wtmpx_file, const struct utmpx *utmpx)
  39475. {
  39476. updwtmp (wtmpx_file, (const struct utmp *) utmpx);
  39477. }
  39478. +#endif
  39479. /* Copy the information in UTMPX to UTMP. */
  39480. void getutmp (const struct utmpx *utmpx, struct utmp *utmp)
  39481. @@ -104,4 +107,3 @@
  39482. utmpx->ut_time = utmp->ut_time;
  39483. #endif
  39484. }
  39485. -
  39486. diff -Nur uClibc-0.9.33.2/libc/misc/utmp/wtent.c uClibc-git/libc/misc/utmp/wtent.c
  39487. --- uClibc-0.9.33.2/libc/misc/utmp/wtent.c 2012-05-15 09:20:09.000000000 +0200
  39488. +++ uClibc-git/libc/misc/utmp/wtent.c 2014-06-02 17:40:34.082712361 +0200
  39489. @@ -11,6 +11,9 @@
  39490. #include <time.h>
  39491. #include <unistd.h>
  39492. #include <utmp.h>
  39493. +#ifdef __UCLIBC_HAS_UTMPX__
  39494. +# include <utmpx.h>
  39495. +#endif
  39496. #include <fcntl.h>
  39497. #include <sys/file.h>
  39498. #include <not-cancel.h>
  39499. @@ -33,11 +36,11 @@
  39500. }
  39501. #endif
  39502. -void updwtmp(const char *wtmp_file, const struct utmp *lutmp)
  39503. +static void __updwtmp(const char *wtmp_file, const struct utmp *lutmp)
  39504. {
  39505. int fd;
  39506. - fd = open_not_cancel(wtmp_file, O_APPEND | O_WRONLY, 0);
  39507. + fd = open_not_cancel_2(wtmp_file, O_APPEND | O_WRONLY);
  39508. if (fd >= 0) {
  39509. if (lockf(fd, F_LOCK, 0) == 0) {
  39510. write_not_cancel(fd, lutmp, sizeof(struct utmp));
  39511. @@ -46,4 +49,11 @@
  39512. }
  39513. }
  39514. }
  39515. -libc_hidden_def(updwtmp)
  39516. +strong_alias(__updwtmp,updwtmp)
  39517. +
  39518. +#ifdef __UCLIBC_HAS_UTMPX__
  39519. +void updwtmpx (const char *wtmpx_file, const struct utmpx *utmpx)
  39520. +{
  39521. + __updwtmp (wtmpx_file, (const struct utmp *) utmpx);
  39522. +}
  39523. +#endif
  39524. diff -Nur uClibc-0.9.33.2/libc/misc/wchar/Makefile.in uClibc-git/libc/misc/wchar/Makefile.in
  39525. --- uClibc-0.9.33.2/libc/misc/wchar/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  39526. +++ uClibc-git/libc/misc/wchar/Makefile.in 2014-06-02 17:40:34.082712361 +0200
  39527. @@ -19,19 +19,17 @@
  39528. subdirs += libc/misc/wchar
  39529. # multi source wchar.c
  39530. -CSRC := btowc.c wctob.c mbsinit.c mbrlen.c mbrtowc.c wcrtomb.c mbsrtowcs.c \
  39531. +CSRC-y := btowc.c wctob.c mbsinit.c mbrlen.c mbrtowc.c wcrtomb.c mbsrtowcs.c \
  39532. wcsrtombs.c _wchar_utf8sntowcs.c _wchar_wcsntoutf8s.c \
  39533. mbsnrtowcs.c wcsnrtombs.c wcwidth.c wcswidth.c
  39534. -ifeq ($(UCLIBC_HAS_LOCALE),y)
  39535. -CSRC += iconv.c
  39536. -endif
  39537. +CSRC-$(UCLIBC_HAS_LOCALE) += iconv.c
  39538. MISC_WCHAR_DIR := $(top_srcdir)libc/misc/wchar
  39539. MISC_WCHAR_OUT := $(top_builddir)libc/misc/wchar
  39540. -MISC_WCHAR_SRC := $(patsubst %.c,$(MISC_WCHAR_DIR)/%.c,$(CSRC))
  39541. -MISC_WCHAR_OBJ := $(patsubst %.c,$(MISC_WCHAR_OUT)/%.o,$(CSRC))
  39542. +MISC_WCHAR_SRC := $(patsubst %.c,$(MISC_WCHAR_DIR)/%.c,$(CSRC-y))
  39543. +MISC_WCHAR_OBJ := $(patsubst %.c,$(MISC_WCHAR_OUT)/%.o,$(CSRC-y))
  39544. libc-$(UCLIBC_HAS_WCHAR) += $(MISC_WCHAR_OBJ)
  39545. diff -Nur uClibc-0.9.33.2/libc/misc/wchar/wchar.c uClibc-git/libc/misc/wchar/wchar.c
  39546. --- uClibc-0.9.33.2/libc/misc/wchar/wchar.c 2012-05-15 09:20:09.000000000 +0200
  39547. +++ uClibc-git/libc/misc/wchar/wchar.c 2014-06-02 17:40:34.082712361 +0200
  39548. @@ -12,8 +12,8 @@
  39549. * Library General Public License for more details.
  39550. *
  39551. * You should have received a copy of the GNU Library General Public
  39552. - * License along with this library; if not, write to the Free
  39553. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  39554. + * License along with this library; if not, see
  39555. + * <http://www.gnu.org/licenses/>.
  39556. */
  39557. /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
  39558. @@ -1196,6 +1196,9 @@
  39559. #endif
  39560. #if defined L_iconv || defined L_iconv_main
  39561. +# ifdef L_iconv_main
  39562. +static
  39563. +# endif
  39564. const unsigned char __iconv_codesets[] =
  39565. "\x0a\xe0""WCHAR_T\x00" /* superset of UCS-4 but platform-endian */
  39566. #if __BYTE_ORDER == __BIG_ENDIAN
  39567. diff -Nur uClibc-0.9.33.2/libc/misc/wctype/Makefile.in uClibc-git/libc/misc/wctype/Makefile.in
  39568. --- uClibc-0.9.33.2/libc/misc/wctype/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  39569. +++ uClibc-git/libc/misc/wctype/Makefile.in 2014-06-02 17:40:34.082712361 +0200
  39570. @@ -14,19 +14,15 @@
  39571. iswxdigit.c iswblank.c wctrans.c towctrans.c \
  39572. wctype.c iswctype.c towlower.c towupper.c
  39573. -CSRC :=
  39574. -ifeq ($(UCLIBC_HAS_WCHAR),y)
  39575. -CSRC += $(COM_SRC)
  39576. -endif
  39577. -ifeq ($(UCLIBC_HAS_XLOCALE),y)
  39578. -CSRC += $(patsubst %.c,%_l.c,$(COM_SRC))
  39579. -endif
  39580. +CSRC-y :=
  39581. +CSRC-$(UCLIBC_HAS_WCHAR) += $(COM_SRC)
  39582. +CSRC-$(UCLIBC_HAS_XLOCALE) += $(patsubst %.c,%_l.c,$(COM_SRC))
  39583. MISC_WCTYPE_DIR := $(top_srcdir)libc/misc/wctype
  39584. MISC_WCTYPE_OUT := $(top_builddir)libc/misc/wctype
  39585. -MISC_WCTYPE_SRC := $(patsubst %.c,$(MISC_WCTYPE_DIR)/%.c,$(CSRC))
  39586. -MISC_WCTYPE_OBJ := $(patsubst %.c,$(MISC_WCTYPE_OUT)/%.o,$(CSRC))
  39587. +MISC_WCTYPE_SRC := $(patsubst %.c,$(MISC_WCTYPE_DIR)/%.c,$(CSRC-y))
  39588. +MISC_WCTYPE_OBJ := $(patsubst %.c,$(MISC_WCTYPE_OUT)/%.o,$(CSRC-y))
  39589. libc-y += $(MISC_WCTYPE_OBJ)
  39590. diff -Nur uClibc-0.9.33.2/libc/misc/wctype/_wctype.c uClibc-git/libc/misc/wctype/_wctype.c
  39591. --- uClibc-0.9.33.2/libc/misc/wctype/_wctype.c 2012-05-15 09:20:09.000000000 +0200
  39592. +++ uClibc-git/libc/misc/wctype/_wctype.c 2014-06-02 17:40:34.082712361 +0200
  39593. @@ -11,8 +11,8 @@
  39594. * Library General Public License for more details.
  39595. *
  39596. * You should have received a copy of the GNU Library General Public
  39597. - * License along with this library; if not, write to the Free
  39598. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  39599. + * License along with this library; if not, see
  39600. + * <http://www.gnu.org/licenses/>.
  39601. */
  39602. /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
  39603. @@ -41,10 +41,6 @@
  39604. # error xlocale functionality is not supported in stub locale mode.
  39605. #endif
  39606. -#ifdef __UCLIBC_HAS_XLOCALE__
  39607. -# include <xlocale.h>
  39608. -#endif
  39609. -
  39610. /* We know wide char support is enabled. We wouldn't be here otherwise. */
  39611. /* Define this if you want to unify the towupper and towlower code in the
  39612. diff -Nur uClibc-0.9.33.2/libc/misc/wordexp/Makefile.in uClibc-git/libc/misc/wordexp/Makefile.in
  39613. --- uClibc-0.9.33.2/libc/misc/wordexp/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  39614. +++ uClibc-git/libc/misc/wordexp/Makefile.in 2014-06-02 17:40:34.086712384 +0200
  39615. @@ -7,13 +7,13 @@
  39616. subdirs += libc/misc/wordexp
  39617. -CSRC := wordexp.c
  39618. +CSRC-y := wordexp.c
  39619. MISC_WORDEXP_DIR := $(top_srcdir)libc/misc/wordexp
  39620. MISC_WORDEXP_OUT := $(top_builddir)libc/misc/wordexp
  39621. -MISC_WORDEXP_SRC := $(patsubst %.c,$(MISC_WORDEXP_DIR)/%.c,$(CSRC))
  39622. -MISC_WORDEXP_OBJ := $(patsubst %.c,$(MISC_WORDEXP_OUT)/%.o,$(CSRC))
  39623. +MISC_WORDEXP_SRC := $(patsubst %.c,$(MISC_WORDEXP_DIR)/%.c,$(CSRC-y))
  39624. +MISC_WORDEXP_OBJ := $(patsubst %.c,$(MISC_WORDEXP_OUT)/%.o,$(CSRC-y))
  39625. libc-$(UCLIBC_HAS_WORDEXP) += $(MISC_WORDEXP_OBJ)
  39626. diff -Nur uClibc-0.9.33.2/libc/misc/wordexp/wordexp.c uClibc-git/libc/misc/wordexp/wordexp.c
  39627. --- uClibc-0.9.33.2/libc/misc/wordexp/wordexp.c 2012-05-15 09:20:09.000000000 +0200
  39628. +++ uClibc-git/libc/misc/wordexp/wordexp.c 2014-06-02 17:40:34.086712384 +0200
  39629. @@ -16,11 +16,11 @@
  39630. You should have received a copy of the GNU Library General Public
  39631. License along with the GNU C Library; see the file COPYING.LIB. If not,
  39632. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  39633. - Boston, MA 02111-1307, USA. */
  39634. + see <http://www.gnu.org/licenses/>. */
  39635. #include <features.h>
  39636. #include <bits/kernel-features.h>
  39637. +#include <ctype.h>
  39638. #include <sys/types.h>
  39639. #include <sys/wait.h>
  39640. #include <fcntl.h>
  39641. @@ -36,6 +36,10 @@
  39642. #include <glob.h>
  39643. #include <wordexp.h>
  39644. +#ifndef __ARCH_USE_MMU__
  39645. +# define fork vfork
  39646. +#endif
  39647. +
  39648. #define __WORDEXP_FULL
  39649. /*
  39650. diff -Nur uClibc-0.9.33.2/libc/pwd_grp/lckpwdf.c uClibc-git/libc/pwd_grp/lckpwdf.c
  39651. --- uClibc-0.9.33.2/libc/pwd_grp/lckpwdf.c 2012-05-15 09:20:09.000000000 +0200
  39652. +++ uClibc-git/libc/pwd_grp/lckpwdf.c 2014-06-02 17:40:34.114712538 +0200
  39653. @@ -15,9 +15,8 @@
  39654. Lesser General Public License for more details.
  39655. You should have received a copy of the GNU Lesser General Public
  39656. - License along with the GNU C Library; if not, write to the Free
  39657. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39658. - 02111-1307 USA. */
  39659. + License along with the GNU C Library; if not, see
  39660. + <http://www.gnu.org/licenses/>. */
  39661. #include <features.h>
  39662. #include <fcntl.h>
  39663. @@ -51,6 +50,7 @@
  39664. struct sigaction new_act; /* New signal action. */
  39665. struct flock fl; /* Information struct for locking. */
  39666. int result;
  39667. + int rv = -1;
  39668. if (lock_fd != -1)
  39669. /* Still locked by own process. */
  39670. @@ -111,11 +111,13 @@
  39671. if (result < 0) {
  39672. close(lock_fd);
  39673. lock_fd = -1;
  39674. + goto DONE;
  39675. }
  39676. + rv = 0;
  39677. DONE:
  39678. __UCLIBC_MUTEX_UNLOCK(mylock);
  39679. - return 0; /* TODO: return result? */
  39680. + return rv;
  39681. }
  39682. diff -Nur uClibc-0.9.33.2/libc/pwd_grp/Makefile.in uClibc-git/libc/pwd_grp/Makefile.in
  39683. --- uClibc-0.9.33.2/libc/pwd_grp/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  39684. +++ uClibc-git/libc/pwd_grp/Makefile.in 2014-06-02 17:40:34.086712384 +0200
  39685. @@ -10,20 +10,17 @@
  39686. PWDGRP_DIR := $(top_srcdir)libc/pwd_grp
  39687. PWDGRP_OUT := $(top_builddir)libc/pwd_grp
  39688. -CSRC := $(notdir $(wildcard $(PWDGRP_DIR)/*.c))
  39689. -CSRC := $(filter-out pwd_grp.c pwd_grp_internal.c,$(CSRC))
  39690. -
  39691. -ifneq ($(UCLIBC_HAS_SHADOW),y)
  39692. -SHADOW_CSRC := \
  39693. - fgetspent_r.c fgetspent.c getspent_r.c getspent.c \
  39694. +CSRC-y := $(notdir $(wildcard $(PWDGRP_DIR)/*.c))
  39695. +CSRC- := pwd_grp.c pwd_grp_internal.c # multi-source and helper
  39696. +CSRC-$(UCLIBC_HAS_SHADOW) += fgetspent_r.c fgetspent.c getspent_r.c getspent.c \
  39697. getspnam_r.c getspnam.c lckpwdf.c putspent.c \
  39698. sgetspent_r.c sgetspent.c __parsespent.c
  39699. # getspuid_r.c getspuid.c
  39700. -CSRC := $(filter-out $(SHADOW_CSRC),$(CSRC))
  39701. -endif
  39702. -PWDGRP_SRC := $(patsubst %.c,$(PWDGRP_DIR)/%.c,$(CSRC))
  39703. -PWDGRP_OBJ := $(patsubst %.c,$(PWDGRP_OUT)/%.o,$(CSRC))
  39704. +CSRC-y := $(filter-out $(CSRC-),$(CSRC-y))
  39705. +
  39706. +PWDGRP_SRC := $(patsubst %.c,$(PWDGRP_DIR)/%.c,$(CSRC-y))
  39707. +PWDGRP_OBJ := $(patsubst %.c,$(PWDGRP_OUT)/%.o,$(CSRC-y))
  39708. libc-y += $(PWDGRP_OBJ)
  39709. diff -Nur uClibc-0.9.33.2/libc/pwd_grp/pwd_grp.c uClibc-git/libc/pwd_grp/pwd_grp.c
  39710. --- uClibc-0.9.33.2/libc/pwd_grp/pwd_grp.c 2012-05-15 09:20:09.000000000 +0200
  39711. +++ uClibc-git/libc/pwd_grp/pwd_grp.c 2014-06-02 17:40:34.114712538 +0200
  39712. @@ -354,6 +354,7 @@
  39713. getpwnam_r(name, &resultbuf, buffer, sizeof(buffer), &result);
  39714. return result;
  39715. }
  39716. +libc_hidden_def(getpwnam)
  39717. #endif
  39718. /**********************************************************************/
  39719. diff -Nur uClibc-0.9.33.2/libc/pwd_grp/pwd_grp_internal.c uClibc-git/libc/pwd_grp/pwd_grp_internal.c
  39720. --- uClibc-0.9.33.2/libc/pwd_grp/pwd_grp_internal.c 2012-05-15 09:20:09.000000000 +0200
  39721. +++ uClibc-git/libc/pwd_grp/pwd_grp_internal.c 2014-06-02 17:40:34.114712538 +0200
  39722. @@ -34,9 +34,6 @@
  39723. #ifdef __UCLIBC_HAS_SHADOW__
  39724. #include <shadow.h>
  39725. #endif
  39726. -#ifdef __UCLIBC_HAS_THREADS__
  39727. -#include <pthread.h>
  39728. -#endif
  39729. /**********************************************************************/
  39730. /* Sizes for statically allocated buffers. */
  39731. diff -Nur uClibc-0.9.33.2/libc/signal/allocrtsig.c uClibc-git/libc/signal/allocrtsig.c
  39732. --- uClibc-0.9.33.2/libc/signal/allocrtsig.c 2012-05-15 09:20:09.000000000 +0200
  39733. +++ uClibc-git/libc/signal/allocrtsig.c 2014-06-02 17:40:34.118712560 +0200
  39734. @@ -14,13 +14,11 @@
  39735. Lesser General Public License for more details.
  39736. You should have received a copy of the GNU Lesser General Public
  39737. - License along with the GNU C Library; if not, write to the Free
  39738. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39739. - 02111-1307 USA. */
  39740. + License along with the GNU C Library; if not, see
  39741. + <http://www.gnu.org/licenses/>. */
  39742. #include <features.h>
  39743. #include <signal.h>
  39744. -#include <sys/types.h>
  39745. #include <sys/syscall.h>
  39746. /* Only enable rt signals when it is supported at compile time */
  39747. @@ -34,6 +32,13 @@
  39748. #else
  39749. # ifdef __UCLIBC_HAS_THREADS_NATIVE__
  39750. static int current_rtmin = __SIGRTMIN + 2;
  39751. +# elif defined __UCLIBC_HAS_THREADS__ && !defined __LINUXTHREADS_OLD__
  39752. +/* psm: might be good for LT old as well, do not want to break it for now */
  39753. +/* Sanity check */
  39754. +# if !defined __SIGRTMIN || (__SIGRTMAX - __SIGRTMIN) < 3
  39755. +# error "This must not happen"
  39756. +# endif
  39757. +static int current_rtmin = __SIGRTMIN + 3;
  39758. # else
  39759. static int current_rtmin = __SIGRTMIN;
  39760. # endif
  39761. @@ -52,6 +57,7 @@
  39762. return current_rtmax;
  39763. }
  39764. +#if 0
  39765. /* Allocate real-time signal with highest/lowest available
  39766. priority. Please note that we don't use a lock since we assume
  39767. this function to be called at program start. */
  39768. @@ -64,3 +70,4 @@
  39769. return high ? current_rtmin++ : current_rtmax--;
  39770. }
  39771. +#endif
  39772. diff -Nur uClibc-0.9.33.2/libc/signal/killpg.c uClibc-git/libc/signal/killpg.c
  39773. --- uClibc-0.9.33.2/libc/signal/killpg.c 2012-05-15 09:20:09.000000000 +0200
  39774. +++ uClibc-git/libc/signal/killpg.c 2014-06-02 17:40:34.118712560 +0200
  39775. @@ -12,14 +12,12 @@
  39776. Lesser General Public License for more details.
  39777. You should have received a copy of the GNU Lesser General Public
  39778. - License along with the GNU C Library; if not, write to the Free
  39779. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39780. - 02111-1307 USA. */
  39781. + License along with the GNU C Library; if not, see
  39782. + <http://www.gnu.org/licenses/>. */
  39783. #include <errno.h>
  39784. #include <signal.h>
  39785. -
  39786. /* Send SIG to all processes in process group PGRP.
  39787. If PGRP is zero, send SIG to all processes in
  39788. the current process's process group. */
  39789. diff -Nur uClibc-0.9.33.2/libc/signal/Makefile.in uClibc-git/libc/signal/Makefile.in
  39790. --- uClibc-0.9.33.2/libc/signal/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  39791. +++ uClibc-git/libc/signal/Makefile.in 2014-06-02 17:40:34.114712538 +0200
  39792. @@ -8,20 +8,18 @@
  39793. subdirs += libc/signal
  39794. CSRC-y := allocrtsig.c killpg.c raise.c sigaction.c sigaddset.c sigandset.c \
  39795. - sigblock.c sigdelset.c sigempty.c sigfillset.c siggetmask.c \
  39796. + sigdelset.c sigempty.c sigfillset.c \
  39797. sigisempty.c sigismem.c sigjmp.c signal.c \
  39798. - sigorset.c sigsetmask.c sigsetops.c sigwait.c
  39799. + sigorset.c sigsetops.c sigwait.c
  39800. CSRC-$(UCLIBC_HAS_OBSOLETE_BSD_SIGNAL) += \
  39801. sighold.c sigignore.c sigrelse.c sigset.c
  39802. CSRC-$(UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL) += sysv_signal.c
  39803. CSRC-$(UCLIBC_SUSV4_LEGACY) += sigintr.c sigpause.c
  39804. -ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
  39805. -CSRC-y:=$(filter-out raise.c,$(CSRC-y))
  39806. -endif
  39807. +CSRC-$(UCLIBC_HAS_THREADS_NATIVE):=$(filter-out raise.c,$(CSRC-y))
  39808. -ifneq ($(strip $(ARCH_OBJS)),)
  39809. -CSRC-y := $(filter-out $(notdir $(ARCH_OBJS:.o=.c)),$(CSRC-y))
  39810. +ifneq ($(strip $(ARCH_OBJS-y)),)
  39811. +CSRC-y := $(filter-out $(notdir $(ARCH_OBJS-y:.o=.c)),$(CSRC-y))
  39812. endif
  39813. ifneq ($(UCLIBC_HAS_BACKTRACE),)
  39814. diff -Nur uClibc-0.9.33.2/libc/signal/raise.c uClibc-git/libc/signal/raise.c
  39815. --- uClibc-0.9.33.2/libc/signal/raise.c 2012-05-15 09:20:09.000000000 +0200
  39816. +++ uClibc-git/libc/signal/raise.c 2014-06-02 17:40:34.118712560 +0200
  39817. @@ -3,9 +3,7 @@
  39818. */
  39819. #include <unistd.h>
  39820. -#include <string.h>
  39821. #include <signal.h>
  39822. -#include <sys/types.h>
  39823. int raise(int signo)
  39824. {
  39825. diff -Nur uClibc-0.9.33.2/libc/signal/sigaction.c uClibc-git/libc/signal/sigaction.c
  39826. --- uClibc-0.9.33.2/libc/signal/sigaction.c 2012-05-15 09:20:09.000000000 +0200
  39827. +++ uClibc-git/libc/signal/sigaction.c 2014-06-02 17:40:34.118712560 +0200
  39828. @@ -12,23 +12,12 @@
  39829. Lesser General Public License for more details.
  39830. You should have received a copy of the GNU Lesser General Public
  39831. - License along with the GNU C Library; if not, write to the Free
  39832. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39833. - 02111-1307 USA. */
  39834. + License along with the GNU C Library; if not, see
  39835. + <http://www.gnu.org/licenses/>. */
  39836. -#include <features.h>
  39837. -#include <errno.h>
  39838. #include <signal.h>
  39839. -#include <string.h>
  39840. #include <sys/syscall.h>
  39841. -#include <bits/kernel_sigaction.h>
  39842. -
  39843. -#ifndef LIBC_SIGACTION
  39844. -extern __typeof(sigaction) __libc_sigaction;
  39845. -#endif
  39846. -
  39847. -
  39848. #if defined __NR_rt_sigaction
  39849. /* If ACT is not NULL, change the action for SIG to *ACT.
  39850. @@ -47,6 +36,9 @@
  39851. }
  39852. #else
  39853. +# define __need_NULL
  39854. +# include <stddef.h>
  39855. +# include <bits/kernel_sigaction.h>
  39856. /* If ACT is not NULL, change the action for SIG to *ACT.
  39857. If OACT is not NULL, put the old action for SIG in *OACT. */
  39858. diff -Nur uClibc-0.9.33.2/libc/signal/sigaddset.c uClibc-git/libc/signal/sigaddset.c
  39859. --- uClibc-0.9.33.2/libc/signal/sigaddset.c 2012-05-15 09:20:09.000000000 +0200
  39860. +++ uClibc-git/libc/signal/sigaddset.c 2014-06-02 17:40:34.118712560 +0200
  39861. @@ -12,11 +12,13 @@
  39862. Lesser General Public License for more details.
  39863. You should have received a copy of the GNU Lesser General Public
  39864. - License along with the GNU C Library; if not, write to the Free
  39865. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39866. - 02111-1307 USA. */
  39867. + License along with the GNU C Library; if not, see
  39868. + <http://www.gnu.org/licenses/>. */
  39869. -#include "sigsetops.h"
  39870. +#define __need_NULL
  39871. +#include <stddef.h>
  39872. +#include <signal.h>
  39873. +#include <errno.h>
  39874. /* Add SIGNO to SET. */
  39875. int
  39876. diff -Nur uClibc-0.9.33.2/libc/signal/sigandset.c uClibc-git/libc/signal/sigandset.c
  39877. --- uClibc-0.9.33.2/libc/signal/sigandset.c 2012-05-15 09:20:09.000000000 +0200
  39878. +++ uClibc-git/libc/signal/sigandset.c 2014-06-02 17:40:34.118712560 +0200
  39879. @@ -12,9 +12,8 @@
  39880. Lesser General Public License for more details.
  39881. You should have received a copy of the GNU Lesser General Public
  39882. - License along with the GNU C Library; if not, write to the Free
  39883. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39884. - 02111-1307 USA. */
  39885. + License along with the GNU C Library; if not, see
  39886. + <http://www.gnu.org/licenses/>. */
  39887. #include <errno.h>
  39888. #include <signal.h>
  39889. diff -Nur uClibc-0.9.33.2/libc/signal/sigblock.c uClibc-git/libc/signal/sigblock.c
  39890. --- uClibc-0.9.33.2/libc/signal/sigblock.c 2012-05-15 09:20:09.000000000 +0200
  39891. +++ uClibc-git/libc/signal/sigblock.c 2014-06-02 17:40:34.118712560 +0200
  39892. @@ -12,18 +12,16 @@
  39893. Lesser General Public License for more details.
  39894. You should have received a copy of the GNU Lesser General Public
  39895. - License along with the GNU C Library; if not, write to the Free
  39896. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39897. - 02111-1307 USA. */
  39898. + License along with the GNU C Library; if not, see
  39899. + <http://www.gnu.org/licenses/>. */
  39900. -#define __UCLIBC_HIDE_DEPRECATED__
  39901. -#include <errno.h>
  39902. +/*#define __UCLIBC_HIDE_DEPRECATED__*/
  39903. #include <signal.h>
  39904. #include "sigset-cvt-mask.h"
  39905. /* Block signals in MASK, returning the old mask. */
  39906. -int sigblock (int mask)
  39907. +static int sigblock (int mask)
  39908. {
  39909. sigset_t set, oset;
  39910. @@ -31,4 +29,3 @@
  39911. sigprocmask (SIG_BLOCK, &set, &oset); /* can't fail */
  39912. return sigset_get_old_mask (&oset);
  39913. }
  39914. -libc_hidden_def(sigblock)
  39915. diff -Nur uClibc-0.9.33.2/libc/signal/sigdelset.c uClibc-git/libc/signal/sigdelset.c
  39916. --- uClibc-0.9.33.2/libc/signal/sigdelset.c 2012-05-15 09:20:09.000000000 +0200
  39917. +++ uClibc-git/libc/signal/sigdelset.c 2014-06-02 17:40:34.118712560 +0200
  39918. @@ -12,11 +12,13 @@
  39919. Lesser General Public License for more details.
  39920. You should have received a copy of the GNU Lesser General Public
  39921. - License along with the GNU C Library; if not, write to the Free
  39922. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39923. - 02111-1307 USA. */
  39924. + License along with the GNU C Library; if not, see
  39925. + <http://www.gnu.org/licenses/>. */
  39926. -#include "sigsetops.h"
  39927. +#define __need_NULL
  39928. +#include <stddef.h>
  39929. +#include <signal.h>
  39930. +#include <errno.h>
  39931. /* Add SIGNO to SET. */
  39932. int sigdelset (sigset_t *set, int signo)
  39933. diff -Nur uClibc-0.9.33.2/libc/signal/sigempty.c uClibc-git/libc/signal/sigempty.c
  39934. --- uClibc-0.9.33.2/libc/signal/sigempty.c 2012-05-15 09:20:09.000000000 +0200
  39935. +++ uClibc-git/libc/signal/sigempty.c 2014-06-02 17:40:34.118712560 +0200
  39936. @@ -12,14 +12,15 @@
  39937. Lesser General Public License for more details.
  39938. You should have received a copy of the GNU Lesser General Public
  39939. - License along with the GNU C Library; if not, write to the Free
  39940. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39941. - 02111-1307 USA. */
  39942. + License along with the GNU C Library; if not, see
  39943. + <http://www.gnu.org/licenses/>. */
  39944. -#include <errno.h>
  39945. #include <signal.h>
  39946. -#include <string.h>
  39947. -
  39948. +#if 0
  39949. +#define __need_NULL
  39950. +#include <stddef.h>
  39951. +#include <errno.h>
  39952. +#endif
  39953. /* Clear all signals from SET. */
  39954. int sigemptyset (sigset_t *set)
  39955. @@ -36,4 +37,3 @@
  39956. return 0;
  39957. }
  39958. -libc_hidden_def(sigemptyset)
  39959. diff -Nur uClibc-0.9.33.2/libc/signal/sigfillset.c uClibc-git/libc/signal/sigfillset.c
  39960. --- uClibc-0.9.33.2/libc/signal/sigfillset.c 2012-05-15 09:20:09.000000000 +0200
  39961. +++ uClibc-git/libc/signal/sigfillset.c 2014-06-02 17:40:34.118712560 +0200
  39962. @@ -12,17 +12,18 @@
  39963. Lesser General Public License for more details.
  39964. You should have received a copy of the GNU Lesser General Public
  39965. - License along with the GNU C Library; if not, write to the Free
  39966. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39967. - 02111-1307 USA. */
  39968. + License along with the GNU C Library; if not, see
  39969. + <http://www.gnu.org/licenses/>. */
  39970. -#include <errno.h>
  39971. #include <signal.h>
  39972. -#include <string.h>
  39973. #ifdef __UCLIBC_HAS_THREADS_NATIVE__
  39974. # include <pthreadP.h> /* SIGCANCEL */
  39975. #endif
  39976. -
  39977. +#if 0
  39978. +#define __need_NULL
  39979. +#include <stddef.h>
  39980. +#include <errno.h>
  39981. +#endif
  39982. /* Set all signals in SET. */
  39983. int
  39984. @@ -49,4 +50,3 @@
  39985. return 0;
  39986. }
  39987. -libc_hidden_def(sigfillset)
  39988. diff -Nur uClibc-0.9.33.2/libc/signal/siggetmask.c uClibc-git/libc/signal/siggetmask.c
  39989. --- uClibc-0.9.33.2/libc/signal/siggetmask.c 2012-05-15 09:20:09.000000000 +0200
  39990. +++ uClibc-git/libc/signal/siggetmask.c 2014-06-02 17:40:34.118712560 +0200
  39991. @@ -13,14 +13,12 @@
  39992. Lesser General Public License for more details.
  39993. You should have received a copy of the GNU Lesser General Public
  39994. - License along with the GNU C Library; if not, write to the Free
  39995. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39996. - 02111-1307 USA. */
  39997. + License along with the GNU C Library; if not, see
  39998. + <http://www.gnu.org/licenses/>. */
  39999. #define __UCLIBC_HIDE_DEPRECATED__
  40000. #include <signal.h>
  40001. -
  40002. int
  40003. siggetmask (void)
  40004. {
  40005. diff -Nur uClibc-0.9.33.2/libc/signal/sighold.c uClibc-git/libc/signal/sighold.c
  40006. --- uClibc-0.9.33.2/libc/signal/sighold.c 2012-05-15 09:20:09.000000000 +0200
  40007. +++ uClibc-git/libc/signal/sighold.c 2014-06-02 17:40:34.118712560 +0200
  40008. @@ -14,15 +14,13 @@
  40009. Lesser General Public License for more details.
  40010. You should have received a copy of the GNU Lesser General Public
  40011. - License along with the GNU C Library; if not, write to the Free
  40012. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40013. - 02111-1307 USA. */
  40014. + License along with the GNU C Library; if not, see
  40015. + <http://www.gnu.org/licenses/>. */
  40016. #define __need_NULL
  40017. #include <stddef.h>
  40018. #include <signal.h>
  40019. -
  40020. int sighold (int sig)
  40021. {
  40022. sigset_t set;
  40023. diff -Nur uClibc-0.9.33.2/libc/signal/sigignore.c uClibc-git/libc/signal/sigignore.c
  40024. --- uClibc-0.9.33.2/libc/signal/sigignore.c 2012-05-15 09:20:09.000000000 +0200
  40025. +++ uClibc-git/libc/signal/sigignore.c 2014-06-02 17:40:34.118712560 +0200
  40026. @@ -14,16 +14,13 @@
  40027. Lesser General Public License for more details.
  40028. You should have received a copy of the GNU Lesser General Public
  40029. - License along with the GNU C Library; if not, write to the Free
  40030. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40031. - 02111-1307 USA. */
  40032. + License along with the GNU C Library; if not, see
  40033. + <http://www.gnu.org/licenses/>. */
  40034. -#include <errno.h>
  40035. #define __need_NULL
  40036. #include <stddef.h>
  40037. #include <signal.h>
  40038. -#include <string.h> /* For the real memset prototype. */
  40039. -
  40040. +#include <string.h>
  40041. int sigignore (int sig)
  40042. {
  40043. diff -Nur uClibc-0.9.33.2/libc/signal/sigintr.c uClibc-git/libc/signal/sigintr.c
  40044. --- uClibc-0.9.33.2/libc/signal/sigintr.c 2012-05-15 09:20:09.000000000 +0200
  40045. +++ uClibc-git/libc/signal/sigintr.c 2014-06-02 17:40:34.118712560 +0200
  40046. @@ -12,20 +12,19 @@
  40047. Lesser General Public License for more details.
  40048. You should have received a copy of the GNU Lesser General Public
  40049. - License along with the GNU C Library; if not, write to the Free
  40050. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40051. - 02111-1307 USA. */
  40052. + License along with the GNU C Library; if not, see
  40053. + <http://www.gnu.org/licenses/>. */
  40054. -#include <stddef.h>
  40055. #include <signal.h>
  40056. -#include <errno.h>
  40057. -
  40058. /* If INTERRUPT is nonzero, make signal SIG interrupt system calls
  40059. (causing them to fail with EINTR); if INTERRUPT is zero, make system
  40060. calls be restarted after signal SIG. */
  40061. #ifdef SA_RESTART
  40062. -extern sigset_t _sigintr attribute_hidden; /* Defined in signal.c. */
  40063. +# define __need_NULL
  40064. +# include <stddef.h>
  40065. +#else
  40066. +# include <errno.h>
  40067. #endif
  40068. int siginterrupt (int sig, int interrupt)
  40069. diff -Nur uClibc-0.9.33.2/libc/signal/sigisempty.c uClibc-git/libc/signal/sigisempty.c
  40070. --- uClibc-0.9.33.2/libc/signal/sigisempty.c 2012-05-15 09:20:09.000000000 +0200
  40071. +++ uClibc-git/libc/signal/sigisempty.c 2014-06-02 17:40:34.118712560 +0200
  40072. @@ -12,9 +12,8 @@
  40073. Lesser General Public License for more details.
  40074. You should have received a copy of the GNU Lesser General Public
  40075. - License along with the GNU C Library; if not, write to the Free
  40076. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40077. - 02111-1307 USA. */
  40078. + License along with the GNU C Library; if not, see
  40079. + <http://www.gnu.org/licenses/>. */
  40080. #include <errno.h>
  40081. #include <signal.h>
  40082. diff -Nur uClibc-0.9.33.2/libc/signal/sigismem.c uClibc-git/libc/signal/sigismem.c
  40083. --- uClibc-0.9.33.2/libc/signal/sigismem.c 2012-05-15 09:20:09.000000000 +0200
  40084. +++ uClibc-git/libc/signal/sigismem.c 2014-06-02 17:40:34.118712560 +0200
  40085. @@ -12,11 +12,13 @@
  40086. Lesser General Public License for more details.
  40087. You should have received a copy of the GNU Lesser General Public
  40088. - License along with the GNU C Library; if not, write to the Free
  40089. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40090. - 02111-1307 USA. */
  40091. + License along with the GNU C Library; if not, see
  40092. + <http://www.gnu.org/licenses/>. */
  40093. -#include "sigsetops.h"
  40094. +#define __need_NULL
  40095. +#include <stddef.h>
  40096. +#include <signal.h>
  40097. +#include <errno.h>
  40098. /* Return 1 if SIGNO is in SET, 0 if not. */
  40099. int sigismember (const sigset_t *set, int signo)
  40100. diff -Nur uClibc-0.9.33.2/libc/signal/sigjmp.c uClibc-git/libc/signal/sigjmp.c
  40101. --- uClibc-0.9.33.2/libc/signal/sigjmp.c 2012-05-15 09:20:09.000000000 +0200
  40102. +++ uClibc-git/libc/signal/sigjmp.c 2014-06-02 17:40:34.118712560 +0200
  40103. @@ -12,21 +12,18 @@
  40104. Lesser General Public License for more details.
  40105. You should have received a copy of the GNU Lesser General Public
  40106. - License along with the GNU C Library; if not, write to the Free
  40107. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40108. - 02111-1307 USA. */
  40109. + License along with the GNU C Library; if not, see
  40110. + <http://www.gnu.org/licenses/>. */
  40111. +#define __need_NULL
  40112. #include <stddef.h>
  40113. #include <setjmp.h>
  40114. #include <signal.h>
  40115. -#include <libc-internal.h>
  40116. -
  40117. /* This function is called by the `sigsetjmp' macro
  40118. before doing a `__setjmp' on ENV[0].__jmpbuf.
  40119. Always return zero. */
  40120. -int __sigjmp_save (sigjmp_buf env, int savemask) attribute_hidden;
  40121. int __sigjmp_save (sigjmp_buf env, int savemask)
  40122. {
  40123. env[0].__mask_was_saved = (savemask &&
  40124. diff -Nur uClibc-0.9.33.2/libc/signal/signal.c uClibc-git/libc/signal/signal.c
  40125. --- uClibc-0.9.33.2/libc/signal/signal.c 2012-05-15 09:20:09.000000000 +0200
  40126. +++ uClibc-git/libc/signal/signal.c 2014-06-02 17:40:34.118712560 +0200
  40127. @@ -14,15 +14,14 @@
  40128. Lesser General Public License for more details.
  40129. You should have received a copy of the GNU Lesser General Public
  40130. - License along with the GNU C Library; if not, write to the Free
  40131. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40132. - 02111-1307 USA. */
  40133. + License along with the GNU C Library; if not, see
  40134. + <http://www.gnu.org/licenses/>. */
  40135. #include <errno.h>
  40136. #include <signal.h>
  40137. #include <string.h> /* For the real memset prototype. */
  40138. -sigset_t _sigintr attribute_hidden; /* Set by siginterrupt. */
  40139. +sigset_t _sigintr; /* Set by siginterrupt. */
  40140. /* Set the handler for the signal SIG to HANDLER,
  40141. returning the old handler, or SIG_ERR on error. */
  40142. diff -Nur uClibc-0.9.33.2/libc/signal/sigorset.c uClibc-git/libc/signal/sigorset.c
  40143. --- uClibc-0.9.33.2/libc/signal/sigorset.c 2012-05-15 09:20:09.000000000 +0200
  40144. +++ uClibc-git/libc/signal/sigorset.c 2014-06-02 17:40:34.118712560 +0200
  40145. @@ -12,9 +12,8 @@
  40146. Lesser General Public License for more details.
  40147. You should have received a copy of the GNU Lesser General Public
  40148. - License along with the GNU C Library; if not, write to the Free
  40149. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40150. - 02111-1307 USA. */
  40151. + License along with the GNU C Library; if not, see
  40152. + <http://www.gnu.org/licenses/>. */
  40153. #include <errno.h>
  40154. #include <signal.h>
  40155. diff -Nur uClibc-0.9.33.2/libc/signal/sigpause.c uClibc-git/libc/signal/sigpause.c
  40156. --- uClibc-0.9.33.2/libc/signal/sigpause.c 2012-05-15 09:20:09.000000000 +0200
  40157. +++ uClibc-git/libc/signal/sigpause.c 2014-06-02 17:40:34.118712560 +0200
  40158. @@ -13,25 +13,19 @@
  40159. Lesser General Public License for more details.
  40160. You should have received a copy of the GNU Lesser General Public
  40161. - License along with the GNU C Library; if not, write to the Free
  40162. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40163. - 02111-1307 USA. */
  40164. -
  40165. -#define __UCLIBC_HIDE_DEPRECATED__
  40166. -/* psm: need the BSD version of sigpause here */
  40167. -#include <errno.h>
  40168. -#define __FAVOR_BSD
  40169. + License along with the GNU C Library; if not, see
  40170. + <http://www.gnu.org/licenses/>. */
  40171. +
  40172. #include <signal.h>
  40173. -#include <stddef.h> /* For NULL. */
  40174. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  40175. -#include <sysdep-cancel.h>
  40176. -#endif
  40177. +#define __need_NULL
  40178. +#include <stddef.h>
  40179. +#include <cancel.h>
  40180. #include "sigset-cvt-mask.h"
  40181. /* Set the mask of blocked signals to MASK,
  40182. wait for a signal to arrive, and then restore the mask. */
  40183. -int __sigpause (int sig_or_mask, int is_sig)
  40184. +static int __sigpause (int sig_or_mask, int is_sig)
  40185. {
  40186. sigset_t set;
  40187. @@ -49,29 +43,21 @@
  40188. /* Note the sigpause() is a cancellation point. But since we call
  40189. sigsuspend() which itself is a cancellation point we do not have
  40190. to do anything here. */
  40191. - return sigsuspend (&set);
  40192. + /* uClibc note: not true on uClibc, we call the non-cancellable version */
  40193. + return __NC(sigsuspend)(&set);
  40194. }
  40195. -libc_hidden_def(__sigpause)
  40196. -#undef sigpause
  40197. +int __bsd_sigpause(int mask);
  40198. +int __bsd_sigpause(int mask)
  40199. +{
  40200. + return __sigpause(mask, 0);
  40201. +}
  40202. /* We have to provide a default version of this function since the
  40203. standards demand it. The version which is a bit more reasonable is
  40204. the BSD version. So make this the default. */
  40205. -int sigpause (int mask)
  40206. +static int __NC(sigpause)(int sig)
  40207. {
  40208. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  40209. - if (SINGLE_THREAD_P)
  40210. - return __sigpause (mask, 0);
  40211. -
  40212. - int oldtype = LIBC_CANCEL_ASYNC ();
  40213. -
  40214. - int result = __sigpause (mask, 0);
  40215. -
  40216. - LIBC_CANCEL_RESET (oldtype);
  40217. -
  40218. - return result;
  40219. -#else
  40220. - return __sigpause (mask, 0);
  40221. -#endif
  40222. + return __sigpause(sig, 1);
  40223. }
  40224. +CANCELLABLE_SYSCALL(int, sigpause, (int sig), (sig))
  40225. diff -Nur uClibc-0.9.33.2/libc/signal/sigrelse.c uClibc-git/libc/signal/sigrelse.c
  40226. --- uClibc-0.9.33.2/libc/signal/sigrelse.c 2012-05-15 09:20:09.000000000 +0200
  40227. +++ uClibc-git/libc/signal/sigrelse.c 2014-06-02 17:40:34.118712560 +0200
  40228. @@ -14,15 +14,13 @@
  40229. Lesser General Public License for more details.
  40230. You should have received a copy of the GNU Lesser General Public
  40231. - License along with the GNU C Library; if not, write to the Free
  40232. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40233. - 02111-1307 USA. */
  40234. + License along with the GNU C Library; if not, see
  40235. + <http://www.gnu.org/licenses/>. */
  40236. #define __need_NULL
  40237. #include <stddef.h>
  40238. #include <signal.h>
  40239. -
  40240. int sigrelse (int sig)
  40241. {
  40242. sigset_t set;
  40243. diff -Nur uClibc-0.9.33.2/libc/signal/sigset.c uClibc-git/libc/signal/sigset.c
  40244. --- uClibc-0.9.33.2/libc/signal/sigset.c 2012-05-15 09:20:09.000000000 +0200
  40245. +++ uClibc-git/libc/signal/sigset.c 2014-06-02 17:40:34.118712560 +0200
  40246. @@ -12,16 +12,14 @@
  40247. Lesser General Public License for more details.
  40248. You should have received a copy of the GNU Lesser General Public
  40249. - License along with the GNU C Library; if not, write to the Free
  40250. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40251. - 02111-1307 USA. */
  40252. + License along with the GNU C Library; if not, see
  40253. + <http://www.gnu.org/licenses/>. */
  40254. #include <errno.h>
  40255. #define __need_NULL
  40256. #include <stddef.h>
  40257. #include <signal.h>
  40258. -#include <string.h> /* For the real memset prototype. */
  40259. -
  40260. +#include <string.h>
  40261. /* Set the disposition for SIG. */
  40262. __sighandler_t sigset (int sig, __sighandler_t disp)
  40263. diff -Nur uClibc-0.9.33.2/libc/signal/sigset-cvt-mask.h uClibc-git/libc/signal/sigset-cvt-mask.h
  40264. --- uClibc-0.9.33.2/libc/signal/sigset-cvt-mask.h 2012-05-15 09:20:09.000000000 +0200
  40265. +++ uClibc-git/libc/signal/sigset-cvt-mask.h 2014-06-02 17:40:34.118712560 +0200
  40266. @@ -15,9 +15,11 @@
  40267. Lesser General Public License for more details.
  40268. You should have received a copy of the GNU Lesser General Public
  40269. - License along with the GNU C Library; if not, write to the Free
  40270. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40271. - 02111-1307 USA. */
  40272. + License along with the GNU C Library; if not, see
  40273. + <http://www.gnu.org/licenses/>. */
  40274. +
  40275. +#ifndef _SIGSET_CVT_MASK_H
  40276. +#define _SIGSET_CVT_MASK_H
  40277. #include <string.h>
  40278. @@ -36,3 +38,5 @@
  40279. {
  40280. return (unsigned int) set->__val[0];
  40281. }
  40282. +
  40283. +#endif
  40284. diff -Nur uClibc-0.9.33.2/libc/signal/sigsetmask.c uClibc-git/libc/signal/sigsetmask.c
  40285. --- uClibc-0.9.33.2/libc/signal/sigsetmask.c 2012-05-15 09:20:09.000000000 +0200
  40286. +++ uClibc-git/libc/signal/sigsetmask.c 2014-06-02 17:40:34.118712560 +0200
  40287. @@ -12,18 +12,16 @@
  40288. Lesser General Public License for more details.
  40289. You should have received a copy of the GNU Lesser General Public
  40290. - License along with the GNU C Library; if not, write to the Free
  40291. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40292. - 02111-1307 USA. */
  40293. + License along with the GNU C Library; if not, see
  40294. + <http://www.gnu.org/licenses/>. */
  40295. -#define __UCLIBC_HIDE_DEPRECATED__
  40296. -#include <errno.h>
  40297. +/*#define __UCLIBC_HIDE_DEPRECATED__*/
  40298. #include <signal.h>
  40299. #include "sigset-cvt-mask.h"
  40300. /* Set the mask of blocked signals to MASK, returning the old mask. */
  40301. -int
  40302. +static int
  40303. sigsetmask (int mask)
  40304. {
  40305. sigset_t set, oset;
  40306. @@ -32,4 +30,3 @@
  40307. sigprocmask (SIG_SETMASK, &set, &oset); /* can't fail */
  40308. return sigset_get_old_mask (&oset);
  40309. }
  40310. -libc_hidden_def(sigsetmask)
  40311. diff -Nur uClibc-0.9.33.2/libc/signal/sigsetops.h uClibc-git/libc/signal/sigsetops.h
  40312. --- uClibc-0.9.33.2/libc/signal/sigsetops.h 2012-05-15 09:20:09.000000000 +0200
  40313. +++ uClibc-git/libc/signal/sigsetops.h 1970-01-01 01:00:00.000000000 +0100
  40314. @@ -1,33 +0,0 @@
  40315. -/* Copyright (C) 1991, 1995, 1996 Free Software Foundation, Inc.
  40316. - This file is part of the GNU C Library.
  40317. -
  40318. - The GNU C Library is free software; you can redistribute it and/or
  40319. - modify it under the terms of the GNU Lesser General Public
  40320. - License as published by the Free Software Foundation; either
  40321. - version 2.1 of the License, or (at your option) any later version.
  40322. -
  40323. - The GNU C Library is distributed in the hope that it will be useful,
  40324. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  40325. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  40326. - Lesser General Public License for more details.
  40327. -
  40328. - You should have received a copy of the GNU Lesser General Public
  40329. - License along with the GNU C Library; if not, write to the Free
  40330. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40331. - 02111-1307 USA. */
  40332. -
  40333. -/* Definitions relevant to functions that operate on `sigset_t's. */
  40334. -
  40335. -#include <errno.h>
  40336. -#include <signal.h>
  40337. -#include <string.h>
  40338. -
  40339. -#define BITS (_NSIG - 1)
  40340. -#define ELT(signo) (((signo) - 1) / BITS)
  40341. -#define MASK(signo) (1 << (((signo) - 1) % BITS))
  40342. -
  40343. -#undef sigemptyset
  40344. -#undef sigfillset
  40345. -#undef sigaddset
  40346. -#undef sigdelset
  40347. -#undef sigismember
  40348. diff -Nur uClibc-0.9.33.2/libc/signal/sigwait.c uClibc-git/libc/signal/sigwait.c
  40349. --- uClibc-0.9.33.2/libc/signal/sigwait.c 2012-05-15 09:20:09.000000000 +0200
  40350. +++ uClibc-git/libc/signal/sigwait.c 2014-06-02 17:40:34.118712560 +0200
  40351. @@ -15,96 +15,42 @@
  40352. * Lesser General Public License for more details.
  40353. *
  40354. * You should have received a copy of the GNU Lesser General Public
  40355. - * License along with the GNU C Library; if not, write to the Free
  40356. - * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40357. - * 02111-1307 USA. */
  40358. -
  40359. -#include <errno.h>
  40360. + * License along with the GNU C Library; see the file COPYING.LIB. If
  40361. + * not, see <http://www.gnu.org/licenses/>.
  40362. + */
  40363. +
  40364. +#define __need_NULL
  40365. +#include <stddef.h>
  40366. +#include <sys/syscall.h>
  40367. #include <signal.h>
  40368. -#include <string.h>
  40369. -#include <unistd.h>
  40370. +#include <cancel.h>
  40371. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  40372. -# include <sysdep-cancel.h>
  40373. +#if defined __NR_rt_sigtimedwait && defined __UCLIBC_HAS_REALTIME__
  40374. -# ifdef __NR_rt_sigtimedwait
  40375. +#include <string.h>
  40376. /* Return any pending signal or wait for one for the given time. */
  40377. -static int do_sigwait(const sigset_t *set, int *sig)
  40378. +static int __NC(sigwait)(const sigset_t *set, int *sig)
  40379. {
  40380. int ret;
  40381. -# ifdef SIGCANCEL
  40382. - sigset_t tmpset;
  40383. - if (set != NULL
  40384. - && (__builtin_expect (__sigismember (set, SIGCANCEL), 0)
  40385. -# ifdef SIGSETXID
  40386. - || __builtin_expect (__sigismember (set, SIGSETXID), 0)
  40387. -# endif
  40388. - ))
  40389. - {
  40390. - /* Create a temporary mask without the bit for SIGCANCEL set. */
  40391. - // We are not copying more than we have to.
  40392. - memcpy(&tmpset, set, _NSIG / 8);
  40393. - __sigdelset(&tmpset, SIGCANCEL);
  40394. -# ifdef SIGSETXID
  40395. - __sigdelset(&tmpset, SIGSETXID);
  40396. -# endif
  40397. - set = &tmpset;
  40398. - }
  40399. -# endif
  40400. -
  40401. - /* XXX The size argument hopefully will have to be changed to the
  40402. - real size of the user-level sigset_t. */
  40403. - INTERNAL_SYSCALL_DECL(err);
  40404. do
  40405. - ret = INTERNAL_SYSCALL (rt_sigtimedwait, err, 4, set, NULL,
  40406. - NULL, _NSIG / 8);
  40407. - while (INTERNAL_SYSCALL_ERROR_P (ret, err)
  40408. - && INTERNAL_SYSCALL_ERRNO (ret, err) == EINTR);
  40409. - if (! INTERNAL_SYSCALL_ERROR_P (ret, err))
  40410. - {
  40411. + /* we might as well use sigtimedwait and do not care about cancellation */
  40412. + ret = __NC(sigtimedwait)(set, NULL, NULL);
  40413. + while (ret == -1 && errno == EINTR);
  40414. + if (ret != -1) {
  40415. *sig = ret;
  40416. ret = 0;
  40417. - }
  40418. -else
  40419. - ret = INTERNAL_SYSCALL_ERRNO (ret, err);
  40420. + } else
  40421. + ret = errno;
  40422. return ret;
  40423. }
  40424. -int sigwait (const sigset_t *set, int *sig)
  40425. -{
  40426. - if(SINGLE_THREAD_P)
  40427. - return do_sigwait(set, sig);
  40428. -
  40429. - int oldtype = LIBC_CANCEL_ASYNC();
  40430. -
  40431. - int result = do_sigwait(set, sig);
  40432. +#else /* __NR_rt_sigtimedwait */
  40433. - LIBC_CANCEL_RESET(oldtype);
  40434. -
  40435. - return result;
  40436. -}
  40437. -# else /* __NR_rt_sigtimedwait */
  40438. -# error We must have rt_sigtimedwait defined!!!
  40439. -# endif
  40440. -#else /* __UCLIBC_HAS_THREADS_NATIVE__ */
  40441. -
  40442. -# if defined __UCLIBC_HAS_REALTIME__
  40443. -
  40444. -int sigwait (const sigset_t *set, int *sig)
  40445. -{
  40446. - int ret = 1;
  40447. - if ((ret = sigwaitinfo(set, NULL)) != -1) {
  40448. - *sig = ret;
  40449. - return 0;
  40450. - }
  40451. - return 1;
  40452. -}
  40453. -
  40454. -# else /* __UCLIBC_HAS_REALTIME__ */
  40455. /* variant without REALTIME extensions */
  40456. +#include <unistd.h> /* smallint */
  40457. static smallint was_sig; /* obviously not thread-safe */
  40458. @@ -113,7 +59,7 @@
  40459. was_sig = sig;
  40460. }
  40461. -int sigwait (const sigset_t *set, int *sig)
  40462. +static int __NC(sigwait)(const sigset_t *set, int *sig)
  40463. {
  40464. sigset_t tmp_mask;
  40465. struct sigaction saved[NSIG];
  40466. @@ -147,7 +93,7 @@
  40467. }
  40468. /* Now we can wait for signals. */
  40469. - sigsuspend (&tmp_mask);
  40470. + __NC(sigsuspend)(&tmp_mask);
  40471. restore_handler:
  40472. save_errno = errno;
  40473. @@ -163,5 +109,6 @@
  40474. *sig = was_sig;
  40475. return was_sig == -1 ? -1 : 0;
  40476. }
  40477. -# endif /* __UCLIBC_HAS_REALTIME__ */
  40478. -#endif /* __UCLIBC_HAS_THREADS_NATIVE__ */
  40479. +#endif /* __NR_rt_sigtimedwait */
  40480. +
  40481. +CANCELLABLE_SYSCALL(int, sigwait, (const sigset_t *set, int *sig), (set, sig))
  40482. diff -Nur uClibc-0.9.33.2/libc/signal/sysv_signal.c uClibc-git/libc/signal/sysv_signal.c
  40483. --- uClibc-0.9.33.2/libc/signal/sysv_signal.c 2012-05-15 09:20:09.000000000 +0200
  40484. +++ uClibc-git/libc/signal/sysv_signal.c 2014-06-02 17:40:34.118712560 +0200
  40485. @@ -12,14 +12,11 @@
  40486. Lesser General Public License for more details.
  40487. You should have received a copy of the GNU Lesser General Public
  40488. - License along with the GNU C Library; if not, write to the Free
  40489. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40490. - 02111-1307 USA. */
  40491. + License along with the GNU C Library; if not, see
  40492. + <http://www.gnu.org/licenses/>. */
  40493. #include <errno.h>
  40494. #include <signal.h>
  40495. -#include <string.h> /* For the real memset prototype. */
  40496. -
  40497. /* Tolerate non-threads versions of Posix */
  40498. #ifndef SA_ONESHOT
  40499. diff -Nur uClibc-0.9.33.2/libc/stdio/_fpmaxtostr.c uClibc-git/libc/stdio/_fpmaxtostr.c
  40500. --- uClibc-0.9.33.2/libc/stdio/_fpmaxtostr.c 2012-05-15 09:20:09.000000000 +0200
  40501. +++ uClibc-git/libc/stdio/_fpmaxtostr.c 2014-06-02 17:40:34.118712560 +0200
  40502. @@ -1,6 +1,7 @@
  40503. -/* Copyright (C) 2004 Manuel Novoa III <mjn3@codepoet.org>
  40504. +/*
  40505. + * Copyright (C) 2000,2001,2003,2004 Manuel Novoa III <mjn3@codepoet.org>
  40506. *
  40507. - * GNU Library General Public License (LGPL) version 2 or later.
  40508. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  40509. *
  40510. * Dedicated to Toni. See uClibc/DEDICATION.mjn3 for details.
  40511. */
  40512. @@ -9,15 +10,9 @@
  40513. #include <printf.h>
  40514. #include <float.h>
  40515. #include <locale.h>
  40516. -#include <bits/uClibc_fpmax.h>
  40517. +#include "_fpmaxtostr.h"
  40518. -
  40519. -typedef size_t (__fp_outfunc_t)(FILE *fp, intptr_t type, intptr_t len,
  40520. - intptr_t buf);
  40521. -
  40522. -
  40523. -/* Copyright (C) 2000, 2001, 2003 Manuel Novoa III
  40524. - *
  40525. +/*
  40526. * Function:
  40527. *
  40528. * ssize_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
  40529. @@ -40,7 +35,6 @@
  40530. * It should also be fairly portable, as no assumptions are made about the
  40531. * bit-layout of doubles. Of course, that does make it less efficient than
  40532. * it could be.
  40533. - *
  40534. */
  40535. /*****************************************************************************/
  40536. @@ -67,9 +61,6 @@
  40537. #define NUM_HEX_DIGITS ((FPMAX_MANT_DIG + 3)/ 4)
  40538. -/* WARNING: Adjust _fp_out_wide() below if this changes! */
  40539. -/* With 32 bit ints, we can get 9 decimal digits per block. */
  40540. -#define DIGITS_PER_BLOCK 9
  40541. #define HEX_DIGITS_PER_BLOCK 8
  40542. /* Maximum number of subcases to output double is...
  40543. @@ -87,15 +78,9 @@
  40544. /*****************************************************************************/
  40545. -#define NUM_DIGIT_BLOCKS ((DECIMAL_DIG+DIGITS_PER_BLOCK-1)/DIGITS_PER_BLOCK)
  40546. #define NUM_HEX_DIGIT_BLOCKS \
  40547. ((NUM_HEX_DIGITS+HEX_DIGITS_PER_BLOCK-1)/HEX_DIGITS_PER_BLOCK)
  40548. -/* WARNING: Adjust _fp_out_wide() below if this changes! */
  40549. -
  40550. -/* extra space for '-', '.', 'e+###', and nul */
  40551. -#define BUF_SIZE ( 3 + NUM_DIGIT_BLOCKS * DIGITS_PER_BLOCK )
  40552. -
  40553. /*****************************************************************************/
  40554. static const char fmt[] = "inf\0INF\0nan\0NAN\0.\0,";
  40555. @@ -200,8 +185,6 @@
  40556. #define FPO_STR_PREC 'p'
  40557. ssize_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
  40558. - __fp_outfunc_t fp_outfunc) attribute_hidden;
  40559. -ssize_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
  40560. __fp_outfunc_t fp_outfunc)
  40561. {
  40562. #ifdef __UCLIBC_HAS_HEXADECIMAL_FLOATS__
  40563. @@ -219,8 +202,8 @@
  40564. #ifdef __UCLIBC_HAS_GLIBC_DIGIT_GROUPING__
  40565. int num_groups = 0;
  40566. int initial_group; /* This does not need to be initialized. */
  40567. - int tslen; /* This does not need to be initialized. */
  40568. - int nblk2; /* This does not need to be initialized. */
  40569. + int tslen; /* This does not need to be initialized. */
  40570. + int nblk2; /* This does not need to be initialized. */
  40571. const char *ts; /* This does not need to be initialized. */
  40572. #endif /* __UCLIBC_HAS_GLIBC_DIGIT_GROUPING__ */
  40573. int round, o_exp;
  40574. diff -Nur uClibc-0.9.33.2/libc/stdio/_fpmaxtostr.h uClibc-git/libc/stdio/_fpmaxtostr.h
  40575. --- uClibc-0.9.33.2/libc/stdio/_fpmaxtostr.h 1970-01-01 01:00:00.000000000 +0100
  40576. +++ uClibc-git/libc/stdio/_fpmaxtostr.h 2014-06-02 17:40:34.118712560 +0200
  40577. @@ -0,0 +1,49 @@
  40578. +/* vi: set sw=4 ts=4: */
  40579. +/*
  40580. + * Copyright (C) 2000,2001,2003,2004 Manuel Novoa III <mjn3@codepoet.org>
  40581. + *
  40582. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  40583. + *
  40584. + * Dedicated to Toni. See uClibc/DEDICATION.mjn3 for details.
  40585. + */
  40586. +
  40587. +#ifndef _FPMAXTOSTR_H
  40588. +#define _FPMAXTOSTR_H 1
  40589. +
  40590. +#include <features.h>
  40591. +#ifdef __UCLIBC_HAS_FLOATS__
  40592. +
  40593. +#define __need_size_t
  40594. +#include <stddef.h>
  40595. +#include <stdint.h>
  40596. +#include <stdio.h>
  40597. +#include <printf.h>
  40598. +#include <sys/types.h>
  40599. +#include <float.h>
  40600. +#include <bits/uClibc_fpmax.h>
  40601. +
  40602. +/* WARNING: Adjust _fp_out_wide() in _vfprintf.c if this changes! */
  40603. +/* With 32 bit ints, we can get 9 decimal digits per block. */
  40604. +#define DIGITS_PER_BLOCK 9
  40605. +
  40606. +#define NUM_DIGIT_BLOCKS ((DECIMAL_DIG+DIGITS_PER_BLOCK-1)/DIGITS_PER_BLOCK)
  40607. +
  40608. +/* WARNING: Adjust _fp_out_wide() in _vfprintf.c if this changes! */
  40609. +/* extra space for '-', '.', 'e+###', and nul */
  40610. +#define BUF_SIZE ( 3 + NUM_DIGIT_BLOCKS * DIGITS_PER_BLOCK )
  40611. +
  40612. +/* psm: why do these internals differ? */
  40613. +#ifdef __USE_OLD_VFPRINTF__
  40614. +typedef void (__fp_outfunc_t)(FILE *fp, intptr_t type, intptr_t len, intptr_t buf);
  40615. +
  40616. +extern size_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
  40617. + __fp_outfunc_t fp_outfunc) attribute_hidden;
  40618. +#else
  40619. +typedef size_t (__fp_outfunc_t)(FILE *fp, intptr_t type, intptr_t len, intptr_t buf);
  40620. +
  40621. +extern ssize_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
  40622. + __fp_outfunc_t fp_outfunc) attribute_hidden;
  40623. +#endif
  40624. +
  40625. +#endif /* __UCLIBC_HAS_FLOATS__ */
  40626. +#endif /* _FPMAXTOSTR_H */
  40627. diff -Nur uClibc-0.9.33.2/libc/stdio/fputc.c uClibc-git/libc/stdio/fputc.c
  40628. --- uClibc-0.9.33.2/libc/stdio/fputc.c 2012-05-15 09:20:09.000000000 +0200
  40629. +++ uClibc-git/libc/stdio/fputc.c 2014-06-02 17:40:34.122712582 +0200
  40630. @@ -72,16 +72,13 @@
  40631. libc_hidden_def(__fputc_unlocked)
  40632. strong_alias(__fputc_unlocked,fputc_unlocked)
  40633. -libc_hidden_def(fputc_unlocked)
  40634. strong_alias(__fputc_unlocked,putc_unlocked)
  40635. -libc_hidden_def(putc_unlocked)
  40636. #ifndef __UCLIBC_HAS_THREADS__
  40637. strong_alias(__fputc_unlocked,fputc)
  40638. libc_hidden_def(fputc)
  40639. strong_alias(__fputc_unlocked,putc)
  40640. -libc_hidden_def(putc)
  40641. #endif
  40642. #elif defined __UCLIBC_HAS_THREADS__
  40643. @@ -101,6 +98,5 @@
  40644. libc_hidden_def(fputc)
  40645. strong_alias(fputc,putc)
  40646. -libc_hidden_def(putc)
  40647. #endif
  40648. diff -Nur uClibc-0.9.33.2/libc/stdio/fputwc.c uClibc-git/libc/stdio/fputwc.c
  40649. --- uClibc-0.9.33.2/libc/stdio/fputwc.c 2012-05-15 09:20:09.000000000 +0200
  40650. +++ uClibc-git/libc/stdio/fputwc.c 2014-06-02 17:40:34.122712582 +0200
  40651. @@ -19,6 +19,7 @@
  40652. strong_alias(fputwc_unlocked,putwc_unlocked)
  40653. #ifndef __UCLIBC_HAS_THREADS__
  40654. strong_alias(fputwc_unlocked,fputwc)
  40655. +libc_hidden_def(fputwc)
  40656. strong_alias(fputwc_unlocked,putwc)
  40657. #endif
  40658. @@ -37,6 +38,7 @@
  40659. return retval;
  40660. }
  40661. +libc_hidden_def(fputwc)
  40662. strong_alias(fputwc,putwc)
  40663. diff -Nur uClibc-0.9.33.2/libc/stdio/fseeko.c uClibc-git/libc/stdio/fseeko.c
  40664. --- uClibc-0.9.33.2/libc/stdio/fseeko.c 2012-05-15 09:20:09.000000000 +0200
  40665. +++ uClibc-git/libc/stdio/fseeko.c 2014-06-02 17:40:34.126712605 +0200
  40666. @@ -77,5 +77,5 @@
  40667. libc_hidden_def(fseeko64)
  40668. #else
  40669. libc_hidden_def(fseek)
  40670. -strong_alias(fseek,fseeko)
  40671. +strong_alias_untyped(fseek,fseeko)
  40672. #endif
  40673. diff -Nur uClibc-0.9.33.2/libc/stdio/ftello.c uClibc-git/libc/stdio/ftello.c
  40674. --- uClibc-0.9.33.2/libc/stdio/ftello.c 2012-05-15 09:20:09.000000000 +0200
  40675. +++ uClibc-git/libc/stdio/ftello.c 2014-06-02 17:40:34.126712605 +0200
  40676. @@ -53,5 +53,5 @@
  40677. libc_hidden_def(ftello64)
  40678. #else
  40679. libc_hidden_def(ftell)
  40680. -strong_alias(ftell,ftello)
  40681. +strong_alias_untyped(ftell,ftello)
  40682. #endif
  40683. diff -Nur uClibc-0.9.33.2/libc/stdio/_load_inttype.c uClibc-git/libc/stdio/_load_inttype.c
  40684. --- uClibc-0.9.33.2/libc/stdio/_load_inttype.c 2012-05-15 09:20:09.000000000 +0200
  40685. +++ uClibc-git/libc/stdio/_load_inttype.c 2014-06-02 17:40:34.118712560 +0200
  40686. @@ -8,7 +8,6 @@
  40687. #include "_stdio.h"
  40688. #include <printf.h>
  40689. -uintmax_t _load_inttype(int desttype, register const void *src, int uflag) attribute_hidden;
  40690. uintmax_t _load_inttype(int desttype, register const void *src, int uflag)
  40691. {
  40692. if (uflag >= 0) { /* unsigned */
  40693. diff -Nur uClibc-0.9.33.2/libc/stdio/Makefile.in uClibc-git/libc/stdio/Makefile.in
  40694. --- uClibc-0.9.33.2/libc/stdio/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  40695. +++ uClibc-git/libc/stdio/Makefile.in 2014-06-02 17:40:34.118712560 +0200
  40696. @@ -11,7 +11,7 @@
  40697. subdirs += libc/stdio
  40698. # SUSv3 functions
  40699. -CSRC := \
  40700. +CSRC-y := \
  40701. fclose.c fcloseall.c fdopen.c fgetpos.c fopen.c freopen.c \
  40702. fseeko.c fsetpos.c ftello.c getdelim.c getline.c gets.c getw.c \
  40703. perror.c puts.c putw.c remove.c rewind.c setbuf.c setbuffer.c \
  40704. @@ -19,92 +19,80 @@
  40705. printf.c vprintf.c vsprintf.c fprintf.c snprintf.c dprintf.c \
  40706. asprintf.c sprintf.c vasprintf.c vdprintf.c vsnprintf.c \
  40707. tmpfile.c popen.c ctermid.c
  40708. +CSRC-$(UCLIBC_HAS_LFS) += fgetpos64.c fopen64.c freopen64.c \
  40709. + fseeko64.c fsetpos64.c ftello64.c
  40710. +CSRC-$(UCLIBC_SUSV4_LEGACY) += tmpnam.c tmpnam_r.c tempnam.c
  40711. -ifeq ($(UCLIBC_HAS_LFS),y)
  40712. -CSRC += fgetpos64.c fopen64.c freopen64.c fseeko64.c fsetpos64.c ftello64.c
  40713. -endif
  40714. -ifeq ($(UCLIBC_SUSV4_LEGACY),y)
  40715. -CSRC += tmpnam.c tmpnam_r.c tempnam.c
  40716. -endif
  40717. -
  40718. -# getc -> alias for fgetc
  40719. -# putc -> alias for fputc
  40720. -# rename is a syscall
  40721. -
  40722. -# Implementation support functions
  40723. -CSRC += \
  40724. +# internal support functions
  40725. +CSRC-y += \
  40726. _READ.c _WRITE.c _adjust_pos.c _fopen.c _fwrite.c \
  40727. _rfill.c _stdio.c _trans2r.c _trans2w.c _wcommit.c \
  40728. _cs_funcs.c _load_inttype.c _store_inttype.c _uintmaxtostr.c
  40729. -ifeq ($(UCLIBC_HAS_FLOATS),y)
  40730. -CSRC += _fpmaxtostr.c
  40731. -endif
  40732. +CSRC-$(UCLIBC_HAS_FLOATS) += _fpmaxtostr.c
  40733. # stdio_ext.h functions
  40734. -CSRC += \
  40735. +CSRC-y += \
  40736. __fbufsize.c __flbf.c __fpending.c __fpurge.c __freadable.c \
  40737. __freading.c __fsetlocking.c __fwritable.c __fwriting.c _flushlbf.c
  40738. # Other glibc extensions
  40739. -ifeq ($(UCLIBC_HAS_GLIBC_CUSTOM_STREAMS),y)
  40740. -CSRC += fopencookie.c fmemopen.c open_memstream.c
  40741. -endif
  40742. +CSRC-$(UCLIBC_HAS_GLIBC_CUSTOM_STREAMS) += fopencookie.c fmemopen.c \
  40743. + open_memstream.c
  40744. # pthread functions
  40745. -CSRC += flockfile.c ftrylockfile.c funlockfile.c
  40746. +CSRC-y += flockfile.c ftrylockfile.c funlockfile.c
  40747. # Functions with unlocked versions
  40748. -CUSRC := \
  40749. +CUSRC-y := \
  40750. clearerr.c feof.c ferror.c fflush.c fgetc.c fgets.c fileno.c \
  40751. fputc.c fputs.c fread.c fwrite.c getchar.c putchar.c
  40752. # getc_unlocked -> alias for fgetc_unlocked
  40753. # putc_unlocked -> alias for fputc_unlocked
  40754. # vfprintf and support functions
  40755. -ifneq ($(USE_OLD_VFPRINTF),y)
  40756. +ifeq ($(USE_OLD_VFPRINTF),y)
  40757. +VF_CSRC := old_vfprintf.c
  40758. +else
  40759. +# multi source _vfprintf.c
  40760. VF_CSRC := \
  40761. vfprintf.c \
  40762. _vfprintf_internal.c \
  40763. _ppfs_init.c _ppfs_prepargs.c _ppfs_setargs.c _ppfs_parsespec.c \
  40764. register_printf_function.c parse_printf_format.c
  40765. -CSRC += $(VF_CSRC)
  40766. -else
  40767. -CSRC += old_vfprintf.c
  40768. endif
  40769. +CSRC-y += $(VF_CSRC)
  40770. # vfscanf and support functions plus other *scanf funcs
  40771. -CSRC += \
  40772. +CSRC-y += \
  40773. vfscanf.c __scan_cookie.c __psfs_parse_spec.c __psfs_do_numeric.c \
  40774. scanf.c sscanf.c fscanf.c vscanf.c vsscanf.c
  40775. -ifeq ($(UCLIBC_HAS_WCHAR),y)
  40776. -CSRC += _wfwrite.c fwprintf.c swprintf.c vswprintf.c vwprintf.c wprintf.c \
  40777. +CSRC-$(UCLIBC_HAS_WCHAR) += \
  40778. + _wfwrite.c fwprintf.c swprintf.c vswprintf.c vwprintf.c wprintf.c \
  40779. fwide.c ungetwc.c
  40780. -CUSRC += fgetwc.c getwchar.c fgetws.c fputwc.c putwchar.c fputws.c
  40781. +CUSRC-$(UCLIBC_HAS_WCHAR) += \
  40782. + fgetwc.c getwchar.c fgetws.c fputwc.c putwchar.c fputws.c
  40783. # getwc (fgetwc alias) getwc_unlocked (fgetwc_unlocked alias)
  40784. # putwc (fputwc alias) putwc_unlocked (fputwc_unlocked alias)
  40785. -CSRC += vfwprintf.c _vfwprintf_internal.c
  40786. -CSRC += wscanf.c swscanf.c fwscanf.c vwscanf.c vswscanf.c vfwscanf.c
  40787. -endif
  40788. -
  40789. -CUSRC_UNLOCKED := $(patsubst %.c,%_unlocked.c,$(CUSRC))
  40790. +CSRC-$(UCLIBC_HAS_WCHAR) += vfwprintf.c _vfwprintf_internal.c \
  40791. + wscanf.c swscanf.c fwscanf.c vwscanf.c vswscanf.c vfwscanf.c
  40792. -CSRC += $(CUSRC) $(CUSRC_UNLOCKED)
  40793. +CUSRC_UNLOCKED := $(patsubst %.c,%_unlocked.c,$(CUSRC-y))
  40794. +CSRC-y += $(CUSRC-y) $(CUSRC_UNLOCKED)
  40795. STDIO_DIR := $(top_srcdir)libc/stdio
  40796. STDIO_OUT := $(top_builddir)libc/stdio
  40797. -STDIO_SRC := $(patsubst %.c,$(STDIO_DIR)/%.c,$(CSRC))
  40798. -STDIO_OBJ := $(patsubst %.c,$(STDIO_OUT)/%.o,$(CSRC))
  40799. +STDIO_SRC := $(patsubst %.c,$(STDIO_DIR)/%.c,$(CSRC-y))
  40800. +STDIO_OBJ := $(patsubst %.c,$(STDIO_OUT)/%.o,$(CSRC-y))
  40801. libc-y += $(STDIO_OBJ)
  40802. ifneq ($(USE_OLD_VFPRINTF),y)
  40803. libc-nomulti-y += $(patsubst %.c,$(STDIO_OUT)/%.o,$(VF_CSRC))
  40804. endif
  40805. -ifeq ($(UCLIBC_HAS_WCHAR),y)
  40806. -libc-nomulti-y += $(STDIO_OUT)/vfwprintf.o $(STDIO_OUT)/vfwscanf.o
  40807. -endif
  40808. +libc-nomulti-$(UCLIBC_HAS_WCHAR) += $(STDIO_OUT)/vfwprintf.o \
  40809. + $(STDIO_OUT)/vfwscanf.o
  40810. objclean-y += CLEAN_libc/stdio
  40811. diff -Nur uClibc-0.9.33.2/libc/stdio/old_vfprintf.c uClibc-git/libc/stdio/old_vfprintf.c
  40812. --- uClibc-0.9.33.2/libc/stdio/old_vfprintf.c 2012-05-15 09:20:09.000000000 +0200
  40813. +++ uClibc-git/libc/stdio/old_vfprintf.c 2014-06-02 17:40:34.126712605 +0200
  40814. @@ -127,9 +127,7 @@
  40815. /**************************************************************************/
  40816. -#define _ISOC99_SOURCE /* for ULLONG primarily... */
  40817. #include "_stdio.h"
  40818. -/* #include <stdio.h> */
  40819. #include <stdarg.h>
  40820. #include <limits.h>
  40821. #include <stdint.h>
  40822. @@ -137,14 +135,9 @@
  40823. #include <errno.h>
  40824. #include <ctype.h>
  40825. #include <bits/uClibc_uintmaxtostr.h>
  40826. -#include <printf.h>
  40827. -#ifdef __UCLIBC_HAS_THREADS__
  40828. -#include <pthread.h>
  40829. -#endif /* __UCLIBC_HAS_THREADS__ */
  40830. +#include "_fpmaxtostr.h"
  40831. -
  40832. -/* #undef __UCLIBC_HAS_FLOATS__ */
  40833. /* #undef WANT_FLOAT_ERROR */
  40834. /* #define WANT_FLOAT_ERROR 1 */
  40835. @@ -208,14 +201,6 @@
  40836. #endif /* __STDIO_BUFFERS */
  40837. #ifdef __UCLIBC_HAS_FLOATS__
  40838. -#include <float.h>
  40839. -#include <bits/uClibc_fpmax.h>
  40840. -
  40841. -typedef void (__fp_outfunc_t)(FILE *fp, intptr_t type, intptr_t len,
  40842. - intptr_t buf);
  40843. -
  40844. -extern size_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
  40845. - __fp_outfunc_t fp_outfunc) attribute_hidden;
  40846. static void _charpad(FILE * __restrict stream, int padchar, size_t numpad)
  40847. {
  40848. @@ -259,9 +244,6 @@
  40849. /**********************************************************************/
  40850. -extern void _store_inttype(void *dest, int desttype, uintmax_t val) attribute_hidden;
  40851. -extern uintmax_t _load_inttype(int desttype, const void *src, int uflag) attribute_hidden;
  40852. -
  40853. /*
  40854. * In order to ease translation to what arginfo and _print_info._flags expect,
  40855. * we map: 0:int 1:char 2:longlong 4:long 8:short
  40856. diff -Nur uClibc-0.9.33.2/libc/stdio/open_memstream.c uClibc-git/libc/stdio/open_memstream.c
  40857. --- uClibc-0.9.33.2/libc/stdio/open_memstream.c 2012-05-15 09:20:09.000000000 +0200
  40858. +++ uClibc-git/libc/stdio/open_memstream.c 2014-06-02 17:40:34.126712605 +0200
  40859. @@ -128,7 +128,7 @@
  40860. * (ie replace the FILE buffer with the cookie buffer and update FILE bufstart,
  40861. * etc. whenever we seek). */
  40862. -FILE *open_memstream(char **__restrict bufloc, size_t *__restrict sizeloc)
  40863. +FILE *open_memstream(char **bufloc, size_t *sizeloc)
  40864. {
  40865. register __oms_cookie *cookie;
  40866. register FILE *fp;
  40867. diff -Nur uClibc-0.9.33.2/libc/stdio/popen.c uClibc-git/libc/stdio/popen.c
  40868. --- uClibc-0.9.33.2/libc/stdio/popen.c 2012-05-15 09:20:09.000000000 +0200
  40869. +++ uClibc-git/libc/stdio/popen.c 2014-06-02 17:40:34.126712605 +0200
  40870. @@ -26,15 +26,6 @@
  40871. #warning "hmm... susv3 says Pipe streams are byte-oriented."
  40872. #endif /* __UCLIBC_MJN3_ONLY__ */
  40873. -
  40874. -/* uClinux-2.0 has vfork, but Linux 2.0 doesn't */
  40875. -#include <sys/syscall.h>
  40876. -#if ! defined __NR_vfork
  40877. -# define vfork fork
  40878. -# define VFORK_LOCK ((void) 0)
  40879. -# define VFORK_UNLOCK ((void) 0)
  40880. -#endif
  40881. -
  40882. #ifndef VFORK_LOCK
  40883. __UCLIBC_MUTEX_STATIC(mylock, PTHREAD_MUTEX_INITIALIZER);
  40884. # define VFORK_LOCK __UCLIBC_MUTEX_LOCK(mylock)
  40885. @@ -138,7 +129,7 @@
  40886. int pclose(FILE *stream)
  40887. {
  40888. struct popen_list_item *p;
  40889. - int stat;
  40890. + int status;
  40891. pid_t pid;
  40892. /* First, find the list entry corresponding to stream and remove it
  40893. @@ -173,8 +164,8 @@
  40894. /* SUSv3 specificly requires that pclose not return before the child
  40895. * terminates, in order to disallow pclose from returning on EINTR. */
  40896. do {
  40897. - if (waitpid(pid, &stat, 0) >= 0) {
  40898. - return stat;
  40899. + if (waitpid(pid, &status, 0) >= 0) {
  40900. + return status;
  40901. }
  40902. if (errno != EINTR) {
  40903. break;
  40904. diff -Nur uClibc-0.9.33.2/libc/stdio/putwchar.c uClibc-git/libc/stdio/putwchar.c
  40905. --- uClibc-0.9.33.2/libc/stdio/putwchar.c 2012-05-15 09:20:09.000000000 +0200
  40906. +++ uClibc-git/libc/stdio/putwchar.c 2014-06-02 17:40:34.126712605 +0200
  40907. @@ -9,7 +9,6 @@
  40908. #ifdef __DO_UNLOCKED
  40909. -
  40910. wint_t putwchar_unlocked(wchar_t wc)
  40911. {
  40912. return fputwc_unlocked(wc, stdout);
  40913. @@ -21,11 +20,9 @@
  40914. #elif defined __UCLIBC_HAS_THREADS__
  40915. -/* psm: should this be fputwc? */
  40916. -
  40917. wint_t putwchar(wchar_t wc)
  40918. {
  40919. - return fputc(wc, stdout);
  40920. + return fputwc(wc, stdout);
  40921. }
  40922. #endif
  40923. diff -Nur uClibc-0.9.33.2/libc/stdio/_scanf.c uClibc-git/libc/stdio/_scanf.c
  40924. --- uClibc-0.9.33.2/libc/stdio/_scanf.c 2012-05-15 09:20:09.000000000 +0200
  40925. +++ uClibc-git/libc/stdio/_scanf.c 2014-06-02 17:40:34.122712582 +0200
  40926. @@ -11,8 +11,8 @@
  40927. * Library General Public License for more details.
  40928. *
  40929. * You should have received a copy of the GNU Library General Public
  40930. - * License along with this library; if not, write to the Free
  40931. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  40932. + * License along with this library; if not, see
  40933. + * <http://www.gnu.org/licenses/>.
  40934. */
  40935. /* Aug 1, 2003
  40936. @@ -43,7 +43,6 @@
  40937. * standards and from an official C standard defect report.
  40938. */
  40939. -#define _ISOC99_SOURCE /* for LLONG_MAX primarily... */
  40940. #include <features.h>
  40941. #include "_stdio.h"
  40942. #include <stdlib.h>
  40943. @@ -77,14 +76,6 @@
  40944. #include <bits/uClibc_fpmax.h>
  40945. #endif /* __UCLIBC_HAS_FLOATS__ */
  40946. -#ifdef __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__
  40947. -#ifdef L_vfscanf
  40948. -/* only emit this once */
  40949. -#warning Forcing undef of __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__ until implemented!
  40950. -#endif
  40951. -#undef __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__
  40952. -#endif
  40953. -
  40954. #undef __STDIO_HAS_VSSCANF
  40955. #if defined(__STDIO_BUFFERS) || !defined(__UCLIBC_HAS_WCHAR__) || defined(__UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__)
  40956. #define __STDIO_HAS_VSSCANF 1
  40957. @@ -99,8 +90,6 @@
  40958. #endif
  40959. -extern void _store_inttype(void *dest, int desttype, uintmax_t val);
  40960. -
  40961. #if defined(ULLONG_MAX) && (LLONG_MAX > LONG_MAX)
  40962. extern unsigned long long
  40963. @@ -209,7 +198,7 @@
  40964. #ifdef __STDIO_BUFFERS
  40965. -int vsscanf(__const char *sp, __const char *fmt, va_list ap)
  40966. +int vsscanf(const char *sp, const char *fmt, va_list ap)
  40967. {
  40968. FILE f;
  40969. @@ -253,7 +242,7 @@
  40970. #elif !defined(__UCLIBC_HAS_WCHAR__)
  40971. -int vsscanf(__const char *sp, __const char *fmt, va_list ap)
  40972. +int vsscanf(const char *sp, const char *fmt, va_list ap)
  40973. {
  40974. __FILE_vsscanf f;
  40975. @@ -292,7 +281,7 @@
  40976. #elif defined(__UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__)
  40977. -int vsscanf(__const char *sp, __const char *fmt, va_list ap)
  40978. +int vsscanf(const char *sp, const char *fmt, va_list ap)
  40979. {
  40980. FILE *f;
  40981. int rv = EOF;
  40982. @@ -388,9 +377,9 @@
  40983. FILE f;
  40984. f.__bufstart =
  40985. - f.__bufpos = (char *) str;
  40986. + f.__bufpos = (unsigned char *) str;
  40987. f.__bufread =
  40988. - f.__bufend = (char *)(str + wcslen(str));
  40989. + f.__bufend = (unsigned char *)(str + wcslen(str));
  40990. __STDIO_STREAM_DISABLE_GETC(&f);
  40991. __STDIO_STREAM_DISABLE_PUTC(&f);
  40992. @@ -433,18 +422,19 @@
  40993. /* float layout 0123456789012345678901 repeat n for "l[" */
  40994. -#define SPEC_CHARS "npxXoudifFeEgGaACSncs["
  40995. -/* npxXoudif eEgG CS cs[ */
  40996. +#define SPEC_CHARS "npxXoudifFeEgGaACSnmcs["
  40997. +/* npxXoudif eEgG CS cs[ */
  40998. +/* NOTE: the 'm' flag must come before any convs that support it */
  40999. -/* NOTE: Ordering is important! In particular, CONV_LEFTBRACKET
  41000. - * must immediately precede CONV_c. */
  41001. +/* NOTE: Ordering is important! The CONV_{C,S,LEFTBRACKET} must map
  41002. + simply to their lowercase equivalents. */
  41003. enum {
  41004. CONV_n = 0,
  41005. CONV_p,
  41006. CONV_x, CONV_X, CONV_o, CONV_u, CONV_d, CONV_i,
  41007. CONV_f, CONV_F, CONV_e, CONV_E, CONV_g, CONV_G, CONV_a, CONV_A,
  41008. - CONV_C, CONV_S, CONV_LEFTBRACKET, CONV_c, CONV_s, CONV_leftbracket,
  41009. + CONV_C, CONV_S, CONV_LEFTBRACKET, CONV_m, CONV_c, CONV_s, CONV_leftbracket,
  41010. CONV_percent, CONV_whitespace /* not in SPEC_* and no flags */
  41011. };
  41012. @@ -474,7 +464,7 @@
  41013. FLAG_SURPRESS = 0x10, /* MUST BE 1ST!! See DO_FLAGS. */
  41014. FLAG_THOUSANDS = 0x20,
  41015. FLAG_I18N = 0x40, /* only works for d, i, u */
  41016. - FLAG_MALLOC = 0x80, /* only works for s, S, and [ (and l[)*/
  41017. + FLAG_MALLOC = 0x80, /* only works for c, s, S, and [ (and l[)*/
  41018. };
  41019. @@ -491,7 +481,7 @@
  41020. /* fFeEgGaA */ (0x0c|FLAG_SURPRESS|FLAG_THOUSANDS|FLAG_I18N), \
  41021. /* C */ ( 0|FLAG_SURPRESS), \
  41022. /* S and l[ */ ( 0|FLAG_SURPRESS|FLAG_MALLOC), \
  41023. - /* c */ (0x04|FLAG_SURPRESS), \
  41024. + /* c */ (0x04|FLAG_SURPRESS|FLAG_MALLOC), \
  41025. /* s and [ */ (0x04|FLAG_SURPRESS|FLAG_MALLOC), \
  41026. }
  41027. @@ -904,17 +894,17 @@
  41028. if (*psfs->fmt == *p) {
  41029. int p_m_spec_chars = p - spec_chars;
  41030. -#ifdef __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__
  41031. -#error implement gnu a flag
  41032. - if ((*p == 'a')
  41033. - && ((psfs->fmt[1] == '[') || ((psfs->fmt[1]|0x20) == 's'))
  41034. - ) { /* Assumes ascii for 's' and 'S' test. */
  41035. - psfs->flags |= FLAG_MALLOC;
  41036. + if (*p == 'm' &&
  41037. + (psfs->fmt[1] == '[' || psfs->fmt[1] == 'c' ||
  41038. + /* Assumes ascii for 's' and 'S' test. */
  41039. + (psfs->fmt[1] | 0x20) == 's'))
  41040. + {
  41041. + if (psfs->store)
  41042. + psfs->flags |= FLAG_MALLOC;
  41043. ++psfs->fmt;
  41044. ++p;
  41045. - continue; /* The related conversions follow 'a'. */
  41046. + continue; /* The related conversions follow 'm'. */
  41047. }
  41048. -#endif /* __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__ */
  41049. for (p = spec_ranges; p_m_spec_chars > *p ; ++p) {}
  41050. if (((psfs->dataargtype >> 8) | psfs->flags)
  41051. @@ -928,7 +918,7 @@
  41052. psfs->dataargtype = PA_FLAG_LONG;
  41053. } else if ((p_m_spec_chars >= CONV_c)
  41054. && (psfs->dataargtype & PA_FLAG_LONG)) {
  41055. - p_m_spec_chars -= 3; /* lc -> C, ls -> S, l[ -> ?? */
  41056. + p_m_spec_chars -= CONV_c - CONV_C; /* lc -> C, ls -> S, l[ -> ?? */
  41057. }
  41058. psfs->conv_num = p_m_spec_chars;
  41059. @@ -1265,12 +1255,6 @@
  41060. while (*wf && __isascii(*wf) && (b < buf + sizeof(buf) - 1)) {
  41061. *b++ = *wf++;
  41062. }
  41063. -#ifdef __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__
  41064. -#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.
  41065. - if ((*b == 'a') && ((*wf == '[') || ((*wf|0x20) == 's'))) {
  41066. - goto DONE; /* Spec was excessively long. */
  41067. - }
  41068. -#endif /* __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__ */
  41069. *b = 0;
  41070. if (b == buf) { /* Bad conversion specifier! */
  41071. goto DONE;
  41072. @@ -1390,13 +1374,36 @@
  41073. }
  41074. if (psfs.conv_num == CONV_s) {
  41075. + /* We might have to handle the allocation ourselves */
  41076. + int len;
  41077. + /* With 'm', we actually got a pointer to a pointer */
  41078. + unsigned char **ptr = (void *)b;
  41079. +
  41080. + i = 0;
  41081. + if (psfs.flags & FLAG_MALLOC) {
  41082. + len = 0;
  41083. + b = NULL;
  41084. + } else
  41085. + len = -1;
  41086. +
  41087. /* Yes, believe it or not, a %s conversion can store nuls. */
  41088. while ((__scan_getc(&sc) >= 0) && !isspace(sc.cc)) {
  41089. zero_conversions = 0;
  41090. - *b = sc.cc;
  41091. - b += psfs.store;
  41092. + if (i == len) {
  41093. + /* Pick a size that won't trigger a lot of
  41094. + * mallocs early on ... */
  41095. + len += 256;
  41096. + b = realloc(b, len + 1);
  41097. + }
  41098. + b[i] = sc.cc;
  41099. + i += psfs.store;
  41100. fail = 0;
  41101. }
  41102. +
  41103. + if (psfs.flags & FLAG_MALLOC)
  41104. + *ptr = b;
  41105. + /* The code below takes care of terminating NUL */
  41106. + b += i;
  41107. } else {
  41108. #ifdef __UCLIBC_HAS_WCHAR__
  41109. assert((psfs.conv_num == CONV_LEFTBRACKET) || \
  41110. diff -Nur uClibc-0.9.33.2/libc/stdio/_stdio.c uClibc-git/libc/stdio/_stdio.c
  41111. --- uClibc-0.9.33.2/libc/stdio/_stdio.c 2012-05-15 09:20:09.000000000 +0200
  41112. +++ uClibc-git/libc/stdio/_stdio.c 2014-06-02 17:40:34.122712582 +0200
  41113. @@ -7,7 +7,6 @@
  41114. #include "_stdio.h"
  41115. -
  41116. /* This is pretty much straight from uClibc, but with one important
  41117. * difference.
  41118. *
  41119. @@ -185,7 +184,7 @@
  41120. /**********************************************************************/
  41121. /* We assume here that we are the only remaining thread. */
  41122. -void attribute_hidden _stdio_term(void)
  41123. +void _stdio_term(void)
  41124. {
  41125. #if defined(__STDIO_BUFFERS) || defined(__UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__)
  41126. register FILE *ptr;
  41127. @@ -252,7 +251,7 @@
  41128. }
  41129. #if defined __STDIO_BUFFERS || !defined __UCLIBC__
  41130. -void attribute_hidden _stdio_init(void)
  41131. +void _stdio_init(void)
  41132. {
  41133. #ifdef __STDIO_BUFFERS
  41134. int old_errno = errno;
  41135. @@ -277,10 +276,6 @@
  41136. #error Assumption violated about __MASK_READING and __FLAG_UNGOT
  41137. #endif
  41138. -#ifdef __UCLIBC_HAS_THREADS__
  41139. -#include <pthread.h>
  41140. -#endif
  41141. -
  41142. #ifndef NDEBUG
  41143. void attribute_hidden _stdio_validate_FILE(const FILE *stream)
  41144. diff -Nur uClibc-0.9.33.2/libc/stdio/_stdio.h uClibc-git/libc/stdio/_stdio.h
  41145. --- uClibc-0.9.33.2/libc/stdio/_stdio.h 2012-05-15 09:20:09.000000000 +0200
  41146. +++ uClibc-git/libc/stdio/_stdio.h 2014-06-02 17:40:34.122712582 +0200
  41147. @@ -39,6 +39,9 @@
  41148. #ifdef __UCLIBC_HAS_THREADS__
  41149. +extern void __stdio_init_mutex(__UCLIBC_MUTEX_TYPE *m) attribute_hidden;
  41150. +
  41151. +extern volatile int _stdio_openlist_use_count attribute_hidden; /* _stdio_openlist_del_lock */
  41152. #define __STDIO_OPENLIST_INC_USE \
  41153. do { \
  41154. __STDIO_THREADLOCK_OPENLIST_DEL; \
  41155. @@ -51,6 +54,7 @@
  41156. #define __STDIO_OPENLIST_DEC_USE \
  41157. _stdio_openlist_dec_use()
  41158. +extern int _stdio_openlist_del_count attribute_hidden; /* _stdio_openlist_del_lock */
  41159. #define __STDIO_OPENLIST_INC_DEL_CNT \
  41160. do { \
  41161. __STDIO_THREADLOCK_OPENLIST_DEL; \
  41162. @@ -308,6 +312,9 @@
  41163. extern int __stdio_trans2r_o(FILE *__restrict stream, int oflag) attribute_hidden;
  41164. extern int __stdio_trans2w_o(FILE *__restrict stream, int oflag) attribute_hidden;
  41165. +extern uintmax_t _load_inttype(int desttype, register const void *src, int uflag) attribute_hidden;
  41166. +extern void _store_inttype(void *dest, int desttype, uintmax_t val) attribute_hidden;
  41167. +
  41168. /**********************************************************************/
  41169. #ifdef __STDIO_BUFFERS
  41170. diff -Nur uClibc-0.9.33.2/libc/stdio/_store_inttype.c uClibc-git/libc/stdio/_store_inttype.c
  41171. --- uClibc-0.9.33.2/libc/stdio/_store_inttype.c 2012-05-15 09:20:09.000000000 +0200
  41172. +++ uClibc-git/libc/stdio/_store_inttype.c 2014-06-02 17:40:34.122712582 +0200
  41173. @@ -28,7 +28,6 @@
  41174. /* We assume int may be short or long, but short and long are different. */
  41175. -void _store_inttype(register void *dest, int desttype, uintmax_t val) attribute_hidden;
  41176. void _store_inttype(register void *dest, int desttype, uintmax_t val)
  41177. {
  41178. if (desttype == __PA_FLAG_CHAR) { /* assume char not int */
  41179. diff -Nur uClibc-0.9.33.2/libc/stdio/tempnam.c uClibc-git/libc/stdio/tempnam.c
  41180. --- uClibc-0.9.33.2/libc/stdio/tempnam.c 2012-05-15 09:20:09.000000000 +0200
  41181. +++ uClibc-git/libc/stdio/tempnam.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 <stdio.h>
  41189. #include <string.h>
  41190. diff -Nur uClibc-0.9.33.2/libc/stdio/tmpfile.c uClibc-git/libc/stdio/tmpfile.c
  41191. --- uClibc-0.9.33.2/libc/stdio/tmpfile.c 2012-05-15 09:20:09.000000000 +0200
  41192. +++ uClibc-git/libc/stdio/tmpfile.c 2014-06-02 17:40:34.126712605 +0200
  41193. @@ -13,8 +13,7 @@
  41194. You should have received a copy of the GNU Library General Public
  41195. License along with the GNU C Library; see the file COPYING.LIB. If not,
  41196. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  41197. - Boston, MA 02111-1307, USA. */
  41198. + see <http://www.gnu.org/licenses/>. */
  41199. #include <features.h>
  41200. #include <stdio.h>
  41201. diff -Nur uClibc-0.9.33.2/libc/stdio/tmpnam.c uClibc-git/libc/stdio/tmpnam.c
  41202. --- uClibc-0.9.33.2/libc/stdio/tmpnam.c 2012-05-15 09:20:09.000000000 +0200
  41203. +++ uClibc-git/libc/stdio/tmpnam.c 2014-06-02 17:40:34.126712605 +0200
  41204. @@ -12,9 +12,8 @@
  41205. Lesser General Public License for more details.
  41206. You should have received a copy of the GNU Lesser General Public
  41207. - License along with the GNU C Library; if not, write to the Free
  41208. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41209. - 02111-1307 USA. */
  41210. + License along with the GNU C Library; if not, see
  41211. + <http://www.gnu.org/licenses/>. */
  41212. #include <stdio.h>
  41213. #include <string.h>
  41214. diff -Nur uClibc-0.9.33.2/libc/stdio/tmpnam_r.c uClibc-git/libc/stdio/tmpnam_r.c
  41215. --- uClibc-0.9.33.2/libc/stdio/tmpnam_r.c 2012-05-15 09:20:09.000000000 +0200
  41216. +++ uClibc-git/libc/stdio/tmpnam_r.c 2014-06-02 17:40:34.126712605 +0200
  41217. @@ -13,8 +13,7 @@
  41218. You should have received a copy of the GNU Library General Public
  41219. License along with the GNU C Library; see the file COPYING.LIB. If not,
  41220. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  41221. - Boston, MA 02111-1307, USA. */
  41222. + see <http://www.gnu.org/licenses/>. */
  41223. #include <stdio.h>
  41224. #include "../misc/internals/tempname.h"
  41225. diff -Nur uClibc-0.9.33.2/libc/stdio/_uintmaxtostr.c uClibc-git/libc/stdio/_uintmaxtostr.c
  41226. --- uClibc-0.9.33.2/libc/stdio/_uintmaxtostr.c 2012-05-15 09:20:09.000000000 +0200
  41227. +++ uClibc-git/libc/stdio/_uintmaxtostr.c 2014-06-02 17:40:34.122712582 +0200
  41228. @@ -5,7 +5,6 @@
  41229. * Dedicated to Toni. See uClibc/DEDICATION.mjn3 for details.
  41230. */
  41231. -#define _ISOC99_SOURCE /* for ULLONG primarily... */
  41232. #include "_stdio.h"
  41233. #include <limits.h>
  41234. #include <locale.h>
  41235. diff -Nur uClibc-0.9.33.2/libc/stdio/_vfprintf.c uClibc-git/libc/stdio/_vfprintf.c
  41236. --- uClibc-0.9.33.2/libc/stdio/_vfprintf.c 2012-05-15 09:20:09.000000000 +0200
  41237. +++ uClibc-git/libc/stdio/_vfprintf.c 2014-06-02 17:40:34.122712582 +0200
  41238. @@ -12,8 +12,8 @@
  41239. * Library General Public License for more details.
  41240. *
  41241. * You should have received a copy of the GNU Library General Public
  41242. - * License along with this library; if not, write to the Free
  41243. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  41244. + * License along with this library; if not, see
  41245. + * <http://www.gnu.org/licenses/>.
  41246. */
  41247. /* This code needs a lot of clean up. Some of that is on hold until uClibc
  41248. @@ -88,7 +88,6 @@
  41249. * treats this as an error.
  41250. */
  41251. -#define _ISOC99_SOURCE /* for ULLONG primarily... */
  41252. #include <features.h>
  41253. #include "_stdio.h"
  41254. #include <stdlib.h>
  41255. @@ -101,7 +100,6 @@
  41256. #include <stdint.h>
  41257. #include <errno.h>
  41258. #include <locale.h>
  41259. -#include <printf.h>
  41260. #ifdef __UCLIBC_HAS_THREADS__
  41261. # include <stdio_ext.h>
  41262. @@ -126,30 +124,16 @@
  41263. /**********************************************************************/
  41264. /* These provide some control over printf's feature set */
  41265. -/* This is undefined below depeding on uClibc's configuration. */
  41266. -#define __STDIO_PRINTF_FLOAT 1
  41267. +/* Now controlled by uClibc_config.h. */
  41268. +/* #define __UCLIBC_HAS_FLOATS__ 1 */
  41269. -/* Now controlled by uClibc_stdio.h. */
  41270. +/* Now controlled by uClibc_config.h. */
  41271. /* #define __UCLIBC_HAS_PRINTF_M_SPEC__ */
  41272. /**********************************************************************/
  41273. -#if defined(__UCLIBC__) && !defined(__UCLIBC_HAS_FLOATS__)
  41274. -# undef __STDIO_PRINTF_FLOAT
  41275. -#endif
  41276. -
  41277. -#ifdef __BCC__
  41278. -# undef __STDIO_PRINTF_FLOAT
  41279. -#endif
  41280. -
  41281. -#ifdef __STDIO_PRINTF_FLOAT
  41282. -# include <float.h>
  41283. -# include <bits/uClibc_fpmax.h>
  41284. -#else
  41285. -# undef L__fpmaxtostr
  41286. -#endif
  41287. -
  41288. +#include "_fpmaxtostr.h"
  41289. #undef __STDIO_HAS_VSNPRINTF
  41290. #if defined(__STDIO_BUFFERS) || defined(__USE_OLD_VFPRINTF__) || defined(__UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__)
  41291. @@ -158,7 +142,7 @@
  41292. /**********************************************************************/
  41293. -/* Now controlled by uClibc_stdio.h. */
  41294. +/* Now controlled by uClibc_config.h. */
  41295. /* #define __UCLIBC_HAS_GLIBC_CUSTOM_PRINTF__ */
  41296. #ifdef __UCLIBC_MJN3_ONLY__
  41297. @@ -361,7 +345,7 @@
  41298. # ifdef ULLONG_MAX
  41299. unsigned long long ull;
  41300. # endif
  41301. -# ifdef __STDIO_PRINTF_FLOAT
  41302. +# ifdef __UCLIBC_HAS_FLOATS__
  41303. double d;
  41304. long double ld;
  41305. # endif
  41306. @@ -398,22 +382,11 @@
  41307. /* TODO: fix printf to return 0 and set errno if format error. Standard says
  41308. only returns -1 if sets error indicator for the stream. */
  41309. -#ifdef __STDIO_PRINTF_FLOAT
  41310. -typedef size_t (__fp_outfunc_t)(FILE *fp, intptr_t type, intptr_t len,
  41311. - intptr_t buf);
  41312. -
  41313. -extern ssize_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
  41314. - __fp_outfunc_t fp_outfunc) attribute_hidden;
  41315. -#endif
  41316. -
  41317. extern int _ppfs_init(ppfs_t *ppfs, const char *fmt0) attribute_hidden; /* validates */
  41318. extern void _ppfs_prepargs(ppfs_t *ppfs, va_list arg) attribute_hidden; /* sets posargptrs */
  41319. extern void _ppfs_setargs(ppfs_t *ppfs) attribute_hidden; /* sets argptrs for current spec */
  41320. extern int _ppfs_parsespec(ppfs_t *ppfs) attribute_hidden; /* parses specifier */
  41321. -extern void _store_inttype(void *dest, int desttype, uintmax_t val) attribute_hidden;
  41322. -extern uintmax_t _load_inttype(int desttype, const void *src, int uflag) attribute_hidden;
  41323. -
  41324. /**********************************************************************/
  41325. #ifdef L_parse_printf_format
  41326. @@ -564,7 +537,7 @@
  41327. ppfs->fmtpos = fmt0; /* rewind */
  41328. }
  41329. -#ifdef NL_MAX_ARG
  41330. +#ifdef NL_ARGMAX
  41331. /* If we have positional args, make sure we know all the types. */
  41332. {
  41333. register int *p = ppfs->argtype;
  41334. @@ -576,7 +549,7 @@
  41335. ++p;
  41336. }
  41337. }
  41338. -#endif /* NL_MAX_ARG */
  41339. +#endif /* NL_ARGMAX */
  41340. return 0;
  41341. }
  41342. @@ -653,7 +626,7 @@
  41343. /* we're assuming wchar_t is at least an int */
  41344. GET_VA_ARG(p,wc,wchar_t,ppfs->arg);
  41345. break;
  41346. -#ifdef __STDIO_PRINTF_FLOAT
  41347. +#ifdef __UCLIBC_HAS_FLOATS__
  41348. /* PA_FLOAT */
  41349. case PA_DOUBLE:
  41350. GET_VA_ARG(p,d,double,ppfs->arg);
  41351. @@ -661,12 +634,12 @@
  41352. case (PA_DOUBLE|PA_FLAG_LONG_DOUBLE):
  41353. GET_VA_ARG(p,ld,long double,ppfs->arg);
  41354. break;
  41355. -#else /* __STDIO_PRINTF_FLOAT */
  41356. +#else /* __UCLIBC_HAS_FLOATS__ */
  41357. case PA_DOUBLE:
  41358. case (PA_DOUBLE|PA_FLAG_LONG_DOUBLE):
  41359. assert(0);
  41360. continue;
  41361. -#endif /* __STDIO_PRINTF_FLOAT */
  41362. +#endif /* __UCLIBC_HAS_FLOATS__ */
  41363. default:
  41364. /* TODO -- really need to ensure this can't happen */
  41365. assert(ppfs->argtype[i-1] & PA_FLAG_PTR);
  41366. @@ -743,7 +716,7 @@
  41367. PA_INT|PA_FLAG_LONG,
  41368. PA_INT|PA_FLAG_LONG_LONG,
  41369. PA_WCHAR,
  41370. -#ifdef __STDIO_PRINTF_FLOAT
  41371. +#ifdef __UCLIBC_HAS_FLOATS__
  41372. /* PA_FLOAT, */
  41373. PA_DOUBLE,
  41374. PA_DOUBLE|PA_FLAG_LONG_DOUBLE,
  41375. @@ -766,7 +739,7 @@
  41376. PROMOTED_SIZE_OF(long), /* TODO -- is this correct? (above too) */
  41377. #endif
  41378. PROMOTED_SIZE_OF(wchar_t),
  41379. -#ifdef __STDIO_PRINTF_FLOAT
  41380. +#ifdef __UCLIBC_HAS_FLOATS__
  41381. /* PROMOTED_SIZE_OF(float), */
  41382. PROMOTED_SIZE_OF(double),
  41383. PROMOTED_SIZE_OF(long double),
  41384. @@ -1199,7 +1172,7 @@
  41385. #define _outnstr(stream, string, len) ((len > 0) ? __stdio_fwrite((const unsigned char *)(string), len, stream) : 0)
  41386. #define FP_OUT _fp_out_narrow
  41387. -#ifdef __STDIO_PRINTF_FLOAT
  41388. +#ifdef __UCLIBC_HAS_FLOATS__
  41389. static size_t _fp_out_narrow(FILE *fp, intptr_t type, intptr_t len, intptr_t buf)
  41390. {
  41391. @@ -1219,7 +1192,7 @@
  41392. return r + OUTNSTR(fp, (const char *) buf, len);
  41393. }
  41394. -#endif /* __STDIO_PRINTF_FLOAT */
  41395. +#endif /* __UCLIBC_HAS_FLOATS__ */
  41396. #else /* L__vfprintf_internal */
  41397. @@ -1229,7 +1202,7 @@
  41398. #define STRLEN wcslen
  41399. #define _PPFS_init _ppwfs_init
  41400. /* Pulls in fseek: */
  41401. -#define OUTPUT(F,S) fputws(S,F)
  41402. +#define OUTPUT(F,S) fputws_unlocked(S,F)
  41403. /* TODO: #define OUTPUT(F,S) _wstdio_fwrite((S),wcslen(S),(F)) */
  41404. #define _outnwcs(stream, wstring, len) _wstdio_fwrite((const wchar_t *)(wstring), len, stream)
  41405. #define FP_OUT _fp_out_wide
  41406. @@ -1261,16 +1234,7 @@
  41407. return wclen - todo;
  41408. }
  41409. -#ifdef __STDIO_PRINTF_FLOAT
  41410. -
  41411. -#ifdef __UCLIBC_MJN3_ONLY__
  41412. -#warning TODO: Move defines from _fpmaxtostr. Put them in a common header.
  41413. -#endif
  41414. -
  41415. -/* The following defines are from _fpmaxtostr.*/
  41416. -#define DIGITS_PER_BLOCK 9
  41417. -#define NUM_DIGIT_BLOCKS ((DECIMAL_DIG+DIGITS_PER_BLOCK-1)/DIGITS_PER_BLOCK)
  41418. -#define BUF_SIZE ( 3 + NUM_DIGIT_BLOCKS * DIGITS_PER_BLOCK )
  41419. +#ifdef __UCLIBC_HAS_FLOATS__
  41420. static size_t _fp_out_wide(FILE *fp, intptr_t type, intptr_t len, intptr_t buf)
  41421. {
  41422. @@ -1318,7 +1282,7 @@
  41423. return r;
  41424. }
  41425. -#endif /* __STDIO_PRINTF_FLOAT */
  41426. +#endif /* __UCLIBC_HAS_FLOATS__ */
  41427. static int _ppwfs_init(register ppfs_t *ppfs, const wchar_t *fmt0)
  41428. {
  41429. @@ -1608,7 +1572,7 @@
  41430. }
  41431. numfill = ((numfill > SLEN) ? numfill - SLEN : 0);
  41432. } else if (ppfs->conv_num <= CONV_A) { /* floating point */
  41433. -#ifdef __STDIO_PRINTF_FLOAT
  41434. +#ifdef __UCLIBC_HAS_FLOATS__
  41435. ssize_t nf;
  41436. nf = _fpmaxtostr(stream,
  41437. (__fpmax_t)
  41438. @@ -1622,7 +1586,7 @@
  41439. *count += nf;
  41440. return 0;
  41441. -#else /* __STDIO_PRINTF_FLOAT */
  41442. +#else /* __UCLIBC_HAS_FLOATS__ */
  41443. return -1; /* TODO -- try to continue? */
  41444. #endif
  41445. } else if (ppfs->conv_num <= CONV_S) { /* wide char or string */
  41446. diff -Nur uClibc-0.9.33.2/libc/stdlib/a64l.c uClibc-git/libc/stdlib/a64l.c
  41447. --- uClibc-0.9.33.2/libc/stdlib/a64l.c 2012-05-15 09:20:09.000000000 +0200
  41448. +++ uClibc-git/libc/stdlib/a64l.c 2014-06-02 17:40:34.130712627 +0200
  41449. @@ -13,9 +13,8 @@
  41450. Lesser General Public License for more details.
  41451. You should have received a copy of the GNU Lesser General Public
  41452. - License along with the GNU C Library; if not, write to the Free
  41453. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41454. - 02111-1307 USA. */
  41455. + License along with the GNU C Library; if not, see
  41456. + <http://www.gnu.org/licenses/>. */
  41457. #include <stdlib.h>
  41458. diff -Nur uClibc-0.9.33.2/libc/stdlib/abort.c uClibc-git/libc/stdlib/abort.c
  41459. --- uClibc-0.9.33.2/libc/stdlib/abort.c 2012-05-15 09:20:09.000000000 +0200
  41460. +++ uClibc-git/libc/stdlib/abort.c 2014-06-02 17:40:34.130712627 +0200
  41461. @@ -13,8 +13,7 @@
  41462. You should have received a copy of the GNU Library General Public
  41463. License along with the GNU C Library; see the file COPYING.LIB. If
  41464. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  41465. -Cambridge, MA 02139, USA. */
  41466. +not, see <http://www.gnu.org/licenses/>. */
  41467. /* Hacked up for uClibc by Erik Andersen */
  41468. @@ -47,9 +46,6 @@
  41469. # warning "no abort instruction defined for your arch"
  41470. #endif
  41471. -#ifdef __UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT__
  41472. -extern void weak_function _stdio_term(void) attribute_hidden;
  41473. -#endif
  41474. static smallint been_there_done_that = 0;
  41475. /* Be prepared in case multiple threads try to abort() */
  41476. diff -Nur uClibc-0.9.33.2/libc/stdlib/arc4random.c uClibc-git/libc/stdlib/arc4random.c
  41477. --- uClibc-0.9.33.2/libc/stdlib/arc4random.c 2012-05-15 09:20:09.000000000 +0200
  41478. +++ uClibc-git/libc/stdlib/arc4random.c 2014-06-02 17:40:34.130712627 +0200
  41479. @@ -1,24 +1,29 @@
  41480. -/* $$$: arc4random.c 2005/02/08 robert */
  41481. -/* $NetBSD: arc4random.c,v 1.5.2.1 2004/03/26 22:52:50 jmc Exp $ */
  41482. -/* $OpenBSD: arc4random.c,v 1.6 2001/06/05 05:05:38 pvalchev Exp $ */
  41483. -
  41484. /*
  41485. - * Arc4 random number generator for OpenBSD.
  41486. - * Copyright 1996 David Mazieres <dm@lcs.mit.edu>.
  41487. + * Copyright (c) 1996, David Mazieres <dm@uun.org>
  41488. *
  41489. - * Modification and redistribution in source and binary forms is
  41490. - * permitted provided that due credit is given to the author and the
  41491. - * OpenBSD project by leaving this copyright notice intact.
  41492. + * Permission to use, copy, modify, and distribute this software for any
  41493. + * purpose with or without fee is hereby granted, provided that the above
  41494. + * copyright notice and this permission notice appear in all copies.
  41495. + *
  41496. + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  41497. + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  41498. + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  41499. + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  41500. + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  41501. + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  41502. + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  41503. */
  41504. /*
  41505. + * Arc4 random number generator for OpenBSD.
  41506. + *
  41507. * This code is derived from section 17.1 of Applied Cryptography,
  41508. * second edition, which describes a stream cipher allegedly
  41509. * compatible with RSA Labs "RC4" cipher (the actual description of
  41510. * which is a trade secret). The same algorithm is used as a stream
  41511. * cipher called "arcfour" in Tatu Ylonen's ssh package.
  41512. *
  41513. - * Here the stream cipher has been modified always to include the time
  41514. + * Here the stream cipher has been modified always to include entropy
  41515. * when initializing the state. That makes it impossible to
  41516. * regenerate the same random sequence twice, so this can't be used
  41517. * for encryption, but will generate good random numbers.
  41518. @@ -26,32 +31,26 @@
  41519. * RC4 is a registered trademark of RSA Laboratories.
  41520. */
  41521. +/* $OpenBSD: arc4random.c,v 1.16 2007/02/12 19:58:47 otto Exp $ */
  41522. +
  41523. #include <features.h>
  41524. +
  41525. #include <fcntl.h>
  41526. #include <stdlib.h>
  41527. #include <unistd.h>
  41528. #include <sys/types.h>
  41529. -#include <sys/param.h>
  41530. #include <sys/time.h>
  41531. -#ifdef __ARC4RANDOM_USE_ERANDOM__
  41532. -#include <sys/sysctl.h>
  41533. -#endif
  41534. -
  41535. struct arc4_stream {
  41536. - uint8_t i;
  41537. - uint8_t j;
  41538. - uint8_t s[256];
  41539. + u_int8_t i;
  41540. + u_int8_t j;
  41541. + u_int8_t s[256];
  41542. };
  41543. -static int rs_initialized;
  41544. +static smallint rs_initialized;
  41545. static struct arc4_stream rs;
  41546. -
  41547. -static __inline__ void arc4_init(struct arc4_stream *);
  41548. -static __inline__ void arc4_addrandom(struct arc4_stream *, u_char *, int);
  41549. -static void arc4_stir(struct arc4_stream *);
  41550. -static __inline__ uint8_t arc4_getbyte(struct arc4_stream *);
  41551. -static __inline__ uint32_t arc4_getword(struct arc4_stream *);
  41552. +static pid_t arc4_stir_pid;
  41553. +static int arc4_count;
  41554. static __inline__ void
  41555. arc4_init(struct arc4_stream *as)
  41556. @@ -64,11 +63,25 @@
  41557. as->j = 0;
  41558. }
  41559. +static __inline__ u_int8_t
  41560. +arc4_getbyte(struct arc4_stream *as)
  41561. +{
  41562. + u_int8_t si, sj;
  41563. +
  41564. + as->i = (as->i + 1);
  41565. + si = as->s[as->i];
  41566. + as->j = (as->j + si);
  41567. + sj = as->s[as->j];
  41568. + as->s[as->i] = sj;
  41569. + as->s[as->j] = si;
  41570. + return (as->s[(si + sj) & 0xff]);
  41571. +}
  41572. +
  41573. static __inline__ void
  41574. arc4_addrandom(struct arc4_stream *as, u_char *dat, int datlen)
  41575. {
  41576. int n;
  41577. - uint8_t si;
  41578. + u_int8_t si;
  41579. as->i--;
  41580. for (n = 0; n < 256; n++) {
  41581. @@ -84,71 +97,88 @@
  41582. static void
  41583. arc4_stir(struct arc4_stream *as)
  41584. {
  41585. - int fd;
  41586. - struct {
  41587. - struct timeval tv;
  41588. - uint rnd[(128 - sizeof(struct timeval)) / sizeof(uint)];
  41589. - } rdat;
  41590. int n;
  41591. + u_char rnd[128];
  41592. + struct timeval tv;
  41593. +
  41594. +#ifndef __ARC4RANDOM_USES_NODEV__
  41595. + int fd;
  41596. - gettimeofday(&rdat.tv, NULL);
  41597. fd = open("/dev/urandom", O_RDONLY);
  41598. if (fd != -1) {
  41599. - read(fd, rdat.rnd, sizeof(rdat.rnd));
  41600. + read(fd, rnd, sizeof(rnd));
  41601. close(fd);
  41602. }
  41603. -#ifdef __ARC4RANDOM_USE_ERANDOM__
  41604. + /* Did the pseudo-random device fail? Use gettimeofday(). */
  41605. + else
  41606. +#endif
  41607. + if (gettimeofday(&tv, NULL) != (-1)) {
  41608. +
  41609. + /* Initialize the first element so it's hopefully not '0',
  41610. + * to help out the next loop. Tossing in some prime numbers
  41611. + * probably can't hurt. */
  41612. + rnd[0] = (tv.tv_sec % 10000) * 3 + tv.tv_usec * 7 + \
  41613. + (getpid() % 1000) * 13;
  41614. +
  41615. + for (n = 1; n < 127 ; n++) {
  41616. +
  41617. + /* Take advantage of the stack space. Only initialize
  41618. + * elements equal to '0'. This will make the rnd[]
  41619. + * array much less vulnerable to timing attacks. Here
  41620. + * we'll stir getpid() into the value of the previous
  41621. + * element. Approximately 1 in 128 elements will still
  41622. + * become '0'. */
  41623. +
  41624. + if (rnd[n] == 0) {
  41625. + rnd[n] = ((rnd[n - 1] + n) ^ \
  41626. + ((getpid() % 1000) * 17));
  41627. + }
  41628. + }
  41629. + }
  41630. else {
  41631. - int mib[3];
  41632. - uint i;
  41633. - size_t len;
  41634. -
  41635. - /* Device could not be opened, we might be chrooted, take
  41636. - * randomness from sysctl. */
  41637. -
  41638. - mib[0] = CTL_KERN;
  41639. - mib[1] = KERN_RANDOM;
  41640. - mib[2] = RANDOM_ERANDOM;
  41641. -
  41642. - for (i = 0; i < sizeof(rdat.rnd) / sizeof(uint); i++) {
  41643. - len = sizeof(uint);
  41644. - if (sysctl(mib, 3, &rdat.rnd[i], &len, NULL, 0) == -1)
  41645. - break;
  41646. + /* gettimeofday() failed? Do the same thing as above, but only
  41647. + * with getpid(). */
  41648. +
  41649. + rnd[0] = (getpid() % 1000) * 19;
  41650. + for (n = 1; n < 127 ; n++) {
  41651. + if (rnd[n] == 0) {
  41652. + rnd[n] = ((rnd[n - 1] + n) ^ \
  41653. + ((getpid() % 1000) * 23));
  41654. + }
  41655. }
  41656. }
  41657. -#endif
  41658. - arc4_addrandom(as, (void *) &rdat, sizeof(rdat));
  41659. + arc4_stir_pid = getpid();
  41660. + arc4_addrandom(as, rnd, sizeof(rnd));
  41661. /*
  41662. - * Throw away the first N words of output, as suggested in the
  41663. - * paper "Weaknesses in the Key Scheduling Algorithm of RC4"
  41664. - * by Fluher, Mantin, and Shamir.
  41665. + * Discard early keystream, as per recommendations in:
  41666. * http://www.wisdom.weizmann.ac.il/~itsik/RC4/Papers/Rc4_ksa.ps
  41667. - * N = 256 in our case.
  41668. */
  41669. - for (n = 0; n < 256 * 4; n++)
  41670. - arc4_getbyte(as);
  41671. + for (n = 0; n < 256; n++)
  41672. + (void)arc4_getbyte(as);
  41673. + arc4_count = 1600000;
  41674. }
  41675. -static __inline__ uint8_t
  41676. -arc4_getbyte(struct arc4_stream *as)
  41677. +#if 0
  41678. +static void __arc4random_stir(void);
  41679. +/*
  41680. + * __arc4_getbyte() is a libc private function intended for use
  41681. + * with malloc.
  41682. + */
  41683. +u_int8_t
  41684. +__arc4_getbyte(void)
  41685. {
  41686. - uint8_t si, sj;
  41687. -
  41688. - as->i = (as->i + 1);
  41689. - si = as->s[as->i];
  41690. - as->j = (as->j + si);
  41691. - sj = as->s[as->j];
  41692. - as->s[as->i] = sj;
  41693. - as->s[as->j] = si;
  41694. - return (as->s[(si + sj) & 0xff]);
  41695. + if (--arc4_count == 0 || !rs_initialized)
  41696. + __arc4random_stir();
  41697. + return arc4_getbyte(&rs);
  41698. }
  41699. +#endif
  41700. -static __inline__ uint32_t
  41701. +static __inline__ u_int32_t
  41702. arc4_getword(struct arc4_stream *as)
  41703. {
  41704. - uint32_t val;
  41705. + u_int32_t val;
  41706. val = arc4_getbyte(as) << 24;
  41707. val |= arc4_getbyte(as) << 16;
  41708. val |= arc4_getbyte(as) << 8;
  41709. @@ -175,23 +205,11 @@
  41710. arc4_addrandom(&rs, dat, datlen);
  41711. }
  41712. -uint32_t
  41713. +u_int32_t
  41714. arc4random(void)
  41715. {
  41716. - if (!rs_initialized)
  41717. + arc4_count -= 4;
  41718. + if (arc4_count <= 0 || !rs_initialized || arc4_stir_pid != getpid())
  41719. __arc4random_stir();
  41720. return arc4_getword(&rs);
  41721. }
  41722. -
  41723. -#if 0
  41724. -/*-------- Test code --------*/
  41725. -#include <stdlib.h>
  41726. -#include <stdio.h>
  41727. -
  41728. -int main(void) {
  41729. - int random_number;
  41730. - random_number = arc4random() % 65536;
  41731. - printf("%d\n", random_number);
  41732. - return 0;
  41733. -}
  41734. -#endif
  41735. diff -Nur uClibc-0.9.33.2/libc/stdlib/_atexit.c uClibc-git/libc/stdlib/_atexit.c
  41736. --- uClibc-0.9.33.2/libc/stdlib/_atexit.c 2012-05-15 09:20:09.000000000 +0200
  41737. +++ uClibc-git/libc/stdlib/_atexit.c 2014-06-02 17:40:34.130712627 +0200
  41738. @@ -40,11 +40,12 @@
  41739. #include <features.h>
  41740. #include <unistd.h>
  41741. #include <stdlib.h>
  41742. +#include <stdio.h>
  41743. #include <errno.h>
  41744. #include <atomic.h>
  41745. #include <bits/uClibc_mutex.h>
  41746. -__UCLIBC_MUTEX_EXTERN(__atexit_lock);
  41747. +__UCLIBC_MUTEX_EXTERN(__atexit_lock) attribute_hidden;
  41748. @@ -240,6 +241,16 @@
  41749. __UCLIBC_MUTEX_LOCK(__atexit_lock);
  41750. + /*
  41751. + * Reuse free slots at the end of the list.
  41752. + * This avoids eating memory when dlopen and dlclose modules multiple times.
  41753. + */
  41754. + while (__exit_count > 0) {
  41755. + if (__exit_function_table[__exit_count-1].type == ef_free) {
  41756. + --__exit_count;
  41757. + } else break;
  41758. + }
  41759. +
  41760. #ifdef __UCLIBC_DYNAMIC_ATEXIT__
  41761. /* If we are out of function table slots, make some more */
  41762. if (__exit_slots < __exit_count+1) {
  41763. @@ -318,8 +329,7 @@
  41764. attribute_hidden void (*__exit_cleanup)(int) = 0;
  41765. __UCLIBC_MUTEX_INIT(__atexit_lock, PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP);
  41766. -extern void __uClibc_fini(void);
  41767. -libc_hidden_proto(__uClibc_fini)
  41768. +extern void __uClibc_fini(void) attribute_hidden;
  41769. /*
  41770. * Normal program termination
  41771. diff -Nur uClibc-0.9.33.2/libc/stdlib/bsd_getpt.c uClibc-git/libc/stdlib/bsd_getpt.c
  41772. --- uClibc-0.9.33.2/libc/stdlib/bsd_getpt.c 2012-05-15 09:20:09.000000000 +0200
  41773. +++ uClibc-git/libc/stdlib/bsd_getpt.c 2014-06-02 17:40:34.130712627 +0200
  41774. @@ -13,9 +13,8 @@
  41775. Lesser General Public License for more details.
  41776. You should have received a copy of the GNU Lesser General Public
  41777. - License along with the GNU C Library; if not, write to the Free
  41778. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41779. - 02111-1307 USA. */
  41780. + License along with the GNU C Library; if not, see
  41781. + <http://www.gnu.org/licenses/>. */
  41782. #include <errno.h>
  41783. #include <fcntl.h>
  41784. @@ -40,7 +39,7 @@
  41785. const char __libc_ptyname2[] attribute_hidden = PTYNAME2;
  41786. /* Open a master pseudo terminal and return its file descriptor. */
  41787. -int
  41788. +static __inline__ int
  41789. __getpt (void)
  41790. {
  41791. char buf[sizeof (_PATH_PTY) + 2];
  41792. diff -Nur uClibc-0.9.33.2/libc/stdlib/drand48.c uClibc-git/libc/stdlib/drand48.c
  41793. --- uClibc-0.9.33.2/libc/stdlib/drand48.c 2012-05-15 09:20:09.000000000 +0200
  41794. +++ uClibc-git/libc/stdlib/drand48.c 2014-06-02 17:40:34.130712627 +0200
  41795. @@ -13,9 +13,8 @@
  41796. Lesser General Public License for more details.
  41797. You should have received a copy of the GNU Lesser General Public
  41798. - License along with the GNU C Library; if not, write to the Free
  41799. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41800. - 02111-1307 USA. */
  41801. + License along with the GNU C Library; if not, see
  41802. + <http://www.gnu.org/licenses/>. */
  41803. #include <stdlib.h>
  41804. diff -Nur uClibc-0.9.33.2/libc/stdlib/drand48-iter.c uClibc-git/libc/stdlib/drand48-iter.c
  41805. --- uClibc-0.9.33.2/libc/stdlib/drand48-iter.c 2012-05-15 09:20:09.000000000 +0200
  41806. +++ uClibc-git/libc/stdlib/drand48-iter.c 2014-06-02 17:40:34.130712627 +0200
  41807. @@ -13,9 +13,8 @@
  41808. Lesser General Public License for more details.
  41809. You should have received a copy of the GNU Lesser General Public
  41810. - License along with the GNU C Library; if not, write to the Free
  41811. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41812. - 02111-1307 USA. */
  41813. + License along with the GNU C Library; if not, see
  41814. + <http://www.gnu.org/licenses/>. */
  41815. #include <errno.h>
  41816. #include <stdlib.h>
  41817. diff -Nur uClibc-0.9.33.2/libc/stdlib/drand48_r.c uClibc-git/libc/stdlib/drand48_r.c
  41818. --- uClibc-0.9.33.2/libc/stdlib/drand48_r.c 2012-05-15 09:20:09.000000000 +0200
  41819. +++ uClibc-git/libc/stdlib/drand48_r.c 2014-06-02 17:40:34.130712627 +0200
  41820. @@ -13,9 +13,8 @@
  41821. Lesser General Public License for more details.
  41822. You should have received a copy of the GNU Lesser General Public
  41823. - License along with the GNU C Library; if not, write to the Free
  41824. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41825. - 02111-1307 USA. */
  41826. + License along with the GNU C Library; if not, see
  41827. + <http://www.gnu.org/licenses/>. */
  41828. #include <errno.h>
  41829. #include <math.h>
  41830. diff -Nur uClibc-0.9.33.2/libc/stdlib/erand48.c uClibc-git/libc/stdlib/erand48.c
  41831. --- uClibc-0.9.33.2/libc/stdlib/erand48.c 2012-05-15 09:20:09.000000000 +0200
  41832. +++ uClibc-git/libc/stdlib/erand48.c 2014-06-02 17:40:34.130712627 +0200
  41833. @@ -13,9 +13,8 @@
  41834. Lesser General Public License for more details.
  41835. You should have received a copy of the GNU Lesser General Public
  41836. - License along with the GNU C Library; if not, write to the Free
  41837. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41838. - 02111-1307 USA. */
  41839. + License along with the GNU C Library; if not, see
  41840. + <http://www.gnu.org/licenses/>. */
  41841. #include <stdlib.h>
  41842. diff -Nur uClibc-0.9.33.2/libc/stdlib/erand48_r.c uClibc-git/libc/stdlib/erand48_r.c
  41843. --- uClibc-0.9.33.2/libc/stdlib/erand48_r.c 2012-05-15 09:20:09.000000000 +0200
  41844. +++ uClibc-git/libc/stdlib/erand48_r.c 2014-06-02 17:40:34.130712627 +0200
  41845. @@ -13,9 +13,8 @@
  41846. Lesser General Public License for more details.
  41847. You should have received a copy of the GNU Lesser General Public
  41848. - License along with the GNU C Library; if not, write to the Free
  41849. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41850. - 02111-1307 USA. */
  41851. + License along with the GNU C Library; if not, see
  41852. + <http://www.gnu.org/licenses/>. */
  41853. #include <ieee754.h>
  41854. #include <stdlib.h>
  41855. diff -Nur uClibc-0.9.33.2/libc/stdlib/getpt.c uClibc-git/libc/stdlib/getpt.c
  41856. --- uClibc-0.9.33.2/libc/stdlib/getpt.c 2012-05-15 09:20:09.000000000 +0200
  41857. +++ uClibc-git/libc/stdlib/getpt.c 2014-06-02 17:40:34.130712627 +0200
  41858. @@ -13,9 +13,8 @@
  41859. Lesser General Public License for more details.
  41860. You should have received a copy of the GNU Lesser General Public
  41861. - License along with the GNU C Library; if not, write to the Free
  41862. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41863. - 02111-1307 USA. */
  41864. + License along with the GNU C Library; if not, see
  41865. + <http://www.gnu.org/licenses/>. */
  41866. #include <errno.h>
  41867. #include <fcntl.h>
  41868. @@ -43,12 +42,12 @@
  41869. #if !defined __UNIX98PTY_ONLY__ && defined __UCLIBC_HAS_GETPT__
  41870. /* Prototype for function that opens BSD-style master pseudo-terminals. */
  41871. -extern int __bsd_getpt (void) attribute_hidden;
  41872. +static __inline__ int __bsd_getpt (void);
  41873. #endif
  41874. /* Open a master pseudo terminal and return its file descriptor. */
  41875. -int
  41876. -posix_openpt (int flags)
  41877. +static int
  41878. +__posix_openpt (int flags)
  41879. {
  41880. #define have_no_dev_ptmx (1<<0)
  41881. #define devpts_mounted (1<<1)
  41882. @@ -112,14 +111,14 @@
  41883. #endif
  41884. return -1;
  41885. }
  41886. -libc_hidden_def(posix_openpt)
  41887. +strong_alias(__posix_openpt,posix_openpt)
  41888. #undef have_no_dev_ptmx
  41889. #undef devpts_mounted
  41890. #if defined __USE_GNU && defined __UCLIBC_HAS_GETPT__
  41891. int getpt (void)
  41892. {
  41893. - return posix_openpt(O_RDWR);
  41894. + return __posix_openpt(O_RDWR);
  41895. }
  41896. #if !defined __UNIX98PTY_ONLY__ && defined __UCLIBC_HAS_GETPT__
  41897. diff -Nur uClibc-0.9.33.2/libc/stdlib/grantpt.c uClibc-git/libc/stdlib/grantpt.c
  41898. --- uClibc-0.9.33.2/libc/stdlib/grantpt.c 2012-05-15 09:20:09.000000000 +0200
  41899. +++ uClibc-git/libc/stdlib/grantpt.c 2014-06-02 17:40:34.130712627 +0200
  41900. @@ -13,8 +13,7 @@
  41901. You should have received a copy of the GNU Library General Public
  41902. License along with the GNU C Library; see the file COPYING.LIB. If not,
  41903. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  41904. - Boston, MA 02111-1307, USA. */
  41905. + see <http://www.gnu.org/licenses/>. */
  41906. #include <limits.h>
  41907. #include <stdlib.h>
  41908. @@ -33,25 +32,18 @@
  41909. /* Prototype for function that changes ownership and access permission
  41910. for slave pseudo terminals that do not live on a `devpts'
  41911. filesystem. */
  41912. -int __unix_grantpt (int fd);
  41913. +static int __unix_grantpt (int fd);
  41914. /* Prototype for private function that gets the name of the slave
  41915. pseudo terminal in a safe way. */
  41916. static int pts_name (int fd, char **pts, size_t buf_len);
  41917. extern __typeof(statfs) __libc_statfs;
  41918. -#endif
  41919. /* Change the ownership and access permission of the slave pseudo
  41920. terminal associated with the master pseudo terminal specified
  41921. by FD. */
  41922. -int
  41923. -#if !defined __ASSUME_DEVPTS__
  41924. -grantpt (int fd)
  41925. -#else
  41926. -grantpt (attribute_unused int fd)
  41927. -#endif
  41928. +int grantpt (int fd)
  41929. {
  41930. -#if !defined __ASSUME_DEVPTS__
  41931. struct statfs fsbuf;
  41932. char _buf[PATH_MAX];
  41933. char *buf = _buf;
  41934. @@ -65,12 +57,19 @@
  41935. /* If the slave pseudo terminal lives on a `devpts' filesystem, the
  41936. ownership and access permission are already set. */
  41937. if (fsbuf.f_type != DEVPTS_SUPER_MAGIC && fsbuf.f_type != DEVFS_SUPER_MAGIC)
  41938. - return __unix_grantpt (fd);
  41939. -#endif
  41940. + return __unix_grantpt (fd);
  41941. +
  41942. return 0;
  41943. }
  41944. -#if !defined __ASSUME_DEVPTS__
  41945. # define grantpt __unix_grantpt
  41946. # include "unix_grantpt.c"
  41947. +
  41948. +#else
  41949. +
  41950. +int grantpt (attribute_unused int fd)
  41951. +{
  41952. + return 0;
  41953. +}
  41954. +
  41955. #endif
  41956. diff -Nur uClibc-0.9.33.2/libc/stdlib/jrand48.c uClibc-git/libc/stdlib/jrand48.c
  41957. --- uClibc-0.9.33.2/libc/stdlib/jrand48.c 2012-05-15 09:20:09.000000000 +0200
  41958. +++ uClibc-git/libc/stdlib/jrand48.c 2014-06-02 17:40:34.130712627 +0200
  41959. @@ -13,9 +13,8 @@
  41960. Lesser General Public License for more details.
  41961. You should have received a copy of the GNU Lesser General Public
  41962. - License along with the GNU C Library; if not, write to the Free
  41963. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41964. - 02111-1307 USA. */
  41965. + License along with the GNU C Library; if not, see
  41966. + <http://www.gnu.org/licenses/>. */
  41967. #include <stdlib.h>
  41968. diff -Nur uClibc-0.9.33.2/libc/stdlib/jrand48_r.c uClibc-git/libc/stdlib/jrand48_r.c
  41969. --- uClibc-0.9.33.2/libc/stdlib/jrand48_r.c 2012-05-15 09:20:09.000000000 +0200
  41970. +++ uClibc-git/libc/stdlib/jrand48_r.c 2014-06-02 17:40:34.130712627 +0200
  41971. @@ -13,9 +13,8 @@
  41972. Lesser General Public License for more details.
  41973. You should have received a copy of the GNU Lesser General Public
  41974. - License along with the GNU C Library; if not, write to the Free
  41975. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41976. - 02111-1307 USA. */
  41977. + License along with the GNU C Library; if not, see
  41978. + <http://www.gnu.org/licenses/>. */
  41979. #include <stdlib.h>
  41980. diff -Nur uClibc-0.9.33.2/libc/stdlib/l64a.c uClibc-git/libc/stdlib/l64a.c
  41981. --- uClibc-0.9.33.2/libc/stdlib/l64a.c 2012-05-15 09:20:09.000000000 +0200
  41982. +++ uClibc-git/libc/stdlib/l64a.c 2014-06-02 17:40:34.134712649 +0200
  41983. @@ -13,9 +13,8 @@
  41984. Lesser General Public License for more details.
  41985. You should have received a copy of the GNU Lesser General Public
  41986. - License along with the GNU C Library; if not, write to the Free
  41987. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41988. - 02111-1307 USA. */
  41989. + License along with the GNU C Library; if not, see
  41990. + <http://www.gnu.org/licenses/>. */
  41991. #include <stdlib.h>
  41992. diff -Nur uClibc-0.9.33.2/libc/stdlib/lcong48.c uClibc-git/libc/stdlib/lcong48.c
  41993. --- uClibc-0.9.33.2/libc/stdlib/lcong48.c 1970-01-01 01:00:00.000000000 +0100
  41994. +++ uClibc-git/libc/stdlib/lcong48.c 2014-06-02 17:40:34.134712649 +0200
  41995. @@ -0,0 +1,29 @@
  41996. +/* vi: set sw=4 ts=4: */
  41997. +/* Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. */
  41998. +
  41999. +#include <features.h>
  42000. +
  42001. +#if defined __USE_SVID || defined __USE_XOPEN
  42002. +#include <stdint.h>
  42003. +#include <stdlib.h>
  42004. +#include <string.h>
  42005. +
  42006. +static int __lcong48_r (unsigned short int param[7], struct drand48_data *buffer)
  42007. +{
  42008. + /* Store the given values. */
  42009. + memcpy (buffer->__x, &param[0], sizeof (buffer->__x));
  42010. + buffer->__a = ((uint64_t) param[5] << 32 | (uint32_t) param[4] << 16 | param[3]);
  42011. + buffer->__c = param[6];
  42012. + buffer->__init = 1;
  42013. +
  42014. + return 0;
  42015. +}
  42016. +# ifdef __USE_MISC
  42017. +strong_alias(__lcong48_r,lcong48_r)
  42018. +# endif
  42019. +
  42020. +void lcong48 (unsigned short int param[7])
  42021. +{
  42022. + (void) __lcong48_r (param, &__libc_drand48_data);
  42023. +}
  42024. +#endif
  42025. diff -Nur uClibc-0.9.33.2/libc/stdlib/ldiv.c uClibc-git/libc/stdlib/ldiv.c
  42026. --- uClibc-0.9.33.2/libc/stdlib/ldiv.c 2012-05-15 09:20:09.000000000 +0200
  42027. +++ uClibc-git/libc/stdlib/ldiv.c 2014-06-02 17:40:34.134712649 +0200
  42028. @@ -13,9 +13,8 @@
  42029. Lesser General Public License for more details.
  42030. You should have received a copy of the GNU Lesser General Public
  42031. - License along with the GNU C Library; if not, write to the Free
  42032. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42033. - 02111-1307 USA. */
  42034. + License along with the GNU C Library; if not, see
  42035. + <http://www.gnu.org/licenses/>. */
  42036. #include <features.h>
  42037. #include <stdlib.h>
  42038. diff -Nur uClibc-0.9.33.2/libc/stdlib/lldiv.c uClibc-git/libc/stdlib/lldiv.c
  42039. --- uClibc-0.9.33.2/libc/stdlib/lldiv.c 2012-05-15 09:20:09.000000000 +0200
  42040. +++ uClibc-git/libc/stdlib/lldiv.c 2014-06-02 17:40:34.134712649 +0200
  42041. @@ -13,9 +13,8 @@
  42042. Lesser General Public License for more details.
  42043. You should have received a copy of the GNU Lesser General Public
  42044. - License along with the GNU C Library; if not, write to the Free
  42045. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42046. - 02111-1307 USA. */
  42047. + License along with the GNU C Library; if not, see
  42048. + <http://www.gnu.org/licenses/>. */
  42049. #include <features.h>
  42050. #include <stdlib.h>
  42051. diff -Nur uClibc-0.9.33.2/libc/stdlib/lrand48.c uClibc-git/libc/stdlib/lrand48.c
  42052. --- uClibc-0.9.33.2/libc/stdlib/lrand48.c 2012-05-15 09:20:09.000000000 +0200
  42053. +++ uClibc-git/libc/stdlib/lrand48.c 2014-06-02 17:40:34.134712649 +0200
  42054. @@ -13,9 +13,8 @@
  42055. Lesser General Public License for more details.
  42056. You should have received a copy of the GNU Lesser General Public
  42057. - License along with the GNU C Library; if not, write to the Free
  42058. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42059. - 02111-1307 USA. */
  42060. + License along with the GNU C Library; if not, see
  42061. + <http://www.gnu.org/licenses/>. */
  42062. #include <stdlib.h>
  42063. diff -Nur uClibc-0.9.33.2/libc/stdlib/lrand48_r.c uClibc-git/libc/stdlib/lrand48_r.c
  42064. --- uClibc-0.9.33.2/libc/stdlib/lrand48_r.c 2012-05-15 09:20:09.000000000 +0200
  42065. +++ uClibc-git/libc/stdlib/lrand48_r.c 2014-06-02 17:40:34.134712649 +0200
  42066. @@ -13,9 +13,8 @@
  42067. Lesser General Public License for more details.
  42068. You should have received a copy of the GNU Lesser General Public
  42069. - License along with the GNU C Library; if not, write to the Free
  42070. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42071. - 02111-1307 USA. */
  42072. + License along with the GNU C Library; if not, see
  42073. + <http://www.gnu.org/licenses/>. */
  42074. #include <stdlib.h>
  42075. diff -Nur uClibc-0.9.33.2/libc/stdlib/Makefile.in uClibc-git/libc/stdlib/Makefile.in
  42076. --- uClibc-0.9.33.2/libc/stdlib/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  42077. +++ uClibc-git/libc/stdlib/Makefile.in 2014-06-02 17:40:34.130712627 +0200
  42078. @@ -12,16 +12,17 @@
  42079. include $(top_srcdir)libc/stdlib/malloc-standard/Makefile.in
  42080. CSRC-y := \
  42081. - abort.c getenv.c mkdtemp.c realpath.c canonicalize.c mkstemp.c \
  42082. + abort.c getenv.c mkdtemp.c realpath.c canonicalize.c mkstemp.c mkostemp.c \
  42083. rand.c random.c random_r.c setenv.c div.c ldiv.c lldiv.c \
  42084. getpt.c drand48-iter.c jrand48.c \
  42085. - jrand48_r.c lrand48.c lrand48_r.c mrand48.c mrand48_r.c nrand48.c \
  42086. + jrand48_r.c lcong48.c lrand48.c lrand48_r.c mrand48.c mrand48_r.c nrand48.c \
  42087. nrand48_r.c rand_r.c srand48.c srand48_r.c seed48.c seed48_r.c \
  42088. - valloc.c a64l.c l64a.c __uc_malloc.c
  42089. + a64l.c l64a.c __uc_malloc.c
  42090. +CSRC-$(UCLIBC_SUSV2_LEGACY) += valloc.c
  42091. CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_memalign.c
  42092. CSRC-$(UCLIBC_HAS_PTY) += grantpt.c unlockpt.c ptsname.c
  42093. CSRC-$(UCLIBC_HAS_ARC4RANDOM) += arc4random.c
  42094. -CSRC-$(UCLIBC_HAS_LFS) += mkstemp64.c
  42095. +CSRC-$(UCLIBC_HAS_LFS) += mkstemp64.c mkostemp64.c
  42096. CSRC-$(UCLIBC_HAS_FLOATS) += drand48.c drand48_r.c erand48.c erand48_r.c
  42097. CSRC-$(if $(findstring yy,$(UCLIBC_HAS_FLOATS)$(UCLIBC_SUSV3_LEGACY)),y) += \
  42098. gcvt.c
  42099. @@ -33,7 +34,7 @@
  42100. # multi source stdlib.c
  42101. CSRC-y += abs.c labs.c atoi.c atol.c strtol.c strtoul.c _stdlib_strto_l.c \
  42102. - qsort.c qsort_r.c bsearch.c \
  42103. + qsort.c qsort_r.c bsearch.c rpmatch.c \
  42104. llabs.c atoll.c strtoll.c strtoull.c _stdlib_strto_ll.c
  42105. # (aliases) strtoq.o strtouq.o
  42106. CSRC-$(UCLIBC_HAS_FLOATS) += atof.c
  42107. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc/calloc.c uClibc-git/libc/stdlib/malloc/calloc.c
  42108. --- uClibc-0.9.33.2/libc/stdlib/malloc/calloc.c 2012-05-15 09:20:09.000000000 +0200
  42109. +++ uClibc-git/libc/stdlib/malloc/calloc.c 2014-06-02 17:40:34.134712649 +0200
  42110. @@ -14,8 +14,8 @@
  42111. * for more details.
  42112. *
  42113. * You should have received a copy of the GNU Library General Public License
  42114. - * along with this program; if not, write to the Free Software Foundation,
  42115. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  42116. + * along with this program; see the file COPYING.LIB. If not, see
  42117. + * <http://www.gnu.org/licenses/>.
  42118. */
  42119. #include <stdlib.h>
  42120. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc/free.c uClibc-git/libc/stdlib/malloc/free.c
  42121. --- uClibc-0.9.33.2/libc/stdlib/malloc/free.c 2012-05-15 09:20:09.000000000 +0200
  42122. +++ uClibc-git/libc/stdlib/malloc/free.c 2014-06-02 17:40:34.134712649 +0200
  42123. @@ -28,7 +28,7 @@
  42124. static void
  42125. __free_to_heap (void *mem, struct heap_free_area **heap
  42126. #ifdef HEAP_USE_LOCKING
  42127. - , malloc_mutex_t *heap_lock
  42128. + , __UCLIBC_MUTEX_TYPE *heap_lock
  42129. #endif
  42130. )
  42131. {
  42132. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc/heap.h uClibc-git/libc/stdlib/malloc/heap.h
  42133. --- uClibc-0.9.33.2/libc/stdlib/malloc/heap.h 2012-05-15 09:20:09.000000000 +0200
  42134. +++ uClibc-git/libc/stdlib/malloc/heap.h 2014-06-02 17:40:34.134712649 +0200
  42135. @@ -13,18 +13,13 @@
  42136. #include <features.h>
  42137. -
  42138. -/* On multi-threaded systems, the heap includes a lock. */
  42139. +#include <bits/uClibc_mutex.h>
  42140. #ifdef __UCLIBC_HAS_THREADS__
  42141. -# include <bits/uClibc_mutex.h>
  42142. # define HEAP_USE_LOCKING
  42143. -# define __heap_lock(heap_lock) __UCLIBC_MUTEX_LOCK_CANCEL_UNSAFE(*(heap_lock))
  42144. -# define __heap_unlock(heap_lock) __UCLIBC_MUTEX_UNLOCK_CANCEL_UNSAFE(*(heap_lock))
  42145. -#else
  42146. -# define __heap_lock(heap_lock)
  42147. -# define __heap_unlock(heap_lock)
  42148. #endif
  42149. +#define __heap_lock(heap_lock) __UCLIBC_MUTEX_LOCK_CANCEL_UNSAFE(*(heap_lock))
  42150. +#define __heap_unlock(heap_lock) __UCLIBC_MUTEX_UNLOCK_CANCEL_UNSAFE(*(heap_lock))
  42151. /* The heap allocates in multiples of, and aligned to, HEAP_GRANULARITY.
  42152. HEAP_GRANULARITY must be a power of 2. Malloc depends on this being the
  42153. @@ -35,11 +30,9 @@
  42154. -/* The HEAP_INIT macro can be used as a static initializer for a heap
  42155. - variable. The HEAP_INIT_WITH_FA variant is used to initialize a heap
  42156. +/* The HEAP_INIT_WITH_FA variant is used to initialize a heap
  42157. with an initial static free-area; its argument FA should be declared
  42158. using HEAP_DECLARE_STATIC_FREE_AREA. */
  42159. -# define HEAP_INIT 0
  42160. # define HEAP_INIT_WITH_FA(fa) &fa._fa
  42161. /* A free-list area `header'. These are actually stored at the _ends_ of
  42162. @@ -92,34 +85,21 @@
  42163. #define HEAP_MIN_FREE_AREA_SIZE \
  42164. HEAP_ADJUST_SIZE (sizeof (struct heap_free_area) + 32)
  42165. -
  42166. -/* branch-prediction macros; they may already be defined by libc. */
  42167. -#ifndef likely
  42168. -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
  42169. -#define likely(cond) __builtin_expect(!!(int)(cond), 1)
  42170. -#define unlikely(cond) __builtin_expect((int)(cond), 0)
  42171. -#else
  42172. -#define likely(cond) (cond)
  42173. -#define unlikely(cond) (cond)
  42174. -#endif
  42175. -#endif /* !likely */
  42176. -
  42177. -
  42178. /* Define HEAP_DEBUGGING to cause the heap routines to emit debugging info
  42179. to stderr when the variable __heap_debug is set to true. */
  42180. #ifdef HEAP_DEBUGGING
  42181. -extern int __heap_debug;
  42182. +extern int __heap_debug attribute_hidden;
  42183. #define HEAP_DEBUG(heap, str) (__heap_debug ? __heap_dump (heap, str) : 0)
  42184. #else
  42185. #define HEAP_DEBUG(heap, str) (void)0
  42186. #endif
  42187. /* Output a text representation of HEAP to stderr, labelling it with STR. */
  42188. -extern void __heap_dump (struct heap_free_area *heap, const char *str);
  42189. +extern void __heap_dump (struct heap_free_area *heap, const char *str) attribute_hidden;
  42190. /* Do some consistency checks on HEAP. If they fail, output an error
  42191. message to stderr, and exit. STR is printed with the failure message. */
  42192. -extern void __heap_check (struct heap_free_area *heap, const char *str);
  42193. +extern void __heap_check (struct heap_free_area *heap, const char *str) attribute_hidden;
  42194. /* Delete the free-area FA from HEAP. */
  42195. @@ -216,16 +196,16 @@
  42196. /* Allocate and return a block at least *SIZE bytes long from HEAP.
  42197. *SIZE is adjusted to reflect the actual amount allocated (which may be
  42198. greater than requested). */
  42199. -extern void *__heap_alloc (struct heap_free_area **heap, size_t *size);
  42200. +extern void *__heap_alloc (struct heap_free_area **heap, size_t *size) attribute_hidden;
  42201. /* Allocate SIZE bytes at address MEM in HEAP. Return the actual size
  42202. allocated, or 0 if we failed. */
  42203. -extern size_t __heap_alloc_at (struct heap_free_area **heap, void *mem, size_t size);
  42204. +extern size_t __heap_alloc_at (struct heap_free_area **heap, void *mem, size_t size) attribute_hidden;
  42205. /* Return the memory area MEM of size SIZE to HEAP.
  42206. Returns the heap free area into which the memory was placed. */
  42207. extern struct heap_free_area *__heap_free (struct heap_free_area **heap,
  42208. - void *mem, size_t size);
  42209. + void *mem, size_t size) attribute_hidden;
  42210. /* Return true if HEAP contains absolutely no memory. */
  42211. #define __heap_is_empty(heap) (! (heap))
  42212. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc/Makefile.in uClibc-git/libc/stdlib/malloc/Makefile.in
  42213. --- uClibc-0.9.33.2/libc/stdlib/malloc/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  42214. +++ uClibc-git/libc/stdlib/malloc/Makefile.in 2014-06-02 17:40:34.134712649 +0200
  42215. @@ -9,12 +9,12 @@
  42216. subdirs += libc/stdlib/malloc
  42217. -CSRC := malloc.c calloc.c free.c realloc.c memalign.c \
  42218. +CSRC-y := malloc.c calloc.c free.c realloc.c memalign.c \
  42219. heap_alloc.c heap_alloc_at.c heap_free.c
  42220. # Turn on malloc debugging if requested
  42221. +CSRC-$(UCLIBC_MALLOC_DEBUGGING) += malloc_debug.c heap_debug.c
  42222. ifeq ($(UCLIBC_MALLOC_DEBUGGING),y)
  42223. -CSRC += malloc_debug.c heap_debug.c
  42224. CFLAGS += -DMALLOC_DEBUGGING -DHEAP_DEBUGGING
  42225. ifeq ($(UCLIBC_UCLINUX_BROKEN_MUNMAP),y)
  42226. CFLAGS += -DMALLOC_MMB_DEBUGGING
  42227. @@ -24,8 +24,8 @@
  42228. STDLIB_MALLOC_DIR := $(top_srcdir)libc/stdlib/malloc
  42229. STDLIB_MALLOC_OUT := $(top_builddir)libc/stdlib/malloc
  42230. -STDLIB_MALLOC_SRC := $(patsubst %.c,$(STDLIB_MALLOC_DIR)/%.c,$(CSRC))
  42231. -STDLIB_MALLOC_OBJ := $(patsubst %.c,$(STDLIB_MALLOC_OUT)/%.o,$(CSRC))
  42232. +STDLIB_MALLOC_SRC := $(patsubst %.c,$(STDLIB_MALLOC_DIR)/%.c,$(CSRC-y))
  42233. +STDLIB_MALLOC_OBJ := $(patsubst %.c,$(STDLIB_MALLOC_OUT)/%.o,$(CSRC-y))
  42234. libc-$(MALLOC) += $(STDLIB_MALLOC_OBJ)
  42235. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc/malloc.c uClibc-git/libc/stdlib/malloc/malloc.c
  42236. --- uClibc-0.9.33.2/libc/stdlib/malloc/malloc.c 2012-05-15 09:20:09.000000000 +0200
  42237. +++ uClibc-git/libc/stdlib/malloc/malloc.c 2014-06-02 17:40:34.134712649 +0200
  42238. @@ -26,12 +26,12 @@
  42239. HEAP_DECLARE_STATIC_FREE_AREA (initial_fa, 256);
  42240. struct heap_free_area *__malloc_heap = HEAP_INIT_WITH_FA (initial_fa);
  42241. #ifdef HEAP_USE_LOCKING
  42242. -malloc_mutex_t __malloc_heap_lock = PTHREAD_MUTEX_INITIALIZER;
  42243. +__UCLIBC_MUTEX_INIT(__malloc_heap_lock,PTHREAD_MUTEX_INITIALIZER);
  42244. #endif
  42245. #if defined(MALLOC_USE_LOCKING) && defined(MALLOC_USE_SBRK)
  42246. /* A lock protecting our use of sbrk. */
  42247. -malloc_mutex_t __malloc_sbrk_lock;
  42248. +__UCLIBC_MUTEX(__malloc_sbrk_lock);
  42249. #endif /* MALLOC_USE_LOCKING && MALLOC_USE_SBRK */
  42250. @@ -46,7 +46,7 @@
  42251. HEAP_DECLARE_STATIC_FREE_AREA (initial_mmb_fa, 48); /* enough for 3 mmbs */
  42252. struct heap_free_area *__malloc_mmb_heap = HEAP_INIT_WITH_FA (initial_mmb_fa);
  42253. #ifdef HEAP_USE_LOCKING
  42254. -malloc_mutex_t __malloc_mmb_heap_lock = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
  42255. +__UCLIBC_MUTEX_INIT(__malloc_mmb_heap_lock,PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP);
  42256. #endif
  42257. #endif /* __UCLIBC_UCLINUX_BROKEN_MUNMAP__ */
  42258. @@ -59,7 +59,7 @@
  42259. static void *
  42260. __malloc_from_heap (size_t size, struct heap_free_area **heap
  42261. #ifdef HEAP_USE_LOCKING
  42262. - , malloc_mutex_t *heap_lock
  42263. + , __UCLIBC_MUTEX_TYPE *heap_lock
  42264. #endif
  42265. )
  42266. {
  42267. @@ -124,7 +124,7 @@
  42268. MAP_PRIVATE | MAP_ANONYMOUS, 0, 0);
  42269. #else
  42270. block = mmap ((void *)0, block_size, PROT_READ | PROT_WRITE,
  42271. - MAP_SHARED | MAP_ANONYMOUS | MAP_UNINITIALIZE, 0, 0);
  42272. + MAP_SHARED | MAP_ANONYMOUS | MAP_UNINITIALIZED, 0, 0);
  42273. #endif
  42274. #endif /* MALLOC_USE_SBRK */
  42275. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc/malloc.h uClibc-git/libc/stdlib/malloc/malloc.h
  42276. --- uClibc-0.9.33.2/libc/stdlib/malloc/malloc.h 2012-05-15 09:20:09.000000000 +0200
  42277. +++ uClibc-git/libc/stdlib/malloc/malloc.h 2014-06-02 17:40:34.134712649 +0200
  42278. @@ -20,8 +20,7 @@
  42279. (__alignof__ (double) > sizeof (size_t) ? __alignof__ (double) : sizeof (size_t))
  42280. /* The system pagesize... */
  42281. -extern size_t __pagesize;
  42282. -#define MALLOC_PAGE_SIZE __pagesize
  42283. +#define MALLOC_PAGE_SIZE sysconf(_SC_PAGESIZE)
  42284. /* The minimum size of block we request from the the system to extend the
  42285. heap for small allocations (we may request a bigger block if necessary to
  42286. @@ -128,69 +127,46 @@
  42287. /* Return the size of a malloc allocation, given the user address. */
  42288. #define MALLOC_SIZE(addr) (*(size_t *)MALLOC_BASE(addr))
  42289. +#include <bits/uClibc_mutex.h>
  42290. -/* Locking for multithreaded apps. */
  42291. #ifdef __UCLIBC_HAS_THREADS__
  42292. -
  42293. -# include <bits/uClibc_mutex.h>
  42294. -
  42295. # define MALLOC_USE_LOCKING
  42296. +#endif
  42297. -typedef __UCLIBC_MUTEX_TYPE malloc_mutex_t;
  42298. -# define MALLOC_MUTEX_INIT __UCLIBC_MUTEX_INITIALIZER
  42299. -
  42300. -# ifdef MALLOC_USE_SBRK
  42301. +#ifdef MALLOC_USE_SBRK
  42302. /* This lock is used to serialize uses of the `sbrk' function (in both
  42303. malloc and free, sbrk may be used several times in succession, and
  42304. things will break if these multiple calls are interleaved with another
  42305. thread's use of sbrk!). */
  42306. -extern malloc_mutex_t __malloc_sbrk_lock;
  42307. +__UCLIBC_MUTEX_EXTERN(__malloc_sbrk_lock) attribute_hidden;
  42308. # define __malloc_lock_sbrk() __UCLIBC_MUTEX_LOCK_CANCEL_UNSAFE (__malloc_sbrk_lock)
  42309. # define __malloc_unlock_sbrk() __UCLIBC_MUTEX_UNLOCK_CANCEL_UNSAFE (__malloc_sbrk_lock)
  42310. -# endif /* MALLOC_USE_SBRK */
  42311. -
  42312. -#else /* !__UCLIBC_HAS_THREADS__ */
  42313. -
  42314. -/* Without threads, mutex operations are a nop. */
  42315. +#else
  42316. # define __malloc_lock_sbrk() (void)0
  42317. # define __malloc_unlock_sbrk() (void)0
  42318. -
  42319. -#endif /* __UCLIBC_HAS_THREADS__ */
  42320. -
  42321. -
  42322. -/* branch-prediction macros; they may already be defined by libc. */
  42323. -#ifndef likely
  42324. -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
  42325. -#define likely(cond) __builtin_expect(!!(int)(cond), 1)
  42326. -#define unlikely(cond) __builtin_expect((int)(cond), 0)
  42327. -#else
  42328. -#define likely(cond) (cond)
  42329. -#define unlikely(cond) (cond)
  42330. -#endif
  42331. -#endif /* !likely */
  42332. -
  42333. +#endif /* MALLOC_USE_SBRK */
  42334. /* Define MALLOC_DEBUGGING to cause malloc to emit debugging info to stderr
  42335. when the variable __malloc_debug is set to true. */
  42336. #ifdef MALLOC_DEBUGGING
  42337. -extern void __malloc_debug_init (void);
  42338. +extern void __malloc_debug_init (void) attribute_hidden;
  42339. /* The number of spaces in a malloc debug indent level. */
  42340. #define MALLOC_DEBUG_INDENT_SIZE 3
  42341. -extern int __malloc_debug, __malloc_check;
  42342. +extern int __malloc_debug attribute_hidden, __malloc_check attribute_hidden;
  42343. # define MALLOC_DEBUG(indent, fmt, args...) \
  42344. (__malloc_debug ? __malloc_debug_printf (indent, fmt , ##args) : 0)
  42345. # define MALLOC_DEBUG_INDENT(indent) \
  42346. (__malloc_debug ? __malloc_debug_indent (indent) : 0)
  42347. -extern int __malloc_debug_cur_indent;
  42348. +extern int __malloc_debug_cur_indent attribute_hidden;
  42349. /* Print FMT and args indented at the current debug print level, followed
  42350. by a newline, and change the level by INDENT. */
  42351. -extern void __malloc_debug_printf (int indent, const char *fmt, ...);
  42352. +extern void __malloc_debug_printf (int indent, const char *fmt, ...) attribute_hidden;
  42353. /* Change the current debug print level by INDENT, and return the value. */
  42354. #define __malloc_debug_indent(indent) (__malloc_debug_cur_indent += indent)
  42355. @@ -220,10 +196,18 @@
  42356. /* The malloc heap. */
  42357. -extern struct heap_free_area *__malloc_heap;
  42358. +extern struct heap_free_area *__malloc_heap attribute_hidden;
  42359. #ifdef __UCLIBC_HAS_THREADS__
  42360. -extern malloc_mutex_t __malloc_heap_lock;
  42361. -#ifdef __UCLIBC_UCLINUX_BROKEN_MUNMAP__
  42362. -extern malloc_mutex_t __malloc_mmb_heap_lock;
  42363. -#endif
  42364. +__UCLIBC_MUTEX_EXTERN(__malloc_heap_lock)
  42365. +# ifndef __LINUXTHREADS_OLD__
  42366. + attribute_hidden
  42367. +# endif
  42368. + ;
  42369. +# ifdef __UCLIBC_UCLINUX_BROKEN_MUNMAP__
  42370. +__UCLIBC_MUTEX_EXTERN(__malloc_mmb_heap_lock)
  42371. +# ifndef __LINUXTHREADS_OLD__
  42372. + attribute_hidden
  42373. +# endif
  42374. + ;
  42375. +# endif
  42376. #endif
  42377. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc/memalign.c uClibc-git/libc/stdlib/malloc/memalign.c
  42378. --- uClibc-0.9.33.2/libc/stdlib/malloc/memalign.c 2012-05-15 09:20:09.000000000 +0200
  42379. +++ uClibc-git/libc/stdlib/malloc/memalign.c 2014-06-02 17:40:34.134712649 +0200
  42380. @@ -14,7 +14,6 @@
  42381. #include <stdlib.h>
  42382. #include <unistd.h>
  42383. #include <sys/mman.h>
  42384. -#include <sys/param.h> /* MAX */
  42385. #include "malloc.h"
  42386. #include "heap.h"
  42387. @@ -30,6 +29,8 @@
  42388. */
  42389. void *memalign (size_t alignment, size_t size);
  42390. +/* XXX shadow outer malloc.h */
  42391. +libc_hidden_proto(memalign)
  42392. void *
  42393. memalign (size_t alignment, size_t size)
  42394. {
  42395. @@ -92,3 +93,4 @@
  42396. return MALLOC_SETUP (base, end_addr - (unsigned long)base);
  42397. }
  42398. +libc_hidden_def(memalign)
  42399. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc-simple/alloc.c uClibc-git/libc/stdlib/malloc-simple/alloc.c
  42400. --- uClibc-0.9.33.2/libc/stdlib/malloc-simple/alloc.c 2012-05-15 09:20:09.000000000 +0200
  42401. +++ uClibc-git/libc/stdlib/malloc-simple/alloc.c 2014-06-02 17:40:34.134712649 +0200
  42402. @@ -17,6 +17,7 @@
  42403. #include <sys/mman.h>
  42404. #include <malloc.h>
  42405. +extern int weak_function __libc_free_aligned(void *ptr) attribute_hidden;
  42406. #ifdef L_malloc
  42407. void *malloc(size_t size)
  42408. @@ -36,7 +37,7 @@
  42409. #ifdef __ARCH_USE_MMU__
  42410. # define MMAP_FLAGS MAP_PRIVATE | MAP_ANONYMOUS
  42411. #else
  42412. -# define MMAP_FLAGS MAP_SHARED | MAP_ANONYMOUS | MAP_UNINITIALIZE
  42413. +# define MMAP_FLAGS MAP_SHARED | MAP_ANONYMOUS | MAP_UNINITIALIZED
  42414. #endif
  42415. result = mmap((void *) 0, size + sizeof(size_t), PROT_READ | PROT_WRITE,
  42416. @@ -63,7 +64,7 @@
  42417. result = malloc(size);
  42418. #ifndef __ARCH_USE_MMU__
  42419. - /* mmap'd with MAP_UNINITIALIZE, we have to blank memory ourselves */
  42420. + /* mmap'd with MAP_UNINITIALIZED, we have to blank memory ourselves */
  42421. if (result != NULL) {
  42422. memset(result, 0, size);
  42423. }
  42424. @@ -95,7 +96,6 @@
  42425. #endif
  42426. #ifdef L_free
  42427. -extern int weak_function __libc_free_aligned(void *ptr);
  42428. void free(void *ptr)
  42429. {
  42430. if (unlikely(ptr == NULL))
  42431. @@ -123,7 +123,7 @@
  42432. __ptr_t aligned; /* The address that memaligned returned. */
  42433. __ptr_t exact; /* The address that malloc returned. */
  42434. };
  42435. -struct alignlist *_aligned_blocks;
  42436. +static struct alignlist *_aligned_blocks;
  42437. /* Return memory to the heap. */
  42438. int __libc_free_aligned(void *ptr)
  42439. @@ -182,4 +182,5 @@
  42440. return result;
  42441. }
  42442. +libc_hidden_def(memalign)
  42443. #endif
  42444. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc-simple/Makefile.in uClibc-git/libc/stdlib/malloc-simple/Makefile.in
  42445. --- uClibc-0.9.33.2/libc/stdlib/malloc-simple/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  42446. +++ uClibc-git/libc/stdlib/malloc-simple/Makefile.in 2014-06-02 17:40:34.134712649 +0200
  42447. @@ -10,11 +10,13 @@
  42448. STDLIB_MALLOC_SIMPLE_DIR := $(top_srcdir)libc/stdlib/malloc-simple
  42449. STDLIB_MALLOC_SIMPLE_OUT := $(top_builddir)libc/stdlib/malloc-simple
  42450. -CSRC := $(notdir $(wildcard $(STDLIB_MALLOC_SIMPLE_DIR)/*.c))
  42451. -CSRC := $(filter-out alloc.c,$(CSRC))
  42452. +CSRC-y := $(notdir $(wildcard $(STDLIB_MALLOC_SIMPLE_DIR)/*.c))
  42453. +# multi source alloc.c
  42454. +CSRC- := alloc.c
  42455. +CSRC-y := $(filter-out $(CSRC-),$(CSRC-y))
  42456. -STDLIB_MALLOC_SIMPLE_SRC := $(patsubst %.c,$(STDLIB_MALLOC_SIMPLE_DIR)/%.c,$(CSRC))
  42457. -STDLIB_MALLOC_SIMPLE_OBJ := $(patsubst %.c,$(STDLIB_MALLOC_SIMPLE_OUT)/%.o,$(CSRC))
  42458. +STDLIB_MALLOC_SIMPLE_SRC := $(patsubst %.c,$(STDLIB_MALLOC_SIMPLE_DIR)/%.c,$(CSRC-y))
  42459. +STDLIB_MALLOC_SIMPLE_OBJ := $(patsubst %.c,$(STDLIB_MALLOC_SIMPLE_OUT)/%.o,$(CSRC-y))
  42460. libc-$(MALLOC_SIMPLE) += $(STDLIB_MALLOC_SIMPLE_OBJ)
  42461. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc-standard/Makefile.in uClibc-git/libc/stdlib/malloc-standard/Makefile.in
  42462. --- uClibc-0.9.33.2/libc/stdlib/malloc-standard/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  42463. +++ uClibc-git/libc/stdlib/malloc-standard/Makefile.in 2014-06-02 17:40:34.134712649 +0200
  42464. @@ -7,15 +7,13 @@
  42465. subdirs += libc/stdlib/malloc-standard
  42466. -# calloc.c can be found at uClibc/libc/stdlib/calloc.c
  42467. -# valloc.c can be found at uClibc/libc/stdlib/valloc.c
  42468. -CSRC := malloc.c calloc.c realloc.c free.c memalign.c mallopt.c mallinfo.c
  42469. -
  42470. STDLIB_MALLOC_STANDARD_DIR := $(top_srcdir)libc/stdlib/malloc-standard
  42471. STDLIB_MALLOC_STANDARD_OUT := $(top_builddir)libc/stdlib/malloc-standard
  42472. -STDLIB_MALLOC_STANDARD_SRC := $(patsubst %.c,$(STDLIB_MALLOC_STANDARD_DIR)/%.c,$(CSRC))
  42473. -STDLIB_MALLOC_STANDARD_OBJ := $(patsubst %.c,$(STDLIB_MALLOC_STANDARD_OUT)/%.o,$(CSRC))
  42474. +CSRC-y := $(notdir $(wildcard $(STDLIB_MALLOC_STANDARD_DIR)/*.c))
  42475. +
  42476. +STDLIB_MALLOC_STANDARD_SRC := $(patsubst %.c,$(STDLIB_MALLOC_STANDARD_DIR)/%.c,$(CSRC-y))
  42477. +STDLIB_MALLOC_STANDARD_OBJ := $(patsubst %.c,$(STDLIB_MALLOC_STANDARD_OUT)/%.o,$(CSRC-y))
  42478. libc-$(MALLOC_STANDARD) += $(STDLIB_MALLOC_STANDARD_OBJ)
  42479. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc-standard/mallinfo.c uClibc-git/libc/stdlib/malloc-standard/mallinfo.c
  42480. --- uClibc-0.9.33.2/libc/stdlib/malloc-standard/mallinfo.c 2012-05-15 09:20:09.000000000 +0200
  42481. +++ uClibc-git/libc/stdlib/malloc-standard/mallinfo.c 2014-06-02 17:40:34.134712649 +0200
  42482. @@ -15,6 +15,7 @@
  42483. */
  42484. #include "malloc.h"
  42485. +#include <stdio.h> /* fprintf */
  42486. /* ------------------------------ mallinfo ------------------------------ */
  42487. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc-standard/malloc.h uClibc-git/libc/stdlib/malloc-standard/malloc.h
  42488. --- uClibc-0.9.33.2/libc/stdlib/malloc-standard/malloc.h 2012-05-15 09:20:09.000000000 +0200
  42489. +++ uClibc-git/libc/stdlib/malloc-standard/malloc.h 2014-06-02 17:40:34.134712649 +0200
  42490. @@ -26,7 +26,11 @@
  42491. -__UCLIBC_MUTEX_EXTERN(__malloc_lock);
  42492. +__UCLIBC_MUTEX_EXTERN(__malloc_lock)
  42493. +#if defined __UCLIBC_HAS_THREADS__ && !defined __LINUXTHREADS_OLD__
  42494. + attribute_hidden
  42495. +#endif
  42496. + ;
  42497. #define __MALLOC_LOCK __UCLIBC_MUTEX_LOCK(__malloc_lock)
  42498. #define __MALLOC_UNLOCK __UCLIBC_MUTEX_UNLOCK(__malloc_lock)
  42499. @@ -349,13 +353,13 @@
  42500. #endif
  42501. #ifdef __ARCH_USE_MMU__
  42502. -# define _MAP_UNINITIALIZE 0
  42503. +# define _MAP_UNINITIALIZED 0
  42504. #else
  42505. -# define _MAP_UNINITIALIZE MAP_UNINITIALIZE
  42506. +# define _MAP_UNINITIALIZED MAP_UNINITIALIZED
  42507. #endif
  42508. #define MMAP(addr, size, prot) \
  42509. - (mmap((addr), (size), (prot), MAP_PRIVATE|MAP_ANONYMOUS|_MAP_UNINITIALIZE, 0, 0))
  42510. + (mmap((addr), (size), (prot), MAP_PRIVATE|MAP_ANONYMOUS|_MAP_UNINITIALIZED, 0, 0))
  42511. /* ----------------------- Chunk representations ----------------------- */
  42512. @@ -910,7 +914,7 @@
  42513. malloc relies on the property that malloc_state is initialized to
  42514. all zeroes (as is true of C statics).
  42515. */
  42516. -extern struct malloc_state __malloc_state; /* never directly referenced */
  42517. +extern struct malloc_state __malloc_state attribute_hidden; /* never directly referenced */
  42518. /*
  42519. All uses of av_ are via get_malloc_state().
  42520. @@ -947,12 +951,12 @@
  42521. #define check_malloced_chunk(P,N) __do_check_malloced_chunk(P,N)
  42522. #define check_malloc_state() __do_check_malloc_state()
  42523. -extern void __do_check_chunk(mchunkptr p);
  42524. -extern void __do_check_free_chunk(mchunkptr p);
  42525. -extern void __do_check_inuse_chunk(mchunkptr p);
  42526. -extern void __do_check_remalloced_chunk(mchunkptr p, size_t s);
  42527. -extern void __do_check_malloced_chunk(mchunkptr p, size_t s);
  42528. -extern void __do_check_malloc_state(void);
  42529. +extern void __do_check_chunk(mchunkptr p) attribute_hidden;
  42530. +extern void __do_check_free_chunk(mchunkptr p) attribute_hidden;
  42531. +extern void __do_check_inuse_chunk(mchunkptr p) attribute_hidden;
  42532. +extern void __do_check_remalloced_chunk(mchunkptr p, size_t s) attribute_hidden;
  42533. +extern void __do_check_malloced_chunk(mchunkptr p, size_t s) attribute_hidden;
  42534. +extern void __do_check_malloc_state(void) attribute_hidden;
  42535. #include <assert.h>
  42536. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc-standard/memalign.c uClibc-git/libc/stdlib/malloc-standard/memalign.c
  42537. --- uClibc-0.9.33.2/libc/stdlib/malloc-standard/memalign.c 2012-05-15 09:20:09.000000000 +0200
  42538. +++ uClibc-git/libc/stdlib/malloc-standard/memalign.c 2014-06-02 17:40:34.134712649 +0200
  42539. @@ -127,4 +127,4 @@
  42540. __MALLOC_UNLOCK;
  42541. return retval;
  42542. }
  42543. -
  42544. +libc_hidden_def(memalign)
  42545. diff -Nur uClibc-0.9.33.2/libc/stdlib/mkdtemp.c uClibc-git/libc/stdlib/mkdtemp.c
  42546. --- uClibc-0.9.33.2/libc/stdlib/mkdtemp.c 2012-05-15 09:20:09.000000000 +0200
  42547. +++ uClibc-git/libc/stdlib/mkdtemp.c 2014-06-02 17:40:34.158712781 +0200
  42548. @@ -14,8 +14,7 @@
  42549. You should have received a copy of the GNU Library General Public
  42550. License along with the GNU C Library; see the file COPYING.LIB. If not,
  42551. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  42552. - Boston, MA 02111-1307, USA. */
  42553. + see <http://www.gnu.org/licenses/>. */
  42554. #include <stdio.h>
  42555. #include <stdlib.h>
  42556. diff -Nur uClibc-0.9.33.2/libc/stdlib/mkostemp64.c uClibc-git/libc/stdlib/mkostemp64.c
  42557. --- uClibc-0.9.33.2/libc/stdlib/mkostemp64.c 1970-01-01 01:00:00.000000000 +0100
  42558. +++ uClibc-git/libc/stdlib/mkostemp64.c 2014-06-02 17:40:34.158712781 +0200
  42559. @@ -0,0 +1,31 @@
  42560. +/* Copyright (C) 2000-2012 Free Software Foundation, Inc.
  42561. + This file is part of the GNU C Library.
  42562. +
  42563. + The GNU C Library is free software; you can redistribute it and/or
  42564. + modify it under the terms of the GNU Lesser General Public
  42565. + License as published by the Free Software Foundation; either
  42566. + version 2.1 of the License, or (at your option) any later version.
  42567. +
  42568. + The GNU C Library is distributed in the hope that it will be useful,
  42569. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  42570. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  42571. + Lesser General Public License for more details.
  42572. +
  42573. + You should have received a copy of the GNU Lesser General Public
  42574. + License along with the GNU C Library; if not, see
  42575. + <http://www.gnu.org/licenses/>. */
  42576. +
  42577. +#include <fcntl.h>
  42578. +#include <stdio.h>
  42579. +#include <stdlib.h>
  42580. +#include "../misc/internals/tempname.h"
  42581. +
  42582. +/* Generate a unique temporary file name from TEMPLATE.
  42583. + The last six characters of TEMPLATE must be "XXXXXX";
  42584. + they are replaced with a string that makes the filename unique.
  42585. + Then open the file and return a fd. */
  42586. +int
  42587. +mkostemp64 (char *template, int flags)
  42588. +{
  42589. + return __gen_tempname (template, __GT_BIGFILE, flags | O_LARGEFILE);
  42590. +}
  42591. diff -Nur uClibc-0.9.33.2/libc/stdlib/mkostemp.c uClibc-git/libc/stdlib/mkostemp.c
  42592. --- uClibc-0.9.33.2/libc/stdlib/mkostemp.c 1970-01-01 01:00:00.000000000 +0100
  42593. +++ uClibc-git/libc/stdlib/mkostemp.c 2014-06-02 17:40:34.158712781 +0200
  42594. @@ -0,0 +1,30 @@
  42595. +/* Copyright (C) 1998-2012 Free Software Foundation, Inc.
  42596. + This file is part of the GNU C Library.
  42597. +
  42598. + The GNU C Library is free software; you can redistribute it and/or
  42599. + modify it under the terms of the GNU Lesser General Public
  42600. + License as published by the Free Software Foundation; either
  42601. + version 2.1 of the License, or (at your option) any later version.
  42602. +
  42603. + The GNU C Library is distributed in the hope that it will be useful,
  42604. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  42605. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  42606. + Lesser General Public License for more details.
  42607. +
  42608. + You should have received a copy of the GNU Lesser General Public
  42609. + License along with the GNU C Library; if not, see
  42610. + <http://www.gnu.org/licenses/>. */
  42611. +
  42612. +#include <stdio.h>
  42613. +#include <stdlib.h>
  42614. +#include "../misc/internals/tempname.h"
  42615. +
  42616. +/* Generate a unique temporary file name from TEMPLATE.
  42617. + The last six characters of TEMPLATE must be "XXXXXX";
  42618. + they are replaced with a string that makes the filename unique.
  42619. + Then open the file and return a fd. */
  42620. +int
  42621. +mkostemp (char *template, int flags)
  42622. +{
  42623. + return __gen_tempname (template, __GT_FILE, flags);
  42624. +}
  42625. diff -Nur uClibc-0.9.33.2/libc/stdlib/mkstemp64.c uClibc-git/libc/stdlib/mkstemp64.c
  42626. --- uClibc-0.9.33.2/libc/stdlib/mkstemp64.c 2012-05-15 09:20:09.000000000 +0200
  42627. +++ uClibc-git/libc/stdlib/mkstemp64.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/mkstemp.c uClibc-git/libc/stdlib/mkstemp.c
  42637. --- uClibc-0.9.33.2/libc/stdlib/mkstemp.c 2012-05-15 09:20:09.000000000 +0200
  42638. +++ uClibc-git/libc/stdlib/mkstemp.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/mktemp.c uClibc-git/libc/stdlib/mktemp.c
  42648. --- uClibc-0.9.33.2/libc/stdlib/mktemp.c 2012-05-15 09:20:09.000000000 +0200
  42649. +++ uClibc-git/libc/stdlib/mktemp.c 2014-06-02 17:40:34.158712781 +0200
  42650. @@ -13,8 +13,7 @@
  42651. You should have received a copy of the GNU Library General Public
  42652. License along with the GNU C Library; see the file COPYING.LIB. If not,
  42653. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  42654. - Boston, MA 02111-1307, USA. */
  42655. + see <http://www.gnu.org/licenses/>. */
  42656. #include <stdio.h>
  42657. #include <stdlib.h>
  42658. diff -Nur uClibc-0.9.33.2/libc/stdlib/mrand48.c uClibc-git/libc/stdlib/mrand48.c
  42659. --- uClibc-0.9.33.2/libc/stdlib/mrand48.c 2012-05-15 09:20:09.000000000 +0200
  42660. +++ uClibc-git/libc/stdlib/mrand48.c 2014-06-02 17:40:34.158712781 +0200
  42661. @@ -13,9 +13,8 @@
  42662. Lesser General Public License for more details.
  42663. You should have received a copy of the GNU Lesser General Public
  42664. - License along with the GNU C Library; if not, write to the Free
  42665. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42666. - 02111-1307 USA. */
  42667. + License along with the GNU C Library; if not, see
  42668. + <http://www.gnu.org/licenses/>. */
  42669. #include <stdlib.h>
  42670. diff -Nur uClibc-0.9.33.2/libc/stdlib/mrand48_r.c uClibc-git/libc/stdlib/mrand48_r.c
  42671. --- uClibc-0.9.33.2/libc/stdlib/mrand48_r.c 2012-05-15 09:20:09.000000000 +0200
  42672. +++ uClibc-git/libc/stdlib/mrand48_r.c 2014-06-02 17:40:34.162712804 +0200
  42673. @@ -13,9 +13,8 @@
  42674. Lesser General Public License for more details.
  42675. You should have received a copy of the GNU Lesser General Public
  42676. - License along with the GNU C Library; if not, write to the Free
  42677. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42678. - 02111-1307 USA. */
  42679. + License along with the GNU C Library; if not, see
  42680. + <http://www.gnu.org/licenses/>. */
  42681. #include <stdlib.h>
  42682. diff -Nur uClibc-0.9.33.2/libc/stdlib/nrand48.c uClibc-git/libc/stdlib/nrand48.c
  42683. --- uClibc-0.9.33.2/libc/stdlib/nrand48.c 2012-05-15 09:20:09.000000000 +0200
  42684. +++ uClibc-git/libc/stdlib/nrand48.c 2014-06-02 17:40:34.162712804 +0200
  42685. @@ -13,9 +13,8 @@
  42686. Lesser General Public License for more details.
  42687. You should have received a copy of the GNU Lesser General Public
  42688. - License along with the GNU C Library; if not, write to the Free
  42689. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42690. - 02111-1307 USA. */
  42691. + License along with the GNU C Library; if not, see
  42692. + <http://www.gnu.org/licenses/>. */
  42693. #include <stdlib.h>
  42694. diff -Nur uClibc-0.9.33.2/libc/stdlib/nrand48_r.c uClibc-git/libc/stdlib/nrand48_r.c
  42695. --- uClibc-0.9.33.2/libc/stdlib/nrand48_r.c 2012-05-15 09:20:09.000000000 +0200
  42696. +++ uClibc-git/libc/stdlib/nrand48_r.c 2014-06-02 17:40:34.162712804 +0200
  42697. @@ -13,9 +13,8 @@
  42698. Lesser General Public License for more details.
  42699. You should have received a copy of the GNU Lesser General Public
  42700. - License along with the GNU C Library; if not, write to the Free
  42701. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42702. - 02111-1307 USA. */
  42703. + License along with the GNU C Library; if not, see
  42704. + <http://www.gnu.org/licenses/>. */
  42705. #include <stdlib.h>
  42706. diff -Nur uClibc-0.9.33.2/libc/stdlib/posix_memalign.c uClibc-git/libc/stdlib/posix_memalign.c
  42707. --- uClibc-0.9.33.2/libc/stdlib/posix_memalign.c 2012-05-15 09:20:09.000000000 +0200
  42708. +++ uClibc-git/libc/stdlib/posix_memalign.c 2014-06-02 17:40:34.162712804 +0200
  42709. @@ -15,9 +15,8 @@
  42710. * for more details.
  42711. *
  42712. * You should have received a copy of the GNU Library General Public License
  42713. - * along with this program; if not, write to the Free Software Foundation,
  42714. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  42715. - *
  42716. + * along with this program; see the file COPYING.LIB. If not, see
  42717. + * <http://www.gnu.org/licenses/>.
  42718. */
  42719. #include <stdlib.h>
  42720. diff -Nur uClibc-0.9.33.2/libc/stdlib/ptsname.c uClibc-git/libc/stdlib/ptsname.c
  42721. --- uClibc-0.9.33.2/libc/stdlib/ptsname.c 2012-05-15 09:20:09.000000000 +0200
  42722. +++ uClibc-git/libc/stdlib/ptsname.c 2014-06-02 17:40:34.162712804 +0200
  42723. @@ -13,9 +13,8 @@
  42724. Lesser General Public License for more details.
  42725. You should have received a copy of the GNU Lesser General Public
  42726. - License along with the GNU C Library; if not, write to the Free
  42727. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42728. - 02111-1307 USA. */
  42729. + License along with the GNU C Library; if not, see
  42730. + <http://www.gnu.org/licenses/>. */
  42731. #include <stdio.h>
  42732. #include <errno.h>
  42733. diff -Nur uClibc-0.9.33.2/libc/stdlib/pty-private.h uClibc-git/libc/stdlib/pty-private.h
  42734. --- uClibc-0.9.33.2/libc/stdlib/pty-private.h 2012-05-15 09:20:09.000000000 +0200
  42735. +++ uClibc-git/libc/stdlib/pty-private.h 2014-06-02 17:40:34.162712804 +0200
  42736. @@ -15,8 +15,7 @@
  42737. You should have received a copy of the GNU Library General Public
  42738. License along with the GNU C Library; see the file COPYING.LIB. If not,
  42739. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  42740. - Boston, MA 02111-1307, USA. */
  42741. + see <http://www.gnu.org/licenses/>. */
  42742. #ifndef _PTY_PRIVATE_H
  42743. #define _PTY_PRIVATE_H 1
  42744. diff -Nur uClibc-0.9.33.2/libc/stdlib/rand_r.c uClibc-git/libc/stdlib/rand_r.c
  42745. --- uClibc-0.9.33.2/libc/stdlib/rand_r.c 2012-05-15 09:20:09.000000000 +0200
  42746. +++ uClibc-git/libc/stdlib/rand_r.c 2014-06-02 17:40:34.162712804 +0200
  42747. @@ -14,9 +14,8 @@
  42748. Lesser General Public License for more details.
  42749. You should have received a copy of the GNU Lesser General Public
  42750. - License along with the GNU C Library; if not, write to the Free
  42751. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42752. - 02111-1307 USA. */
  42753. + License along with the GNU C Library; if not, see
  42754. + <http://www.gnu.org/licenses/>. */
  42755. #include <stdlib.h>
  42756. diff -Nur uClibc-0.9.33.2/libc/stdlib/rpmatch.c uClibc-git/libc/stdlib/rpmatch.c
  42757. --- uClibc-0.9.33.2/libc/stdlib/rpmatch.c 1970-01-01 01:00:00.000000000 +0100
  42758. +++ uClibc-git/libc/stdlib/rpmatch.c 2014-06-02 17:40:34.162712804 +0200
  42759. @@ -0,0 +1,7 @@
  42760. +/* Copyright (C) 2012 Bernhard Reutner-Fischer <uclibc@uclibc.org>
  42761. + *
  42762. + * Licensed under the LGPL v2.1+, see the file COPYING.LIB in this tarball.
  42763. + */
  42764. +
  42765. +#define L_rpmatch
  42766. +#include "stdlib.c"
  42767. diff -Nur uClibc-0.9.33.2/libc/stdlib/seed48.c uClibc-git/libc/stdlib/seed48.c
  42768. --- uClibc-0.9.33.2/libc/stdlib/seed48.c 2012-05-15 09:20:09.000000000 +0200
  42769. +++ uClibc-git/libc/stdlib/seed48.c 2014-06-02 17:40:34.162712804 +0200
  42770. @@ -13,9 +13,8 @@
  42771. Lesser General Public License for more details.
  42772. You should have received a copy of the GNU Lesser General Public
  42773. - License along with the GNU C Library; if not, write to the Free
  42774. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42775. - 02111-1307 USA. */
  42776. + License along with the GNU C Library; if not, see
  42777. + <http://www.gnu.org/licenses/>. */
  42778. #include <stdlib.h>
  42779. diff -Nur uClibc-0.9.33.2/libc/stdlib/seed48_r.c uClibc-git/libc/stdlib/seed48_r.c
  42780. --- uClibc-0.9.33.2/libc/stdlib/seed48_r.c 2012-05-15 09:20:09.000000000 +0200
  42781. +++ uClibc-git/libc/stdlib/seed48_r.c 2014-06-02 17:40:34.162712804 +0200
  42782. @@ -13,9 +13,8 @@
  42783. Lesser General Public License for more details.
  42784. You should have received a copy of the GNU Lesser General Public
  42785. - License along with the GNU C Library; if not, write to the Free
  42786. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42787. - 02111-1307 USA. */
  42788. + License along with the GNU C Library; if not, see
  42789. + <http://www.gnu.org/licenses/>. */
  42790. #include <stdlib.h>
  42791. #include <string.h>
  42792. diff -Nur uClibc-0.9.33.2/libc/stdlib/setenv.c uClibc-git/libc/stdlib/setenv.c
  42793. --- uClibc-0.9.33.2/libc/stdlib/setenv.c 2012-05-15 09:20:09.000000000 +0200
  42794. +++ uClibc-git/libc/stdlib/setenv.c 2014-06-02 17:40:34.162712804 +0200
  42795. @@ -12,9 +12,8 @@
  42796. Lesser General Public License for more details.
  42797. You should have received a copy of the GNU Lesser General Public
  42798. - License along with the GNU C Library; if not, write to the Free
  42799. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42800. - 02111-1307 USA.
  42801. + License along with the GNU C Library; see the file COPYING.LIB. If
  42802. + not, see <http://www.gnu.org/licenses/>.
  42803. modified for uClibc by Erik Andersen <andersen@codepoet.org>
  42804. */
  42805. diff -Nur uClibc-0.9.33.2/libc/stdlib/srand48.c uClibc-git/libc/stdlib/srand48.c
  42806. --- uClibc-0.9.33.2/libc/stdlib/srand48.c 2012-05-15 09:20:09.000000000 +0200
  42807. +++ uClibc-git/libc/stdlib/srand48.c 2014-06-02 17:40:34.162712804 +0200
  42808. @@ -13,9 +13,8 @@
  42809. Lesser General Public License for more details.
  42810. You should have received a copy of the GNU Lesser General Public
  42811. - License along with the GNU C Library; if not, write to the Free
  42812. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42813. - 02111-1307 USA. */
  42814. + License along with the GNU C Library; if not, see
  42815. + <http://www.gnu.org/licenses/>. */
  42816. #include <stdlib.h>
  42817. diff -Nur uClibc-0.9.33.2/libc/stdlib/srand48_r.c uClibc-git/libc/stdlib/srand48_r.c
  42818. --- uClibc-0.9.33.2/libc/stdlib/srand48_r.c 2012-05-15 09:20:09.000000000 +0200
  42819. +++ uClibc-git/libc/stdlib/srand48_r.c 2014-06-02 17:40:34.162712804 +0200
  42820. @@ -13,9 +13,8 @@
  42821. Lesser General Public License for more details.
  42822. You should have received a copy of the GNU Lesser General Public
  42823. - License along with the GNU C Library; if not, write to the Free
  42824. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42825. - 02111-1307 USA. */
  42826. + License along with the GNU C Library; if not, see
  42827. + <http://www.gnu.org/licenses/>. */
  42828. #include <stdlib.h>
  42829. #include <limits.h>
  42830. diff -Nur uClibc-0.9.33.2/libc/stdlib/stdlib.c uClibc-git/libc/stdlib/stdlib.c
  42831. --- uClibc-0.9.33.2/libc/stdlib/stdlib.c 2012-05-15 09:20:09.000000000 +0200
  42832. +++ uClibc-git/libc/stdlib/stdlib.c 2014-06-02 17:40:34.162712804 +0200
  42833. @@ -12,8 +12,8 @@
  42834. * Library General Public License for more details.
  42835. *
  42836. * You should have received a copy of the GNU Library General Public
  42837. - * License along with this library; if not, write to the Free
  42838. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  42839. + * License along with this library; if not, see
  42840. + * <http://www.gnu.org/licenses/>.
  42841. */
  42842. /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
  42843. @@ -32,58 +32,8 @@
  42844. * Add wscto{inttype} functions.
  42845. */
  42846. -#define _ISOC99_SOURCE /* for ULLONG primarily... */
  42847. #include <limits.h>
  42848. #include <stdint.h>
  42849. -/* Work around gcc's refusal to create aliases.
  42850. - * TODO: Add in a define to disable the aliases? */
  42851. -
  42852. -#if UINT_MAX == ULONG_MAX
  42853. -#ifdef L_labs
  42854. -#define abs __ignore_abs
  42855. -#endif
  42856. -#ifdef L_atol
  42857. -#define atoi __ignore_atoi
  42858. -#endif
  42859. -#endif
  42860. -#if defined(ULLONG_MAX) && (ULLONG_MAX == ULONG_MAX)
  42861. -#ifdef L_labs
  42862. -#define llabs __ignore_llabs
  42863. -#endif
  42864. -#ifdef L_atol
  42865. -#define atoll __ignore_atoll
  42866. -#endif
  42867. -#ifdef L_strtol
  42868. -#define strtoll __ignore_strtoll
  42869. -#endif
  42870. -#ifdef L_strtoul
  42871. -#define strtoull __ignore_strtoull
  42872. -#endif
  42873. -#ifdef L_wcstol
  42874. -#define wcstoll __ignore_wcstoll
  42875. -#endif
  42876. -#ifdef L_wcstoul
  42877. -#define wcstoull __ignore_wcstoull
  42878. -#endif
  42879. -#ifdef L_strtol_l
  42880. -#define strtoll_l __ignore_strtoll_l
  42881. -#endif
  42882. -#ifdef L_strtoul_l
  42883. -#define strtoull_l __ignore_strtoull_l
  42884. -#endif
  42885. -#ifdef L_wcstol_l
  42886. -#define wcstoll_l __ignore_wcstoll_l
  42887. -#endif
  42888. -#ifdef L_wcstoul_l
  42889. -#define wcstoull_l __ignore_wcstoull_l
  42890. -#endif
  42891. -#endif
  42892. -#if defined(ULLONG_MAX) && (ULLONG_MAX == UINTMAX_MAX)
  42893. -#if defined L_labs || defined L_llabs
  42894. -#define imaxabs __ignore_imaxabs
  42895. -#endif
  42896. -#endif
  42897. -
  42898. #include <stdint.h>
  42899. #include <inttypes.h>
  42900. #include <ctype.h>
  42901. @@ -100,10 +50,6 @@
  42902. #include <wctype.h>
  42903. #include <bits/uClibc_uwchar.h>
  42904. -#ifdef __UCLIBC_HAS_XLOCALE__
  42905. -#include <xlocale.h>
  42906. -#endif /* __UCLIBC_HAS_XLOCALE__ */
  42907. -
  42908. /* TODO: clean up the following... */
  42909. #if WCHAR_MAX > 0xffffUL
  42910. @@ -226,21 +172,15 @@
  42911. }
  42912. #if UINT_MAX == ULONG_MAX
  42913. -#undef abs
  42914. -extern __typeof(labs) abs;
  42915. -strong_alias(labs,abs)
  42916. +strong_alias_untyped(labs,abs)
  42917. #endif
  42918. #if defined(ULLONG_MAX) && (ULLONG_MAX == ULONG_MAX)
  42919. -#undef llabs
  42920. -extern __typeof(labs) llabs;
  42921. -strong_alias(labs,llabs)
  42922. +strong_alias_untyped(labs,llabs)
  42923. #endif
  42924. #if ULONG_MAX == UINTMAX_MAX
  42925. -#undef imaxabs
  42926. -extern __typeof(labs) imaxabs;
  42927. -strong_alias(labs,imaxabs)
  42928. +strong_alias_untyped(labs,imaxabs)
  42929. #endif
  42930. #endif
  42931. @@ -255,9 +195,7 @@
  42932. }
  42933. #if (ULLONG_MAX == UINTMAX_MAX)
  42934. -#undef imaxabs
  42935. -extern __typeof(llabs) imaxabs;
  42936. -strong_alias(llabs,imaxabs)
  42937. +strong_alias_untyped(llabs,imaxabs)
  42938. #endif
  42939. #endif /* defined(ULLONG_MAX) && (LLONG_MAX > LONG_MAX) */
  42940. @@ -288,18 +226,12 @@
  42941. }
  42942. #if UINT_MAX == ULONG_MAX
  42943. -#undef atoi
  42944. -extern __typeof(atol) atoi;
  42945. -/* the one in stdlib.h is not enough due to prototype mismatch */
  42946. -libc_hidden_proto(atoi)
  42947. -strong_alias(atol,atoi)
  42948. +strong_alias_untyped(atol,atoi)
  42949. libc_hidden_def(atoi)
  42950. #endif
  42951. #if defined(ULLONG_MAX) && (ULLONG_MAX == ULONG_MAX)
  42952. -#undef atoll
  42953. -extern __typeof(atol) atoll;
  42954. -strong_alias(atol,atoll)
  42955. +strong_alias_untyped(atol,atoll)
  42956. #endif
  42957. #endif
  42958. @@ -318,9 +250,16 @@
  42959. #endif
  42960. /**********************************************************************/
  42961. +#ifdef L_rpmatch
  42962. +int rpmatch (const char *__response)
  42963. +{
  42964. + return (__response[0] == 'y' || __response[0] == 'Y') ? 1 :
  42965. + (__response[0] == 'n' || __response[0] == 'N') ? 0 : -1;
  42966. +}
  42967. +#endif
  42968. +/**********************************************************************/
  42969. #if defined(L_strtol) || defined(L_strtol_l)
  42970. -libc_hidden_proto(__XL_NPP(strtol))
  42971. long __XL_NPP(strtol)(const char * __restrict str, char ** __restrict endptr,
  42972. int base __LOCALE_PARAM)
  42973. {
  42974. @@ -333,17 +272,7 @@
  42975. #endif
  42976. #if defined(ULLONG_MAX) && (ULLONG_MAX == ULONG_MAX)
  42977. -#ifdef L_strtol_l
  42978. -#undef strtoll_l
  42979. -#else
  42980. -#undef strtoll
  42981. -#endif
  42982. -extern __typeof(__XL_NPP(strtol)) __XL_NPP(strtoll);
  42983. -/* the one in stdlib.h is not enough due to prototype mismatch */
  42984. -#ifdef L_strtol
  42985. -libc_hidden_proto(__XL_NPP(strtoll))
  42986. -#endif
  42987. -strong_alias(__XL_NPP(strtol),__XL_NPP(strtoll))
  42988. +strong_alias_untyped(__XL_NPP(strtol),__XL_NPP(strtoll))
  42989. #ifdef L_strtol
  42990. libc_hidden_def(__XL_NPP(strtoll))
  42991. strong_alias(strtol,strtoq)
  42992. @@ -389,13 +318,7 @@
  42993. #endif
  42994. #if defined(ULLONG_MAX) && (ULLONG_MAX == ULONG_MAX)
  42995. -#ifdef L_strtoul_l
  42996. -#undef strtoull_l
  42997. -#else
  42998. -#undef strtoull
  42999. -#endif
  43000. -extern __typeof(__XL_NPP(strtoul)) __XL_NPP(strtoull);
  43001. -strong_alias(__XL_NPP(strtoul),__XL_NPP(strtoull))
  43002. +strong_alias_untyped(__XL_NPP(strtoul),__XL_NPP(strtoull))
  43003. #if !defined(L_strtoul_l)
  43004. strong_alias(strtoul,strtouq)
  43005. #endif
  43006. @@ -744,16 +667,7 @@
  43007. #endif /* defined(ULLONG_MAX) && (LLONG_MAX > LONG_MAX) */
  43008. #endif
  43009. -/**********************************************************************/
  43010. -/* Made _Exit() an alias for _exit(), as per C99. */
  43011. -/* #ifdef L__Exit */
  43012. -/* void _Exit(int status) */
  43013. -/* { */
  43014. -/* _exit(status); */
  43015. -/* } */
  43016. -/* #endif */
  43017. -/**********************************************************************/
  43018. #ifdef L_bsearch
  43019. void *bsearch(const void *key, const void *base, size_t /* nmemb */ high,
  43020. @@ -1067,13 +981,7 @@
  43021. #endif
  43022. #if defined(ULLONG_MAX) && (ULLONG_MAX == ULONG_MAX)
  43023. -#ifdef L_wcstol_l
  43024. -#undef wcstoll_l
  43025. -#else
  43026. -#undef wcstoll
  43027. -#endif
  43028. -extern __typeof(__XL_NPP(wcstol)) __XL_NPP(wcstoll);
  43029. -strong_alias(__XL_NPP(wcstol),__XL_NPP(wcstoll))
  43030. +strong_alias_untyped(__XL_NPP(wcstol),__XL_NPP(wcstoll))
  43031. #endif
  43032. #endif
  43033. @@ -1114,13 +1022,7 @@
  43034. #endif
  43035. #if defined(ULLONG_MAX) && (ULLONG_MAX == ULONG_MAX)
  43036. -#ifdef L_wcstoul_l
  43037. -#undef wcstoull_l
  43038. -#else
  43039. -#undef wcstoull
  43040. -#endif
  43041. -extern __typeof(__XL_NPP(wcstoul)) __XL_NPP(wcstoull);
  43042. -strong_alias(__XL_NPP(wcstoul),__XL_NPP(wcstoull))
  43043. +strong_alias_untyped(__XL_NPP(wcstoul),__XL_NPP(wcstoull))
  43044. #endif
  43045. #endif
  43046. diff -Nur uClibc-0.9.33.2/libc/stdlib/_strtod.c uClibc-git/libc/stdlib/_strtod.c
  43047. --- uClibc-0.9.33.2/libc/stdlib/_strtod.c 2012-05-15 09:20:09.000000000 +0200
  43048. +++ uClibc-git/libc/stdlib/_strtod.c 2014-06-02 17:40:34.130712627 +0200
  43049. @@ -95,7 +95,6 @@
  43050. /**********************************************************************/
  43051. -#define _ISOC99_SOURCE 1
  43052. #include <stdlib.h>
  43053. #include <string.h>
  43054. #include <ctype.h>
  43055. @@ -112,10 +111,6 @@
  43056. # include <bits/uClibc_uwchar.h>
  43057. #endif
  43058. -#ifdef __UCLIBC_HAS_XLOCALE__
  43059. -# include <xlocale.h>
  43060. -#endif
  43061. -
  43062. /* Handle _STRTOD_HEXADECIMAL_FLOATS via uClibc config now. */
  43063. #undef _STRTOD_HEXADECIMAL_FLOATS
  43064. #ifdef __UCLIBC_HAS_HEXADECIMAL_FLOATS__
  43065. @@ -509,7 +504,6 @@
  43066. #endif
  43067. -libc_hidden_proto(__XL_NPP(strtof))
  43068. float __XL_NPP(strtof)(const Wchar *str, Wchar **endptr __LOCALE_PARAM )
  43069. {
  43070. #if FPMAX_TYPE == 1
  43071. @@ -526,7 +520,6 @@
  43072. return y;
  43073. #endif
  43074. }
  43075. -libc_hidden_def(__XL_NPP(strtof))
  43076. #endif
  43077. #endif
  43078. diff -Nur uClibc-0.9.33.2/libc/stdlib/system.c uClibc-git/libc/stdlib/system.c
  43079. --- uClibc-0.9.33.2/libc/stdlib/system.c 2012-05-15 09:20:09.000000000 +0200
  43080. +++ uClibc-git/libc/stdlib/system.c 2014-06-02 17:40:34.170712848 +0200
  43081. @@ -24,11 +24,6 @@
  43082. * need to figure out why still
  43083. */
  43084. #if !defined __UCLIBC_HAS_THREADS_NATIVE__ || defined __sparc__
  43085. -/* uClinux-2.0 has vfork, but Linux 2.0 doesn't */
  43086. -#include <sys/syscall.h>
  43087. -#ifndef __NR_vfork
  43088. -# define vfork fork
  43089. -#endif
  43090. int __libc_system(const char *command)
  43091. {
  43092. @@ -66,7 +61,7 @@
  43093. __printf("Waiting for child %d\n", pid);
  43094. #endif
  43095. - if (wait4(pid, &wait_val, 0, 0) == -1)
  43096. + if (__wait4_nocancel(pid, &wait_val, 0, 0) == -1)
  43097. wait_val = -1;
  43098. out:
  43099. diff -Nur uClibc-0.9.33.2/libc/stdlib/__uc_malloc.c uClibc-git/libc/stdlib/__uc_malloc.c
  43100. --- uClibc-0.9.33.2/libc/stdlib/__uc_malloc.c 2012-05-15 09:20:09.000000000 +0200
  43101. +++ uClibc-git/libc/stdlib/__uc_malloc.c 2014-06-02 17:40:34.130712627 +0200
  43102. @@ -13,8 +13,7 @@
  43103. You should have received a copy of the GNU Library General Public
  43104. License along with this library; see the file COPYING.LIB. If
  43105. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  43106. -Cambridge, MA 02139, USA.
  43107. +not, see <http://www.gnu.org/licenses/>.
  43108. */
  43109. diff -Nur uClibc-0.9.33.2/libc/stdlib/unix_grantpt.c uClibc-git/libc/stdlib/unix_grantpt.c
  43110. --- uClibc-0.9.33.2/libc/stdlib/unix_grantpt.c 2012-05-15 09:20:09.000000000 +0200
  43111. +++ uClibc-git/libc/stdlib/unix_grantpt.c 2014-06-02 17:40:34.170712848 +0200
  43112. @@ -14,8 +14,7 @@
  43113. You should have received a copy of the GNU Library General Public
  43114. License along with the GNU C Library; see the file COPYING.LIB. If not,
  43115. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  43116. - Boston, MA 02111-1307, USA. */
  43117. + see <http://www.gnu.org/licenses/>. */
  43118. #include <assert.h>
  43119. #include <errno.h>
  43120. @@ -31,12 +30,6 @@
  43121. #include "pty-private.h"
  43122. -/* uClinux-2.0 has vfork, but Linux 2.0 doesn't */
  43123. -#include <sys/syscall.h>
  43124. -#if ! defined __NR_vfork
  43125. -#define vfork fork
  43126. -#endif
  43127. -
  43128. /* Return the result of ptsname_r in the buffer pointed to by PTS,
  43129. which should be of length BUF_LEN. If it is too long to fit in
  43130. this buffer, a sufficiently long buffer is allocated using malloc,
  43131. diff -Nur uClibc-0.9.33.2/libc/stdlib/unlockpt.c uClibc-git/libc/stdlib/unlockpt.c
  43132. --- uClibc-0.9.33.2/libc/stdlib/unlockpt.c 2012-05-15 09:20:09.000000000 +0200
  43133. +++ uClibc-git/libc/stdlib/unlockpt.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 the GNU C Library; see the file COPYING.LIB. If not,
  43137. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  43138. - Boston, MA 02111-1307, USA. */
  43139. + see <http://www.gnu.org/licenses/>. */
  43140. #include <errno.h>
  43141. #include <stdlib.h>
  43142. diff -Nur uClibc-0.9.33.2/libc/stdlib/valloc.c uClibc-git/libc/stdlib/valloc.c
  43143. --- uClibc-0.9.33.2/libc/stdlib/valloc.c 2012-05-15 09:20:09.000000000 +0200
  43144. +++ uClibc-git/libc/stdlib/valloc.c 2014-06-02 17:40:34.178712892 +0200
  43145. @@ -14,8 +14,7 @@
  43146. You should have received a copy of the GNU Library General Public
  43147. License along with this library; see the file COPYING.LIB. If
  43148. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  43149. -Cambridge, MA 02139, USA.
  43150. +not, see <http://www.gnu.org/licenses/>.
  43151. The author may be reached (Email) at the address mike@@ai.mit.edu,
  43152. or (US mail) as Mike Haertel c/o Free Software Foundation. */
  43153. diff -Nur uClibc-0.9.33.2/libc/string/arc/Makefile uClibc-git/libc/string/arc/Makefile
  43154. --- uClibc-0.9.33.2/libc/string/arc/Makefile 1970-01-01 01:00:00.000000000 +0100
  43155. +++ uClibc-git/libc/string/arc/Makefile 2014-06-02 17:40:34.182712914 +0200
  43156. @@ -0,0 +1,13 @@
  43157. +# Makefile for uClibc
  43158. +#
  43159. +# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
  43160. +#
  43161. +# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  43162. +#
  43163. +
  43164. +top_srcdir:=../../../
  43165. +top_builddir:=../../../
  43166. +all: objs
  43167. +include $(top_builddir)Rules.mak
  43168. +include ../Makefile.in
  43169. +include $(top_srcdir)Makerules
  43170. diff -Nur uClibc-0.9.33.2/libc/string/arc/memcmp.S uClibc-git/libc/string/arc/memcmp.S
  43171. --- uClibc-0.9.33.2/libc/string/arc/memcmp.S 1970-01-01 01:00:00.000000000 +0100
  43172. +++ uClibc-git/libc/string/arc/memcmp.S 2014-06-02 17:40:34.182712914 +0200
  43173. @@ -0,0 +1,128 @@
  43174. +/*
  43175. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  43176. + * Copyright (C) 2007 ARC International (UK) LTD
  43177. + *
  43178. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  43179. + */
  43180. +
  43181. +#include <sysdep.h>
  43182. +#include <features.h>
  43183. +
  43184. +#ifdef __LITTLE_ENDIAN__
  43185. +#define WORD2 r2
  43186. +#define SHIFT r3
  43187. +#else /* BIG ENDIAN */
  43188. +#define WORD2 r3
  43189. +#define SHIFT r2
  43190. +#endif
  43191. +
  43192. +ENTRY(memcmp)
  43193. + or r12,r0,r1
  43194. + asl_s r12,r12,30
  43195. + sub r3,r2,1
  43196. + brls r2,r12,.Lbytewise
  43197. + ld r4,[r0,0]
  43198. + ld r5,[r1,0]
  43199. + lsr.f lp_count,r3,3
  43200. + lpne .Loop_end
  43201. + ld_s WORD2,[r0,4]
  43202. + ld_s r12,[r1,4]
  43203. + brne r4,r5,.Leven
  43204. + ld.a r4,[r0,8]
  43205. + ld.a r5,[r1,8]
  43206. + brne WORD2,r12,.Lodd
  43207. +.Loop_end:
  43208. + asl_s SHIFT,SHIFT,3
  43209. + bhs_s .Last_cmp
  43210. + brne r4,r5,.Leven
  43211. + ld r4,[r0,4]
  43212. + ld r5,[r1,4]
  43213. +#ifdef __LITTLE_ENDIAN__
  43214. + nop_s
  43215. + ; one more load latency cycle
  43216. +.Last_cmp:
  43217. + xor r0,r4,r5
  43218. + bset r0,r0,SHIFT
  43219. + sub_s r1,r0,1
  43220. + bic_s r1,r1,r0
  43221. + norm r1,r1
  43222. + b.d .Leven_cmp
  43223. + and r1,r1,24
  43224. +.Leven:
  43225. + xor r0,r4,r5
  43226. + sub_s r1,r0,1
  43227. + bic_s r1,r1,r0
  43228. + norm r1,r1
  43229. + ; slow track insn
  43230. + and r1,r1,24
  43231. +.Leven_cmp:
  43232. + asl r2,r4,r1
  43233. + asl r12,r5,r1
  43234. + lsr_s r2,r2,1
  43235. + lsr_s r12,r12,1
  43236. + j_s.d [blink]
  43237. + sub r0,r2,r12
  43238. + .balign 4
  43239. +.Lodd:
  43240. + xor r0,WORD2,r12
  43241. + sub_s r1,r0,1
  43242. + bic_s r1,r1,r0
  43243. + norm r1,r1
  43244. + ; slow track insn
  43245. + and r1,r1,24
  43246. + asl_s r2,r2,r1
  43247. + asl_s r12,r12,r1
  43248. + lsr_s r2,r2,1
  43249. + lsr_s r12,r12,1
  43250. + j_s.d [blink]
  43251. + sub r0,r2,r12
  43252. +#else /* BIG ENDIAN */
  43253. +.Last_cmp:
  43254. + neg_s SHIFT,SHIFT
  43255. + lsr r4,r4,SHIFT
  43256. + lsr r5,r5,SHIFT
  43257. + ; slow track insn
  43258. +.Leven:
  43259. + sub.f r0,r4,r5
  43260. + mov.ne r0,1
  43261. + j_s.d [blink]
  43262. + bset.cs r0,r0,31
  43263. +.Lodd:
  43264. + cmp_s WORD2,r12
  43265. + mov_s r0,1
  43266. + j_s.d [blink]
  43267. + bset.cs r0,r0,31
  43268. +#endif /* ENDIAN */
  43269. + .balign 4
  43270. +.Lbytewise:
  43271. + breq r2,0,.Lnil
  43272. + ldb r4,[r0,0]
  43273. + ldb r5,[r1,0]
  43274. + lsr.f lp_count,r3
  43275. + lpne .Lbyte_end
  43276. + ldb_s r3,[r0,1]
  43277. + ldb r12,[r1,1]
  43278. + brne r4,r5,.Lbyte_even
  43279. + ldb.a r4,[r0,2]
  43280. + ldb.a r5,[r1,2]
  43281. + brne r3,r12,.Lbyte_odd
  43282. +.Lbyte_end:
  43283. + bcc .Lbyte_even
  43284. + brne r4,r5,.Lbyte_even
  43285. + ldb_s r3,[r0,1]
  43286. + ldb_s r12,[r1,1]
  43287. +.Lbyte_odd:
  43288. + j_s.d [blink]
  43289. + sub r0,r3,r12
  43290. +.Lbyte_even:
  43291. + j_s.d [blink]
  43292. + sub r0,r4,r5
  43293. +.Lnil:
  43294. + j_s.d [blink]
  43295. + mov r0,0
  43296. +END(memcmp)
  43297. +libc_hidden_def(memcmp)
  43298. +
  43299. +#ifdef __UCLIBC_SUSV3_LEGACY__
  43300. +strong_alias(memcmp,bcmp)
  43301. +#endif
  43302. diff -Nur uClibc-0.9.33.2/libc/string/arc/memcpy.S uClibc-git/libc/string/arc/memcpy.S
  43303. --- uClibc-0.9.33.2/libc/string/arc/memcpy.S 1970-01-01 01:00:00.000000000 +0100
  43304. +++ uClibc-git/libc/string/arc/memcpy.S 2014-06-02 17:40:34.182712914 +0200
  43305. @@ -0,0 +1,71 @@
  43306. +/*
  43307. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  43308. + * Copyright (C) 2007 ARC International (UK) LTD
  43309. + *
  43310. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  43311. + */
  43312. +
  43313. +#include <sysdep.h>
  43314. +
  43315. +/* This memcpy implementation does not support objects of 1GB or larger -
  43316. + the check for alignment does not work then. */
  43317. +/* We assume that most sources and destinations are aligned, and
  43318. + that also lengths are mostly a multiple of four, although to a lesser
  43319. + extent. */
  43320. +ENTRY(memcpy)
  43321. + or r3,r0,r1
  43322. + asl_s r3,r3,30
  43323. + mov_s r5,r0
  43324. + brls.d r2,r3,.Lcopy_bytewise
  43325. + sub.f r3,r2,1
  43326. + ld_s r12,[r1,0]
  43327. + asr.f lp_count,r3,3
  43328. + bbit0.d r3,2,.Lnox4
  43329. + bmsk_s r2,r2,1
  43330. + st.ab r12,[r5,4]
  43331. + ld.a r12,[r1,4]
  43332. +.Lnox4:
  43333. + lppnz .Lendloop
  43334. + ld_s r3,[r1,4]
  43335. + st.ab r12,[r5,4]
  43336. + ld.a r12,[r1,8]
  43337. + st.ab r3,[r5,4]
  43338. +.Lendloop:
  43339. + breq r2,0,.Last_store
  43340. + ld r3,[r5,0]
  43341. +#ifdef __LITTLE_ENDIAN__
  43342. + add3 r2,-1,r2
  43343. + ; uses long immediate
  43344. + xor_s r12,r12,r3
  43345. + bmsk r12,r12,r2
  43346. + xor_s r12,r12,r3
  43347. +#else /* BIG ENDIAN */
  43348. + sub3 r2,31,r2
  43349. + ; uses long immediate
  43350. + xor_s r3,r3,r12
  43351. + bmsk r3,r3,r2
  43352. + xor_s r12,r12,r3
  43353. +#endif /* ENDIAN */
  43354. +.Last_store:
  43355. + j_s.d [blink]
  43356. + st r12,[r5,0]
  43357. +
  43358. + .balign 4
  43359. +.Lcopy_bytewise:
  43360. + jcs [blink]
  43361. + ldb_s r12,[r1,0]
  43362. + lsr.f lp_count,r3
  43363. + bhs_s .Lnox1
  43364. + stb.ab r12,[r5,1]
  43365. + ldb.a r12,[r1,1]
  43366. +.Lnox1:
  43367. + lppnz .Lendbloop
  43368. + ldb_s r3,[r1,1]
  43369. + stb.ab r12,[r5,1]
  43370. + ldb.a r12,[r1,2]
  43371. + stb.ab r3,[r5,1]
  43372. +.Lendbloop:
  43373. + j_s.d [blink]
  43374. + stb r12,[r5,0]
  43375. +END(memcpy)
  43376. +libc_hidden_def(memcpy)
  43377. diff -Nur uClibc-0.9.33.2/libc/string/arc/memset.S uClibc-git/libc/string/arc/memset.S
  43378. --- uClibc-0.9.33.2/libc/string/arc/memset.S 1970-01-01 01:00:00.000000000 +0100
  43379. +++ uClibc-git/libc/string/arc/memset.S 2014-06-02 17:40:34.182712914 +0200
  43380. @@ -0,0 +1,51 @@
  43381. +/*
  43382. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  43383. + * Copyright (C) 2007 ARC International (UK) LTD
  43384. + *
  43385. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  43386. + */
  43387. +
  43388. +#include <sysdep.h>
  43389. +
  43390. +#define SMALL 7 /* Must be at least 6 to deal with alignment/loop issues. */
  43391. +
  43392. +ENTRY(memset)
  43393. +
  43394. + mov_s r4,r0
  43395. + or r12,r0,r2
  43396. + bmsk.f r12,r12,1
  43397. + extb_s r1,r1
  43398. + asl r3,r1,8
  43399. + beq.d .Laligned
  43400. + or_s r1,r1,r3
  43401. + brls r2,SMALL,.Ltiny
  43402. + add r3,r2,r0
  43403. + stb r1,[r3,-1]
  43404. + bclr_s r3,r3,0
  43405. + stw r1,[r3,-2]
  43406. + bmsk.f r12,r0,1
  43407. + add_s r2,r2,r12
  43408. + sub.ne r2,r2,4
  43409. + stb.ab r1,[r4,1]
  43410. + and r4,r4,-2
  43411. + stw.ab r1,[r4,2]
  43412. + and r4,r4,-4
  43413. +.Laligned: ; This code address should be aligned for speed.
  43414. + asl r3,r1,16
  43415. + lsr.f lp_count,r2,2
  43416. + or_s r1,r1,r3
  43417. + lpne .Loop_end
  43418. + st.ab r1,[r4,4]
  43419. +.Loop_end:
  43420. + j_s [blink]
  43421. +
  43422. +
  43423. + .balign 4
  43424. +.Ltiny:
  43425. + mov.f lp_count,r2
  43426. + lpne .Ltiny_end
  43427. + stb.ab r1,[r4,1]
  43428. +.Ltiny_end:
  43429. + j_s [blink]
  43430. +END(memset)
  43431. +libc_hidden_def(memset)
  43432. diff -Nur uClibc-0.9.33.2/libc/string/arc/strchr.S uClibc-git/libc/string/arc/strchr.S
  43433. --- uClibc-0.9.33.2/libc/string/arc/strchr.S 1970-01-01 01:00:00.000000000 +0100
  43434. +++ uClibc-git/libc/string/arc/strchr.S 2014-06-02 17:40:34.182712914 +0200
  43435. @@ -0,0 +1,138 @@
  43436. +/*
  43437. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  43438. + * Copyright (C) 2007 ARC International (UK) LTD
  43439. + *
  43440. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  43441. + */
  43442. +
  43443. +#include <sysdep.h>
  43444. +#include <features.h>
  43445. +
  43446. +/* ARC700 has a relatively long pipeline and branch prediction, so we want
  43447. + to avoid branches that are hard to predict. On the other hand, the
  43448. + presence of the norm instruction makes it easier to operate on whole
  43449. + words branch-free. */
  43450. +
  43451. +ENTRY(strchr)
  43452. + extb_s r1,r1
  43453. + asl r5,r1,8
  43454. + bmsk r2,r0,1
  43455. + or r5,r5,r1
  43456. + mov_s r3,0x01010101
  43457. + breq.d r2,r0,.Laligned
  43458. + asl r4,r5,16
  43459. + sub_s r0,r0,r2
  43460. + asl r7,r2,3
  43461. + ld_s r2,[r0]
  43462. +#ifdef __LITTLE_ENDIAN__
  43463. + asl r7,r3,r7
  43464. +#else
  43465. + lsr r7,r3,r7
  43466. +#endif
  43467. + or r5,r5,r4
  43468. + ror r4,r3
  43469. + sub r12,r2,r7
  43470. + bic_s r12,r12,r2
  43471. + and r12,r12,r4
  43472. + brne.d r12,0,.Lfound0_ua
  43473. + xor r6,r2,r5
  43474. + ld.a r2,[r0,4]
  43475. + sub r12,r6,r7
  43476. + bic r12,r12,r6
  43477. +#ifdef __LITTLE_ENDIAN__
  43478. + and r7,r12,r4
  43479. + breq r7,0,.Loop ; For speed, we want this branch to be unaligned.
  43480. + b .Lfound_char ; Likewise this one.
  43481. +#else
  43482. + and r12,r12,r4
  43483. + breq r12,0,.Loop ; For speed, we want this branch to be unaligned.
  43484. + lsr_s r12,r12,7
  43485. + bic r2,r7,r6
  43486. + b.d .Lfound_char_b
  43487. + and_s r2,r2,r12
  43488. +#endif
  43489. +; /* We require this code address to be unaligned for speed... */
  43490. +.Laligned:
  43491. + ld_s r2,[r0]
  43492. + or r5,r5,r4
  43493. + ror r4,r3
  43494. +; /* ... so that this code address is aligned, for itself and ... */
  43495. +.Loop:
  43496. + sub r12,r2,r3
  43497. + bic_s r12,r12,r2
  43498. + and r12,r12,r4
  43499. + brne.d r12,0,.Lfound0
  43500. + xor r6,r2,r5
  43501. + ld.a r2,[r0,4]
  43502. + sub r12,r6,r3
  43503. + bic r12,r12,r6
  43504. + and r7,r12,r4
  43505. + breq r7,0,.Loop /* ... so that this branch is unaligned. */
  43506. + ; Found searched-for character. r0 has already advanced to next word.
  43507. +#ifdef __LITTLE_ENDIAN__
  43508. +/* We only need the information about the first matching byte
  43509. + (i.e. the least significant matching byte) to be exact,
  43510. + hence there is no problem with carry effects. */
  43511. +.Lfound_char:
  43512. + sub r3,r7,1
  43513. + bic r3,r3,r7
  43514. + norm r2,r3
  43515. + sub_s r0,r0,1
  43516. + asr_s r2,r2,3
  43517. + j.d [blink]
  43518. + sub_s r0,r0,r2
  43519. +
  43520. + .balign 4
  43521. +.Lfound0_ua:
  43522. + mov r3,r7
  43523. +.Lfound0:
  43524. + sub r3,r6,r3
  43525. + bic r3,r3,r6
  43526. + and r2,r3,r4
  43527. + or_s r12,r12,r2
  43528. + sub_s r3,r12,1
  43529. + bic_s r3,r3,r12
  43530. + norm r3,r3
  43531. + add_s r0,r0,3
  43532. + asr_s r12,r3,3
  43533. + asl.f 0,r2,r3
  43534. + sub_s r0,r0,r12
  43535. + j_s.d [blink]
  43536. + mov.pl r0,0
  43537. +#else /* BIG ENDIAN */
  43538. +.Lfound_char:
  43539. + lsr r7,r7,7
  43540. +
  43541. + bic r2,r7,r6
  43542. +.Lfound_char_b:
  43543. + norm r2,r2
  43544. + sub_s r0,r0,4
  43545. + asr_s r2,r2,3
  43546. + j.d [blink]
  43547. + add_s r0,r0,r2
  43548. +
  43549. +.Lfound0_ua:
  43550. + mov_s r3,r7
  43551. +.Lfound0:
  43552. + asl_s r2,r2,7
  43553. + or r7,r6,r4
  43554. + bic_s r12,r12,r2
  43555. + sub r2,r7,r3
  43556. + or r2,r2,r6
  43557. + bic r12,r2,r12
  43558. + bic.f r3,r4,r12
  43559. + norm r3,r3
  43560. +
  43561. + add.pl r3,r3,1
  43562. + asr_s r12,r3,3
  43563. + asl.f 0,r2,r3
  43564. + add_s r0,r0,r12
  43565. + j_s.d [blink]
  43566. + mov.mi r0,0
  43567. +#endif /* ENDIAN */
  43568. +END(strchr)
  43569. +libc_hidden_def(strchr)
  43570. +
  43571. +#ifdef __UCLIBC_SUSV3_LEGACY__
  43572. +strong_alias(strchr,index)
  43573. +#endif
  43574. diff -Nur uClibc-0.9.33.2/libc/string/arc/strcmp.S uClibc-git/libc/string/arc/strcmp.S
  43575. --- uClibc-0.9.33.2/libc/string/arc/strcmp.S 1970-01-01 01:00:00.000000000 +0100
  43576. +++ uClibc-git/libc/string/arc/strcmp.S 2014-06-02 17:40:34.182712914 +0200
  43577. @@ -0,0 +1,102 @@
  43578. +/*
  43579. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  43580. + * Copyright (C) 2007 ARC International (UK) LTD
  43581. + *
  43582. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  43583. + */
  43584. +
  43585. +#include <features.h>
  43586. +#include <sysdep.h>
  43587. +
  43588. +/* This is optimized primarily for the ARC700.
  43589. + It would be possible to speed up the loops by one cycle / word
  43590. + respective one cycle / byte by forcing double source 1 alignment, unrolling
  43591. + by a factor of two, and speculatively loading the second word / byte of
  43592. + source 1; however, that would increase the overhead for loop setup / finish,
  43593. + and strcmp might often terminate early. */
  43594. +
  43595. +ENTRY(strcmp)
  43596. + or r2,r0,r1
  43597. + bmsk_s r2,r2,1
  43598. + brne r2,0,.Lcharloop
  43599. + mov_s r12,0x01010101
  43600. + ror r5,r12
  43601. +.Lwordloop:
  43602. + ld.ab r2,[r0,4]
  43603. + ld.ab r3,[r1,4]
  43604. + nop_s
  43605. + sub r4,r2,r12
  43606. + bic r4,r4,r2
  43607. + and r4,r4,r5
  43608. + brne r4,0,.Lfound0
  43609. + breq r2,r3,.Lwordloop
  43610. +#ifdef __LITTLE_ENDIAN__
  43611. + xor r0,r2,r3 ; mask for difference
  43612. + sub_s r1,r0,1
  43613. + bic_s r0,r0,r1 ; mask for least significant difference bit
  43614. + sub r1,r5,r0
  43615. + xor r0,r5,r1 ; mask for least significant difference byte
  43616. + and_s r2,r2,r0
  43617. + and_s r3,r3,r0
  43618. +#endif /* LITTLE ENDIAN */
  43619. + cmp_s r2,r3
  43620. + mov_s r0,1
  43621. + j_s.d [blink]
  43622. + bset.lo r0,r0,31
  43623. +
  43624. + .balign 4
  43625. +#ifdef __LITTLE_ENDIAN__
  43626. +.Lfound0:
  43627. + xor r0,r2,r3 ; mask for difference
  43628. + or r0,r0,r4 ; or in zero indicator
  43629. + sub_s r1,r0,1
  43630. + bic_s r0,r0,r1 ; mask for least significant difference bit
  43631. + sub r1,r5,r0
  43632. + xor r0,r5,r1 ; mask for least significant difference byte
  43633. + and_s r2,r2,r0
  43634. + and_s r3,r3,r0
  43635. + sub.f r0,r2,r3
  43636. + mov.hi r0,1
  43637. + j_s.d [blink]
  43638. + bset.lo r0,r0,31
  43639. +#else /* BIG ENDIAN */
  43640. + /* The zero-detection above can mis-detect 0x01 bytes as zeroes
  43641. + because of carry-propagateion from a lower significant zero byte.
  43642. + We can compensate for this by checking that bit0 is zero.
  43643. + This compensation is not necessary in the step where we
  43644. + get a low estimate for r2, because in any affected bytes
  43645. + we already have 0x00 or 0x01, which will remain unchanged
  43646. + when bit 7 is cleared. */
  43647. + .balign 4
  43648. +.Lfound0:
  43649. + lsr r0,r4,8
  43650. + lsr_s r1,r2
  43651. + bic_s r2,r2,r0 ; get low estimate for r2 and get ...
  43652. + bic_s r0,r0,r1 ; <this is the adjusted mask for zeros>
  43653. + or_s r3,r3,r0 ; ... high estimate r3 so that r2 > r3 will ...
  43654. + cmp_s r3,r2 ; ... be independent of trailing garbage
  43655. + or_s r2,r2,r0 ; likewise for r3 > r2
  43656. + bic_s r3,r3,r0
  43657. + rlc r0,0 ; r0 := r2 > r3 ? 1 : 0
  43658. + cmp_s r2,r3
  43659. + j_s.d [blink]
  43660. + bset.lo r0,r0,31
  43661. +#endif /* ENDIAN */
  43662. +
  43663. + .balign 4
  43664. +.Lcharloop:
  43665. + ldb.ab r2,[r0,1]
  43666. + ldb.ab r3,[r1,1]
  43667. + nop_s
  43668. + breq r2,0,.Lcmpend
  43669. + breq r2,r3,.Lcharloop
  43670. +.Lcmpend:
  43671. + j_s.d [blink]
  43672. + sub r0,r2,r3
  43673. +END(strcmp)
  43674. +libc_hidden_def(strcmp)
  43675. +
  43676. +#ifndef __UCLIBC_HAS_LOCALE__
  43677. +strong_alias(strcmp,strcoll)
  43678. +libc_hidden_def(strcoll)
  43679. +#endif
  43680. diff -Nur uClibc-0.9.33.2/libc/string/arc/strcpy.S uClibc-git/libc/string/arc/strcpy.S
  43681. --- uClibc-0.9.33.2/libc/string/arc/strcpy.S 1970-01-01 01:00:00.000000000 +0100
  43682. +++ uClibc-git/libc/string/arc/strcpy.S 2014-06-02 17:40:34.182712914 +0200
  43683. @@ -0,0 +1,71 @@
  43684. +/*
  43685. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  43686. + * Copyright (C) 2007 ARC International (UK) LTD
  43687. + *
  43688. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  43689. + */
  43690. +
  43691. +
  43692. +#include <sysdep.h>
  43693. +
  43694. +/* If dst and src are 4 byte aligned, copy 8 bytes at a time.
  43695. + If the src is 4, but not 8 byte aligned, we first read 4 bytes to get
  43696. + it 8 byte aligned. Thus, we can do a little read-ahead, without
  43697. + dereferencing a cache line that we should not touch.
  43698. + Note that short and long instructions have been scheduled to avoid
  43699. + branch stalls.
  43700. + The beq_s to r3z could be made unaligned & long to avoid a stall
  43701. + there, but the it is not likely to be taken often, and it
  43702. + would also be likey to cost an unaligned mispredict at the next call. */
  43703. +
  43704. +ENTRY(strcpy)
  43705. + or r2,r0,r1
  43706. + bmsk_s r2,r2,1
  43707. + brne.d r2,0,charloop
  43708. + mov_s r10,r0
  43709. + ld_s r3,[r1,0]
  43710. + mov r8,0x01010101
  43711. + bbit0.d r1,2,loop_start
  43712. + ror r12,r8
  43713. + sub r2,r3,r8
  43714. + bic_s r2,r2,r3
  43715. + tst_s r2,r12
  43716. + bne r3z
  43717. + mov_s r4,r3
  43718. + .balign 4
  43719. +loop:
  43720. + ld.a r3,[r1,4]
  43721. + st.ab r4,[r10,4]
  43722. +loop_start:
  43723. + ld.a r4,[r1,4]
  43724. + sub r2,r3,r8
  43725. + bic_s r2,r2,r3
  43726. + tst_s r2,r12
  43727. + bne_s r3z
  43728. + st.ab r3,[r10,4]
  43729. + sub r2,r4,r8
  43730. + bic r2,r2,r4
  43731. + tst r2,r12
  43732. + beq loop
  43733. + mov_s r3,r4
  43734. +#ifdef __LITTLE_ENDIAN__
  43735. +r3z: bmsk.f r1,r3,7
  43736. + lsr_s r3,r3,8
  43737. +#else
  43738. +r3z: lsr.f r1,r3,24
  43739. + asl_s r3,r3,8
  43740. +#endif
  43741. + bne.d r3z
  43742. + stb.ab r1,[r10,1]
  43743. + j_s [blink]
  43744. +
  43745. + .balign 4
  43746. +charloop:
  43747. + ldb.ab r3,[r1,1]
  43748. +
  43749. +
  43750. + brne.d r3,0,charloop
  43751. + stb.ab r3,[r10,1]
  43752. + j [blink]
  43753. +END(strcpy)
  43754. +libc_hidden_def(strcpy)
  43755. diff -Nur uClibc-0.9.33.2/libc/string/arc/strlen.S uClibc-git/libc/string/arc/strlen.S
  43756. --- uClibc-0.9.33.2/libc/string/arc/strlen.S 1970-01-01 01:00:00.000000000 +0100
  43757. +++ uClibc-git/libc/string/arc/strlen.S 2014-06-02 17:40:34.182712914 +0200
  43758. @@ -0,0 +1,84 @@
  43759. +/*
  43760. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  43761. + * Copyright (C) 2007 ARC International (UK) LTD
  43762. + *
  43763. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  43764. + */
  43765. +
  43766. +
  43767. +#include <sysdep.h>
  43768. +
  43769. +ENTRY(strlen)
  43770. + or r3,r0,7
  43771. + ld r2,[r3,-7]
  43772. + ld.a r6,[r3,-3]
  43773. + mov r4,0x01010101
  43774. + ; uses long immediate
  43775. +#ifdef __LITTLE_ENDIAN__
  43776. + asl_s r1,r0,3
  43777. + btst_s r0,2
  43778. + asl r7,r4,r1
  43779. + ror r5,r4
  43780. + sub r1,r2,r7
  43781. + bic_s r1,r1,r2
  43782. + mov.eq r7,r4
  43783. + sub r12,r6,r7
  43784. + bic r12,r12,r6
  43785. + or.eq r12,r12,r1
  43786. + and r12,r12,r5
  43787. + brne r12,0,.Learly_end
  43788. +#else /* BIG ENDIAN */
  43789. + ror r5,r4
  43790. + btst_s r0,2
  43791. + mov_s r1,31
  43792. + sub3 r7,r1,r0
  43793. + sub r1,r2,r4
  43794. + bic_s r1,r1,r2
  43795. + bmsk r1,r1,r7
  43796. + sub r12,r6,r4
  43797. + bic r12,r12,r6
  43798. + bmsk.ne r12,r12,r7
  43799. + or.eq r12,r12,r1
  43800. + and r12,r12,r5
  43801. + brne r12,0,.Learly_end
  43802. +#endif /* ENDIAN */
  43803. +
  43804. +.Loop:
  43805. + ld_s r2,[r3,4]
  43806. + ld.a r6,[r3,8]
  43807. + ; stall for load result
  43808. + sub r1,r2,r4
  43809. + bic_s r1,r1,r2
  43810. + sub r12,r6,r4
  43811. + bic r12,r12,r6
  43812. + or r12,r12,r1
  43813. + and r12,r12,r5
  43814. + breq r12,0,.Loop
  43815. +.Lend:
  43816. + and.f r1,r1,r5
  43817. + sub.ne r3,r3,4
  43818. + mov.eq r1,r12
  43819. +#ifdef __LITTLE_ENDIAN__
  43820. + sub_s r2,r1,1
  43821. + bic_s r2,r2,r1
  43822. + norm r1,r2
  43823. + sub_s r0,r0,3
  43824. + lsr_s r1,r1,3
  43825. + sub r0,r3,r0
  43826. + j_s.d [blink]
  43827. + sub r0,r0,r1
  43828. +#else /* BIG ENDIAN */
  43829. + lsr_s r1,r1,7
  43830. + mov.eq r2,r6
  43831. + bic_s r1,r1,r2
  43832. + norm r1,r1
  43833. + sub r0,r3,r0
  43834. + lsr_s r1,r1,3
  43835. + j_s.d [blink]
  43836. + add r0,r0,r1
  43837. +#endif /* ENDIAN */
  43838. +.Learly_end:
  43839. + b.d .Lend
  43840. + sub_s.ne r1,r1,r1
  43841. +END(strlen)
  43842. +libc_hidden_def(strlen)
  43843. diff -Nur uClibc-0.9.33.2/libc/string/arm/memcmp.S uClibc-git/libc/string/arm/memcmp.S
  43844. --- uClibc-0.9.33.2/libc/string/arm/memcmp.S 2012-05-15 09:20:09.000000000 +0200
  43845. +++ uClibc-git/libc/string/arm/memcmp.S 2014-06-13 18:29:20.834293397 +0200
  43846. @@ -31,6 +31,7 @@
  43847. #include <features.h>
  43848. #include <bits/arm_asm.h>
  43849. +#include <bits/arm_bx.h>
  43850. .text
  43851. .global memcmp
  43852. diff -Nur uClibc-0.9.33.2/libc/string/arm/_memcpy.S uClibc-git/libc/string/arm/_memcpy.S
  43853. --- uClibc-0.9.33.2/libc/string/arm/_memcpy.S 2012-05-15 09:20:09.000000000 +0200
  43854. +++ uClibc-git/libc/string/arm/_memcpy.S 2014-06-13 18:29:20.834293397 +0200
  43855. @@ -40,6 +40,7 @@
  43856. #include <features.h>
  43857. #include <endian.h>
  43858. #include <bits/arm_asm.h>
  43859. +#include <bits/arm_bx.h>
  43860. #if !defined(THUMB1_ONLY)
  43861. /*
  43862. diff -Nur uClibc-0.9.33.2/libc/string/arm/memset.S uClibc-git/libc/string/arm/memset.S
  43863. --- uClibc-0.9.33.2/libc/string/arm/memset.S 2012-05-15 09:20:09.000000000 +0200
  43864. +++ uClibc-git/libc/string/arm/memset.S 2014-06-13 18:29:20.834293397 +0200
  43865. @@ -13,13 +13,13 @@
  43866. Lesser General Public License for more details.
  43867. You should have received a copy of the GNU Lesser General Public
  43868. - License along with the GNU C Library; if not, write to the Free
  43869. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  43870. - 02111-1307 USA. */
  43871. + License along with the GNU C Library; if not, see
  43872. + <http://www.gnu.org/licenses/>. */
  43873. #include <features.h>
  43874. #include <sys/syscall.h>
  43875. #include <bits/arm_asm.h>
  43876. +#include <bits/arm_bx.h>
  43877. .text
  43878. .global memset
  43879. diff -Nur uClibc-0.9.33.2/libc/string/arm/strcmp.S uClibc-git/libc/string/arm/strcmp.S
  43880. --- uClibc-0.9.33.2/libc/string/arm/strcmp.S 2012-05-15 09:20:09.000000000 +0200
  43881. +++ uClibc-git/libc/string/arm/strcmp.S 2014-06-13 18:29:20.838293415 +0200
  43882. @@ -31,6 +31,7 @@
  43883. #include <features.h>
  43884. #include <bits/arm_asm.h>
  43885. +#include <bits/arm_bx.h>
  43886. .text
  43887. .global strcmp
  43888. diff -Nur uClibc-0.9.33.2/libc/string/arm/strlen.S uClibc-git/libc/string/arm/strlen.S
  43889. --- uClibc-0.9.33.2/libc/string/arm/strlen.S 2012-05-15 09:20:09.000000000 +0200
  43890. +++ uClibc-git/libc/string/arm/strlen.S 2014-06-13 18:29:20.838293415 +0200
  43891. @@ -13,14 +13,14 @@
  43892. Lesser General Public License for more details.
  43893. You should have received a copy of the GNU Lesser General Public
  43894. - License along with the GNU C Library; if not, write to the Free
  43895. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  43896. - 02111-1307 USA. */
  43897. + License along with the GNU C Library; if not, see
  43898. + <http://www.gnu.org/licenses/>. */
  43899. #include <features.h>
  43900. #include <endian.h>
  43901. #include <sys/syscall.h>
  43902. #include <bits/arm_asm.h>
  43903. +#include <bits/arm_bx.h>
  43904. /* size_t strlen(const char *S)
  43905. * entry: r0 -> string
  43906. diff -Nur uClibc-0.9.33.2/libc/string/avr32/Makefile uClibc-git/libc/string/avr32/Makefile
  43907. --- uClibc-0.9.33.2/libc/string/avr32/Makefile 2012-05-15 09:20:09.000000000 +0200
  43908. +++ uClibc-git/libc/string/avr32/Makefile 2014-06-02 17:40:34.182712914 +0200
  43909. @@ -13,8 +13,7 @@
  43910. # details.
  43911. #
  43912. # You should have received a copy of the GNU Library General Public License
  43913. -# along with this program; if not, write to the Free Software Foundation, Inc.,
  43914. -# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  43915. +# along with this program; if not, see <http://www.gnu.org/licenses/>.
  43916. top_srcdir := ../../../
  43917. top_builddir := ../../../
  43918. diff -Nur uClibc-0.9.33.2/libc/string/basename.c uClibc-git/libc/string/basename.c
  43919. --- uClibc-0.9.33.2/libc/string/basename.c 2012-05-15 09:20:09.000000000 +0200
  43920. +++ uClibc-git/libc/string/basename.c 2014-06-02 17:40:34.186712937 +0200
  43921. @@ -5,7 +5,7 @@
  43922. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  43923. */
  43924. -#include "_string.h"
  43925. +#include <string.h>
  43926. #ifdef __USE_GNU
  43927. @@ -24,5 +24,4 @@
  43928. return (char *) p;
  43929. }
  43930. -libc_hidden_def(basename)
  43931. #endif
  43932. diff -Nur uClibc-0.9.33.2/libc/string/bcopy.c uClibc-git/libc/string/bcopy.c
  43933. --- uClibc-0.9.33.2/libc/string/bcopy.c 2012-05-15 09:20:09.000000000 +0200
  43934. +++ uClibc-git/libc/string/bcopy.c 2014-06-02 17:40:34.186712937 +0200
  43935. @@ -5,11 +5,9 @@
  43936. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  43937. */
  43938. -#include "_string.h"
  43939. +#include <string.h>
  43940. #ifdef __UCLIBC_SUSV3_LEGACY__
  43941. -
  43942. -
  43943. void bcopy(const void *s2, void *s1, size_t n)
  43944. {
  43945. #if 1
  43946. diff -Nur uClibc-0.9.33.2/libc/string/bzero.c uClibc-git/libc/string/bzero.c
  43947. --- uClibc-0.9.33.2/libc/string/bzero.c 2012-05-15 09:20:09.000000000 +0200
  43948. +++ uClibc-git/libc/string/bzero.c 2014-06-02 17:40:34.186712937 +0200
  43949. @@ -5,7 +5,7 @@
  43950. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  43951. */
  43952. -#include "_string.h"
  43953. +#include <string.h>
  43954. #ifdef __UCLIBC_SUSV3_LEGACY__
  43955. void bzero(void *s, size_t n)
  43956. diff -Nur uClibc-0.9.33.2/libc/string/_collate.c uClibc-git/libc/string/_collate.c
  43957. --- uClibc-0.9.33.2/libc/string/_collate.c 2012-05-15 09:20:09.000000000 +0200
  43958. +++ uClibc-git/libc/string/_collate.c 2014-06-02 17:40:34.182712914 +0200
  43959. @@ -159,7 +159,7 @@
  43960. #define N (1)
  43961. #else /* WANT_WIDE */
  43962. wchar_t WC;
  43963. - size_t n0, nx;
  43964. + size_t n0, nx = 0;
  43965. #define N n0
  43966. #endif /* WANT_WIDE */
  43967. diff -Nur uClibc-0.9.33.2/libc/string/cris/memcopy.h uClibc-git/libc/string/cris/memcopy.h
  43968. --- uClibc-0.9.33.2/libc/string/cris/memcopy.h 2012-05-15 09:20:09.000000000 +0200
  43969. +++ uClibc-git/libc/string/cris/memcopy.h 2014-06-02 17:40:34.186712937 +0200
  43970. @@ -16,8 +16,7 @@
  43971. You should have received a copy of the GNU Library General Public
  43972. License along with the GNU C Library; see the file COPYING.LIB. If not,
  43973. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  43974. - Boston, MA 02111-1307, USA. */
  43975. + see <http://www.gnu.org/licenses/>. */
  43976. #include "../generic/memcopy.h"
  43977. diff -Nur uClibc-0.9.33.2/libc/string/cris/memmove.c uClibc-git/libc/string/cris/memmove.c
  43978. --- uClibc-0.9.33.2/libc/string/cris/memmove.c 2012-05-15 09:20:09.000000000 +0200
  43979. +++ uClibc-git/libc/string/cris/memmove.c 2014-06-02 17:40:34.186712937 +0200
  43980. @@ -18,9 +18,8 @@
  43981. Lesser General Public License for more details.
  43982. You should have received a copy of the GNU Lesser General Public
  43983. - License along with the GNU C Library; if not, write to the Free
  43984. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  43985. - 02111-1307 USA. */
  43986. + License along with the GNU C Library; if not, see
  43987. + <http://www.gnu.org/licenses/>. */
  43988. #include <string.h>
  43989. diff -Nur uClibc-0.9.33.2/libc/string/dirname.c uClibc-git/libc/string/dirname.c
  43990. --- uClibc-0.9.33.2/libc/string/dirname.c 2012-05-15 09:20:09.000000000 +0200
  43991. +++ uClibc-git/libc/string/dirname.c 2014-06-02 17:40:34.186712937 +0200
  43992. @@ -5,7 +5,8 @@
  43993. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  43994. */
  43995. -#include "_string.h"
  43996. +#define __need_NULL
  43997. +#include <stddef.h>
  43998. #include <libgen.h>
  43999. char *dirname(char *path)
  44000. diff -Nur uClibc-0.9.33.2/libc/string/ffsll.c uClibc-git/libc/string/ffsll.c
  44001. --- uClibc-0.9.33.2/libc/string/ffsll.c 2012-05-15 09:20:09.000000000 +0200
  44002. +++ uClibc-git/libc/string/ffsll.c 2014-06-02 17:40:34.186712937 +0200
  44003. @@ -13,9 +13,8 @@
  44004. Lesser General Public License for more details.
  44005. You should have received a copy of the GNU Lesser General Public
  44006. - License along with the GNU C Library; if not, write to the Free
  44007. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44008. - 02111-1307 USA. */
  44009. + License along with the GNU C Library; if not, see
  44010. + <http://www.gnu.org/licenses/>. */
  44011. #include <limits.h>
  44012. #include <string.h>
  44013. diff -Nur uClibc-0.9.33.2/libc/string/frv/memcpy.S uClibc-git/libc/string/frv/memcpy.S
  44014. --- uClibc-0.9.33.2/libc/string/frv/memcpy.S 2012-05-15 09:20:09.000000000 +0200
  44015. +++ uClibc-git/libc/string/frv/memcpy.S 2014-06-02 17:40:34.186712937 +0200
  44016. @@ -14,8 +14,8 @@
  44017. * Library General Public License for more details.
  44018. *
  44019. * You should have received a copy of the GNU Library General Public
  44020. - * License along with this library; if not, write to the Free
  44021. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  44022. + * License along with this library; if not, see
  44023. + * <http://www.gnu.org/licenses/>.
  44024. */
  44025. #include <features.h>
  44026. diff -Nur uClibc-0.9.33.2/libc/string/frv/memset.S uClibc-git/libc/string/frv/memset.S
  44027. --- uClibc-0.9.33.2/libc/string/frv/memset.S 2012-05-15 09:20:09.000000000 +0200
  44028. +++ uClibc-git/libc/string/frv/memset.S 2014-06-02 17:40:34.186712937 +0200
  44029. @@ -14,8 +14,8 @@
  44030. * Library General Public License for more details.
  44031. *
  44032. * You should have received a copy of the GNU Library General Public
  44033. - * License along with this library; if not, write to the Free
  44034. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  44035. + * License along with this library; if not, see
  44036. + * <http://www.gnu.org/licenses/>.
  44037. */
  44038. #include <features.h>
  44039. diff -Nur uClibc-0.9.33.2/libc/string/generic/memchr.c uClibc-git/libc/string/generic/memchr.c
  44040. --- uClibc-0.9.33.2/libc/string/generic/memchr.c 2012-05-15 09:20:09.000000000 +0200
  44041. +++ uClibc-git/libc/string/generic/memchr.c 2014-06-02 17:40:34.186712937 +0200
  44042. @@ -17,9 +17,8 @@
  44043. Lesser General Public License for more details.
  44044. You should have received a copy of the GNU Lesser General Public
  44045. - License along with the GNU C Library; if not, write to the Free
  44046. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44047. - 02111-1307 USA. */
  44048. + License along with the GNU C Library; if not, see
  44049. + <http://www.gnu.org/licenses/>. */
  44050. #include <string.h>
  44051. #include <stdlib.h>
  44052. diff -Nur uClibc-0.9.33.2/libc/string/generic/memcmp.c uClibc-git/libc/string/generic/memcmp.c
  44053. --- uClibc-0.9.33.2/libc/string/generic/memcmp.c 2012-05-15 09:20:09.000000000 +0200
  44054. +++ uClibc-git/libc/string/generic/memcmp.c 2014-06-02 17:40:34.186712937 +0200
  44055. @@ -14,9 +14,8 @@
  44056. Lesser General Public License for more details.
  44057. You should have received a copy of the GNU Lesser General Public
  44058. - License along with the GNU C Library; if not, write to the Free
  44059. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44060. - 02111-1307 USA. */
  44061. + License along with the GNU C Library; if not, see
  44062. + <http://www.gnu.org/licenses/>. */
  44063. #include <string.h>
  44064. #include "memcopy.h"
  44065. diff -Nur uClibc-0.9.33.2/libc/string/generic/memcopy.h uClibc-git/libc/string/generic/memcopy.h
  44066. --- uClibc-0.9.33.2/libc/string/generic/memcopy.h 2012-05-15 09:20:09.000000000 +0200
  44067. +++ uClibc-git/libc/string/generic/memcopy.h 2014-06-02 17:40:34.186712937 +0200
  44068. @@ -14,9 +14,8 @@
  44069. Lesser General Public License for more details.
  44070. You should have received a copy of the GNU Lesser General Public
  44071. - License along with the GNU C Library; if not, write to the Free
  44072. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44073. - 02111-1307 USA. */
  44074. + License along with the GNU C Library; if not, see
  44075. + <http://www.gnu.org/licenses/>. */
  44076. /* The strategy of the memory functions is:
  44077. diff -Nur uClibc-0.9.33.2/libc/string/generic/memcpy.c uClibc-git/libc/string/generic/memcpy.c
  44078. --- uClibc-0.9.33.2/libc/string/generic/memcpy.c 2012-05-15 09:20:09.000000000 +0200
  44079. +++ uClibc-git/libc/string/generic/memcpy.c 2014-06-02 17:40:34.186712937 +0200
  44080. @@ -15,9 +15,8 @@
  44081. Lesser General Public License for more details.
  44082. You should have received a copy of the GNU Lesser General Public
  44083. - License along with the GNU C Library; if not, write to the Free
  44084. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44085. - 02111-1307 USA. */
  44086. + License along with the GNU C Library; if not, see
  44087. + <http://www.gnu.org/licenses/>. */
  44088. #include <string.h>
  44089. #include "memcopy.h"
  44090. diff -Nur uClibc-0.9.33.2/libc/string/generic/memmem.c uClibc-git/libc/string/generic/memmem.c
  44091. --- uClibc-0.9.33.2/libc/string/generic/memmem.c 2012-05-15 09:20:09.000000000 +0200
  44092. +++ uClibc-git/libc/string/generic/memmem.c 2014-06-02 17:40:34.186712937 +0200
  44093. @@ -12,9 +12,8 @@
  44094. Lesser General Public License for more details.
  44095. You should have received a copy of the GNU Lesser General Public
  44096. - License along with the GNU C Library; if not, write to the Free
  44097. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44098. - 02111-1307 USA. */
  44099. + License along with the GNU C Library; if not, see
  44100. + <http://www.gnu.org/licenses/>. */
  44101. #include <string.h>
  44102. #include <stddef.h>
  44103. diff -Nur uClibc-0.9.33.2/libc/string/generic/memmove.c uClibc-git/libc/string/generic/memmove.c
  44104. --- uClibc-0.9.33.2/libc/string/generic/memmove.c 2012-05-15 09:20:09.000000000 +0200
  44105. +++ uClibc-git/libc/string/generic/memmove.c 2014-06-02 17:40:34.186712937 +0200
  44106. @@ -15,9 +15,8 @@
  44107. Lesser General Public License for more details.
  44108. You should have received a copy of the GNU Lesser General Public
  44109. - License along with the GNU C Library; if not, write to the Free
  44110. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44111. - 02111-1307 USA. */
  44112. + License along with the GNU C Library; if not, see
  44113. + <http://www.gnu.org/licenses/>. */
  44114. #include <string.h>
  44115. diff -Nur uClibc-0.9.33.2/libc/string/generic/memrchr.c uClibc-git/libc/string/generic/memrchr.c
  44116. --- uClibc-0.9.33.2/libc/string/generic/memrchr.c 2012-05-15 09:20:09.000000000 +0200
  44117. +++ uClibc-git/libc/string/generic/memrchr.c 2014-06-02 17:40:34.186712937 +0200
  44118. @@ -18,9 +18,8 @@
  44119. Lesser General Public License for more details.
  44120. You should have received a copy of the GNU Lesser General Public
  44121. - License along with the GNU C Library; if not, write to the Free
  44122. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44123. - 02111-1307 USA. */
  44124. + License along with the GNU C Library; if not, see
  44125. + <http://www.gnu.org/licenses/>. */
  44126. #include <string.h>
  44127. #include <stdlib.h>
  44128. diff -Nur uClibc-0.9.33.2/libc/string/generic/memset.c uClibc-git/libc/string/generic/memset.c
  44129. --- uClibc-0.9.33.2/libc/string/generic/memset.c 2012-05-15 09:20:09.000000000 +0200
  44130. +++ uClibc-git/libc/string/generic/memset.c 2014-06-02 17:40:34.186712937 +0200
  44131. @@ -12,9 +12,8 @@
  44132. Lesser General Public License for more details.
  44133. You should have received a copy of the GNU Lesser General Public
  44134. - License along with the GNU C Library; if not, write to the Free
  44135. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44136. - 02111-1307 USA. */
  44137. + License along with the GNU C Library; if not, see
  44138. + <http://www.gnu.org/licenses/>. */
  44139. #include <string.h>
  44140. #include "memcopy.h"
  44141. diff -Nur uClibc-0.9.33.2/libc/string/generic/pagecopy.h uClibc-git/libc/string/generic/pagecopy.h
  44142. --- uClibc-0.9.33.2/libc/string/generic/pagecopy.h 2012-05-15 09:20:09.000000000 +0200
  44143. +++ uClibc-git/libc/string/generic/pagecopy.h 2014-06-02 17:40:34.186712937 +0200
  44144. @@ -13,9 +13,8 @@
  44145. Lesser General Public License for more details.
  44146. You should have received a copy of the GNU Lesser General Public
  44147. - License along with the GNU C Library; if not, write to the Free
  44148. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44149. - 02111-1307 USA. */
  44150. + License along with the GNU C Library; if not, see
  44151. + <http://www.gnu.org/licenses/>. */
  44152. /* This file defines the macro:
  44153. diff -Nur uClibc-0.9.33.2/libc/string/generic/rawmemchr.c uClibc-git/libc/string/generic/rawmemchr.c
  44154. --- uClibc-0.9.33.2/libc/string/generic/rawmemchr.c 2012-05-15 09:20:09.000000000 +0200
  44155. +++ uClibc-git/libc/string/generic/rawmemchr.c 2014-06-02 17:40:34.186712937 +0200
  44156. @@ -17,9 +17,8 @@
  44157. Lesser General Public License for more details.
  44158. You should have received a copy of the GNU Lesser General Public
  44159. - License along with the GNU C Library; if not, write to the Free
  44160. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44161. - 02111-1307 USA. */
  44162. + License along with the GNU C Library; if not, see
  44163. + <http://www.gnu.org/licenses/>. */
  44164. #include <string.h>
  44165. #include <stdlib.h>
  44166. diff -Nur uClibc-0.9.33.2/libc/string/generic/strcat.c uClibc-git/libc/string/generic/strcat.c
  44167. --- uClibc-0.9.33.2/libc/string/generic/strcat.c 2012-05-15 09:20:09.000000000 +0200
  44168. +++ uClibc-git/libc/string/generic/strcat.c 2014-06-02 17:40:34.186712937 +0200
  44169. @@ -12,9 +12,8 @@
  44170. Lesser General Public License for more details.
  44171. You should have received a copy of the GNU Lesser General Public
  44172. - License along with the GNU C Library; if not, write to the Free
  44173. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44174. - 02111-1307 USA. */
  44175. + License along with the GNU C Library; if not, see
  44176. + <http://www.gnu.org/licenses/>. */
  44177. #include <string.h>
  44178. #include "memcopy.h"
  44179. diff -Nur uClibc-0.9.33.2/libc/string/generic/strchr.c uClibc-git/libc/string/generic/strchr.c
  44180. --- uClibc-0.9.33.2/libc/string/generic/strchr.c 2012-05-15 09:20:09.000000000 +0200
  44181. +++ uClibc-git/libc/string/generic/strchr.c 2014-06-02 17:40:34.186712937 +0200
  44182. @@ -17,9 +17,8 @@
  44183. Lesser General Public License for more details.
  44184. You should have received a copy of the GNU Lesser General Public
  44185. - License along with the GNU C Library; if not, write to the Free
  44186. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44187. - 02111-1307 USA. */
  44188. + License along with the GNU C Library; if not, see
  44189. + <http://www.gnu.org/licenses/>. */
  44190. #include <string.h>
  44191. #include <stdlib.h>
  44192. diff -Nur uClibc-0.9.33.2/libc/string/generic/strchrnul.c uClibc-git/libc/string/generic/strchrnul.c
  44193. --- uClibc-0.9.33.2/libc/string/generic/strchrnul.c 2012-05-15 09:20:09.000000000 +0200
  44194. +++ uClibc-git/libc/string/generic/strchrnul.c 2014-06-02 17:40:34.186712937 +0200
  44195. @@ -17,9 +17,8 @@
  44196. Lesser General Public License for more details.
  44197. You should have received a copy of the GNU Lesser General Public
  44198. - License along with the GNU C Library; if not, write to the Free
  44199. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44200. - 02111-1307 USA. */
  44201. + License along with the GNU C Library; if not, see
  44202. + <http://www.gnu.org/licenses/>. */
  44203. #include <string.h>
  44204. #include <stdlib.h>
  44205. diff -Nur uClibc-0.9.33.2/libc/string/generic/strcmp.c uClibc-git/libc/string/generic/strcmp.c
  44206. --- uClibc-0.9.33.2/libc/string/generic/strcmp.c 2012-05-15 09:20:09.000000000 +0200
  44207. +++ uClibc-git/libc/string/generic/strcmp.c 2014-06-02 17:40:34.186712937 +0200
  44208. @@ -12,9 +12,8 @@
  44209. Lesser General Public License for more details.
  44210. You should have received a copy of the GNU Lesser General Public
  44211. - License along with the GNU C Library; if not, write to the Free
  44212. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44213. - 02111-1307 USA. */
  44214. + License along with the GNU C Library; if not, see
  44215. + <http://www.gnu.org/licenses/>. */
  44216. #include <string.h>
  44217. diff -Nur uClibc-0.9.33.2/libc/string/generic/strcpy.c uClibc-git/libc/string/generic/strcpy.c
  44218. --- uClibc-0.9.33.2/libc/string/generic/strcpy.c 2012-05-15 09:20:09.000000000 +0200
  44219. +++ uClibc-git/libc/string/generic/strcpy.c 2014-06-02 17:40:34.186712937 +0200
  44220. @@ -12,9 +12,8 @@
  44221. Lesser General Public License for more details.
  44222. You should have received a copy of the GNU Lesser General Public
  44223. - License along with the GNU C Library; if not, write to the Free
  44224. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44225. - 02111-1307 USA. */
  44226. + License along with the GNU C Library; if not, see
  44227. + <http://www.gnu.org/licenses/>. */
  44228. #include <string.h>
  44229. diff -Nur uClibc-0.9.33.2/libc/string/generic/strcspn.c uClibc-git/libc/string/generic/strcspn.c
  44230. --- uClibc-0.9.33.2/libc/string/generic/strcspn.c 2012-05-15 09:20:09.000000000 +0200
  44231. +++ uClibc-git/libc/string/generic/strcspn.c 2014-06-02 17:40:34.186712937 +0200
  44232. @@ -12,9 +12,8 @@
  44233. Lesser General Public License for more details.
  44234. You should have received a copy of the GNU Lesser General Public
  44235. - License along with the GNU C Library; if not, write to the Free
  44236. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44237. - 02111-1307 USA. */
  44238. + License along with the GNU C Library; if not, see
  44239. + <http://www.gnu.org/licenses/>. */
  44240. #include <string.h>
  44241. diff -Nur uClibc-0.9.33.2/libc/string/generic/strlen.c uClibc-git/libc/string/generic/strlen.c
  44242. --- uClibc-0.9.33.2/libc/string/generic/strlen.c 2012-05-15 09:20:09.000000000 +0200
  44243. +++ uClibc-git/libc/string/generic/strlen.c 2014-06-02 17:40:34.186712937 +0200
  44244. @@ -15,9 +15,8 @@
  44245. Lesser General Public License for more details.
  44246. You should have received a copy of the GNU Lesser General Public
  44247. - License along with the GNU C Library; if not, write to the Free
  44248. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44249. - 02111-1307 USA. */
  44250. + License along with the GNU C Library; if not, see
  44251. + <http://www.gnu.org/licenses/>. */
  44252. #include <string.h>
  44253. #include <stdlib.h>
  44254. diff -Nur uClibc-0.9.33.2/libc/string/generic/strncat.c uClibc-git/libc/string/generic/strncat.c
  44255. --- uClibc-0.9.33.2/libc/string/generic/strncat.c 2012-05-15 09:20:09.000000000 +0200
  44256. +++ uClibc-git/libc/string/generic/strncat.c 2014-06-02 17:40:34.186712937 +0200
  44257. @@ -12,9 +12,8 @@
  44258. Lesser General Public License for more details.
  44259. You should have received a copy of the GNU Lesser General Public
  44260. - License along with the GNU C Library; if not, write to the Free
  44261. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44262. - 02111-1307 USA. */
  44263. + License along with the GNU C Library; if not, see
  44264. + <http://www.gnu.org/licenses/>. */
  44265. #include <string.h>
  44266. diff -Nur uClibc-0.9.33.2/libc/string/generic/strncmp.c uClibc-git/libc/string/generic/strncmp.c
  44267. --- uClibc-0.9.33.2/libc/string/generic/strncmp.c 2012-05-15 09:20:09.000000000 +0200
  44268. +++ uClibc-git/libc/string/generic/strncmp.c 2014-06-02 17:40:34.186712937 +0200
  44269. @@ -12,9 +12,8 @@
  44270. Lesser General Public License for more details.
  44271. You should have received a copy of the GNU Lesser General Public
  44272. - License along with the GNU C Library; if not, write to the Free
  44273. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44274. - 02111-1307 USA. */
  44275. + License along with the GNU C Library; if not, see
  44276. + <http://www.gnu.org/licenses/>. */
  44277. #include <string.h>
  44278. #include "memcopy.h"
  44279. diff -Nur uClibc-0.9.33.2/libc/string/generic/strncpy.c uClibc-git/libc/string/generic/strncpy.c
  44280. --- uClibc-0.9.33.2/libc/string/generic/strncpy.c 2012-05-15 09:20:09.000000000 +0200
  44281. +++ uClibc-git/libc/string/generic/strncpy.c 2014-06-02 17:40:34.186712937 +0200
  44282. @@ -12,9 +12,8 @@
  44283. Lesser General Public License for more details.
  44284. You should have received a copy of the GNU Lesser General Public
  44285. - License along with the GNU C Library; if not, write to the Free
  44286. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44287. - 02111-1307 USA. */
  44288. + License along with the GNU C Library; if not, see
  44289. + <http://www.gnu.org/licenses/>. */
  44290. #include <string.h>
  44291. #include "memcopy.h"
  44292. diff -Nur uClibc-0.9.33.2/libc/string/generic/strnlen.c uClibc-git/libc/string/generic/strnlen.c
  44293. --- uClibc-0.9.33.2/libc/string/generic/strnlen.c 2012-05-15 09:20:09.000000000 +0200
  44294. +++ uClibc-git/libc/string/generic/strnlen.c 2014-06-02 17:40:34.186712937 +0200
  44295. @@ -17,9 +17,8 @@
  44296. Lesser General Public License for more details.
  44297. You should have received a copy of the GNU Lesser General Public
  44298. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  44299. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  44300. - Boston, MA 02111-1307, USA. */
  44301. + License along with the GNU C Library; see the file COPYING.LIB. If
  44302. + not, see <http://www.gnu.org/licenses/>. */
  44303. #include <string.h>
  44304. #include <stdlib.h>
  44305. diff -Nur uClibc-0.9.33.2/libc/string/generic/strrchr.c uClibc-git/libc/string/generic/strrchr.c
  44306. --- uClibc-0.9.33.2/libc/string/generic/strrchr.c 2012-05-15 09:20:09.000000000 +0200
  44307. +++ uClibc-git/libc/string/generic/strrchr.c 2014-06-02 17:40:34.186712937 +0200
  44308. @@ -12,9 +12,8 @@
  44309. Lesser General Public License for more details.
  44310. You should have received a copy of the GNU Lesser General Public
  44311. - License along with the GNU C Library; if not, write to the Free
  44312. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44313. - 02111-1307 USA. */
  44314. + License along with the GNU C Library; if not, see
  44315. + <http://www.gnu.org/licenses/>. */
  44316. #include <string.h>
  44317. diff -Nur uClibc-0.9.33.2/libc/string/generic/strsep.c uClibc-git/libc/string/generic/strsep.c
  44318. --- uClibc-0.9.33.2/libc/string/generic/strsep.c 2012-05-15 09:20:09.000000000 +0200
  44319. +++ uClibc-git/libc/string/generic/strsep.c 2014-06-02 17:40:34.186712937 +0200
  44320. @@ -12,9 +12,8 @@
  44321. Lesser General Public License for more details.
  44322. You should have received a copy of the GNU Lesser General Public
  44323. - License along with the GNU C Library; if not, write to the Free
  44324. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44325. - 02111-1307 USA. */
  44326. + License along with the GNU C Library; if not, see
  44327. + <http://www.gnu.org/licenses/>. */
  44328. #include <string.h>
  44329. diff -Nur uClibc-0.9.33.2/libc/string/generic/strspn.c uClibc-git/libc/string/generic/strspn.c
  44330. --- uClibc-0.9.33.2/libc/string/generic/strspn.c 2012-05-15 09:20:09.000000000 +0200
  44331. +++ uClibc-git/libc/string/generic/strspn.c 2014-06-02 17:40:34.186712937 +0200
  44332. @@ -12,9 +12,8 @@
  44333. Lesser General Public License for more details.
  44334. You should have received a copy of the GNU Lesser General Public
  44335. - License along with the GNU C Library; if not, write to the Free
  44336. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44337. - 02111-1307 USA. */
  44338. + License along with the GNU C Library; if not, see
  44339. + <http://www.gnu.org/licenses/>. */
  44340. #include <string.h>
  44341. diff -Nur uClibc-0.9.33.2/libc/string/generic/strstr.c uClibc-git/libc/string/generic/strstr.c
  44342. --- uClibc-0.9.33.2/libc/string/generic/strstr.c 2012-05-15 09:20:09.000000000 +0200
  44343. +++ uClibc-git/libc/string/generic/strstr.c 2014-06-02 17:40:34.186712937 +0200
  44344. @@ -13,9 +13,8 @@
  44345. Lesser General Public License for more details.
  44346. You should have received a copy of the GNU Lesser General Public
  44347. - License along with the GNU C Library; if not, write to the Free
  44348. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44349. - 02111-1307 USA. */
  44350. + License along with the GNU C Library; if not, see
  44351. + <http://www.gnu.org/licenses/>. */
  44352. /*
  44353. * My personal strstr() implementation that beats most other algorithms.
  44354. diff -Nur uClibc-0.9.33.2/libc/string/generic/strtok_r.c uClibc-git/libc/string/generic/strtok_r.c
  44355. --- uClibc-0.9.33.2/libc/string/generic/strtok_r.c 2012-05-15 09:20:09.000000000 +0200
  44356. +++ uClibc-git/libc/string/generic/strtok_r.c 2014-06-02 17:40:34.186712937 +0200
  44357. @@ -13,9 +13,8 @@
  44358. Lesser General Public License for more details.
  44359. You should have received a copy of the GNU Lesser General Public
  44360. - License along with the GNU C Library; if not, write to the Free
  44361. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44362. - 02111-1307 USA. */
  44363. + License along with the GNU C Library; if not, see
  44364. + <http://www.gnu.org/licenses/>. */
  44365. #include <string.h>
  44366. diff -Nur uClibc-0.9.33.2/libc/string/__glibc_strerror_r.c uClibc-git/libc/string/__glibc_strerror_r.c
  44367. --- uClibc-0.9.33.2/libc/string/__glibc_strerror_r.c 2012-05-15 09:20:09.000000000 +0200
  44368. +++ uClibc-git/libc/string/__glibc_strerror_r.c 2014-06-02 17:40:34.182712914 +0200
  44369. @@ -5,9 +5,13 @@
  44370. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  44371. */
  44372. +/* get rid of REDIRECT */
  44373. +#define strerror_r __hide_strerror_r
  44374. +
  44375. #include <features.h>
  44376. #include <string.h>
  44377. +#undef strerror_r
  44378. char *__glibc_strerror_r(int errnum, char *strerrbuf, size_t buflen)
  44379. {
  44380. @@ -16,3 +20,6 @@
  44381. return strerrbuf;
  44382. }
  44383. libc_hidden_def(__glibc_strerror_r)
  44384. +#if !defined __USE_XOPEN2K || defined __USE_GNU
  44385. +strong_alias(__glibc_strerror_r,strerror_r)
  44386. +#endif
  44387. diff -Nur uClibc-0.9.33.2/libc/string/ia64/bcopy.S uClibc-git/libc/string/ia64/bcopy.S
  44388. --- uClibc-0.9.33.2/libc/string/ia64/bcopy.S 2012-05-15 09:20:09.000000000 +0200
  44389. +++ uClibc-git/libc/string/ia64/bcopy.S 2014-06-02 17:40:34.202713025 +0200
  44390. @@ -1,4 +1,4 @@
  44391. -#include "sysdep.h"
  44392. +#include <sysdep.h>
  44393. #ifdef __UCLIBC_SUSV3_LEGACY__
  44394. diff -Nur uClibc-0.9.33.2/libc/string/ia64/bzero.S uClibc-git/libc/string/ia64/bzero.S
  44395. --- uClibc-0.9.33.2/libc/string/ia64/bzero.S 2012-05-15 09:20:09.000000000 +0200
  44396. +++ uClibc-git/libc/string/ia64/bzero.S 2014-06-02 17:40:34.202713025 +0200
  44397. @@ -15,9 +15,8 @@
  44398. Lesser General Public License for more details.
  44399. You should have received a copy of the GNU Lesser General Public
  44400. - License along with the GNU C Library; if not, write to the Free
  44401. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44402. - 02111-1307 USA. */
  44403. + License along with the GNU C Library; if not, see
  44404. + <http://www.gnu.org/licenses/>. */
  44405. /* Return: dest
  44406. @@ -32,7 +31,7 @@
  44407. Since a stf.spill f0 can store 16B in one go, we use this instruction
  44408. to get peak speed. */
  44409. -#include "sysdep.h"
  44410. +#include <sysdep.h>
  44411. #ifdef __UCLIBC_SUSV3_LEGACY__
  44412. diff -Nur uClibc-0.9.33.2/libc/string/ia64/memccpy.S uClibc-git/libc/string/ia64/memccpy.S
  44413. --- uClibc-0.9.33.2/libc/string/ia64/memccpy.S 2012-05-15 09:20:09.000000000 +0200
  44414. +++ uClibc-git/libc/string/ia64/memccpy.S 2014-06-02 17:40:34.206713047 +0200
  44415. @@ -14,9 +14,8 @@
  44416. Lesser General Public License for more details.
  44417. You should have received a copy of the GNU Lesser General Public
  44418. - License along with the GNU C Library; if not, write to the Free
  44419. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44420. - 02111-1307 USA. */
  44421. + License along with the GNU C Library; if not, see
  44422. + <http://www.gnu.org/licenses/>. */
  44423. /* Return: a pointer to the next byte after char in dest or NULL
  44424. @@ -31,7 +30,7 @@
  44425. This implementation assumes that it is safe to do read ahead
  44426. in the src block, without getting beyond its limit. */
  44427. -#include "sysdep.h"
  44428. +#include <sysdep.h>
  44429. #undef ret
  44430. #define OP_T_THRES 16
  44431. diff -Nur uClibc-0.9.33.2/libc/string/ia64/memchr.S uClibc-git/libc/string/ia64/memchr.S
  44432. --- uClibc-0.9.33.2/libc/string/ia64/memchr.S 2012-05-15 09:20:09.000000000 +0200
  44433. +++ uClibc-git/libc/string/ia64/memchr.S 2014-06-02 17:40:34.206713047 +0200
  44434. @@ -14,9 +14,8 @@
  44435. Lesser General Public License for more details.
  44436. You should have received a copy of the GNU Lesser General Public
  44437. - License along with the GNU C Library; if not, write to the Free
  44438. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44439. - 02111-1307 USA. */
  44440. + License along with the GNU C Library; if not, see
  44441. + <http://www.gnu.org/licenses/>. */
  44442. /* Return: the address of the first occurence of chr in str or NULL
  44443. @@ -40,7 +39,7 @@
  44444. All the loops in this function could have had the internal branch removed
  44445. if br.ctop and br.cloop could be predicated :-(. */
  44446. -#include "sysdep.h"
  44447. +#include <sysdep.h>
  44448. #undef ret
  44449. #define saved_pr r15
  44450. diff -Nur uClibc-0.9.33.2/libc/string/ia64/memcmp.S uClibc-git/libc/string/ia64/memcmp.S
  44451. --- uClibc-0.9.33.2/libc/string/ia64/memcmp.S 2012-05-15 09:20:09.000000000 +0200
  44452. +++ uClibc-git/libc/string/ia64/memcmp.S 2014-06-02 17:40:34.206713047 +0200
  44453. @@ -14,9 +14,8 @@
  44454. Lesser General Public License for more details.
  44455. You should have received a copy of the GNU Lesser General Public
  44456. - License along with the GNU C Library; if not, write to the Free
  44457. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44458. - 02111-1307 USA. */
  44459. + License along with the GNU C Library; if not, see
  44460. + <http://www.gnu.org/licenses/>. */
  44461. /* Return: the result of the comparison
  44462. @@ -33,7 +32,7 @@
  44463. and all the mux1 instructions should be replaced by plain mov's. */
  44464. -#include "sysdep.h"
  44465. +#include <sysdep.h>
  44466. #undef ret
  44467. #define OP_T_THRES 16
  44468. diff -Nur uClibc-0.9.33.2/libc/string/ia64/memcpy.S uClibc-git/libc/string/ia64/memcpy.S
  44469. --- uClibc-0.9.33.2/libc/string/ia64/memcpy.S 2012-05-15 09:20:09.000000000 +0200
  44470. +++ uClibc-git/libc/string/ia64/memcpy.S 2014-06-02 17:40:34.206713047 +0200
  44471. @@ -15,9 +15,8 @@
  44472. Lesser General Public License for more details.
  44473. You should have received a copy of the GNU Lesser General Public
  44474. - License along with the GNU C Library; if not, write to the Free
  44475. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44476. - 02111-1307 USA. */
  44477. + License along with the GNU C Library; if not, see
  44478. + <http://www.gnu.org/licenses/>. */
  44479. /* Return: dest
  44480. @@ -37,7 +36,7 @@
  44481. #define USE_LFETCH
  44482. #define USE_FLP
  44483. -#include "sysdep.h"
  44484. +#include <sysdep.h>
  44485. #undef ret
  44486. #define LFETCH_DIST 500
  44487. diff -Nur uClibc-0.9.33.2/libc/string/ia64/memmove.S uClibc-git/libc/string/ia64/memmove.S
  44488. --- uClibc-0.9.33.2/libc/string/ia64/memmove.S 2012-05-15 09:20:09.000000000 +0200
  44489. +++ uClibc-git/libc/string/ia64/memmove.S 2014-06-02 17:40:34.206713047 +0200
  44490. @@ -14,9 +14,8 @@
  44491. Lesser General Public License for more details.
  44492. You should have received a copy of the GNU Lesser General Public
  44493. - License along with the GNU C Library; if not, write to the Free
  44494. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44495. - 02111-1307 USA. */
  44496. + License along with the GNU C Library; if not, see
  44497. + <http://www.gnu.org/licenses/>. */
  44498. /* Return: dest
  44499. @@ -33,7 +32,7 @@
  44500. sh1 must be computed using an extra instruction: sub sh1 = 64, sh1
  44501. or the UM.be bit should be cleared at the beginning and set at the end. */
  44502. -#include "sysdep.h"
  44503. +#include <sysdep.h>
  44504. #undef ret
  44505. #define OP_T_THRES 16
  44506. diff -Nur uClibc-0.9.33.2/libc/string/ia64/memset.S uClibc-git/libc/string/ia64/memset.S
  44507. --- uClibc-0.9.33.2/libc/string/ia64/memset.S 2012-05-15 09:20:09.000000000 +0200
  44508. +++ uClibc-git/libc/string/ia64/memset.S 2014-06-02 17:40:34.206713047 +0200
  44509. @@ -15,9 +15,8 @@
  44510. Lesser General Public License for more details.
  44511. You should have received a copy of the GNU Lesser General Public
  44512. - License along with the GNU C Library; if not, write to the Free
  44513. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44514. - 02111-1307 USA. */
  44515. + License along with the GNU C Library; if not, see
  44516. + <http://www.gnu.org/licenses/>. */
  44517. /* Return: dest
  44518. @@ -33,7 +32,7 @@
  44519. Since a stf.spill f0 can store 16B in one go, we use this instruction
  44520. to get peak speed when value = 0. */
  44521. -#include "sysdep.h"
  44522. +#include <sysdep.h>
  44523. #undef ret
  44524. #define dest in0
  44525. diff -Nur uClibc-0.9.33.2/libc/string/ia64/softpipe.h uClibc-git/libc/string/ia64/softpipe.h
  44526. --- uClibc-0.9.33.2/libc/string/ia64/softpipe.h 2012-05-15 09:20:09.000000000 +0200
  44527. +++ uClibc-git/libc/string/ia64/softpipe.h 2014-06-02 17:40:34.206713047 +0200
  44528. @@ -12,9 +12,8 @@
  44529. Lesser General Public License for more details.
  44530. You should have received a copy of the GNU Lesser General Public
  44531. - License along with the GNU C Library; if not, write to the Free
  44532. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44533. - 02111-1307 USA. */
  44534. + License along with the GNU C Library; if not, see
  44535. + <http://www.gnu.org/licenses/>. */
  44536. /* The latency of a memory load assumed by the assembly implementation
  44537. of the mem and str functions. Since we don't have any clue about
  44538. diff -Nur uClibc-0.9.33.2/libc/string/ia64/strchr.S uClibc-git/libc/string/ia64/strchr.S
  44539. --- uClibc-0.9.33.2/libc/string/ia64/strchr.S 2012-05-15 09:20:09.000000000 +0200
  44540. +++ uClibc-git/libc/string/ia64/strchr.S 2014-06-02 17:40:34.206713047 +0200
  44541. @@ -14,9 +14,8 @@
  44542. Lesser General Public License for more details.
  44543. You should have received a copy of the GNU Lesser General Public
  44544. - License along with the GNU C Library; if not, write to the Free
  44545. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44546. - 02111-1307 USA. */
  44547. + License along with the GNU C Library; if not, see
  44548. + <http://www.gnu.org/licenses/>. */
  44549. /* Return: the address of the first occurence of chr in str or NULL
  44550. @@ -30,7 +29,7 @@
  44551. This implementation assumes little endian mode. For big endian mode,
  44552. the instruction czx1.r should be replaced by czx1.l. */
  44553. -#include "sysdep.h"
  44554. +#include <sysdep.h>
  44555. #undef ret
  44556. #define saved_lc r18
  44557. diff -Nur uClibc-0.9.33.2/libc/string/ia64/strcmp.S uClibc-git/libc/string/ia64/strcmp.S
  44558. --- uClibc-0.9.33.2/libc/string/ia64/strcmp.S 2012-05-15 09:20:09.000000000 +0200
  44559. +++ uClibc-git/libc/string/ia64/strcmp.S 2014-06-02 17:40:34.206713047 +0200
  44560. @@ -14,9 +14,8 @@
  44561. Lesser General Public License for more details.
  44562. You should have received a copy of the GNU Lesser General Public
  44563. - License along with the GNU C Library; if not, write to the Free
  44564. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44565. - 02111-1307 USA. */
  44566. + License along with the GNU C Library; if not, see
  44567. + <http://www.gnu.org/licenses/>. */
  44568. /* Return: the result of the comparison
  44569. @@ -27,7 +26,7 @@
  44570. Unlike memcmp(), this function is optimized for mismatches within the
  44571. first few characters. */
  44572. -#include "sysdep.h"
  44573. +#include <sysdep.h>
  44574. #undef ret
  44575. #define s1 in0
  44576. diff -Nur uClibc-0.9.33.2/libc/string/ia64/strcpy.S uClibc-git/libc/string/ia64/strcpy.S
  44577. --- uClibc-0.9.33.2/libc/string/ia64/strcpy.S 2012-05-15 09:20:09.000000000 +0200
  44578. +++ uClibc-git/libc/string/ia64/strcpy.S 2014-06-02 17:40:34.206713047 +0200
  44579. @@ -14,9 +14,8 @@
  44580. Lesser General Public License for more details.
  44581. You should have received a copy of the GNU Lesser General Public
  44582. - License along with the GNU C Library; if not, write to the Free
  44583. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44584. - 02111-1307 USA. */
  44585. + License along with the GNU C Library; if not, see
  44586. + <http://www.gnu.org/licenses/>. */
  44587. /* Return: dest
  44588. @@ -31,7 +30,7 @@
  44589. shr.u tmp = r[0], sh2 // tmp = w1 >> sh2
  44590. */
  44591. -#include "sysdep.h"
  44592. +#include <sysdep.h>
  44593. #undef ret
  44594. #define saved_lc r15
  44595. diff -Nur uClibc-0.9.33.2/libc/string/ia64/strlen.S uClibc-git/libc/string/ia64/strlen.S
  44596. --- uClibc-0.9.33.2/libc/string/ia64/strlen.S 2012-05-15 09:20:09.000000000 +0200
  44597. +++ uClibc-git/libc/string/ia64/strlen.S 2014-06-02 17:40:34.206713047 +0200
  44598. @@ -14,9 +14,8 @@
  44599. Lesser General Public License for more details.
  44600. You should have received a copy of the GNU Lesser General Public
  44601. - License along with the GNU C Library; if not, write to the Free
  44602. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44603. - 02111-1307 USA. */
  44604. + License along with the GNU C Library; if not, see
  44605. + <http://www.gnu.org/licenses/>. */
  44606. /* Return: the length of the input string
  44607. @@ -33,7 +32,7 @@
  44608. This implementation assumes little endian mode. For big endian mode,
  44609. the instruction czx1.r should be replaced by czx1.l. */
  44610. -#include "sysdep.h"
  44611. +#include <sysdep.h>
  44612. #undef ret
  44613. #define saved_lc r18
  44614. diff -Nur uClibc-0.9.33.2/libc/string/ia64/strncmp.S uClibc-git/libc/string/ia64/strncmp.S
  44615. --- uClibc-0.9.33.2/libc/string/ia64/strncmp.S 2012-05-15 09:20:09.000000000 +0200
  44616. +++ uClibc-git/libc/string/ia64/strncmp.S 2014-06-02 17:40:34.206713047 +0200
  44617. @@ -14,9 +14,8 @@
  44618. Lesser General Public License for more details.
  44619. You should have received a copy of the GNU Lesser General Public
  44620. - License along with the GNU C Library; if not, write to the Free
  44621. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44622. - 02111-1307 USA. */
  44623. + License along with the GNU C Library; if not, see
  44624. + <http://www.gnu.org/licenses/>. */
  44625. /* Return: the result of the comparison
  44626. @@ -28,7 +27,7 @@
  44627. Unlike memcmp(), this function is optimized for mismatches within the
  44628. first few characters. */
  44629. -#include "sysdep.h"
  44630. +#include <sysdep.h>
  44631. #undef ret
  44632. #define s1 in0
  44633. diff -Nur uClibc-0.9.33.2/libc/string/ia64/strncpy.S uClibc-git/libc/string/ia64/strncpy.S
  44634. --- uClibc-0.9.33.2/libc/string/ia64/strncpy.S 2012-05-15 09:20:09.000000000 +0200
  44635. +++ uClibc-git/libc/string/ia64/strncpy.S 2014-06-02 17:40:34.206713047 +0200
  44636. @@ -15,9 +15,8 @@
  44637. Lesser General Public License for more details.
  44638. You should have received a copy of the GNU Lesser General Public
  44639. - License along with the GNU C Library; if not, write to the Free
  44640. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44641. - 02111-1307 USA. */
  44642. + License along with the GNU C Library; if not, see
  44643. + <http://www.gnu.org/licenses/>. */
  44644. /* Return: dest
  44645. @@ -29,7 +28,7 @@
  44646. In this form, it assumes little endian mode.
  44647. */
  44648. -#include "sysdep.h"
  44649. +#include <sysdep.h>
  44650. #undef ret
  44651. #define saved_lc r15
  44652. diff -Nur uClibc-0.9.33.2/libc/string/ia64/sysdep.h uClibc-git/libc/string/ia64/sysdep.h
  44653. --- uClibc-0.9.33.2/libc/string/ia64/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  44654. +++ uClibc-git/libc/string/ia64/sysdep.h 1970-01-01 01:00:00.000000000 +0100
  44655. @@ -1,168 +0,0 @@
  44656. -/* Copyright (C) 1999, 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
  44657. - This file is part of the GNU C Library.
  44658. - Written by Jes Sorensen, <Jes.Sorensen@cern.ch>, April 1999.
  44659. - Based on code originally written by David Mosberger-Tang
  44660. -
  44661. - The GNU C Library is free software; you can redistribute it and/or
  44662. - modify it under the terms of the GNU Lesser General Public
  44663. - License as published by the Free Software Foundation; either
  44664. - version 2.1 of the License, or (at your option) any later version.
  44665. -
  44666. - The GNU C Library is distributed in the hope that it will be useful,
  44667. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  44668. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  44669. - Lesser General Public License for more details.
  44670. -
  44671. - You should have received a copy of the GNU Lesser General Public
  44672. - License along with the GNU C Library; if not, write to the Free
  44673. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44674. - 02111-1307 USA. */
  44675. -
  44676. -#ifndef _LINUX_IA64_SYSDEP_H
  44677. -#define _LINUX_IA64_SYSDEP_H 1
  44678. -
  44679. -#include <features.h>
  44680. -#include <asm/unistd.h>
  44681. -
  44682. -#ifdef __ASSEMBLER__
  44683. -
  44684. -/* Macros to help writing .prologue directives in assembly code. */
  44685. -#define ASM_UNW_PRLG_RP 0x8
  44686. -#define ASM_UNW_PRLG_PFS 0x4
  44687. -#define ASM_UNW_PRLG_PSP 0x2
  44688. -#define ASM_UNW_PRLG_PR 0x1
  44689. -#define ASM_UNW_PRLG_GRSAVE(ninputs) (32+(ninputs))
  44690. -
  44691. -#ifdef __STDC__
  44692. -#define C_LABEL(name) name :
  44693. -#else
  44694. -#define C_LABEL(name) name/**/:
  44695. -#endif
  44696. -
  44697. -#define CALL_MCOUNT
  44698. -
  44699. -#define ENTRY(name) \
  44700. - .text; \
  44701. - .align 32; \
  44702. - .proc C_SYMBOL_NAME(name); \
  44703. - .global C_SYMBOL_NAME(name); \
  44704. - C_LABEL(name) \
  44705. - CALL_MCOUNT
  44706. -
  44707. -#define LEAF(name) \
  44708. - .text; \
  44709. - .align 32; \
  44710. - .proc C_SYMBOL_NAME(name); \
  44711. - .global name; \
  44712. - C_LABEL(name)
  44713. -
  44714. -/* Mark the end of function SYM. */
  44715. -#undef END
  44716. -#define END(sym) .endp C_SYMBOL_NAME(sym)
  44717. -
  44718. -/* For Linux we can use the system call table in the header file
  44719. - /usr/include/asm/unistd.h
  44720. - of the kernel. But these symbols do not follow the SYS_* syntax
  44721. - so we have to redefine the `SYS_ify' macro here. */
  44722. -#undef SYS_ify
  44723. -#ifdef __STDC__
  44724. -# define SYS_ify(syscall_name) __NR_##syscall_name
  44725. -#else
  44726. -# define SYS_ify(syscall_name) __NR_/**/syscall_name
  44727. -#endif
  44728. -
  44729. -/* Linux uses a negative return value to indicate syscall errors, unlike
  44730. - most Unices, which use the condition codes' carry flag.
  44731. -
  44732. - Since version 2.1 the return value of a system call might be negative
  44733. - even if the call succeeded. E.g., the `lseek' system call might return
  44734. - a large offset. Therefore we must not anymore test for < 0, but test
  44735. - for a real error by making sure the value in %d0 is a real error
  44736. - number. Linus said he will make sure the no syscall returns a value
  44737. - in -1 .. -4095 as a valid result so we can savely test with -4095. */
  44738. -
  44739. -/* We don't want the label for the error handler to be visible in the symbol
  44740. - table when we define it here. */
  44741. -#define SYSCALL_ERROR_LABEL __syscall_error
  44742. -
  44743. -#undef PSEUDO
  44744. -#define PSEUDO(name, syscall_name, args) \
  44745. - ENTRY(name) \
  44746. - DO_CALL (SYS_ify(syscall_name)); \
  44747. - cmp.eq p6,p0=-1,r10; \
  44748. -(p6) br.cond.spnt.few __syscall_error;
  44749. -
  44750. -#define DO_CALL_VIA_BREAK(num) \
  44751. - mov r15=num; \
  44752. - break __BREAK_SYSCALL
  44753. -
  44754. -#ifdef IA64_USE_NEW_STUB
  44755. -# ifdef SHARED
  44756. -# define DO_CALL(num) \
  44757. - .prologue; \
  44758. - adds r2 = SYSINFO_OFFSET, r13;; \
  44759. - ld8 r2 = [r2]; \
  44760. - .save ar.pfs, r11; \
  44761. - mov r11 = ar.pfs;; \
  44762. - .body; \
  44763. - mov r15 = num; \
  44764. - mov b7 = r2; \
  44765. - br.call.sptk.many b6 = b7;; \
  44766. - .restore sp; \
  44767. - mov ar.pfs = r11; \
  44768. - .prologue; \
  44769. - .body
  44770. -# else /* !SHARED */
  44771. -# define DO_CALL(num) \
  44772. - .prologue; \
  44773. - mov r15 = num; \
  44774. - movl r2 = _dl_sysinfo;; \
  44775. - ld8 r2 = [r2]; \
  44776. - .save ar.pfs, r11; \
  44777. - mov r11 = ar.pfs;; \
  44778. - .body; \
  44779. - mov b7 = r2; \
  44780. - br.call.sptk.many b6 = b7;; \
  44781. - .restore sp; \
  44782. - mov ar.pfs = r11; \
  44783. - .prologue; \
  44784. - .body
  44785. -# endif
  44786. -#else
  44787. -# define DO_CALL(num) DO_CALL_VIA_BREAK(num)
  44788. -#endif
  44789. -
  44790. -#undef PSEUDO_END
  44791. -#define PSEUDO_END(name) .endp C_SYMBOL_NAME(name);
  44792. -
  44793. -#undef PSEUDO_NOERRNO
  44794. -#define PSEUDO_NOERRNO(name, syscall_name, args) \
  44795. - ENTRY(name) \
  44796. - DO_CALL (SYS_ify(syscall_name));
  44797. -
  44798. -#undef PSEUDO_END_NOERRNO
  44799. -#define PSEUDO_END_NOERRNO(name) .endp C_SYMBOL_NAME(name);
  44800. -
  44801. -#undef PSEUDO_ERRVAL
  44802. -#define PSEUDO_ERRVAL(name, syscall_name, args) \
  44803. - ENTRY(name) \
  44804. - DO_CALL (SYS_ify(syscall_name)); \
  44805. - cmp.eq p6,p0=-1,r10; \
  44806. -(p6) mov r10=r8;
  44807. -
  44808. -
  44809. -#undef PSEUDO_END_ERRVAL
  44810. -#define PSEUDO_END_ERRVAL(name) .endp C_SYMBOL_NAME(name);
  44811. -
  44812. -#undef END
  44813. -#define END(name) \
  44814. - .size C_SYMBOL_NAME(name), . - C_SYMBOL_NAME(name) ; \
  44815. - .endp C_SYMBOL_NAME(name)
  44816. -
  44817. -#define ret br.ret.sptk.few b0
  44818. -#define ret_NOERRNO ret
  44819. -#define ret_ERRVAL ret
  44820. -
  44821. -#endif /* not __ASSEMBLER__ */
  44822. -
  44823. -#endif /* linux/ia64/sysdep.h */
  44824. diff -Nur uClibc-0.9.33.2/libc/string/memmove.c uClibc-git/libc/string/memmove.c
  44825. --- uClibc-0.9.33.2/libc/string/memmove.c 2012-05-15 09:20:09.000000000 +0200
  44826. +++ uClibc-git/libc/string/memmove.c 2014-06-02 17:40:34.206713047 +0200
  44827. @@ -34,5 +34,5 @@
  44828. }
  44829. #ifndef WANT_WIDE
  44830. -libc_hidden_def(Wmemmove)
  44831. +libc_hidden_def(memmove)
  44832. #endif
  44833. diff -Nur uClibc-0.9.33.2/libc/string/metag/Makefile uClibc-git/libc/string/metag/Makefile
  44834. --- uClibc-0.9.33.2/libc/string/metag/Makefile 1970-01-01 01:00:00.000000000 +0100
  44835. +++ uClibc-git/libc/string/metag/Makefile 2014-06-02 17:40:34.206713047 +0200
  44836. @@ -0,0 +1,13 @@
  44837. +# Makefile for uClibc
  44838. +#
  44839. +# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
  44840. +#
  44841. +# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  44842. +#
  44843. +
  44844. +top_srcdir:=../../../
  44845. +top_builddir:=../../../
  44846. +all: objs
  44847. +include $(top_builddir)Rules.mak
  44848. +include ../Makefile.in
  44849. +include $(top_srcdir)Makerules
  44850. diff -Nur uClibc-0.9.33.2/libc/string/metag/memchr.S uClibc-git/libc/string/metag/memchr.S
  44851. --- uClibc-0.9.33.2/libc/string/metag/memchr.S 1970-01-01 01:00:00.000000000 +0100
  44852. +++ uClibc-git/libc/string/metag/memchr.S 2014-06-02 17:40:34.206713047 +0200
  44853. @@ -0,0 +1,156 @@
  44854. +! Copyright (C) 2013 Imagination Technologies Ltd.
  44855. +!
  44856. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  44857. +
  44858. + .text
  44859. + .global _memchr
  44860. + .type _memchr,function
  44861. +! D0Ar6 src
  44862. +! D0Ar2 c
  44863. +! D1Ar3 n
  44864. +_memchr:
  44865. + CMP D1Ar3, #0
  44866. + BEQ $Lexit_fail
  44867. + !! convert c to unsigned char
  44868. + AND D0Ar2,D0Ar2,#0xff
  44869. + MOV D0Ar6, D1Ar1
  44870. + MOV D1Ar5, D0Ar6
  44871. + !! test alignment
  44872. + AND D1Ar5, D1Ar5, #7
  44873. + CMP D1Ar5, #0
  44874. + BNZ $Lunaligned_loop
  44875. + !! length must be greater than or equal to 8 for aligned loop
  44876. + CMP D1Ar3, #8
  44877. + BGE $Laligned_setup
  44878. +$Lunaligned_loop:
  44879. + !! get 1 char from s
  44880. + GETB D0Re0, [D0Ar6++]
  44881. + !! increase alignment counter
  44882. + ADD D1Ar5, D1Ar5, #1
  44883. + !! decrement n
  44884. + SUB D1Ar3, D1Ar3, #1
  44885. + !! exit if we have a match
  44886. + CMP D0Re0, D0Ar2
  44887. + BZ $Lexit_success1
  44888. + !! exit if we have hit the end of the string
  44889. + CMP D1Ar3, #0
  44890. + BZ $Lexit_fail
  44891. + !! fall through if the buffer is aligned now
  44892. + CMP D1Ar5, #8
  44893. + BNE $Lunaligned_loop
  44894. + !! fall through if there is more than 8 bytes left
  44895. + CMP D1Ar3, #8
  44896. + BLT $Lunaligned_loop
  44897. +$Laligned_setup:
  44898. + !! fill the c into 4 bytes
  44899. + MOV D0Ar4, D0Ar2
  44900. + LSL D0Ar4, D0Ar4, #8
  44901. + ADD D0Ar4, D0Ar4, D0Ar2
  44902. + LSL D0Ar4, D0Ar4, #8
  44903. + ADD D0Ar4, D0Ar4, D0Ar2
  44904. + LSL D0Ar4, D0Ar4, #8
  44905. + ADD D0Ar4, D0Ar4, D0Ar2
  44906. + !! divide n by 8
  44907. + MOV D1Ar5, D1Ar3
  44908. + LSR D1Ar5, D1Ar5, #3
  44909. +$Laligned_loop:
  44910. + !! get 8 chars from s
  44911. + GETL D0Re0, D1Re0, [D0Ar6++]
  44912. + !! decrement loop counter
  44913. + SUB D1Ar5, D1Ar5, #1
  44914. + !! test first 4 chars
  44915. + XOR D0Re0, D0Re0, D0Ar4
  44916. + !! test second 4 chars
  44917. + MOV D0Ar2, D1Re0
  44918. + XOR D1Re0, D0Ar2, D0Ar4
  44919. + !! check for matches in the first 4 chars
  44920. + MOV D0Ar2, D0Re0
  44921. + ADDT D0Re0, D0Re0, #HI(0xfefefeff)
  44922. + ADD D0Re0, D0Re0, #LO(0xfefefeff)
  44923. + XOR D0Ar2, D0Ar2, #-1
  44924. + AND D0Re0, D0Re0, D0Ar2
  44925. + ANDMT D0Re0, D0Re0, #HI(0x80808080)
  44926. + ANDMB D0Re0, D0Re0, #LO(0x80808080)
  44927. + CMP D0Re0, #0
  44928. + BNZ $Lmatch_word1
  44929. + !! check for matches in the second 4 chars
  44930. + MOV D1Ar1, D1Re0
  44931. + ADDT D1Re0, D1Re0, #HI(0xfefefeff)
  44932. + ADD D1Re0, D1Re0, #LO(0xfefefeff)
  44933. + XOR D1Ar1, D1Ar1, #-1
  44934. + AND D1Re0, D1Re0, D1Ar1
  44935. + ANDMT D1Re0, D1Re0, #HI(0x80808080)
  44936. + ANDMB D1Re0, D1Re0, #LO(0x80808080)
  44937. + CMP D1Re0, #0
  44938. + BNZ $Lmatch_word2
  44939. + !! check if we have reached the end of the buffer
  44940. + CMP D1Ar5, #0
  44941. + BNE $Laligned_loop
  44942. + !! exit if there are no chars left to check
  44943. + AND D1Ar3, D1Ar3, #7
  44944. + CMP D1Ar3, #0
  44945. + BZ $Lexit_fail
  44946. + !! recover c
  44947. + AND D0Ar2, D0Ar4, #0xff
  44948. +$Lbyte_loop:
  44949. + !! get 1 char from s
  44950. + GETB D0Re0, [D0Ar6++]
  44951. + !! decrement n
  44952. + SUB D1Ar3, D1Ar3, #1
  44953. + !! exit if we have a match
  44954. + CMP D0Re0, D0Ar2
  44955. + BZ $Lexit_success1
  44956. + !! fall through if we have run out of chars
  44957. + CMP D1Ar3, #0
  44958. + BNE $Lbyte_loop
  44959. +
  44960. +$Lexit_fail:
  44961. + MOV D0Re0, #0
  44962. + B $Lend
  44963. +
  44964. +$Lmatch_word1:
  44965. + !! move the match word into D1Re0
  44966. + MOV D1Re0, D0Re0
  44967. + !! roll back the buffer pointer by 4 chars
  44968. + SUB D0Ar6, D0Ar6, #4
  44969. +$Lmatch_word2:
  44970. + !! roll back the buffer pointer by 4 chars
  44971. + SUB D0Ar6, D0Ar6, #4
  44972. + !! exit if lowest byte is 0
  44973. + MOV D1Ar1, D1Re0
  44974. + AND D1Ar1, D1Ar1, #0xff
  44975. + CMP D1Ar1, #0
  44976. + BNE $Lexit_success2
  44977. + !! advance buffer pointer to the next char
  44978. + ADD D0Ar6, D0Ar6, #1
  44979. + !! shift in the next lowest byte
  44980. + LSR D1Re0, D1Re0, #8
  44981. + !! exit if lowest byte is 0
  44982. + MOV D1Ar1, D1Re0
  44983. + AND D1Ar1, D1Ar1, #0xff
  44984. + CMP D1Ar1, #0
  44985. + BNE $Lexit_success2
  44986. + !! advance buffer pointer to the next char
  44987. + ADD D0Ar6, D0Ar6, #1
  44988. + !! shift in the next lowest byte
  44989. + LSR D1Re0, D1Re0, #8
  44990. + !! exit if lowest byte is 0
  44991. + MOV D1Ar1, D1Re0
  44992. + AND D1Ar1, D1Ar1, #0xff
  44993. + CMP D1Ar1, #0
  44994. + BNE $Lexit_success2
  44995. + !! the match must be in the last byte, exit
  44996. + ADD D0Ar6, D0Ar6, #1
  44997. + B $Lexit_success2
  44998. +
  44999. +$Lexit_success1:
  45000. + SUB D0Ar6, D0Ar6, #1
  45001. +$Lexit_success2:
  45002. + !! return the buffer pointer
  45003. + MOV D0Re0, D0Ar6
  45004. +$Lend:
  45005. + MOV PC, D1RtP
  45006. +
  45007. + .size _memchr,.-_memchr
  45008. +
  45009. +libc_hidden_def(memchr)
  45010. diff -Nur uClibc-0.9.33.2/libc/string/metag/memcpy.S uClibc-git/libc/string/metag/memcpy.S
  45011. --- uClibc-0.9.33.2/libc/string/metag/memcpy.S 1970-01-01 01:00:00.000000000 +0100
  45012. +++ uClibc-git/libc/string/metag/memcpy.S 2014-06-02 17:40:34.206713047 +0200
  45013. @@ -0,0 +1,189 @@
  45014. +! Copyright (C) 2013 Imagination Technologies Ltd.
  45015. +
  45016. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  45017. +
  45018. + .text
  45019. + .global _memcpy
  45020. + .type _memcpy,function
  45021. +! D1Ar1 dst
  45022. +! D0Ar2 src
  45023. +! D1Ar3 cnt
  45024. +! D0Re0 dst
  45025. +_memcpy:
  45026. + CMP D1Ar3, #16
  45027. + MOV A1.2, D0Ar2 ! source pointer
  45028. + MOV A0.2, D1Ar1 ! destination pointer
  45029. + MOV A0.3, D1Ar1 ! for return value
  45030. +! If there are less than 16 bytes to copy use the byte copy loop
  45031. + BGE $Llong_copy
  45032. +
  45033. +$Lbyte_copy:
  45034. +! Simply copy a byte at a time
  45035. + SUBS TXRPT, D1Ar3, #1
  45036. + BLT $Lend
  45037. +$Lloop_byte:
  45038. + GETB D1Re0, [A1.2++]
  45039. + SETB [A0.2++], D1Re0
  45040. + BR $Lloop_byte
  45041. +
  45042. +$Lend:
  45043. +! Finally set return value and return
  45044. + MOV D0Re0, A0.3
  45045. + MOV PC, D1RtP
  45046. +
  45047. +$Llong_copy:
  45048. + ANDS D1Ar5, D1Ar1, #7 ! test destination alignment
  45049. + BZ $Laligned_dst
  45050. +
  45051. +! The destination address is not 8 byte aligned. We will copy bytes from
  45052. +! the source to the destination until the remaining data has an 8 byte
  45053. +! destination address alignment (i.e we should never copy more than 7
  45054. +! bytes here).
  45055. +$Lalign_dst:
  45056. + GETB D0Re0, [A1.2++]
  45057. + ADD D1Ar5, D1Ar5, #1 ! dest is aligned when D1Ar5 reaches #8
  45058. + SUB D1Ar3, D1Ar3, #1 ! decrement count of remaining bytes
  45059. + SETB [A0.2++], D0Re0
  45060. + CMP D1Ar5, #8
  45061. + BNE $Lalign_dst
  45062. +
  45063. +! We have at least (16 - 7) = 9 bytes to copy - calculate the number of 8 byte
  45064. +! blocks, then jump to the unaligned copy loop or fall through to the aligned
  45065. +! copy loop as appropriate.
  45066. +$Laligned_dst:
  45067. + MOV D0Ar4, A1.2
  45068. + LSR D1Ar5, D1Ar3, #3 ! D1Ar5 = number of 8 byte blocks
  45069. + ANDS D0Ar4, D0Ar4, #7 ! test source alignment
  45070. + BNZ $Lunaligned_copy ! if unaligned, use unaligned copy loop
  45071. +
  45072. +! Both source and destination are 8 byte aligned - the easy case.
  45073. +$Laligned_copy:
  45074. + LSRS D1Ar5, D1Ar3, #5 ! D1Ar5 = number of 32 byte blocks
  45075. + BZ $Lbyte_copy
  45076. + SUB TXRPT, D1Ar5, #1
  45077. +
  45078. +$Laligned_32:
  45079. + GETL D0Re0, D1Re0, [A1.2++]
  45080. + GETL D0Ar6, D1Ar5, [A1.2++]
  45081. + SETL [A0.2++], D0Re0, D1Re0
  45082. + SETL [A0.2++], D0Ar6, D1Ar5
  45083. + GETL D0Re0, D1Re0, [A1.2++]
  45084. + GETL D0Ar6, D1Ar5, [A1.2++]
  45085. + SETL [A0.2++], D0Re0, D1Re0
  45086. + SETL [A0.2++], D0Ar6, D1Ar5
  45087. + BR $Laligned_32
  45088. +
  45089. +! If there are any remaining bytes use the byte copy loop, otherwise we are done
  45090. + ANDS D1Ar3, D1Ar3, #0x1f
  45091. + BNZ $Lbyte_copy
  45092. + B $Lend
  45093. +
  45094. +! The destination is 8 byte aligned but the source is not, and there are 8
  45095. +! or more bytes to be copied.
  45096. +$Lunaligned_copy:
  45097. +! Adjust the source pointer (A1.2) to the 8 byte boundary before its
  45098. +! current value
  45099. + MOV D0Ar4, A1.2
  45100. + MOV D0Ar6, A1.2
  45101. + ANDMB D0Ar4, D0Ar4, #0xfff8
  45102. + MOV A1.2, D0Ar4
  45103. +! Save the number of bytes of mis-alignment in D0Ar4 for use later
  45104. + SUBS D0Ar6, D0Ar6, D0Ar4
  45105. + MOV D0Ar4, D0Ar6
  45106. +! if there is no mis-alignment after all, use the aligned copy loop
  45107. + BZ $Laligned_copy
  45108. +
  45109. +! prefetch 8 bytes
  45110. + GETL D0Re0, D1Re0, [A1.2]
  45111. +
  45112. + SUB TXRPT, D1Ar5, #1
  45113. +
  45114. +! There are 3 mis-alignment cases to be considered. Less than 4 bytes, exactly
  45115. +! 4 bytes, and more than 4 bytes.
  45116. + CMP D0Ar6, #4
  45117. + BLT $Lunaligned_1_2_3 ! use 1-3 byte mis-alignment loop
  45118. + BZ $Lunaligned_4 ! use 4 byte mis-alignment loop
  45119. +
  45120. +! The mis-alignment is more than 4 bytes
  45121. +$Lunaligned_5_6_7:
  45122. + SUB D0Ar6, D0Ar6, #4
  45123. +! Calculate the bit offsets required for the shift operations necesssary
  45124. +! to align the data.
  45125. +! D0Ar6 = bit offset, D1Ar5 = (32 - bit offset)
  45126. + MULW D0Ar6, D0Ar6, #8
  45127. + MOV D1Ar5, #32
  45128. + SUB D1Ar5, D1Ar5, D0Ar6
  45129. +! Move data 4 bytes before we enter the main loop
  45130. + MOV D0Re0, D1Re0
  45131. +
  45132. +$Lloop_5_6_7:
  45133. + GETL D0Ar2, D1Ar1, [++A1.2]
  45134. +! form 64-bit data in D0Re0, D1Re0
  45135. + LSR D0Re0, D0Re0, D0Ar6
  45136. + MOV D1Re0, D0Ar2
  45137. + LSL D1Re0, D1Re0, D1Ar5
  45138. + ADD D0Re0, D0Re0, D1Re0
  45139. +
  45140. + LSR D0Ar2, D0Ar2, D0Ar6
  45141. + LSL D1Re0, D1Ar1, D1Ar5
  45142. + ADD D1Re0, D1Re0, D0Ar2
  45143. +
  45144. + SETL [A0.2++], D0Re0, D1Re0
  45145. + MOV D0Re0, D1Ar1
  45146. + BR $Lloop_5_6_7
  45147. +
  45148. + B $Lunaligned_end
  45149. +
  45150. +$Lunaligned_1_2_3:
  45151. +! Calculate the bit offsets required for the shift operations necesssary
  45152. +! to align the data.
  45153. +! D0Ar6 = bit offset, D1Ar5 = (32 - bit offset)
  45154. + MULW D0Ar6, D0Ar6, #8
  45155. + MOV D1Ar5, #32
  45156. + SUB D1Ar5, D1Ar5, D0Ar6
  45157. +
  45158. +$Lloop_1_2_3:
  45159. +! form 64-bit data in D0Re0,D1Re0
  45160. + LSR D0Re0, D0Re0, D0Ar6
  45161. + LSL D1Ar1, D1Re0, D1Ar5
  45162. + ADD D0Re0, D0Re0, D1Ar1
  45163. + MOV D0Ar2, D1Re0
  45164. + LSR D0FrT, D0Ar2, D0Ar6
  45165. + GETL D0Ar2, D1Ar1, [++A1.2]
  45166. +
  45167. + MOV D1Re0, D0Ar2
  45168. + LSL D1Re0, D1Re0, D1Ar5
  45169. + ADD D1Re0, D1Re0, D0FrT
  45170. +
  45171. + SETL [A0.2++], D0Re0, D1Re0
  45172. + MOV D0Re0, D0Ar2
  45173. + MOV D1Re0, D1Ar1
  45174. + BR $Lloop_1_2_3
  45175. +
  45176. + B $Lunaligned_end
  45177. +
  45178. +! The 4 byte mis-alignment case - this does not require any shifting, just a
  45179. +! shuffling of registers.
  45180. +$Lunaligned_4:
  45181. + MOV D0Re0, D1Re0
  45182. +$Lloop_4:
  45183. + GETL D0Ar2, D1Ar1, [++A1.2]
  45184. + MOV D1Re0, D0Ar2
  45185. + SETL [A0.2++], D0Re0, D1Re0
  45186. + MOV D0Re0, D1Ar1
  45187. + BR $Lloop_4
  45188. +
  45189. +$Lunaligned_end:
  45190. +! If there are no remaining bytes to copy, we are done.
  45191. + ANDS D1Ar3, D1Ar3, #7
  45192. + BZ $Lend
  45193. +! Re-adjust the source pointer (A1.2) back to the actual (unaligned) byte
  45194. +! address of the remaining bytes, and fall through to the byte copy loop.
  45195. + MOV D0Ar6, A1.2
  45196. + ADD D1Ar5, D0Ar4, D0Ar6
  45197. + MOV A1.2, D1Ar5
  45198. + B $Lbyte_copy
  45199. +
  45200. + .size _memcpy,.-_memcpy
  45201. +
  45202. +libc_hidden_def(memcpy)
  45203. diff -Nur uClibc-0.9.33.2/libc/string/metag/memmove.S uClibc-git/libc/string/metag/memmove.S
  45204. --- uClibc-0.9.33.2/libc/string/metag/memmove.S 1970-01-01 01:00:00.000000000 +0100
  45205. +++ uClibc-git/libc/string/metag/memmove.S 2014-06-02 17:40:34.206713047 +0200
  45206. @@ -0,0 +1,350 @@
  45207. +! Copyright (C) 2013 Imagination Technologies Ltd.
  45208. +
  45209. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  45210. +
  45211. +
  45212. + .text
  45213. + .global _memmove
  45214. + .type _memmove,function
  45215. +! D1Ar1 dst
  45216. +! D0Ar2 src
  45217. +! D1Ar3 cnt
  45218. +! D0Re0 dst
  45219. +_memmove:
  45220. + CMP D1Ar3, #0
  45221. + MOV D0Re0, D1Ar1
  45222. + BZ $LEND2
  45223. + MSETL [A0StP], D0.5, D0.6, D0.7
  45224. + MOV D1Ar5, D0Ar2
  45225. + CMP D1Ar1, D1Ar5
  45226. + BLT $Lforwards_copy
  45227. + SUB D0Ar4, D1Ar1, D1Ar3
  45228. + ADD D0Ar4, D0Ar4, #1
  45229. + CMP D0Ar2, D0Ar4
  45230. + BLT $Lforwards_copy
  45231. + ! should copy backwards
  45232. + MOV D1Re0, D0Ar2
  45233. + ! adjust pointer to the end of mem
  45234. + ADD D0Ar2, D1Re0, D1Ar3
  45235. + ADD D1Ar1, D1Ar1, D1Ar3
  45236. +
  45237. + MOV A1.2, D0Ar2
  45238. + MOV A0.2, D1Ar1
  45239. + CMP D1Ar3, #8
  45240. + BLT $Lbbyte_loop
  45241. +
  45242. + MOV D0Ar4, D0Ar2
  45243. + MOV D1Ar5, D1Ar1
  45244. +
  45245. + ! test 8 byte alignment
  45246. + ANDS D1Ar5, D1Ar5, #7
  45247. + BNE $Lbdest_unaligned
  45248. +
  45249. + ANDS D0Ar4, D0Ar4, #7
  45250. + BNE $Lbsrc_unaligned
  45251. +
  45252. + LSR D1Ar5, D1Ar3, #3
  45253. +
  45254. +$Lbaligned_loop:
  45255. + GETL D0Re0, D1Re0, [--A1.2]
  45256. + SETL [--A0.2], D0Re0, D1Re0
  45257. + SUBS D1Ar5, D1Ar5, #1
  45258. + BNE $Lbaligned_loop
  45259. +
  45260. + ANDS D1Ar3, D1Ar3, #7
  45261. + BZ $Lbbyte_loop_exit
  45262. +$Lbbyte_loop:
  45263. + GETB D1Re0, [--A1.2]
  45264. + SETB [--A0.2], D1Re0
  45265. + SUBS D1Ar3, D1Ar3, #1
  45266. + BNE $Lbbyte_loop
  45267. +$Lbbyte_loop_exit:
  45268. + MOV D0Re0, A0.2
  45269. +$LEND:
  45270. + SUB A0.2, A0StP, #24
  45271. + MGETL D0.5, D0.6, D0.7, [A0.2]
  45272. + SUB A0StP, A0StP, #24
  45273. +$LEND2:
  45274. + MOV PC, D1RtP
  45275. +
  45276. +$Lbdest_unaligned:
  45277. + GETB D0Re0, [--A1.2]
  45278. + SETB [--A0.2], D0Re0
  45279. + SUBS D1Ar5, D1Ar5, #1
  45280. + SUB D1Ar3, D1Ar3, #1
  45281. + BNE $Lbdest_unaligned
  45282. + CMP D1Ar3, #8
  45283. + BLT $Lbbyte_loop
  45284. +$Lbsrc_unaligned:
  45285. + LSR D1Ar5, D1Ar3, #3
  45286. + ! adjust A1.2
  45287. + MOV D0Ar4, A1.2
  45288. + ! save original address
  45289. + MOV D0Ar6, A1.2
  45290. +
  45291. + ADD D0Ar4, D0Ar4, #7
  45292. + ANDMB D0Ar4, D0Ar4, #0xfff8
  45293. + ! new address is the 8-byte aligned one above the original
  45294. + MOV A1.2, D0Ar4
  45295. +
  45296. + ! A0.2 dst 64-bit is aligned
  45297. + ! measure the gap size
  45298. + SUB D0Ar6, D0Ar4, D0Ar6
  45299. + MOVS D0Ar4, D0Ar6
  45300. + ! keep this information for the later adjustment
  45301. + ! both aligned
  45302. + BZ $Lbaligned_loop
  45303. +
  45304. + ! prefetch
  45305. + GETL D0Re0, D1Re0, [--A1.2]
  45306. +
  45307. + CMP D0Ar6, #4
  45308. + BLT $Lbunaligned_1_2_3
  45309. + ! 32-bit aligned
  45310. + BZ $Lbaligned_4
  45311. +
  45312. + SUB D0Ar6, D0Ar6, #4
  45313. + ! D1.6 stores the gap size in bits
  45314. + MULW D1.6, D0Ar6, #8
  45315. + MOV D0.6, #32
  45316. + ! D0.6 stores the complement of the gap size
  45317. + SUB D0.6, D0.6, D1.6
  45318. +
  45319. +$Lbunaligned_5_6_7:
  45320. + GETL D0.7, D1.7, [--A1.2]
  45321. + ! form 64-bit data in D0Re0, D1Re0
  45322. + MOV D1Re0, D0Re0
  45323. + ! D1Re0 << gap-size
  45324. + LSL D1Re0, D1Re0, D1.6
  45325. + MOV D0Re0, D1.7
  45326. + ! D0Re0 >> complement
  45327. + LSR D0Re0, D0Re0, D0.6
  45328. + MOV D1.5, D0Re0
  45329. + ! combine the both
  45330. + ADD D1Re0, D1Re0, D1.5
  45331. +
  45332. + MOV D1.5, D1.7
  45333. + LSL D1.5, D1.5, D1.6
  45334. + MOV D0Re0, D0.7
  45335. + LSR D0Re0, D0Re0, D0.6
  45336. + MOV D0.5, D1.5
  45337. + ADD D0Re0, D0Re0, D0.5
  45338. +
  45339. + SETL [--A0.2], D0Re0, D1Re0
  45340. + MOV D0Re0, D0.7
  45341. + MOV D1Re0, D1.7
  45342. + SUBS D1Ar5, D1Ar5, #1
  45343. + BNE $Lbunaligned_5_6_7
  45344. +
  45345. + ANDS D1Ar3, D1Ar3, #7
  45346. + BZ $Lbbyte_loop_exit
  45347. + ! Adjust A1.2
  45348. + ! A1.2 <- A1.2 +8 - gapsize
  45349. + ADD A1.2, A1.2, #8
  45350. + SUB A1.2, A1.2, D0Ar4
  45351. + B $Lbbyte_loop
  45352. +
  45353. +$Lbunaligned_1_2_3:
  45354. + MULW D1.6, D0Ar6, #8
  45355. + MOV D0.6, #32
  45356. + SUB D0.6, D0.6, D1.6
  45357. +
  45358. +$Lbunaligned_1_2_3_loop:
  45359. + GETL D0.7, D1.7, [--A1.2]
  45360. + ! form 64-bit data in D0Re0, D1Re0
  45361. + LSL D1Re0, D1Re0, D1.6
  45362. + ! save D0Re0 for later use
  45363. + MOV D0.5, D0Re0
  45364. + LSR D0Re0, D0Re0, D0.6
  45365. + MOV D1.5, D0Re0
  45366. + ADD D1Re0, D1Re0, D1.5
  45367. +
  45368. + ! orignal data in D0Re0
  45369. + MOV D1.5, D0.5
  45370. + LSL D1.5, D1.5, D1.6
  45371. + MOV D0Re0, D1.7
  45372. + LSR D0Re0, D0Re0, D0.6
  45373. + MOV D0.5, D1.5
  45374. + ADD D0Re0, D0Re0, D0.5
  45375. +
  45376. + SETL [--A0.2], D0Re0, D1Re0
  45377. + MOV D0Re0, D0.7
  45378. + MOV D1Re0, D1.7
  45379. + SUBS D1Ar5, D1Ar5, #1
  45380. + BNE $Lbunaligned_1_2_3_loop
  45381. +
  45382. + ANDS D1Ar3, D1Ar3, #7
  45383. + BZ $Lbbyte_loop_exit
  45384. + ! Adjust A1.2
  45385. + ADD A1.2, A1.2, #8
  45386. + SUB A1.2, A1.2, D0Ar4
  45387. + B $Lbbyte_loop
  45388. +
  45389. +$Lbaligned_4:
  45390. + GETL D0.7, D1.7, [--A1.2]
  45391. + MOV D1Re0, D0Re0
  45392. + MOV D0Re0, D1.7
  45393. + SETL [--A0.2], D0Re0, D1Re0
  45394. + MOV D0Re0, D0.7
  45395. + MOV D1Re0, D1.7
  45396. + SUBS D1Ar5, D1Ar5, #1
  45397. + BNE $Lbaligned_4
  45398. + ANDS D1Ar3, D1Ar3, #7
  45399. + BZ $Lbbyte_loop_exit
  45400. + ! Adjust A1.2
  45401. + ADD A1.2, A1.2, #8
  45402. + SUB A1.2, A1.2, D0Ar4
  45403. + B $Lbbyte_loop
  45404. +
  45405. +$Lforwards_copy:
  45406. + MOV A1.2, D0Ar2
  45407. + MOV A0.2, D1Ar1
  45408. + CMP D1Ar3, #8
  45409. + BLT $Lfbyte_loop
  45410. +
  45411. + MOV D0Ar4, D0Ar2
  45412. + MOV D1Ar5, D1Ar1
  45413. +
  45414. + ANDS D1Ar5, D1Ar5, #7
  45415. + BNE $Lfdest_unaligned
  45416. +
  45417. + ANDS D0Ar4, D0Ar4, #7
  45418. + BNE $Lfsrc_unaligned
  45419. +
  45420. + LSR D1Ar5, D1Ar3, #3
  45421. +
  45422. +$Lfaligned_loop:
  45423. + GETL D0Re0, D1Re0, [A1.2++]
  45424. + SUBS D1Ar5, D1Ar5, #1
  45425. + SETL [A0.2++], D0Re0, D1Re0
  45426. + BNE $Lfaligned_loop
  45427. +
  45428. + ANDS D1Ar3, D1Ar3, #7
  45429. + BZ $Lfbyte_loop_exit
  45430. +$Lfbyte_loop:
  45431. + GETB D1Re0, [A1.2++]
  45432. + SETB [A0.2++], D1Re0
  45433. + SUBS D1Ar3, D1Ar3, #1
  45434. + BNE $Lfbyte_loop
  45435. +$Lfbyte_loop_exit:
  45436. + MOV D0Re0, D1Ar1
  45437. + B $LEND
  45438. +
  45439. +$Lfdest_unaligned:
  45440. + GETB D0Re0, [A1.2++]
  45441. + ADD D1Ar5, D1Ar5, #1
  45442. + SUB D1Ar3, D1Ar3, #1
  45443. + SETB [A0.2++], D0Re0
  45444. + CMP D1Ar5, #8
  45445. + BNE $Lfdest_unaligned
  45446. + CMP D1Ar3, #8
  45447. + BLT $Lfbyte_loop
  45448. +$Lfsrc_unaligned:
  45449. + ! adjust A1.2
  45450. + LSR D1Ar5, D1Ar3, #3
  45451. +
  45452. + MOV D0Ar4, A1.2
  45453. + MOV D0Ar6, A1.2
  45454. + ANDMB D0Ar4, D0Ar4, #0xfff8
  45455. + MOV A1.2, D0Ar4
  45456. +
  45457. + ! A0.2 dst 64-bit is aligned
  45458. + SUB D0Ar6, D0Ar6, D0Ar4
  45459. + ! keep the information for the later adjustment
  45460. + MOVS D0Ar4, D0Ar6
  45461. +
  45462. + ! both aligned
  45463. + BZ $Lfaligned_loop
  45464. +
  45465. + ! prefetch
  45466. + GETL D0Re0, D1Re0, [A1.2]
  45467. +
  45468. + CMP D0Ar6, #4
  45469. + BLT $Lfunaligned_1_2_3
  45470. + BZ $Lfaligned_4
  45471. +
  45472. + SUB D0Ar6, D0Ar6, #4
  45473. + MULW D0.6, D0Ar6, #8
  45474. + MOV D1.6, #32
  45475. + SUB D1.6, D1.6, D0.6
  45476. +
  45477. +$Lfunaligned_5_6_7:
  45478. + GETL D0.7, D1.7, [++A1.2]
  45479. + ! form 64-bit data in D0Re0, D1Re0
  45480. + MOV D0Re0, D1Re0
  45481. + LSR D0Re0, D0Re0, D0.6
  45482. + MOV D1Re0, D0.7
  45483. + LSL D1Re0, D1Re0, D1.6
  45484. + MOV D0.5, D1Re0
  45485. + ADD D0Re0, D0Re0, D0.5
  45486. +
  45487. + MOV D0.5, D0.7
  45488. + LSR D0.5, D0.5, D0.6
  45489. + MOV D1Re0, D1.7
  45490. + LSL D1Re0, D1Re0, D1.6
  45491. + MOV D1.5, D0.5
  45492. + ADD D1Re0, D1Re0, D1.5
  45493. +
  45494. + SETL [A0.2++], D0Re0, D1Re0
  45495. + MOV D0Re0, D0.7
  45496. + MOV D1Re0, D1.7
  45497. + SUBS D1Ar5, D1Ar5, #1
  45498. + BNE $Lfunaligned_5_6_7
  45499. +
  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. +$Lfunaligned_1_2_3:
  45507. + MULW D0.6, D0Ar6, #8
  45508. + MOV D1.6, #32
  45509. + SUB D1.6, D1.6, D0.6
  45510. +
  45511. +$Lfunaligned_1_2_3_loop:
  45512. + GETL D0.7, D1.7, [++A1.2]
  45513. + ! form 64-bit data in D0Re0, D1Re0
  45514. + LSR D0Re0, D0Re0, D0.6
  45515. + MOV D1.5, D1Re0
  45516. + LSL D1Re0, D1Re0, D1.6
  45517. + MOV D0.5, D1Re0
  45518. + ADD D0Re0, D0Re0, D0.5
  45519. +
  45520. + MOV D0.5, D1.5
  45521. + LSR D0.5, D0.5, D0.6
  45522. + MOV D1Re0, D0.7
  45523. + LSL D1Re0, D1Re0, D1.6
  45524. + MOV D1.5, D0.5
  45525. + ADD D1Re0, D1Re0, D1.5
  45526. +
  45527. + SETL [A0.2++], D0Re0, D1Re0
  45528. + MOV D0Re0, D0.7
  45529. + MOV D1Re0, D1.7
  45530. + SUBS D1Ar5, D1Ar5, #1
  45531. + BNE $Lfunaligned_1_2_3_loop
  45532. +
  45533. + ANDS D1Ar3, D1Ar3, #7
  45534. + BZ $Lfbyte_loop_exit
  45535. + ! Adjust A1.2
  45536. + ADD A1.2, A1.2, D0Ar4
  45537. + B $Lfbyte_loop
  45538. +
  45539. +$Lfaligned_4:
  45540. + GETL D0.7, D1.7, [++A1.2]
  45541. + MOV D0Re0, D1Re0
  45542. + MOV D1Re0, D0.7
  45543. + SETL [A0.2++], D0Re0, D1Re0
  45544. + MOV D0Re0, D0.7
  45545. + MOV D1Re0, D1.7
  45546. + SUBS D1Ar5, D1Ar5, #1
  45547. + BNE $Lfaligned_4
  45548. + ANDS D1Ar3, D1Ar3, #7
  45549. + BZ $Lfbyte_loop_exit
  45550. + ! Adjust A1.2
  45551. + ADD A1.2, A1.2, D0Ar4
  45552. + B $Lfbyte_loop
  45553. +
  45554. + .size _memmove,.-_memmove
  45555. +
  45556. +libc_hidden_def(memmove)
  45557. diff -Nur uClibc-0.9.33.2/libc/string/metag/memset.S uClibc-git/libc/string/metag/memset.S
  45558. --- uClibc-0.9.33.2/libc/string/metag/memset.S 1970-01-01 01:00:00.000000000 +0100
  45559. +++ uClibc-git/libc/string/metag/memset.S 2014-06-02 17:40:34.206713047 +0200
  45560. @@ -0,0 +1,90 @@
  45561. +! Copyright (C) 2013 Imagination Technologies Ltd.
  45562. +
  45563. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  45564. +
  45565. +
  45566. + .text
  45567. + .global _memset
  45568. + .type _memset,function
  45569. +! D1Ar1 dst
  45570. +! D0Ar2 c
  45571. +! D1Ar3 cnt
  45572. +! D0Re0 dst
  45573. +_memset:
  45574. + AND D0Ar2,D0Ar2,#0xFF ! Ensure a byte input value
  45575. + MULW D0Ar2,D0Ar2,#0x0101 ! Duplicate byte value into 0-15
  45576. + ANDS D0Ar4,D1Ar1,#7 ! Extract bottom LSBs of dst
  45577. + LSL D0Re0,D0Ar2,#16 ! Duplicate byte value into 16-31
  45578. + ADD A0.2,D0Ar2,D0Re0 ! Duplicate byte value into 4 (A0.2)
  45579. + MOV D0Re0,D1Ar1 ! Return dst
  45580. + BZ $LLongStub ! if start address is aligned
  45581. + ! start address is not aligned on an 8 byte boundary, so we
  45582. + ! need the number of bytes up to the next 8 byte address
  45583. + ! boundary, or the length of the string if less than 8, in D1Ar5
  45584. + MOV D0Ar2,#8 ! Need 8 - N in D1Ar5 ...
  45585. + SUB D1Ar5,D0Ar2,D0Ar4 ! ... subtract N
  45586. + CMP D1Ar3,D1Ar5
  45587. + MOVMI D1Ar5,D1Ar3
  45588. + B $LByteStub ! dst is mis-aligned, do $LByteStub
  45589. +
  45590. +!
  45591. +! Preamble to LongLoop which generates 4*8 bytes per interation (5 cycles)
  45592. +!
  45593. +$LLongStub:
  45594. + LSRS D0Ar2,D1Ar3,#5
  45595. + AND D1Ar3,D1Ar3,#0x1F
  45596. + MOV A1.2,A0.2
  45597. + BEQ $LLongishStub
  45598. + SUB TXRPT,D0Ar2,#1
  45599. + CMP D1Ar3,#0
  45600. +$LLongLoop:
  45601. + SETL [D1Ar1++],A0.2,A1.2
  45602. + SETL [D1Ar1++],A0.2,A1.2
  45603. + SETL [D1Ar1++],A0.2,A1.2
  45604. + SETL [D1Ar1++],A0.2,A1.2
  45605. + BR $LLongLoop
  45606. + BZ $Lexit
  45607. +!
  45608. +! Preamble to LongishLoop which generates 1*8 bytes per interation (2 cycles)
  45609. +!
  45610. +$LLongishStub:
  45611. + LSRS D0Ar2,D1Ar3,#3
  45612. + AND D1Ar3,D1Ar3,#0x7
  45613. + MOV D1Ar5,D1Ar3
  45614. + BEQ $LByteStub
  45615. + SUB TXRPT,D0Ar2,#1
  45616. + CMP D1Ar3,#0
  45617. +$LLongishLoop:
  45618. + SETL [D1Ar1++],A0.2,A1.2
  45619. + BR $LLongishLoop
  45620. + BZ $Lexit
  45621. +!
  45622. +! This does a byte structured burst of up to 7 bytes
  45623. +!
  45624. +! D1Ar1 should point to the location required
  45625. +! D1Ar3 should be the remaining total byte count
  45626. +! D1Ar5 should be burst size (<= D1Ar3)
  45627. +!
  45628. +$LByteStub:
  45629. + SUBS D1Ar3,D1Ar3,D1Ar5 ! Reduce count
  45630. + ADD D1Ar1,D1Ar1,D1Ar5 ! Advance pointer to end of area
  45631. + MULW D1Ar5,D1Ar5,#4 ! Scale to (1*4), (2*4), (3*4)
  45632. + SUB D1Ar5,D1Ar5,#(8*4) ! Rebase to -(7*4), -(6*4), -(5*4), ...
  45633. + MOV A1.2,D1Ar5
  45634. + SUB PC,CPC1,A1.2 ! Jump into table below
  45635. + SETB [D1Ar1+#(-7)],A0.2
  45636. + SETB [D1Ar1+#(-6)],A0.2
  45637. + SETB [D1Ar1+#(-5)],A0.2
  45638. + SETB [D1Ar1+#(-4)],A0.2
  45639. + SETB [D1Ar1+#(-3)],A0.2
  45640. + SETB [D1Ar1+#(-2)],A0.2
  45641. + SETB [D1Ar1+#(-1)],A0.2
  45642. +!
  45643. +! Return if all data has been output, otherwise do $LLongStub
  45644. +!
  45645. + BNZ $LLongStub
  45646. +$Lexit:
  45647. + MOV PC,D1RtP
  45648. + .size _memset,.-_memset
  45649. +
  45650. +libc_hidden_def(memset)
  45651. diff -Nur uClibc-0.9.33.2/libc/string/metag/strchr.S uClibc-git/libc/string/metag/strchr.S
  45652. --- uClibc-0.9.33.2/libc/string/metag/strchr.S 1970-01-01 01:00:00.000000000 +0100
  45653. +++ uClibc-git/libc/string/metag/strchr.S 2014-06-02 17:40:34.206713047 +0200
  45654. @@ -0,0 +1,167 @@
  45655. +! Copyright (C) 2013 Imagination Technologies Ltd.
  45656. +
  45657. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  45658. +
  45659. +
  45660. +#include <features.h>
  45661. +
  45662. + .text
  45663. + .global _strchr
  45664. + .type _strchr, function
  45665. +! D1Ar1 src
  45666. +! D0Ar2 c
  45667. +_strchr:
  45668. + AND D0Ar2,D0Ar2,#0xff ! Drop all but 8 bits of c
  45669. + MOV D1Ar5, D1Ar1 ! Copy src to D1Ar5
  45670. + AND D1Ar5, D1Ar5, #7 ! Check 64 bit alignment
  45671. + CMP D1Ar5, #0
  45672. + BZ $Laligned64bit ! Jump to 64 bit aligned strchr
  45673. +$Lalign64bit:
  45674. + GETB D0Re0, [D1Ar1++] ! Get the next character
  45675. + ADD D1Ar5, D1Ar5, #1 ! Increment alignment counter
  45676. + CMP D0Re0, D0Ar2 ! Is the char c
  45677. + BZ $Lcharatprevious ! If so exit returning position
  45678. + CMP D0Re0, #0 ! End of string?
  45679. + BZ $Lnotfound ! If so exit
  45680. + CMP D1Ar5, #8 ! Are we aligned 64bit yet?
  45681. + BNZ $Lalign64bit ! If not keep aligning
  45682. +$Laligned64bit: ! src is 64bit aligned
  45683. + MOV D0Ar4, D0Ar2 ! put c into D0Ar4
  45684. + LSL D0Ar4, D0Ar4, #8 ! Shift it up
  45685. + ADD D0Ar4, D0Ar4, D0Ar2 ! another c
  45686. + LSL D0Ar4, D0Ar4, #8 ! shift
  45687. + ADD D0Ar4, D0Ar4, D0Ar2 ! another c
  45688. + LSL D0Ar4, D0Ar4, #8 ! shift
  45689. + ADD D0Ar4, D0Ar4, D0Ar2 ! 4 copies of c
  45690. +$Lcheck8bytes:
  45691. + GETL D0Re0, D1Re0, [D1Ar1++] ! grab 16 bytes
  45692. + MOV A0.3, D0Re0 ! save for later use
  45693. + ! first word
  45694. + ! check for \0
  45695. + MOV D0Ar2, D0Re0 ! D0Ar2 is a scratch now
  45696. + ADDT D0Re0, D0Re0, #HI(0xfefefeff) ! Do 4 1-byte compares
  45697. + ADD D0Re0, D0Re0, #LO(0xfefefeff)
  45698. + XOR D0Ar2, D0Ar2, #-1
  45699. + AND D0Re0, D0Re0, D0Ar2
  45700. + ANDMT D0Re0, D0Re0, #HI(0x80808080)
  45701. + ANDMB D0Re0, D0Re0, #LO(0x80808080)
  45702. + CMP D0Re0, #0
  45703. + BNZ $Lnullinword1 ! found \0 (or c if c==\0)
  45704. +
  45705. + ! Check for c
  45706. + MOV D0Re0, A0.3 ! restore the first word
  45707. + XOR D0Re0, D0Re0, D0Ar4
  45708. + MOV D0Ar2, D0Re0 ! DO 4 1-byte compares
  45709. + ADDT D0Re0, D0Re0, #HI(0xfefefeff)
  45710. + ADD D0Re0, D0Re0, #LO(0xfefefeff)
  45711. + XOR D0Ar2, D0Ar2, #-1
  45712. + AND D0Re0, D0Re0, D0Ar2
  45713. + ANDMT D0Re0, D0Re0, #HI(0x80808080)
  45714. + ANDMB D0Re0, D0Re0, #LO(0x80808080)
  45715. + CMP D0Re0, #0
  45716. + BNZ $Lcharinword1 ! found c
  45717. +
  45718. + ! second word
  45719. + ! check for \0
  45720. + MOV A0.3, D1Re0 ! save for later use
  45721. + MOV D1Ar3, D1Re0
  45722. + ADDT D1Re0, D1Re0, #HI(0xfefefeff) ! Do 4 1-byte compares
  45723. + ADD D1Re0, D1Re0, #LO(0xfefefeff)
  45724. + XOR D1Ar3, D1Ar3, #-1
  45725. + AND D1Re0, D1Re0, D1Ar3
  45726. + ANDMT D1Re0, D1Re0, #HI(0x80808080)
  45727. + ANDMB D1Re0, D1Re0, #LO(0x80808080)
  45728. + CMP D1Re0, #0
  45729. + BNZ $Lnullinword2 ! Found \0 (or c if c==\0)
  45730. +
  45731. + MOV D0.4, A0.3 ! restore the second word
  45732. + XOR D1Re0, D0.4, D0Ar4 ! test c
  45733. +
  45734. + MOV D1Ar3, D1Re0
  45735. + ADDT D1Re0, D1Re0, #HI(0xfefefeff) ! Do 4 1-byte compares
  45736. + ADD D1Re0, D1Re0, #LO(0xfefefeff)
  45737. + XOR D1Ar3, D1Ar3, #-1
  45738. + AND D1Re0, D1Re0, D1Ar3
  45739. + ANDMT D1Re0, D1Re0, #HI(0x80808080)
  45740. + ANDMB D1Re0, D1Re0, #LO(0x80808080)
  45741. + CMP D1Re0, #0
  45742. + BNZ $Lcharinword2 ! found c
  45743. +
  45744. + B $Lcheck8bytes ! Keep checking
  45745. +
  45746. +$Lnullinword1: ! found \0 somewhere, check for c too
  45747. + SUB D1Ar1, D1Ar1, #4
  45748. +$Lnullinword2:
  45749. + SUB D1Ar1, D1Ar1, #4
  45750. + AND D0Ar2, D0Ar4, #0xff ! restore c
  45751. + MOV D0Re0, A0.3 ! restore the word
  45752. + MOV D0.4, D0Re0 ! for shifting later
  45753. + AND D0Re0, D0Re0, #0xff ! take first byte of word
  45754. + CMP D0Re0, D0Ar2
  45755. + BZ $Lcharatcurrent ! found c
  45756. + CMP D0Re0, #0!
  45757. + BZ $Lnotfound ! found \0
  45758. +
  45759. + ADD D1Ar1, D1Ar1, #1
  45760. + LSR D0.4, D0.4, #8
  45761. + MOV D0Re0, D0.4
  45762. + AND D0Re0, D0Re0, #0xff ! take second byte of word
  45763. + CMP D0Re0, D0Ar2
  45764. + BZ $Lcharatcurrent ! found c
  45765. + CMP D0Re0, #0
  45766. + BZ $Lnotfound ! found \0
  45767. +
  45768. + ADD D1Ar1, D1Ar1, #1
  45769. + LSR D0.4, D0.4, #8
  45770. + MOV D0Re0, D0.4
  45771. + AND D0Re0, D0Re0, #0xff ! take third byte of word
  45772. + CMP D0Re0, D0Ar2
  45773. + BZ $Lcharatcurrent ! found c
  45774. + CMP D0Re0, #0
  45775. + BZ $Lnotfound ! found \0
  45776. +
  45777. + ADD D1Ar1, D1Ar1, #1 ! move to 4th byte
  45778. + CMP D0Ar2, #0 ! If c was \0
  45779. + BZ $Lcharatcurrent ! c has been found!
  45780. +
  45781. +$Lnotfound:
  45782. + MOV D0Re0, #0 ! End of string c not found
  45783. + B $Lend
  45784. +
  45785. +$Lcharinword1: ! found c in first word
  45786. + MOV D1Re0, D0Re0
  45787. + SUB D1Ar1, D1Ar1, #4
  45788. +$Lcharinword2: ! found c in second word
  45789. + SUB D1Ar1, D1Ar1, #4
  45790. +
  45791. + AND D0Re0, D1Re0, #0xff ! First byte
  45792. + CMP D0Re0, #0 ! Test c (zero indicates c due
  45793. + ! to the 4 1-byte compare code)
  45794. + BNE $Lcharatcurrent
  45795. + ADD D1Ar1, D1Ar1, #1
  45796. +
  45797. + LSR D1Re0, D1Re0, #8
  45798. + AND D0Re0, D1Re0, #0xff ! Second byte
  45799. + CMP D0Re0, #0 ! Test c (indicated by zero)
  45800. + BNE $Lcharatcurrent
  45801. + ADD D1Ar1, D1Ar1, #1
  45802. +
  45803. + LSR D1Re0, D1Re0, #8
  45804. + AND D0Re0, D1Re0, #0xff ! Third byte
  45805. + CMP D0Re0, #0 ! Test c (indicated by zero)
  45806. + BNE $Lcharatcurrent
  45807. + ADD D1Ar1, D1Ar1, #1 ! Must be the fourth byte
  45808. + B $Lcharatcurrent
  45809. +
  45810. +$Lcharatprevious:
  45811. + SUB D1Ar1, D1Ar1, #1 ! Fix-up pointer
  45812. +$Lcharatcurrent:
  45813. + MOV D0Re0, D1Ar1 ! Return the string pointer
  45814. +$Lend:
  45815. + MOV PC, D1RtP
  45816. + .size _strchr,.-_strchr
  45817. +
  45818. +libc_hidden_def(strchr)
  45819. +#ifdef __UCLIBC_SUSV3_LEGACY__
  45820. +strong_alias(strchr,index)
  45821. +#endif
  45822. diff -Nur uClibc-0.9.33.2/libc/string/metag/strcmp.S uClibc-git/libc/string/metag/strcmp.S
  45823. --- uClibc-0.9.33.2/libc/string/metag/strcmp.S 1970-01-01 01:00:00.000000000 +0100
  45824. +++ uClibc-git/libc/string/metag/strcmp.S 2014-06-02 17:40:34.206713047 +0200
  45825. @@ -0,0 +1,65 @@
  45826. +! Copyright (C) 2013 Imagination Technologies Ltd.
  45827. +
  45828. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  45829. +
  45830. +
  45831. +#include <features.h>
  45832. +
  45833. + .text
  45834. + .global _strcmp
  45835. + .type _strcmp,function
  45836. +!D1Ar1 s1
  45837. +!D0Ar2 s2
  45838. +_strcmp:
  45839. + TST D1Ar1,#3
  45840. + TSTZ D0Ar2,#3
  45841. + MOVT D1Re0,#0x0101
  45842. + ADD D1Re0,D1Re0,#0x0101
  45843. + BNZ $Lstrcmp_slow
  45844. + GETD D1Ar3,[D1Ar1+#4++] ! Load 32-bits from s1
  45845. + GETD D1Ar5,[D0Ar2+#4++] ! Load 32-bits from s2
  45846. + LSL D0FrT,D1Re0,#7 ! D0FrT = 0x80808080
  45847. +$Lstrcmp4_loop:
  45848. + SUB D0Re0,D1Ar3,D1Re0 ! D1Re0 = 0x01010101
  45849. + MOV D0Ar6,D1Ar3
  45850. + SUBS D0Ar4,D1Ar3,D1Ar5 ! Calculate difference
  45851. + XOR D0Ar6,D0Ar6,#-1
  45852. + GETD D1Ar3,[D1Ar1+#4++] ! Load 32-bits from s1
  45853. + AND D0Re0,D0Re0,D0Ar6
  45854. + ANDSZ D0Ar6,D0Re0,D0FrT ! D0FrT = 0x80808080
  45855. + GETD D1Ar5,[D0Ar2+#4++] ! Load 32-bits from s2
  45856. + BZ $Lstrcmp4_loop
  45857. + AND D0Ar6, D0Re0, D0FrT ! D0FrT = 0x80808080
  45858. +!
  45859. +! Either they are different or they both contain a NULL + junk
  45860. +!
  45861. +$Lstrcmp4_end:
  45862. + LSLS D0Re0,D0Ar4,#24 ! Was Byte[0] the same?
  45863. + LSLSZ D0Ar2,D0Ar6,#24 ! Yes: AND they where not zero?
  45864. + LSLSZ D0Re0,D0Ar4,#16 ! Yes: Was Byte[1] the same?
  45865. + LSLSZ D0Ar2,D0Ar6,#16 ! Yes: AND they where not zero?
  45866. + LSLSZ D0Re0,D0Ar4,#8 ! Tes: Was Byte[2] the same?
  45867. + LSLSZ D0Ar2,D0Ar6,#8 ! Yes: AND they where not zero?
  45868. + MOVZ D0Re0,D0Ar4 ! Yes: Must by Byte[3] thats the result
  45869. + ASR D0Re0,D0Re0,#24 ! Sign extend result to integer
  45870. + MOV PC,D1RtP
  45871. +!
  45872. +! Misaligned case, byte at a time
  45873. +!
  45874. +$Lstrcmp_slow:
  45875. + GETB D1Ar3,[D1Ar1++] ! Load char from s1
  45876. + GETB D1Ar5,[D0Ar2++] ! Load char from s2
  45877. + CMP D1Ar3,#1 ! Null -> C and NZ, rest -> NC (\1->Z)
  45878. + CMPNC D1Ar3,D1Ar5 ! NOT Null: Same -> Z, else -> NZ
  45879. + BZ $Lstrcmp_slow ! NOT Null and Same: Loop
  45880. + SUB D0Re0,D1Ar3,D1Ar5 ! Generate result
  45881. + MOV PC,D1RtP
  45882. +
  45883. + .size _strcmp,.-_strcmp
  45884. +
  45885. +
  45886. +libc_hidden_def(strcmp)
  45887. +#ifndef __UCLIBC_HAS_LOCALE__
  45888. +strong_alias(strcmp,strcoll)
  45889. +libc_hidden_def(strcoll)
  45890. +#endif
  45891. diff -Nur uClibc-0.9.33.2/libc/string/metag/strcpy.S uClibc-git/libc/string/metag/strcpy.S
  45892. --- uClibc-0.9.33.2/libc/string/metag/strcpy.S 1970-01-01 01:00:00.000000000 +0100
  45893. +++ uClibc-git/libc/string/metag/strcpy.S 2014-06-02 17:40:34.206713047 +0200
  45894. @@ -0,0 +1,94 @@
  45895. +! Copyright (C) 2013 Imagination Technologies Ltd.
  45896. +
  45897. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  45898. +
  45899. +
  45900. + .text
  45901. + .global _strcpy
  45902. + .type _strcpy,function
  45903. +! D1Ar1 dst
  45904. +! D0Ar2 src
  45905. +
  45906. +_strcpy:
  45907. + MOV A1.2, D1Ar1
  45908. +
  45909. + ! test 4 byte alignment of src
  45910. + ANDS D0Ar4, D0Ar2, #3
  45911. + BNZ $Lbyteloop
  45912. +
  45913. + ! test 4 byte alignment of dest
  45914. + ANDS D1Ar5, D1Ar1, #3
  45915. + BNZ $Lbyteloop
  45916. +
  45917. + ! load mask values for aligned loops
  45918. + MOVT D1Ar3, #HI(0xfefefeff)
  45919. + ADD D1Ar3, D1Ar3, #LO(0xfefefeff)
  45920. + MOVT D0FrT, #HI(0x80808080)
  45921. + ADD D0FrT, D0FrT, #LO(0x80808080)
  45922. +
  45923. + ! test 8 byte alignment of src
  45924. + ANDS D0Ar4, D0Ar2, #7
  45925. + BNZ $Lwordloop
  45926. +
  45927. + ! test 8 byte alignment of dest
  45928. + ANDS D1Ar5, D1Ar1, #7
  45929. + BNZ $Lwordloop
  45930. +
  45931. +$L8byteloop:
  45932. + GETL D1Ar5, D0Ar6, [D0Ar2++]
  45933. + MOV D1Re0, D1Ar5
  45934. + MOV D0Re0, D1Ar5
  45935. + ADD D1Re0, D1Re0, D1Ar3
  45936. + XOR D0Re0, D0Re0, #-1
  45937. + AND D1Re0, D1Re0, D0Re0
  45938. + ANDS D1Re0, D1Re0, D0FrT
  45939. + BNZ $Lnullfound ! NULL in first word
  45940. +
  45941. + MOV D1Re0, D0Ar6
  45942. + MOV D0Re0, D0Ar6
  45943. + ADD D1Re0, D1Re0, D1Ar3
  45944. + XOR D0Re0, D0Re0, #-1
  45945. + AND D1Re0, D1Re0, D0Re0
  45946. + ANDS D1Re0, D1Re0, D0FrT
  45947. + BNZ $Lnullfound2 ! NULL in the second word
  45948. +
  45949. + SETL [A1.2++], D1Ar5, D0Ar6
  45950. + B $L8byteloop
  45951. +
  45952. +$Lwordloop:
  45953. + GETD D0Ar6, [D0Ar2++]
  45954. + MOV D1Re0, D0Ar6
  45955. + MOV D0Re0, D0Ar6
  45956. + ADD D1Re0, D1Re0, D1Ar3
  45957. + XOR D0Re0, D0Re0, #-1
  45958. + AND D1Re0, D1Re0, D0Re0
  45959. + ANDS D1Re0, D1Re0, D0FrT
  45960. + MOV D1Ar5, D0Ar6
  45961. + BNZ $Lnullfound
  45962. + SETD [A1.2++], D0Ar6
  45963. + B $Lwordloop
  45964. +
  45965. +$Lnullfound2:
  45966. + SETD [A1.2++], D1Ar5
  45967. + MOV D1Ar5, D0Ar6
  45968. +
  45969. +$Lnullfound:
  45970. + SETB [A1.2++], D1Ar5
  45971. + ANDS D0Ar6, D1Ar5, #0xff
  45972. + LSR D1Ar5, D1Ar5, #8
  45973. + BNZ $Lnullfound
  45974. + B $Lend
  45975. +
  45976. +$Lbyteloop:
  45977. + GETB D0Ar6, [D0Ar2++]
  45978. + SETB [A1.2++], D0Ar6
  45979. + CMP D0Ar6, #0
  45980. + BNZ $Lbyteloop
  45981. +
  45982. +$Lend:
  45983. + MOV D0Re0, D1Ar1
  45984. + MOV PC, D1RtP
  45985. +
  45986. + .size _strcpy,.-_strcpy
  45987. +
  45988. +libc_hidden_def(strcpy)
  45989. diff -Nur uClibc-0.9.33.2/libc/string/microblaze/memcpy.S uClibc-git/libc/string/microblaze/memcpy.S
  45990. --- uClibc-0.9.33.2/libc/string/microblaze/memcpy.S 2012-05-15 09:20:09.000000000 +0200
  45991. +++ uClibc-git/libc/string/microblaze/memcpy.S 2014-06-02 17:40:34.206713047 +0200
  45992. @@ -34,6 +34,14 @@
  45993. .type memcpy, @function
  45994. .ent memcpy
  45995. +#ifdef __MICROBLAZEEL__
  45996. +# define BSLLI bsrli
  45997. +# define BSRLI bslli
  45998. +#else
  45999. +# define BSLLI bslli
  46000. +# define BSRLI bsrli
  46001. +#endif
  46002. +
  46003. memcpy:
  46004. fast_memcpy_ascending:
  46005. /* move d to return register as value of function */
  46006. @@ -85,48 +93,48 @@
  46007. beqi r9, a_block_u2 /* t1 was 2 => 2 byte offset */
  46008. a_block_u3:
  46009. - bslli r11, r11, 24 /* h = h << 24 */
  46010. + BSLLI r11, r11, 24 /* h = h << 24 */
  46011. a_bu3_loop:
  46012. lwi r12, r8, 4 /* v = *(as + 4) */
  46013. - bsrli r9, r12, 8 /* t1 = v >> 8 */
  46014. + BSRLI r9, r12, 8 /* t1 = v >> 8 */
  46015. or r9, r11, r9 /* t1 = h | t1 */
  46016. swi r9, r5, 0 /* *(d + 0) = t1 */
  46017. - bslli r11, r12, 24 /* h = v << 24 */
  46018. + BSLLI r11, r12, 24 /* h = v << 24 */
  46019. lwi r12, r8, 8 /* v = *(as + 8) */
  46020. - bsrli r9, r12, 8 /* t1 = v >> 8 */
  46021. + BSRLI r9, r12, 8 /* t1 = v >> 8 */
  46022. or r9, r11, r9 /* t1 = h | t1 */
  46023. swi r9, r5, 4 /* *(d + 4) = t1 */
  46024. - bslli r11, r12, 24 /* h = v << 24 */
  46025. + BSLLI r11, r12, 24 /* h = v << 24 */
  46026. lwi r12, r8, 12 /* v = *(as + 12) */
  46027. - bsrli r9, r12, 8 /* t1 = v >> 8 */
  46028. + BSRLI r9, r12, 8 /* t1 = v >> 8 */
  46029. or r9, r11, r9 /* t1 = h | t1 */
  46030. swi r9, r5, 8 /* *(d + 8) = t1 */
  46031. - bslli r11, r12, 24 /* h = v << 24 */
  46032. + BSLLI r11, r12, 24 /* h = v << 24 */
  46033. lwi r12, r8, 16 /* v = *(as + 16) */
  46034. - bsrli r9, r12, 8 /* t1 = v >> 8 */
  46035. + BSRLI r9, r12, 8 /* t1 = v >> 8 */
  46036. or r9, r11, r9 /* t1 = h | t1 */
  46037. swi r9, r5, 12 /* *(d + 12) = t1 */
  46038. - bslli r11, r12, 24 /* h = v << 24 */
  46039. + BSLLI r11, r12, 24 /* h = v << 24 */
  46040. lwi r12, r8, 20 /* v = *(as + 20) */
  46041. - bsrli r9, r12, 8 /* t1 = v >> 8 */
  46042. + BSRLI r9, r12, 8 /* t1 = v >> 8 */
  46043. or r9, r11, r9 /* t1 = h | t1 */
  46044. swi r9, r5, 16 /* *(d + 16) = t1 */
  46045. - bslli r11, r12, 24 /* h = v << 24 */
  46046. + BSLLI r11, r12, 24 /* h = v << 24 */
  46047. lwi r12, r8, 24 /* v = *(as + 24) */
  46048. - bsrli r9, r12, 8 /* t1 = v >> 8 */
  46049. + BSRLI r9, r12, 8 /* t1 = v >> 8 */
  46050. or r9, r11, r9 /* t1 = h | t1 */
  46051. swi r9, r5, 20 /* *(d + 20) = t1 */
  46052. - bslli r11, r12, 24 /* h = v << 24 */
  46053. + BSLLI r11, r12, 24 /* h = v << 24 */
  46054. lwi r12, r8, 28 /* v = *(as + 28) */
  46055. - bsrli r9, r12, 8 /* t1 = v >> 8 */
  46056. + BSRLI r9, r12, 8 /* t1 = v >> 8 */
  46057. or r9, r11, r9 /* t1 = h | t1 */
  46058. swi r9, r5, 24 /* *(d + 24) = t1 */
  46059. - bslli r11, r12, 24 /* h = v << 24 */
  46060. + BSLLI r11, r12, 24 /* h = v << 24 */
  46061. lwi r12, r8, 32 /* v = *(as + 32) */
  46062. - bsrli r9, r12, 8 /* t1 = v >> 8 */
  46063. + BSRLI r9, r12, 8 /* t1 = v >> 8 */
  46064. or r9, r11, r9 /* t1 = h | t1 */
  46065. swi r9, r5, 28 /* *(d + 28) = t1 */
  46066. - bslli r11, r12, 24 /* h = v << 24 */
  46067. + BSLLI r11, r12, 24 /* h = v << 24 */
  46068. addi r8, r8, 32 /* as = as + 32 */
  46069. addi r4, r4, -32 /* n = n - 32 */
  46070. bneid r4, a_bu3_loop /* while (n) loop */
  46071. @@ -134,48 +142,48 @@
  46072. bri a_block_done
  46073. a_block_u1:
  46074. - bslli r11, r11, 8 /* h = h << 8 */
  46075. + BSLLI r11, r11, 8 /* h = h << 8 */
  46076. a_bu1_loop:
  46077. lwi r12, r8, 4 /* v = *(as + 4) */
  46078. - bsrli r9, r12, 24 /* t1 = v >> 24 */
  46079. + BSRLI r9, r12, 24 /* t1 = v >> 24 */
  46080. or r9, r11, r9 /* t1 = h | t1 */
  46081. swi r9, r5, 0 /* *(d + 0) = t1 */
  46082. - bslli r11, r12, 8 /* h = v << 8 */
  46083. + BSLLI r11, r12, 8 /* h = v << 8 */
  46084. lwi r12, r8, 8 /* v = *(as + 8) */
  46085. - bsrli r9, r12, 24 /* t1 = v >> 24 */
  46086. + BSRLI r9, r12, 24 /* t1 = v >> 24 */
  46087. or r9, r11, r9 /* t1 = h | t1 */
  46088. swi r9, r5, 4 /* *(d + 4) = t1 */
  46089. - bslli r11, r12, 8 /* h = v << 8 */
  46090. + BSLLI r11, r12, 8 /* h = v << 8 */
  46091. lwi r12, r8, 12 /* v = *(as + 12) */
  46092. - bsrli r9, r12, 24 /* t1 = v >> 24 */
  46093. + BSRLI r9, r12, 24 /* t1 = v >> 24 */
  46094. or r9, r11, r9 /* t1 = h | t1 */
  46095. swi r9, r5, 8 /* *(d + 8) = t1 */
  46096. - bslli r11, r12, 8 /* h = v << 8 */
  46097. + BSLLI r11, r12, 8 /* h = v << 8 */
  46098. lwi r12, r8, 16 /* v = *(as + 16) */
  46099. - bsrli r9, r12, 24 /* t1 = v >> 24 */
  46100. + BSRLI r9, r12, 24 /* t1 = v >> 24 */
  46101. or r9, r11, r9 /* t1 = h | t1 */
  46102. swi r9, r5, 12 /* *(d + 12) = t1 */
  46103. - bslli r11, r12, 8 /* h = v << 8 */
  46104. + BSLLI r11, r12, 8 /* h = v << 8 */
  46105. lwi r12, r8, 20 /* v = *(as + 20) */
  46106. - bsrli r9, r12, 24 /* t1 = v >> 24 */
  46107. + BSRLI r9, r12, 24 /* t1 = v >> 24 */
  46108. or r9, r11, r9 /* t1 = h | t1 */
  46109. swi r9, r5, 16 /* *(d + 16) = t1 */
  46110. - bslli r11, r12, 8 /* h = v << 8 */
  46111. + BSLLI r11, r12, 8 /* h = v << 8 */
  46112. lwi r12, r8, 24 /* v = *(as + 24) */
  46113. - bsrli r9, r12, 24 /* t1 = v >> 24 */
  46114. + BSRLI r9, r12, 24 /* t1 = v >> 24 */
  46115. or r9, r11, r9 /* t1 = h | t1 */
  46116. swi r9, r5, 20 /* *(d + 20) = t1 */
  46117. - bslli r11, r12, 8 /* h = v << 8 */
  46118. + BSLLI r11, r12, 8 /* h = v << 8 */
  46119. lwi r12, r8, 28 /* v = *(as + 28) */
  46120. - bsrli r9, r12, 24 /* t1 = v >> 24 */
  46121. + BSRLI r9, r12, 24 /* t1 = v >> 24 */
  46122. or r9, r11, r9 /* t1 = h | t1 */
  46123. swi r9, r5, 24 /* *(d + 24) = t1 */
  46124. - bslli r11, r12, 8 /* h = v << 8 */
  46125. + BSLLI r11, r12, 8 /* h = v << 8 */
  46126. lwi r12, r8, 32 /* v = *(as + 32) */
  46127. - bsrli r9, r12, 24 /* t1 = v >> 24 */
  46128. + BSRLI r9, r12, 24 /* t1 = v >> 24 */
  46129. or r9, r11, r9 /* t1 = h | t1 */
  46130. swi r9, r5, 28 /* *(d + 28) = t1 */
  46131. - bslli r11, r12, 8 /* h = v << 8 */
  46132. + BSLLI r11, r12, 8 /* h = v << 8 */
  46133. addi r8, r8, 32 /* as = as + 32 */
  46134. addi r4, r4, -32 /* n = n - 32 */
  46135. bneid r4, a_bu1_loop /* while (n) loop */
  46136. @@ -183,48 +191,48 @@
  46137. bri a_block_done
  46138. a_block_u2:
  46139. - bslli r11, r11, 16 /* h = h << 16 */
  46140. + BSLLI r11, r11, 16 /* h = h << 16 */
  46141. a_bu2_loop:
  46142. lwi r12, r8, 4 /* v = *(as + 4) */
  46143. - bsrli r9, r12, 16 /* t1 = v >> 16 */
  46144. + BSRLI r9, r12, 16 /* t1 = v >> 16 */
  46145. or r9, r11, r9 /* t1 = h | t1 */
  46146. swi r9, r5, 0 /* *(d + 0) = t1 */
  46147. - bslli r11, r12, 16 /* h = v << 16 */
  46148. + BSLLI r11, r12, 16 /* h = v << 16 */
  46149. lwi r12, r8, 8 /* v = *(as + 8) */
  46150. - bsrli r9, r12, 16 /* t1 = v >> 16 */
  46151. + BSRLI r9, r12, 16 /* t1 = v >> 16 */
  46152. or r9, r11, r9 /* t1 = h | t1 */
  46153. swi r9, r5, 4 /* *(d + 4) = t1 */
  46154. - bslli r11, r12, 16 /* h = v << 16 */
  46155. + BSLLI r11, r12, 16 /* h = v << 16 */
  46156. lwi r12, r8, 12 /* v = *(as + 12) */
  46157. - bsrli r9, r12, 16 /* t1 = v >> 16 */
  46158. + BSRLI r9, r12, 16 /* t1 = v >> 16 */
  46159. or r9, r11, r9 /* t1 = h | t1 */
  46160. swi r9, r5, 8 /* *(d + 8) = t1 */
  46161. - bslli r11, r12, 16 /* h = v << 16 */
  46162. + BSLLI r11, r12, 16 /* h = v << 16 */
  46163. lwi r12, r8, 16 /* v = *(as + 16) */
  46164. - bsrli r9, r12, 16 /* t1 = v >> 16 */
  46165. + BSRLI r9, r12, 16 /* t1 = v >> 16 */
  46166. or r9, r11, r9 /* t1 = h | t1 */
  46167. swi r9, r5, 12 /* *(d + 12) = t1 */
  46168. - bslli r11, r12, 16 /* h = v << 16 */
  46169. + BSLLI r11, r12, 16 /* h = v << 16 */
  46170. lwi r12, r8, 20 /* v = *(as + 20) */
  46171. - bsrli r9, r12, 16 /* t1 = v >> 16 */
  46172. + BSRLI r9, r12, 16 /* t1 = v >> 16 */
  46173. or r9, r11, r9 /* t1 = h | t1 */
  46174. swi r9, r5, 16 /* *(d + 16) = t1 */
  46175. - bslli r11, r12, 16 /* h = v << 16 */
  46176. + BSLLI r11, r12, 16 /* h = v << 16 */
  46177. lwi r12, r8, 24 /* v = *(as + 24) */
  46178. - bsrli r9, r12, 16 /* t1 = v >> 16 */
  46179. + BSRLI r9, r12, 16 /* t1 = v >> 16 */
  46180. or r9, r11, r9 /* t1 = h | t1 */
  46181. swi r9, r5, 20 /* *(d + 20) = t1 */
  46182. - bslli r11, r12, 16 /* h = v << 16 */
  46183. + BSLLI r11, r12, 16 /* h = v << 16 */
  46184. lwi r12, r8, 28 /* v = *(as + 28) */
  46185. - bsrli r9, r12, 16 /* t1 = v >> 16 */
  46186. + BSRLI r9, r12, 16 /* t1 = v >> 16 */
  46187. or r9, r11, r9 /* t1 = h | t1 */
  46188. swi r9, r5, 24 /* *(d + 24) = t1 */
  46189. - bslli r11, r12, 16 /* h = v << 16 */
  46190. + BSLLI r11, r12, 16 /* h = v << 16 */
  46191. lwi r12, r8, 32 /* v = *(as + 32) */
  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. swi r9, r5, 28 /* *(d + 28) = t1 */
  46196. - bslli r11, r12, 16 /* h = v << 16 */
  46197. + BSLLI r11, r12, 16 /* h = v << 16 */
  46198. addi r8, r8, 32 /* as = as + 32 */
  46199. addi r4, r4, -32 /* n = n - 32 */
  46200. bneid r4, a_bu2_loop /* while (n) loop */
  46201. @@ -263,13 +271,13 @@
  46202. beqi r9, a_word_u2 /* t1 was 2 => 2 byte offset */
  46203. a_word_u3:
  46204. - bslli r11, r11, 24 /* h = h << 24 */
  46205. + BSLLI r11, r11, 24 /* h = h << 24 */
  46206. a_wu3_loop:
  46207. lw r12, r8, r10 /* v = *(as + offset) */
  46208. - bsrli r9, r12, 8 /* t1 = v >> 8 */
  46209. + BSRLI r9, r12, 8 /* t1 = v >> 8 */
  46210. or r9, r11, r9 /* t1 = h | t1 */
  46211. sw r9, r5, r10 /* *(d + offset) = t1 */
  46212. - bslli r11, r12, 24 /* h = v << 24 */
  46213. + BSLLI r11, r12, 24 /* h = v << 24 */
  46214. addi r4, r4,-4 /* n = n - 4 */
  46215. bneid r4, a_wu3_loop /* while (n) loop */
  46216. addi r10, r10, 4 /* offset = ofset + 4 (IN DELAY SLOT) */
  46217. @@ -277,13 +285,13 @@
  46218. bri a_word_done
  46219. a_word_u1:
  46220. - bslli r11, r11, 8 /* h = h << 8 */
  46221. + BSLLI r11, r11, 8 /* h = h << 8 */
  46222. a_wu1_loop:
  46223. lw r12, r8, r10 /* v = *(as + offset) */
  46224. - bsrli r9, r12, 24 /* t1 = v >> 24 */
  46225. + BSRLI r9, r12, 24 /* t1 = v >> 24 */
  46226. or r9, r11, r9 /* t1 = h | t1 */
  46227. sw r9, r5, r10 /* *(d + offset) = t1 */
  46228. - bslli r11, r12, 8 /* h = v << 8 */
  46229. + BSLLI r11, r12, 8 /* h = v << 8 */
  46230. addi r4, r4,-4 /* n = n - 4 */
  46231. bneid r4, a_wu1_loop /* while (n) loop */
  46232. addi r10, r10, 4 /* offset = ofset + 4 (IN DELAY SLOT) */
  46233. @@ -291,13 +299,13 @@
  46234. bri a_word_done
  46235. a_word_u2:
  46236. - bslli r11, r11, 16 /* h = h << 16 */
  46237. + BSLLI r11, r11, 16 /* h = h << 16 */
  46238. a_wu2_loop:
  46239. lw r12, r8, r10 /* v = *(as + offset) */
  46240. - bsrli r9, r12, 16 /* t1 = v >> 16 */
  46241. + BSRLI r9, r12, 16 /* t1 = v >> 16 */
  46242. or r9, r11, r9 /* t1 = h | t1 */
  46243. sw r9, r5, r10 /* *(d + offset) = t1 */
  46244. - bslli r11, r12, 16 /* h = v << 16 */
  46245. + BSLLI r11, r12, 16 /* h = v << 16 */
  46246. addi r4, r4,-4 /* n = n - 4 */
  46247. bneid r4, a_wu2_loop /* while (n) loop */
  46248. addi r10, r10, 4 /* offset = ofset + 4 (IN DELAY SLOT) */
  46249. diff -Nur uClibc-0.9.33.2/libc/string/microblaze/memmove.S uClibc-git/libc/string/microblaze/memmove.S
  46250. --- uClibc-0.9.33.2/libc/string/microblaze/memmove.S 2012-05-15 09:20:09.000000000 +0200
  46251. +++ uClibc-git/libc/string/microblaze/memmove.S 2014-06-02 17:40:34.206713047 +0200
  46252. @@ -33,6 +33,14 @@
  46253. .type memmove, @function
  46254. .ent memmove
  46255. +#ifdef __MICROBLAZEEL__
  46256. +# define BSLLI bsrli
  46257. +# define BSRLI bslli
  46258. +#else
  46259. +# define BSLLI bslli
  46260. +# define BSRLI bsrli
  46261. +#endif
  46262. +
  46263. memmove:
  46264. cmpu r4, r5, r6 /* n = s - d */
  46265. bgei r4, HIDDEN_JUMPTARGET(memcpy)
  46266. @@ -112,150 +120,150 @@
  46267. beqi r9,d_block_u2 /* t1 was 2 => 2 byte offset */
  46268. d_block_u3:
  46269. - bsrli r11, r11, 8 /* h = h >> 8 */
  46270. + BSRLI r11, r11, 8 /* h = h >> 8 */
  46271. d_bu3_loop:
  46272. addi r8, r8, -32 /* as = as - 32 */
  46273. addi r5, r5, -32 /* d = d - 32 */
  46274. lwi r12, r8, 28 /* v = *(as + 28) */
  46275. - bslli r9, r12, 24 /* t1 = v << 24 */
  46276. + BSLLI r9, r12, 24 /* t1 = v << 24 */
  46277. or r9, r11, r9 /* t1 = h | t1 */
  46278. swi r9, r5, 28 /* *(d + 28) = t1 */
  46279. - bsrli r11, r12, 8 /* h = v >> 8 */
  46280. + BSRLI r11, r12, 8 /* h = v >> 8 */
  46281. lwi r12, r8, 24 /* v = *(as + 24) */
  46282. - bslli r9, r12, 24 /* t1 = v << 24 */
  46283. + BSLLI r9, r12, 24 /* t1 = v << 24 */
  46284. or r9, r11, r9 /* t1 = h | t1 */
  46285. swi r9, r5, 24 /* *(d + 24) = t1 */
  46286. - bsrli r11, r12, 8 /* h = v >> 8 */
  46287. + BSRLI r11, r12, 8 /* h = v >> 8 */
  46288. lwi r12, r8, 20 /* v = *(as + 20) */
  46289. - bslli r9, r12, 24 /* t1 = v << 24 */
  46290. + BSLLI r9, r12, 24 /* t1 = v << 24 */
  46291. or r9, r11, r9 /* t1 = h | t1 */
  46292. swi r9, r5, 20 /* *(d + 20) = t1 */
  46293. - bsrli r11, r12, 8 /* h = v >> 8 */
  46294. + BSRLI r11, r12, 8 /* h = v >> 8 */
  46295. lwi r12, r8, 16 /* v = *(as + 16) */
  46296. - bslli r9, r12, 24 /* t1 = v << 24 */
  46297. + BSLLI r9, r12, 24 /* t1 = v << 24 */
  46298. or r9, r11, r9 /* t1 = h | t1 */
  46299. swi r9, r5, 16 /* *(d + 16) = t1 */
  46300. - bsrli r11, r12, 8 /* h = v >> 8 */
  46301. + BSRLI r11, r12, 8 /* h = v >> 8 */
  46302. lwi r12, r8, 12 /* v = *(as + 12) */
  46303. - bslli r9, r12, 24 /* t1 = v << 24 */
  46304. + BSLLI r9, r12, 24 /* t1 = v << 24 */
  46305. or r9, r11, r9 /* t1 = h | t1 */
  46306. swi r9, r5, 12 /* *(d + 112) = t1 */
  46307. - bsrli r11, r12, 8 /* h = v >> 8 */
  46308. + BSRLI r11, r12, 8 /* h = v >> 8 */
  46309. lwi r12, r8, 8 /* v = *(as + 8) */
  46310. - bslli r9, r12, 24 /* t1 = v << 24 */
  46311. + BSLLI r9, r12, 24 /* t1 = v << 24 */
  46312. or r9, r11, r9 /* t1 = h | t1 */
  46313. swi r9, r5, 8 /* *(d + 8) = t1 */
  46314. - bsrli r11, r12, 8 /* h = v >> 8 */
  46315. + BSRLI r11, r12, 8 /* h = v >> 8 */
  46316. lwi r12, r8, 4 /* v = *(as + 4) */
  46317. - bslli r9, r12, 24 /* t1 = v << 24 */
  46318. + BSLLI r9, r12, 24 /* t1 = v << 24 */
  46319. or r9, r11, r9 /* t1 = h | t1 */
  46320. swi r9, r5, 4 /* *(d + 4) = t1 */
  46321. - bsrli r11, r12, 8 /* h = v >> 8 */
  46322. + BSRLI r11, r12, 8 /* h = v >> 8 */
  46323. lwi r12, r8, 0 /* v = *(as + 0) */
  46324. - bslli r9, r12, 24 /* t1 = v << 24 */
  46325. + BSLLI r9, r12, 24 /* t1 = v << 24 */
  46326. or r9, r11, r9 /* t1 = h | t1 */
  46327. swi r9, r5, 0 /* *(d + 0) = t1 */
  46328. addi r4, r4, -32 /* n = n - 32 */
  46329. bneid r4, d_bu3_loop /* while (n) loop */
  46330. - bsrli r11, r12, 8 /* h = v >> 8 (IN DELAY SLOT) */
  46331. + BSRLI r11, r12, 8 /* h = v >> 8 (IN DELAY SLOT) */
  46332. bri d_block_done
  46333. d_block_u1:
  46334. - bsrli r11, r11, 24 /* h = h >> 24 */
  46335. + BSRLI r11, r11, 24 /* h = h >> 24 */
  46336. d_bu1_loop:
  46337. addi r8, r8, -32 /* as = as - 32 */
  46338. addi r5, r5, -32 /* d = d - 32 */
  46339. lwi r12, r8, 28 /* v = *(as + 28) */
  46340. - bslli r9, r12, 8 /* t1 = v << 8 */
  46341. + BSLLI r9, r12, 8 /* t1 = v << 8 */
  46342. or r9, r11, r9 /* t1 = h | t1 */
  46343. swi r9, r5, 28 /* *(d + 28) = t1 */
  46344. - bsrli r11, r12, 24 /* h = v >> 24 */
  46345. + BSRLI r11, r12, 24 /* h = v >> 24 */
  46346. lwi r12, r8, 24 /* v = *(as + 24) */
  46347. - bslli r9, r12, 8 /* t1 = v << 8 */
  46348. + BSLLI r9, r12, 8 /* t1 = v << 8 */
  46349. or r9, r11, r9 /* t1 = h | t1 */
  46350. swi r9, r5, 24 /* *(d + 24) = t1 */
  46351. - bsrli r11, r12, 24 /* h = v >> 24 */
  46352. + BSRLI r11, r12, 24 /* h = v >> 24 */
  46353. lwi r12, r8, 20 /* v = *(as + 20) */
  46354. - bslli r9, r12, 8 /* t1 = v << 8 */
  46355. + BSLLI r9, r12, 8 /* t1 = v << 8 */
  46356. or r9, r11, r9 /* t1 = h | t1 */
  46357. swi r9, r5, 20 /* *(d + 20) = t1 */
  46358. - bsrli r11, r12, 24 /* h = v >> 24 */
  46359. + BSRLI r11, r12, 24 /* h = v >> 24 */
  46360. lwi r12, r8, 16 /* v = *(as + 16) */
  46361. - bslli r9, r12, 8 /* t1 = v << 8 */
  46362. + BSLLI r9, r12, 8 /* t1 = v << 8 */
  46363. or r9, r11, r9 /* t1 = h | t1 */
  46364. swi r9, r5, 16 /* *(d + 16) = t1 */
  46365. - bsrli r11, r12, 24 /* h = v >> 24 */
  46366. + BSRLI r11, r12, 24 /* h = v >> 24 */
  46367. lwi r12, r8, 12 /* v = *(as + 12) */
  46368. - bslli r9, r12, 8 /* t1 = v << 8 */
  46369. + BSLLI r9, r12, 8 /* t1 = v << 8 */
  46370. or r9, r11, r9 /* t1 = h | t1 */
  46371. swi r9, r5, 12 /* *(d + 112) = t1 */
  46372. - bsrli r11, r12, 24 /* h = v >> 24 */
  46373. + BSRLI r11, r12, 24 /* h = v >> 24 */
  46374. lwi r12, r8, 8 /* v = *(as + 8) */
  46375. - bslli r9, r12, 8 /* t1 = v << 8 */
  46376. + BSLLI r9, r12, 8 /* t1 = v << 8 */
  46377. or r9, r11, r9 /* t1 = h | t1 */
  46378. swi r9, r5, 8 /* *(d + 8) = t1 */
  46379. - bsrli r11, r12, 24 /* h = v >> 24 */
  46380. + BSRLI r11, r12, 24 /* h = v >> 24 */
  46381. lwi r12, r8, 4 /* v = *(as + 4) */
  46382. - bslli r9, r12, 8 /* t1 = v << 8 */
  46383. + BSLLI r9, r12, 8 /* t1 = v << 8 */
  46384. or r9, r11, r9 /* t1 = h | t1 */
  46385. swi r9, r5, 4 /* *(d + 4) = t1 */
  46386. - bsrli r11, r12, 24 /* h = v >> 24 */
  46387. + BSRLI r11, r12, 24 /* h = v >> 24 */
  46388. lwi r12, r8, 0 /* v = *(as + 0) */
  46389. - bslli r9, r12, 8 /* t1 = v << 8 */
  46390. + BSLLI r9, r12, 8 /* t1 = v << 8 */
  46391. or r9, r11, r9 /* t1 = h | t1 */
  46392. swi r9, r5, 0 /* *(d + 0) = t1 */
  46393. addi r4, r4, -32 /* n = n - 32 */
  46394. bneid r4, d_bu1_loop /* while (n) loop */
  46395. - bsrli r11, r12, 24 /* h = v >> 24 (IN DELAY SLOT) */
  46396. + BSRLI r11, r12, 24 /* h = v >> 24 (IN DELAY SLOT) */
  46397. bri d_block_done
  46398. d_block_u2:
  46399. - bsrli r11, r11, 16 /* h = h >> 16 */
  46400. + BSRLI r11, r11, 16 /* h = h >> 16 */
  46401. d_bu2_loop:
  46402. addi r8, r8, -32 /* as = as - 32 */
  46403. addi r5, r5, -32 /* d = d - 32 */
  46404. lwi r12, r8, 28 /* v = *(as + 28) */
  46405. - bslli r9, r12, 16 /* t1 = v << 16 */
  46406. + BSLLI r9, r12, 16 /* t1 = v << 16 */
  46407. or r9, r11, r9 /* t1 = h | t1 */
  46408. swi r9, r5, 28 /* *(d + 28) = t1 */
  46409. - bsrli r11, r12, 16 /* h = v >> 16 */
  46410. + BSRLI r11, r12, 16 /* h = v >> 16 */
  46411. lwi r12, r8, 24 /* v = *(as + 24) */
  46412. - bslli r9, r12, 16 /* t1 = v << 16 */
  46413. + BSLLI r9, r12, 16 /* t1 = v << 16 */
  46414. or r9, r11, r9 /* t1 = h | t1 */
  46415. swi r9, r5, 24 /* *(d + 24) = t1 */
  46416. - bsrli r11, r12, 16 /* h = v >> 16 */
  46417. + BSRLI r11, r12, 16 /* h = v >> 16 */
  46418. lwi r12, r8, 20 /* v = *(as + 20) */
  46419. - bslli r9, r12, 16 /* t1 = v << 16 */
  46420. + BSLLI r9, r12, 16 /* t1 = v << 16 */
  46421. or r9, r11, r9 /* t1 = h | t1 */
  46422. swi r9, r5, 20 /* *(d + 20) = t1 */
  46423. - bsrli r11, r12, 16 /* h = v >> 16 */
  46424. + BSRLI r11, r12, 16 /* h = v >> 16 */
  46425. lwi r12, r8, 16 /* v = *(as + 16) */
  46426. - bslli r9, r12, 16 /* t1 = v << 16 */
  46427. + BSLLI r9, r12, 16 /* t1 = v << 16 */
  46428. or r9, r11, r9 /* t1 = h | t1 */
  46429. swi r9, r5, 16 /* *(d + 16) = t1 */
  46430. - bsrli r11, r12, 16 /* h = v >> 16 */
  46431. + BSRLI r11, r12, 16 /* h = v >> 16 */
  46432. lwi r12, r8, 12 /* v = *(as + 12) */
  46433. - bslli r9, r12, 16 /* t1 = v << 16 */
  46434. + BSLLI r9, r12, 16 /* t1 = v << 16 */
  46435. or r9, r11, r9 /* t1 = h | t1 */
  46436. swi r9, r5, 12 /* *(d + 112) = t1 */
  46437. - bsrli r11, r12, 16 /* h = v >> 16 */
  46438. + BSRLI r11, r12, 16 /* h = v >> 16 */
  46439. lwi r12, r8, 8 /* v = *(as + 8) */
  46440. - bslli r9, r12, 16 /* t1 = v << 16 */
  46441. + BSLLI r9, r12, 16 /* t1 = v << 16 */
  46442. or r9, r11, r9 /* t1 = h | t1 */
  46443. swi r9, r5, 8 /* *(d + 8) = t1 */
  46444. - bsrli r11, r12, 16 /* h = v >> 16 */
  46445. + BSRLI r11, r12, 16 /* h = v >> 16 */
  46446. lwi r12, r8, 4 /* v = *(as + 4) */
  46447. - bslli r9, r12, 16 /* t1 = v << 16 */
  46448. + BSLLI r9, r12, 16 /* t1 = v << 16 */
  46449. or r9, r11, r9 /* t1 = h | t1 */
  46450. swi r9, r5, 4 /* *(d + 4) = t1 */
  46451. - bsrli r11, r12, 16 /* h = v >> 16 */
  46452. + BSRLI r11, r12, 16 /* h = v >> 16 */
  46453. lwi r12, r8, 0 /* v = *(as + 0) */
  46454. - bslli r9, r12, 16 /* t1 = v << 16 */
  46455. + BSLLI r9, r12, 16 /* t1 = v << 16 */
  46456. or r9, r11, r9 /* t1 = h | t1 */
  46457. swi r9, r5, 0 /* *(d + 0) = t1 */
  46458. addi r4, r4, -32 /* n = n - 32 */
  46459. bneid r4, d_bu2_loop /* while (n) loop */
  46460. - bsrli r11, r12, 16 /* h = v >> 16 (IN DELAY SLOT) */
  46461. + BSRLI r11, r12, 16 /* h = v >> 16 (IN DELAY SLOT) */
  46462. d_block_done:
  46463. addi r4, r0, 4 /* n = 4 */
  46464. @@ -290,41 +298,41 @@
  46465. beqi r9,d_word_u2 /* t1 was 2 => 2 byte offset */
  46466. d_word_u3:
  46467. - bsrli r11, r11, 8 /* h = h >> 8 */
  46468. + BSRLI r11, r11, 8 /* h = h >> 8 */
  46469. d_wu3_loop:
  46470. addi r4, r4,-4 /* n = n - 4 */
  46471. lw r12, r8, r4 /* v = *(as + n) */
  46472. - bslli r9, r12, 24 /* t1 = v << 24 */
  46473. + BSLLI r9, r12, 24 /* t1 = v << 24 */
  46474. or r9, r11, r9 /* t1 = h | t1 */
  46475. sw r9, r5, r4 /* *(d + n) = t1 */
  46476. bneid r4, d_wu3_loop /* while (n) loop */
  46477. - bsrli r11, r12, 8 /* h = v >> 8 (IN DELAY SLOT) */
  46478. + BSRLI r11, r12, 8 /* h = v >> 8 (IN DELAY SLOT) */
  46479. bri d_word_done
  46480. d_word_u1:
  46481. - bsrli r11, r11, 24 /* h = h >> 24 */
  46482. + BSRLI r11, r11, 24 /* h = h >> 24 */
  46483. d_wu1_loop:
  46484. addi r4, r4,-4 /* n = n - 4 */
  46485. lw r12, r8, r4 /* v = *(as + n) */
  46486. - bslli r9, r12, 8 /* t1 = v << 8 */
  46487. + BSLLI r9, r12, 8 /* t1 = v << 8 */
  46488. or r9, r11, r9 /* t1 = h | t1 */
  46489. sw r9, r5, r4 /* *(d + n) = t1 */
  46490. bneid r4, d_wu1_loop /* while (n) loop */
  46491. - bsrli r11, r12, 24 /* h = v >> 24 (IN DELAY SLOT) */
  46492. + BSRLI r11, r12, 24 /* h = v >> 24 (IN DELAY SLOT) */
  46493. bri d_word_done
  46494. d_word_u2:
  46495. - bsrli r11, r11, 16 /* h = h >> 16 */
  46496. + BSRLI r11, r11, 16 /* h = h >> 16 */
  46497. d_wu2_loop:
  46498. addi r4, r4,-4 /* n = n - 4 */
  46499. lw r12, r8, r4 /* v = *(as + n) */
  46500. - bslli r9, r12, 16 /* t1 = v << 16 */
  46501. + BSLLI r9, r12, 16 /* t1 = v << 16 */
  46502. or r9, r11, r9 /* t1 = h | t1 */
  46503. sw r9, r5, r4 /* *(d + n) = t1 */
  46504. bneid r4, d_wu2_loop /* while (n) loop */
  46505. - bsrli r11, r12, 16 /* h = v >> 16 (IN DELAY SLOT) */
  46506. + BSRLI r11, r12, 16 /* h = v >> 16 (IN DELAY SLOT) */
  46507. d_word_done:
  46508. diff -Nur uClibc-0.9.33.2/libc/string/mips/memcpy.S uClibc-git/libc/string/mips/memcpy.S
  46509. --- uClibc-0.9.33.2/libc/string/mips/memcpy.S 2012-05-15 09:20:09.000000000 +0200
  46510. +++ uClibc-git/libc/string/mips/memcpy.S 2014-06-02 17:40:34.206713047 +0200
  46511. @@ -13,14 +13,12 @@
  46512. Lesser General Public License for more details.
  46513. You should have received a copy of the GNU Lesser General Public
  46514. - License along with the GNU C Library; if not, write to the Free
  46515. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46516. - 02111-1307 USA. */
  46517. + License along with the GNU C Library; if not, see
  46518. + <http://www.gnu.org/licenses/>. */
  46519. #include <features.h>
  46520. -/*#include <sysdep.h>*/
  46521. +#include <sysdep.h>
  46522. #include <endian.h>
  46523. -#include "sysdep.h"
  46524. /* void *memcpy(void *s1, const void *s2, size_t n); */
  46525. diff -Nur uClibc-0.9.33.2/libc/string/mips/memset.S uClibc-git/libc/string/mips/memset.S
  46526. --- uClibc-0.9.33.2/libc/string/mips/memset.S 2012-05-15 09:20:09.000000000 +0200
  46527. +++ uClibc-git/libc/string/mips/memset.S 2014-06-02 17:40:34.206713047 +0200
  46528. @@ -13,14 +13,12 @@
  46529. Lesser General Public License for more details.
  46530. You should have received a copy of the GNU Lesser General Public
  46531. - License along with the GNU C Library; if not, write to the Free
  46532. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46533. - 02111-1307 USA. */
  46534. + License along with the GNU C Library; if not, see
  46535. + <http://www.gnu.org/licenses/>. */
  46536. #include <features.h>
  46537. -/*#include <sysdep.h>*/
  46538. +#include <sysdep.h>
  46539. #include <endian.h>
  46540. -#include "sysdep.h"
  46541. /* void *memset(void *s, int c, size_t n). */
  46542. diff -Nur uClibc-0.9.33.2/libc/string/mips/sysdep.h uClibc-git/libc/string/mips/sysdep.h
  46543. --- uClibc-0.9.33.2/libc/string/mips/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  46544. +++ uClibc-git/libc/string/mips/sysdep.h 1970-01-01 01:00:00.000000000 +0100
  46545. @@ -1,45 +0,0 @@
  46546. -/* Adapted from glibc's sysdeps/unix/mips/sysdep.h */
  46547. -
  46548. -/* Copyright (C) 1992, 1995, 1997, 1999, 2000, 2002, 2003
  46549. - Free Software Foundation, Inc.
  46550. - This file is part of the GNU C Library.
  46551. - Contributed by Brendan Kehoe (brendan@zen.org).
  46552. -
  46553. - The GNU C Library is free software; you can redistribute it and/or
  46554. - modify it under the terms of the GNU Lesser General Public
  46555. - License as published by the Free Software Foundation; either
  46556. - version 2.1 of the License, or (at your option) any later version.
  46557. -
  46558. - The GNU C Library is distributed in the hope that it will be useful,
  46559. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  46560. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  46561. - Lesser General Public License for more details.
  46562. -
  46563. - You should have received a copy of the GNU Lesser General Public
  46564. - License along with the GNU C Library; if not, write to the Free
  46565. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46566. - 02111-1307 USA. */
  46567. -
  46568. -#ifdef __ASSEMBLER__
  46569. -
  46570. -#include <sgidefs.h>
  46571. -#include <sys/regdef.h>
  46572. -
  46573. -#define ENTRY(name) \
  46574. - .globl name; \
  46575. - .align 2; \
  46576. - .ent name,0; \
  46577. - name/* use a comment rather than ## to workaround bug in gcc-3.4.x */:
  46578. -
  46579. -#undef END
  46580. -#define END(function) \
  46581. - .end function; \
  46582. - .size function,.-function
  46583. -
  46584. -#if _MIPS_SIM == _MIPS_SIM_ABI32 || _MIPS_SIM == _MIPS_SIM_ABIO64
  46585. -# define L(label) $L ## label
  46586. -#else
  46587. -# define L(label) .L ## label
  46588. -#endif
  46589. -
  46590. -#endif
  46591. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/memchr.S uClibc-git/libc/string/sparc/sparc32/memchr.S
  46592. --- uClibc-0.9.33.2/libc/string/sparc/sparc32/memchr.S 2012-05-15 09:20:09.000000000 +0200
  46593. +++ uClibc-git/libc/string/sparc/sparc32/memchr.S 2014-06-02 17:40:34.230713180 +0200
  46594. @@ -24,9 +24,8 @@
  46595. Lesser General Public License for more details.
  46596. You should have received a copy of the GNU Lesser General Public
  46597. - License along with the GNU C Library; if not, write to the Free
  46598. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46599. - 02111-1307 USA. */
  46600. + License along with the GNU C Library; if not, see
  46601. + <http://www.gnu.org/licenses/>. */
  46602. .text
  46603. .align 4
  46604. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/memcpy.S uClibc-git/libc/string/sparc/sparc32/memcpy.S
  46605. --- uClibc-0.9.33.2/libc/string/sparc/sparc32/memcpy.S 2012-05-15 09:20:09.000000000 +0200
  46606. +++ uClibc-git/libc/string/sparc/sparc32/memcpy.S 2014-06-02 17:40:34.230713180 +0200
  46607. @@ -17,9 +17,8 @@
  46608. Lesser General Public License for more details.
  46609. You should have received a copy of the GNU Lesser General Public
  46610. - License along with the GNU C Library; if not, write to the Free
  46611. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46612. - 02111-1307 USA. */
  46613. + License along with the GNU C Library; if not, see
  46614. + <http://www.gnu.org/licenses/>. */
  46615. #include <features.h>
  46616. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/memset.S uClibc-git/libc/string/sparc/sparc32/memset.S
  46617. --- uClibc-0.9.33.2/libc/string/sparc/sparc32/memset.S 2012-05-15 09:20:09.000000000 +0200
  46618. +++ uClibc-git/libc/string/sparc/sparc32/memset.S 2014-06-02 17:40:34.230713180 +0200
  46619. @@ -16,9 +16,8 @@
  46620. Lesser General Public License for more details.
  46621. You should have received a copy of the GNU Lesser General Public
  46622. - License along with the GNU C Library; if not, write to the Free
  46623. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46624. - 02111-1307 USA. */
  46625. + License along with the GNU C Library; if not, see
  46626. + <http://www.gnu.org/licenses/>. */
  46627. #include <features.h>
  46628. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/stpcpy.S uClibc-git/libc/string/sparc/sparc32/stpcpy.S
  46629. --- uClibc-0.9.33.2/libc/string/sparc/sparc32/stpcpy.S 2012-05-15 09:20:09.000000000 +0200
  46630. +++ uClibc-git/libc/string/sparc/sparc32/stpcpy.S 2014-06-02 17:40:34.246713269 +0200
  46631. @@ -15,9 +15,8 @@
  46632. Lesser General Public License for more details.
  46633. You should have received a copy of the GNU Lesser General Public
  46634. - License along with the GNU C Library; if not, write to the Free
  46635. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46636. - 02111-1307 USA. */
  46637. + License along with the GNU C Library; if not, see
  46638. + <http://www.gnu.org/licenses/>. */
  46639. /* Normally, this uses ((xword - 0x01010101) & 0x80808080) test
  46640. to find out if any byte in xword could be zero. This is fast, but
  46641. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/strcat.S uClibc-git/libc/string/sparc/sparc32/strcat.S
  46642. --- uClibc-0.9.33.2/libc/string/sparc/sparc32/strcat.S 2012-05-15 09:20:09.000000000 +0200
  46643. +++ uClibc-git/libc/string/sparc/sparc32/strcat.S 2014-06-02 17:40:34.246713269 +0200
  46644. @@ -15,9 +15,8 @@
  46645. Lesser General Public License for more details.
  46646. You should have received a copy of the GNU Lesser General Public
  46647. - License along with the GNU C Library; if not, write to the Free
  46648. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46649. - 02111-1307 USA. */
  46650. + License along with the GNU C Library; if not, see
  46651. + <http://www.gnu.org/licenses/>. */
  46652. /* Normally, this uses ((xword - 0x01010101) & 0x80808080) test
  46653. to find out if any byte in xword could be zero. This is fast, but
  46654. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/strchr.S uClibc-git/libc/string/sparc/sparc32/strchr.S
  46655. --- uClibc-0.9.33.2/libc/string/sparc/sparc32/strchr.S 2012-05-15 09:20:09.000000000 +0200
  46656. +++ uClibc-git/libc/string/sparc/sparc32/strchr.S 2014-06-02 17:40:34.246713269 +0200
  46657. @@ -16,9 +16,8 @@
  46658. Lesser General Public License for more details.
  46659. You should have received a copy of the GNU Lesser General Public
  46660. - License along with the GNU C Library; if not, write to the Free
  46661. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46662. - 02111-1307 USA. */
  46663. + License along with the GNU C Library; if not, see
  46664. + <http://www.gnu.org/licenses/>. */
  46665. /* Normally, this uses ((xword - 0x01010101) & 0x80808080) test
  46666. to find out if any byte in xword could be zero. This is fast, but
  46667. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/strcmp.S uClibc-git/libc/string/sparc/sparc32/strcmp.S
  46668. --- uClibc-0.9.33.2/libc/string/sparc/sparc32/strcmp.S 2012-05-15 09:20:09.000000000 +0200
  46669. +++ uClibc-git/libc/string/sparc/sparc32/strcmp.S 2014-06-02 17:40:34.246713269 +0200
  46670. @@ -15,9 +15,8 @@
  46671. Lesser General Public License for more details.
  46672. You should have received a copy of the GNU Lesser General Public
  46673. - License along with the GNU C Library; if not, write to the Free
  46674. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46675. - 02111-1307 USA. */
  46676. + License along with the GNU C Library; if not, see
  46677. + <http://www.gnu.org/licenses/>. */
  46678. /* Normally, this uses ((xword - 0x01010101) & 0x80808080) test
  46679. to find out if any byte in xword could be zero. This is fast, but
  46680. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/strcpy.S uClibc-git/libc/string/sparc/sparc32/strcpy.S
  46681. --- uClibc-0.9.33.2/libc/string/sparc/sparc32/strcpy.S 2012-05-15 09:20:09.000000000 +0200
  46682. +++ uClibc-git/libc/string/sparc/sparc32/strcpy.S 2014-06-02 17:40:34.250713291 +0200
  46683. @@ -15,9 +15,8 @@
  46684. Lesser General Public License for more details.
  46685. You should have received a copy of the GNU Lesser General Public
  46686. - License along with the GNU C Library; if not, write to the Free
  46687. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46688. - 02111-1307 USA. */
  46689. + License along with the GNU C Library; if not, see
  46690. + <http://www.gnu.org/licenses/>. */
  46691. /* Normally, this uses ((xword - 0x01010101) & 0x80808080) test
  46692. to find out if any byte in xword could be zero. This is fast, but
  46693. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/strlen.S uClibc-git/libc/string/sparc/sparc32/strlen.S
  46694. --- uClibc-0.9.33.2/libc/string/sparc/sparc32/strlen.S 2012-05-15 09:20:09.000000000 +0200
  46695. +++ uClibc-git/libc/string/sparc/sparc32/strlen.S 2014-06-02 17:40:34.250713291 +0200
  46696. @@ -15,9 +15,8 @@
  46697. Lesser General Public License for more details.
  46698. You should have received a copy of the GNU Lesser General Public
  46699. - License along with the GNU C Library; if not, write to the Free
  46700. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46701. - 02111-1307 USA. */
  46702. + License along with the GNU C Library; if not, see
  46703. + <http://www.gnu.org/licenses/>. */
  46704. /* Normally, this uses ((xword - 0x01010101) & 0x80808080) test
  46705. to find out if any byte in xword could be zero. This is fast, but
  46706. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/memchr.S uClibc-git/libc/string/sparc/sparc64/memchr.S
  46707. --- uClibc-0.9.33.2/libc/string/sparc/sparc64/memchr.S 2012-05-15 09:20:09.000000000 +0200
  46708. +++ uClibc-git/libc/string/sparc/sparc64/memchr.S 2014-06-02 17:40:34.250713291 +0200
  46709. @@ -24,9 +24,8 @@
  46710. Lesser General Public License for more details.
  46711. You should have received a copy of the GNU Lesser General Public
  46712. - License along with the GNU C Library; if not, write to the Free
  46713. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46714. - 02111-1307 USA. */
  46715. + License along with the GNU C Library; if not, see
  46716. + <http://www.gnu.org/licenses/>. */
  46717. #include <asm/asi.h>
  46718. #ifndef XCC
  46719. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/memcpy.S uClibc-git/libc/string/sparc/sparc64/memcpy.S
  46720. --- uClibc-0.9.33.2/libc/string/sparc/sparc64/memcpy.S 2012-05-15 09:20:09.000000000 +0200
  46721. +++ uClibc-git/libc/string/sparc/sparc64/memcpy.S 2014-06-02 17:40:34.250713291 +0200
  46722. @@ -16,9 +16,8 @@
  46723. Lesser General Public License for more details.
  46724. You should have received a copy of the GNU Lesser General Public
  46725. - License along with the GNU C Library; if not, write to the Free
  46726. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46727. - 02111-1307 USA. */
  46728. + License along with the GNU C Library; if not, see
  46729. + <http://www.gnu.org/licenses/>. */
  46730. #include <features.h>
  46731. #include <asm/asi.h>
  46732. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/memset.S uClibc-git/libc/string/sparc/sparc64/memset.S
  46733. --- uClibc-0.9.33.2/libc/string/sparc/sparc64/memset.S 2012-05-15 09:20:09.000000000 +0200
  46734. +++ uClibc-git/libc/string/sparc/sparc64/memset.S 2014-06-02 17:40:34.250713291 +0200
  46735. @@ -16,9 +16,8 @@
  46736. Lesser General Public License for more details.
  46737. You should have received a copy of the GNU Lesser General Public
  46738. - License along with the GNU C Library; if not, write to the Free
  46739. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46740. - 02111-1307 USA. */
  46741. + License along with the GNU C Library; if not, see
  46742. + <http://www.gnu.org/licenses/>. */
  46743. #include <features.h>
  46744. #include <asm/asi.h>
  46745. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/sparcv9b/memcpy.S uClibc-git/libc/string/sparc/sparc64/sparcv9b/memcpy.S
  46746. --- uClibc-0.9.33.2/libc/string/sparc/sparc64/sparcv9b/memcpy.S 2012-05-15 09:20:09.000000000 +0200
  46747. +++ uClibc-git/libc/string/sparc/sparc64/sparcv9b/memcpy.S 2014-06-02 17:40:34.250713291 +0200
  46748. @@ -15,9 +15,8 @@
  46749. Lesser General Public License for more details.
  46750. You should have received a copy of the GNU Lesser General Public
  46751. - License along with the GNU C Library; if not, write to the Free
  46752. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46753. - 02111-1307 USA. */
  46754. + License along with the GNU C Library; if not, see
  46755. + <http://www.gnu.org/licenses/>. */
  46756. #include <features.h>
  46757. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/stpcpy.S uClibc-git/libc/string/sparc/sparc64/stpcpy.S
  46758. --- uClibc-0.9.33.2/libc/string/sparc/sparc64/stpcpy.S 2012-05-15 09:20:09.000000000 +0200
  46759. +++ uClibc-git/libc/string/sparc/sparc64/stpcpy.S 2014-06-02 17:40:34.250713291 +0200
  46760. @@ -16,9 +16,8 @@
  46761. Lesser General Public License for more details.
  46762. You should have received a copy of the GNU Lesser General Public
  46763. - License along with the GNU C Library; if not, write to the Free
  46764. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46765. - 02111-1307 USA. */
  46766. + License along with the GNU C Library; if not, see
  46767. + <http://www.gnu.org/licenses/>. */
  46768. #include <asm/asi.h>
  46769. #ifndef XCC
  46770. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/strcat.S uClibc-git/libc/string/sparc/sparc64/strcat.S
  46771. --- uClibc-0.9.33.2/libc/string/sparc/sparc64/strcat.S 2012-05-15 09:20:09.000000000 +0200
  46772. +++ uClibc-git/libc/string/sparc/sparc64/strcat.S 2014-06-02 17:40:34.250713291 +0200
  46773. @@ -16,9 +16,8 @@
  46774. Lesser General Public License for more details.
  46775. You should have received a copy of the GNU Lesser General Public
  46776. - License along with the GNU C Library; if not, write to the Free
  46777. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46778. - 02111-1307 USA. */
  46779. + License along with the GNU C Library; if not, see
  46780. + <http://www.gnu.org/licenses/>. */
  46781. #include <asm/asi.h>
  46782. #ifndef XCC
  46783. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/strchr.S uClibc-git/libc/string/sparc/sparc64/strchr.S
  46784. --- uClibc-0.9.33.2/libc/string/sparc/sparc64/strchr.S 2012-05-15 09:20:09.000000000 +0200
  46785. +++ uClibc-git/libc/string/sparc/sparc64/strchr.S 2014-06-02 17:40:34.250713291 +0200
  46786. @@ -16,9 +16,8 @@
  46787. Lesser General Public License for more details.
  46788. You should have received a copy of the GNU Lesser General Public
  46789. - License along with the GNU C Library; if not, write to the Free
  46790. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46791. - 02111-1307 USA. */
  46792. + License along with the GNU C Library; if not, see
  46793. + <http://www.gnu.org/licenses/>. */
  46794. #include <features.h>
  46795. #include <asm/asi.h>
  46796. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/strcmp.S uClibc-git/libc/string/sparc/sparc64/strcmp.S
  46797. --- uClibc-0.9.33.2/libc/string/sparc/sparc64/strcmp.S 2012-05-15 09:20:09.000000000 +0200
  46798. +++ uClibc-git/libc/string/sparc/sparc64/strcmp.S 2014-06-02 17:40:34.250713291 +0200
  46799. @@ -16,9 +16,8 @@
  46800. Lesser General Public License for more details.
  46801. You should have received a copy of the GNU Lesser General Public
  46802. - License along with the GNU C Library; if not, write to the Free
  46803. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46804. - 02111-1307 USA. */
  46805. + License along with the GNU C Library; if not, see
  46806. + <http://www.gnu.org/licenses/>. */
  46807. #include <asm/asi.h>
  46808. #ifndef XCC
  46809. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/strcpy.S uClibc-git/libc/string/sparc/sparc64/strcpy.S
  46810. --- uClibc-0.9.33.2/libc/string/sparc/sparc64/strcpy.S 2012-05-15 09:20:09.000000000 +0200
  46811. +++ uClibc-git/libc/string/sparc/sparc64/strcpy.S 2014-06-02 17:40:34.250713291 +0200
  46812. @@ -16,9 +16,8 @@
  46813. Lesser General Public License for more details.
  46814. You should have received a copy of the GNU Lesser General Public
  46815. - License along with the GNU C Library; if not, write to the Free
  46816. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46817. - 02111-1307 USA. */
  46818. + License along with the GNU C Library; if not, see
  46819. + <http://www.gnu.org/licenses/>. */
  46820. #include <asm/asi.h>
  46821. #ifndef XCC
  46822. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/strlen.S uClibc-git/libc/string/sparc/sparc64/strlen.S
  46823. --- uClibc-0.9.33.2/libc/string/sparc/sparc64/strlen.S 2012-05-15 09:20:09.000000000 +0200
  46824. +++ uClibc-git/libc/string/sparc/sparc64/strlen.S 2014-06-02 17:40:34.250713291 +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 <asm/asi.h>
  46834. diff -Nur uClibc-0.9.33.2/libc/string/strchrnul.c uClibc-git/libc/string/strchrnul.c
  46835. --- uClibc-0.9.33.2/libc/string/strchrnul.c 2012-05-15 09:20:09.000000000 +0200
  46836. +++ uClibc-git/libc/string/strchrnul.c 2014-06-02 17:40:34.250713291 +0200
  46837. @@ -22,6 +22,6 @@
  46838. return (Wchar *) s;
  46839. }
  46840. # ifndef WANT_WIDE
  46841. -libc_hidden_def(Wstrchrnul)
  46842. +libc_hidden_def(strchrnul)
  46843. # endif
  46844. #endif
  46845. diff -Nur uClibc-0.9.33.2/libc/string/strverscmp.c uClibc-git/libc/string/strverscmp.c
  46846. --- uClibc-0.9.33.2/libc/string/strverscmp.c 2012-05-15 09:20:09.000000000 +0200
  46847. +++ uClibc-git/libc/string/strverscmp.c 2014-06-02 17:40:34.250713291 +0200
  46848. @@ -19,9 +19,8 @@
  46849. Lesser General Public License for more details.
  46850. You should have received a copy of the GNU Lesser General Public
  46851. - License along with the GNU C Library; if not, write to the Free
  46852. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46853. - 02111-1307 USA. */
  46854. + License along with the GNU C Library; if not, see
  46855. + <http://www.gnu.org/licenses/>. */
  46856. #include <string.h>
  46857. #include <ctype.h>
  46858. diff -Nur uClibc-0.9.33.2/libc/string/x86_64/memcpy.S uClibc-git/libc/string/x86_64/memcpy.S
  46859. --- uClibc-0.9.33.2/libc/string/x86_64/memcpy.S 2012-05-15 09:20:09.000000000 +0200
  46860. +++ uClibc-git/libc/string/x86_64/memcpy.S 2014-06-02 17:40:34.254713313 +0200
  46861. @@ -14,9 +14,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/memset.S uClibc-git/libc/string/x86_64/memset.S
  46871. --- uClibc-0.9.33.2/libc/string/x86_64/memset.S 2012-05-15 09:20:09.000000000 +0200
  46872. +++ uClibc-git/libc/string/x86_64/memset.S 2014-06-02 17:40:34.254713313 +0200
  46873. @@ -15,9 +15,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/strcat.S uClibc-git/libc/string/x86_64/strcat.S
  46883. --- uClibc-0.9.33.2/libc/string/x86_64/strcat.S 2012-05-15 09:20:09.000000000 +0200
  46884. +++ uClibc-git/libc/string/x86_64/strcat.S 2014-06-02 17:40:34.254713313 +0200
  46885. @@ -15,9 +15,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/strchr.S uClibc-git/libc/string/x86_64/strchr.S
  46895. --- uClibc-0.9.33.2/libc/string/x86_64/strchr.S 2012-05-15 09:20:09.000000000 +0200
  46896. +++ uClibc-git/libc/string/x86_64/strchr.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/strcmp.S uClibc-git/libc/string/x86_64/strcmp.S
  46907. --- uClibc-0.9.33.2/libc/string/x86_64/strcmp.S 2012-05-15 09:20:09.000000000 +0200
  46908. +++ uClibc-git/libc/string/x86_64/strcmp.S 2014-06-02 17:40:34.254713313 +0200
  46909. @@ -15,9 +15,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/x86_64/strcpy.S uClibc-git/libc/string/x86_64/strcpy.S
  46919. --- uClibc-0.9.33.2/libc/string/x86_64/strcpy.S 2012-05-15 09:20:09.000000000 +0200
  46920. +++ uClibc-git/libc/string/x86_64/strcpy.S 2014-06-02 17:40:34.254713313 +0200
  46921. @@ -14,9 +14,8 @@
  46922. Lesser General Public License for more details.
  46923. You should have received a copy of the GNU Lesser General Public
  46924. - License along with the GNU C Library; if not, write to the Free
  46925. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46926. - 02111-1307 USA. */
  46927. + License along with the GNU C Library; if not, see
  46928. + <http://www.gnu.org/licenses/>. */
  46929. #include "_glibc_inc.h"
  46930. diff -Nur uClibc-0.9.33.2/libc/string/x86_64/strcspn.S uClibc-git/libc/string/x86_64/strcspn.S
  46931. --- uClibc-0.9.33.2/libc/string/x86_64/strcspn.S 2012-05-15 09:20:09.000000000 +0200
  46932. +++ uClibc-git/libc/string/x86_64/strcspn.S 2014-06-02 17:40:34.254713313 +0200
  46933. @@ -19,9 +19,8 @@
  46934. Lesser General Public License for more details.
  46935. You should have received a copy of the GNU Lesser General Public
  46936. - License along with the GNU C Library; if not, write to the Free
  46937. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46938. - 02111-1307 USA. */
  46939. + License along with the GNU C Library; if not, see
  46940. + <http://www.gnu.org/licenses/>. */
  46941. #include "_glibc_inc.h"
  46942. diff -Nur uClibc-0.9.33.2/libc/string/x86_64/strlen.S uClibc-git/libc/string/x86_64/strlen.S
  46943. --- uClibc-0.9.33.2/libc/string/x86_64/strlen.S 2012-05-15 09:20:09.000000000 +0200
  46944. +++ uClibc-git/libc/string/x86_64/strlen.S 2014-06-02 17:40:34.254713313 +0200
  46945. @@ -14,9 +14,8 @@
  46946. Lesser General Public License for more details.
  46947. You should have received a copy of the GNU Lesser General Public
  46948. - License along with the GNU C Library; if not, write to the Free
  46949. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46950. - 02111-1307 USA. */
  46951. + License along with the GNU C Library; if not, see
  46952. + <http://www.gnu.org/licenses/>. */
  46953. #include "_glibc_inc.h"
  46954. diff -Nur uClibc-0.9.33.2/libc/string/x86_64/strspn.S uClibc-git/libc/string/x86_64/strspn.S
  46955. --- uClibc-0.9.33.2/libc/string/x86_64/strspn.S 2012-05-15 09:20:09.000000000 +0200
  46956. +++ uClibc-git/libc/string/x86_64/strspn.S 2014-06-02 17:40:34.254713313 +0200
  46957. @@ -19,9 +19,8 @@
  46958. Lesser General Public License for more details.
  46959. You should have received a copy of the GNU Lesser General Public
  46960. - License along with the GNU C Library; if not, write to the Free
  46961. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46962. - 02111-1307 USA. */
  46963. + License along with the GNU C Library; if not, see
  46964. + <http://www.gnu.org/licenses/>. */
  46965. #include "_glibc_inc.h"
  46966. diff -Nur uClibc-0.9.33.2/libc/string/__xpg_basename.c uClibc-git/libc/string/__xpg_basename.c
  46967. --- uClibc-0.9.33.2/libc/string/__xpg_basename.c 2012-05-15 09:20:09.000000000 +0200
  46968. +++ uClibc-git/libc/string/__xpg_basename.c 2014-06-02 17:40:34.182712914 +0200
  46969. @@ -5,7 +5,6 @@
  46970. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  46971. */
  46972. -#include "_string.h"
  46973. #include <libgen.h>
  46974. char *__xpg_basename(register char *path)
  46975. @@ -34,3 +33,7 @@
  46976. return first;
  46977. }
  46978. +#ifndef __USE_GNU
  46979. +# undef basename
  46980. +weak_alias(__xpg_basename,basename)
  46981. +#endif
  46982. diff -Nur uClibc-0.9.33.2/libc/string/__xpg_strerror_r.c uClibc-git/libc/string/__xpg_strerror_r.c
  46983. --- uClibc-0.9.33.2/libc/string/__xpg_strerror_r.c 2012-05-15 09:20:09.000000000 +0200
  46984. +++ uClibc-git/libc/string/__xpg_strerror_r.c 2014-06-02 17:40:34.182712914 +0200
  46985. @@ -5,8 +5,8 @@
  46986. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  46987. */
  46988. -/* Make sure we get proper strerror_r() prototype */
  46989. -#define strerror_r _hidestrerror_r
  46990. +/* get rid of REDIRECT */
  46991. +#define strerror_r __hide_strerror_r
  46992. #include <features.h>
  46993. #include <errno.h>
  46994. @@ -15,7 +15,6 @@
  46995. #undef strerror_r
  46996. -
  46997. #ifdef __UCLIBC_HAS_ERRNO_MESSAGES__
  46998. extern const char _string_syserrmsgs[] attribute_hidden;
  46999. @@ -273,4 +272,6 @@
  47000. #endif /* __UCLIBC_HAS_ERRNO_MESSAGES__ */
  47001. libc_hidden_def(__xpg_strerror_r)
  47002. -weak_alias(__xpg_strerror_r, strerror_r)
  47003. +#if defined __USE_XOPEN2K && !defined __USE_GNU
  47004. +strong_alias(__xpg_strerror_r,strerror_r)
  47005. +#endif
  47006. diff -Nur uClibc-0.9.33.2/libc/string/xtensa/memcpy.S uClibc-git/libc/string/xtensa/memcpy.S
  47007. --- uClibc-0.9.33.2/libc/string/xtensa/memcpy.S 2012-05-15 09:20:09.000000000 +0200
  47008. +++ uClibc-git/libc/string/xtensa/memcpy.S 2014-06-02 17:40:34.254713313 +0200
  47009. @@ -13,11 +13,10 @@
  47010. Lesser General Public License for more details.
  47011. You should have received a copy of the GNU Lesser General Public
  47012. - License along with the GNU C Library; if not, write to the Free
  47013. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  47014. - Boston, MA 02110-1301, USA. */
  47015. + License along with the GNU C Library; if not, see
  47016. + <http://www.gnu.org/licenses/>. */
  47017. -#include "../../sysdeps/linux/xtensa/sysdep.h"
  47018. +#include <sysdep.h>
  47019. #include <bits/xtensa-config.h>
  47020. .macro src_b r, w0, w1
  47021. diff -Nur uClibc-0.9.33.2/libc/string/xtensa/memset.S uClibc-git/libc/string/xtensa/memset.S
  47022. --- uClibc-0.9.33.2/libc/string/xtensa/memset.S 2012-05-15 09:20:09.000000000 +0200
  47023. +++ uClibc-git/libc/string/xtensa/memset.S 2014-06-02 17:40:34.254713313 +0200
  47024. @@ -13,11 +13,10 @@
  47025. Lesser General Public License for more details.
  47026. You should have received a copy of the GNU Lesser General Public
  47027. - License along with the GNU C Library; if not, write to the Free
  47028. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  47029. - Boston, MA 02110-1301, USA. */
  47030. + License along with the GNU C Library; if not, see
  47031. + <http://www.gnu.org/licenses/>. */
  47032. -#include "../../sysdeps/linux/xtensa/sysdep.h"
  47033. +#include <sysdep.h>
  47034. #include <bits/xtensa-config.h>
  47035. /* Do not use .literal_position in the ENTRY macro. */
  47036. diff -Nur uClibc-0.9.33.2/libc/string/xtensa/strcmp.S uClibc-git/libc/string/xtensa/strcmp.S
  47037. --- uClibc-0.9.33.2/libc/string/xtensa/strcmp.S 2012-05-15 09:20:09.000000000 +0200
  47038. +++ uClibc-git/libc/string/xtensa/strcmp.S 2014-06-02 17:40:34.254713313 +0200
  47039. @@ -13,11 +13,10 @@
  47040. Lesser General Public License for more details.
  47041. You should have received a copy of the GNU Lesser General Public
  47042. - License along with the GNU C Library; if not, write to the Free
  47043. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  47044. - Boston, MA 02110-1301, USA. */
  47045. + License along with the GNU C Library; if not, see
  47046. + <http://www.gnu.org/licenses/>. */
  47047. -#include "../../sysdeps/linux/xtensa/sysdep.h"
  47048. +#include <sysdep.h>
  47049. #include <bits/xtensa-config.h>
  47050. #include <features.h>
  47051. @@ -35,13 +34,14 @@
  47052. #define MASK4 0x40404040
  47053. + .text
  47054. + .align 4
  47055. + .literal_position
  47056. .literal .Lmask0, MASK0
  47057. .literal .Lmask1, MASK1
  47058. .literal .Lmask2, MASK2
  47059. .literal .Lmask3, MASK3
  47060. .literal .Lmask4, MASK4
  47061. -
  47062. - .text
  47063. ENTRY (strcmp)
  47064. /* a2 = s1, a3 = s2 */
  47065. diff -Nur uClibc-0.9.33.2/libc/string/xtensa/strcpy.S uClibc-git/libc/string/xtensa/strcpy.S
  47066. --- uClibc-0.9.33.2/libc/string/xtensa/strcpy.S 2012-05-15 09:20:09.000000000 +0200
  47067. +++ uClibc-git/libc/string/xtensa/strcpy.S 2014-06-02 17:40:34.254713313 +0200
  47068. @@ -13,11 +13,10 @@
  47069. Lesser General Public License for more details.
  47070. You should have received a copy of the GNU Lesser General Public
  47071. - License along with the GNU C Library; if not, write to the Free
  47072. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  47073. - Boston, MA 02110-1301, USA. */
  47074. + License along with the GNU C Library; if not, see
  47075. + <http://www.gnu.org/licenses/>. */
  47076. -#include "../../sysdeps/linux/xtensa/sysdep.h"
  47077. +#include <sysdep.h>
  47078. #include <bits/xtensa-config.h>
  47079. #ifdef __XTENSA_EB__
  47080. diff -Nur uClibc-0.9.33.2/libc/string/xtensa/strlen.S uClibc-git/libc/string/xtensa/strlen.S
  47081. --- uClibc-0.9.33.2/libc/string/xtensa/strlen.S 2012-05-15 09:20:09.000000000 +0200
  47082. +++ uClibc-git/libc/string/xtensa/strlen.S 2014-06-02 17:40:34.254713313 +0200
  47083. @@ -13,11 +13,10 @@
  47084. Lesser General Public License for more details.
  47085. You should have received a copy of the GNU Lesser General Public
  47086. - License along with the GNU C Library; if not, write to the Free
  47087. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  47088. - Boston, MA 02110-1301, USA. */
  47089. + License along with the GNU C Library; if not, see
  47090. + <http://www.gnu.org/licenses/>. */
  47091. -#include "../../sysdeps/linux/xtensa/sysdep.h"
  47092. +#include <sysdep.h>
  47093. #include <bits/xtensa-config.h>
  47094. #ifdef __XTENSA_EB__
  47095. diff -Nur uClibc-0.9.33.2/libc/string/xtensa/strncpy.S uClibc-git/libc/string/xtensa/strncpy.S
  47096. --- uClibc-0.9.33.2/libc/string/xtensa/strncpy.S 2012-05-15 09:20:09.000000000 +0200
  47097. +++ uClibc-git/libc/string/xtensa/strncpy.S 2014-06-02 17:40:34.254713313 +0200
  47098. @@ -13,11 +13,10 @@
  47099. Lesser General Public License for more details.
  47100. You should have received a copy of the GNU Lesser General Public
  47101. - License along with the GNU C Library; if not, write to the Free
  47102. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  47103. - Boston, MA 02110-1301, USA. */
  47104. + License along with the GNU C Library; if not, see
  47105. + <http://www.gnu.org/licenses/>. */
  47106. -#include "../../sysdeps/linux/xtensa/sysdep.h"
  47107. +#include <sysdep.h>
  47108. #include <bits/xtensa-config.h>
  47109. #ifdef __XTENSA_EB__
  47110. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/atomic.h uClibc-git/libc/sysdeps/linux/alpha/bits/atomic.h
  47111. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  47112. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/atomic.h 2014-06-02 17:40:34.258713336 +0200
  47113. @@ -12,9 +12,8 @@
  47114. Lesser General Public License for more details.
  47115. You should have received a copy of the GNU Lesser General Public
  47116. - License along with the GNU C Library; if not, write to the Free
  47117. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47118. - 02111-1307 USA. */
  47119. + License along with the GNU C Library; if not, see
  47120. + <http://www.gnu.org/licenses/>. */
  47121. #include <stdint.h>
  47122. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/dirent.h uClibc-git/libc/sysdeps/linux/alpha/bits/dirent.h
  47123. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/dirent.h 2012-05-15 09:20:09.000000000 +0200
  47124. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/dirent.h 2014-06-02 17:40:34.258713336 +0200
  47125. @@ -12,9 +12,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 _BITS_DIRENT_H
  47134. #define _BITS_DIRENT_H 1
  47135. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/eventfd.h uClibc-git/libc/sysdeps/linux/alpha/bits/eventfd.h
  47136. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/eventfd.h 1970-01-01 01:00:00.000000000 +0100
  47137. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/eventfd.h 2014-06-02 17:40:34.258713336 +0200
  47138. @@ -0,0 +1,31 @@
  47139. +/* Copyright (C) 2007-2013 Free Software Foundation, Inc.
  47140. + This file is part of the GNU C Library.
  47141. +
  47142. + The GNU C Library is free software; you can redistribute it and/or
  47143. + modify it under the terms of the GNU Lesser General Public
  47144. + License as published by the Free Software Foundation; either
  47145. + version 2.1 of the License, or (at your option) any later version.
  47146. +
  47147. + The GNU C Library is distributed in the hope that it will be useful,
  47148. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  47149. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  47150. + Lesser General Public License for more details.
  47151. +
  47152. + You should have received a copy of the GNU Lesser General Public
  47153. + License along with the GNU C Library; if not, see
  47154. + <http://www.gnu.org/licenses/>. */
  47155. +
  47156. +#ifndef _SYS_EVENTFD_H
  47157. +# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
  47158. +#endif
  47159. +
  47160. +/* Flags for eventfd. */
  47161. +enum
  47162. + {
  47163. + EFD_SEMAPHORE = 000000001,
  47164. +#define EFD_SEMAPHORE EFD_SEMAPHORE
  47165. + EFD_CLOEXEC = 010000000,
  47166. +#define EFD_CLOEXEC EFD_CLOEXEC
  47167. + EFD_NONBLOCK = 000000004
  47168. +#define EFD_NONBLOCK EFD_NONBLOCK
  47169. + };
  47170. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/fcntl.h uClibc-git/libc/sysdeps/linux/alpha/bits/fcntl.h
  47171. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  47172. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/fcntl.h 2014-06-02 17:40:34.258713336 +0200
  47173. @@ -13,9 +13,8 @@
  47174. Lesser General Public License for more details.
  47175. You should have received a copy of the GNU Lesser General Public
  47176. - License along with the GNU C Library; if not, write to the Free
  47177. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47178. - 02111-1307 USA. */
  47179. + License along with the GNU C Library; if not, see
  47180. + <http://www.gnu.org/licenses/>. */
  47181. #ifndef _FCNTL_H
  47182. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  47183. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/fenv.h uClibc-git/libc/sysdeps/linux/alpha/bits/fenv.h
  47184. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  47185. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/fenv.h 2014-06-02 17:40:34.258713336 +0200
  47186. @@ -12,9 +12,8 @@
  47187. Lesser General Public License for more details.
  47188. You should have received a copy of the GNU Lesser General Public
  47189. - License along with the GNU C Library; if not, write to the Free
  47190. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47191. - 02111-1307 USA. */
  47192. + License along with the GNU C Library; if not, see
  47193. + <http://www.gnu.org/licenses/>. */
  47194. #ifndef _FENV_H
  47195. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  47196. @@ -107,15 +106,15 @@
  47197. /* If the default argument is used we use this value. Note that due to
  47198. architecture-specified page mappings, no user-space pointer will ever
  47199. have its two high bits set. Co-opt one. */
  47200. -#define FE_DFL_ENV ((__const fenv_t *) 0x8800000000000000UL)
  47201. +#define FE_DFL_ENV ((const fenv_t *) 0x8800000000000000UL)
  47202. #ifdef __USE_GNU
  47203. /* Floating-point environment where none of the exceptions are masked. */
  47204. -# define FE_NOMASK_ENV ((__const fenv_t *) 0x880000000000003eUL)
  47205. +# define FE_NOMASK_ENV ((const fenv_t *) 0x880000000000003eUL)
  47206. /* Floating-point environment with (processor-dependent) non-IEEE floating
  47207. point. In this case, mapping denormals to zero. */
  47208. -# define FE_NONIEEE_ENV ((__const fenv_t *) 0x8800000000003000UL)
  47209. +# define FE_NONIEEE_ENV ((const fenv_t *) 0x8800000000003000UL)
  47210. #endif
  47211. /* The system calls to talk to the kernel's FP code. */
  47212. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/ioctls.h uClibc-git/libc/sysdeps/linux/alpha/bits/ioctls.h
  47213. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/ioctls.h 2012-05-15 09:20:09.000000000 +0200
  47214. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/ioctls.h 2014-06-02 17:40:34.258713336 +0200
  47215. @@ -12,9 +12,8 @@
  47216. Lesser General Public License for more details.
  47217. You should have received a copy of the GNU Lesser General Public
  47218. - License along with the GNU C Library; if not, write to the Free
  47219. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47220. - 02111-1307 USA. */
  47221. + License along with the GNU C Library; if not, see
  47222. + <http://www.gnu.org/licenses/>. */
  47223. #ifndef _SYS_IOCTL_H
  47224. # error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
  47225. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/ipc.h uClibc-git/libc/sysdeps/linux/alpha/bits/ipc.h
  47226. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
  47227. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/ipc.h 2014-06-02 17:40:34.258713336 +0200
  47228. @@ -12,9 +12,8 @@
  47229. Lesser General Public License for more details.
  47230. You should have received a copy of the GNU Lesser General Public
  47231. - License along with the GNU C Library; if not, write to the Free
  47232. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47233. - 02111-1307 USA. */
  47234. + License along with the GNU C Library; if not, see
  47235. + <http://www.gnu.org/licenses/>. */
  47236. #ifndef _SYS_IPC_H
  47237. # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
  47238. 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
  47239. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/kernel_sigaction.h 2012-05-15 09:20:09.000000000 +0200
  47240. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/kernel_sigaction.h 2014-06-02 17:40:34.258713336 +0200
  47241. @@ -9,12 +9,4 @@
  47242. unsigned int sa_flags;
  47243. };
  47244. -/* In uclibc, userspace struct sigaction is identical to
  47245. - * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel).
  47246. - * See sigaction.h
  47247. - */
  47248. -
  47249. -extern int __syscall_rt_sigaction (int, const struct sigaction *,
  47250. - struct sigaction *, size_t) attribute_hidden;
  47251. -
  47252. #endif
  47253. 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
  47254. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  47255. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/kernel_types.h 2014-06-02 17:40:34.258713336 +0200
  47256. @@ -33,6 +33,8 @@
  47257. typedef __kernel_uid_t __kernel_uid32_t;
  47258. typedef __kernel_gid_t __kernel_gid32_t;
  47259. typedef __kernel_dev_t __kernel_old_dev_t;
  47260. +typedef long __kernel_long_t;
  47261. +typedef unsigned long __kernel_ulong_t;
  47262. typedef struct {
  47263. int val[2];
  47264. 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
  47265. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/local_lim.h 1970-01-01 01:00:00.000000000 +0100
  47266. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/local_lim.h 2014-06-02 17:40:34.258713336 +0200
  47267. @@ -0,0 +1,91 @@
  47268. +/* Minimum guaranteed maximum values for system limits. Linux/Alpha version.
  47269. + Copyright (C) 1993-1998,2000,2002,2003,2004 Free Software Foundation, Inc.
  47270. + This file is part of the GNU C Library.
  47271. +
  47272. + The GNU C Library is free software; you can redistribute it and/or
  47273. + modify it under the terms of the GNU Library General Public License as
  47274. + published by the Free Software Foundation; either version 2 of the
  47275. + License, or (at your option) any later version.
  47276. +
  47277. + The GNU C Library is distributed in the hope that it will be useful,
  47278. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  47279. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  47280. + Library General Public License for more details.
  47281. +
  47282. + You should have received a copy of the GNU Library General Public
  47283. + License along with the GNU C Library; see the file COPYING.LIB. If not,
  47284. + see <http://www.gnu.org/licenses/>. */
  47285. +
  47286. +/* The kernel header pollutes the namespace with the NR_OPEN symbol
  47287. + and defines LINK_MAX although filesystems have different maxima. A
  47288. + similar thing is true for OPEN_MAX: the limit can be changed at
  47289. + runtime and therefore the macro must not be defined. Remove this
  47290. + after including the header if necessary. */
  47291. +#ifndef NR_OPEN
  47292. +# define __undef_NR_OPEN
  47293. +#endif
  47294. +#ifndef LINK_MAX
  47295. +# define __undef_LINK_MAX
  47296. +#endif
  47297. +#ifndef OPEN_MAX
  47298. +# define __undef_OPEN_MAX
  47299. +#endif
  47300. +
  47301. +/* The kernel sources contain a file with all the needed information. */
  47302. +#include <linux/limits.h>
  47303. +
  47304. +/* Have to remove NR_OPEN? */
  47305. +#ifdef __undef_NR_OPEN
  47306. +# undef NR_OPEN
  47307. +# undef __undef_NR_OPEN
  47308. +#endif
  47309. +/* Have to remove LINK_MAX? */
  47310. +#ifdef __undef_LINK_MAX
  47311. +# undef LINK_MAX
  47312. +# undef __undef_LINK_MAX
  47313. +#endif
  47314. +/* Have to remove OPEN_MAX? */
  47315. +#ifdef __undef_OPEN_MAX
  47316. +# undef OPEN_MAX
  47317. +# undef __undef_OPEN_MAX
  47318. +#endif
  47319. +
  47320. +/* The number of data keys per process. */
  47321. +#define _POSIX_THREAD_KEYS_MAX 128
  47322. +/* This is the value this implementation supports. */
  47323. +#define PTHREAD_KEYS_MAX 1024
  47324. +
  47325. +/* Controlling the iterations of destructors for thread-specific data. */
  47326. +#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
  47327. +/* Number of iterations this implementation does. */
  47328. +#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
  47329. +
  47330. +/* The number of threads per process. */
  47331. +#define _POSIX_THREAD_THREADS_MAX 64
  47332. +/* We have no predefined limit on the number of threads. */
  47333. +#undef PTHREAD_THREADS_MAX
  47334. +
  47335. +/* Maximum amount by which a process can descrease its asynchronous I/O
  47336. + priority level. */
  47337. +#define AIO_PRIO_DELTA_MAX 20
  47338. +
  47339. +/* Minimum size for a thread. We are free to choose a reasonable value. */
  47340. +#define PTHREAD_STACK_MIN 24576
  47341. +
  47342. +/* Maximum number of timer expiration overruns. */
  47343. +#define DELAYTIMER_MAX 2147483647
  47344. +
  47345. +/* Maximum tty name length. */
  47346. +#define TTY_NAME_MAX 32
  47347. +
  47348. +/* Maximum login name length. This is arbitrary. */
  47349. +#define LOGIN_NAME_MAX 256
  47350. +
  47351. +/* Maximum host name length. */
  47352. +#define HOST_NAME_MAX 64
  47353. +
  47354. +/* Maximum message queue priority level. */
  47355. +#define MQ_PRIO_MAX 32768
  47356. +
  47357. +/* Maximum value the semaphore can have. */
  47358. +#define SEM_VALUE_MAX (2147483647)
  47359. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/mathdef.h uClibc-git/libc/sysdeps/linux/alpha/bits/mathdef.h
  47360. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  47361. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/mathdef.h 2014-06-02 17:40:34.258713336 +0200
  47362. @@ -13,9 +13,8 @@
  47363. Lesser General Public License for more details.
  47364. You should have received a copy of the GNU Lesser General Public
  47365. - License along with the GNU C Library; if not, write to the Free
  47366. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47367. - 02111-1307 USA. */
  47368. + License along with the GNU C Library; if not, see
  47369. + <http://www.gnu.org/licenses/>. */
  47370. #if !defined _MATH_H && !defined _COMPLEX_H
  47371. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  47372. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/mathinline.h uClibc-git/libc/sysdeps/linux/alpha/bits/mathinline.h
  47373. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/mathinline.h 2012-05-15 09:20:09.000000000 +0200
  47374. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/mathinline.h 2014-06-02 17:40:34.262713357 +0200
  47375. @@ -14,9 +14,8 @@
  47376. Lesser General Public License for more details.
  47377. You should have received a copy of the GNU Lesser General Public
  47378. - License along with the GNU C Library; if not, write to the Free
  47379. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47380. - 02111-1307 USA. */
  47381. + License along with the GNU C Library; if not, see
  47382. + <http://www.gnu.org/licenses/>. */
  47383. #ifndef _MATH_H
  47384. # error "Never use <bits/mathinline.h> directly; include <math.h> instead."
  47385. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/mman.h uClibc-git/libc/sysdeps/linux/alpha/bits/mman.h
  47386. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/mman.h 2012-05-15 09:20:09.000000000 +0200
  47387. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/mman.h 2014-06-02 17:40:34.262713357 +0200
  47388. @@ -13,9 +13,8 @@
  47389. Lesser General Public License for more details.
  47390. You should have received a copy of the GNU Lesser General Public
  47391. - License along with the GNU C Library; if not, write to the Free
  47392. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47393. - 02111-1307 USA. */
  47394. + License along with the GNU C Library; if not, see
  47395. + <http://www.gnu.org/licenses/>. */
  47396. #ifndef _SYS_MMAN_H
  47397. # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
  47398. @@ -71,7 +70,7 @@
  47399. # define MAP_NORESERVE 0x10000 /* Don't check for reservations. */
  47400. # define MAP_POPULATE 0x20000 /* Populate (prefault) pagetables. */
  47401. # define MAP_NONBLOCK 0x40000 /* Do not block on IO. */
  47402. -# define MAP_UNINITIALIZE 0x4000000 /* For anonymous mmap, memory could
  47403. +# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could
  47404. be uninitialized. */
  47405. #endif
  47406. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/msq.h uClibc-git/libc/sysdeps/linux/alpha/bits/msq.h
  47407. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
  47408. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/msq.h 2014-06-02 17:40:34.262713357 +0200
  47409. @@ -12,9 +12,8 @@
  47410. Lesser General Public License for more details.
  47411. You should have received a copy of the GNU Lesser General Public
  47412. - License along with the GNU C Library; if not, write to the Free
  47413. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47414. - 02111-1307 USA. */
  47415. + License along with the GNU C Library; if not, see
  47416. + <http://www.gnu.org/licenses/>. */
  47417. #ifndef _SYS_MSG_H
  47418. # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
  47419. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/netdb.h uClibc-git/libc/sysdeps/linux/alpha/bits/netdb.h
  47420. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/netdb.h 2012-05-15 09:20:09.000000000 +0200
  47421. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/netdb.h 2014-06-02 17:40:34.262713357 +0200
  47422. @@ -12,9 +12,8 @@
  47423. Lesser General Public License for more details.
  47424. You should have received a copy of the GNU Lesser General Public
  47425. - License along with the GNU C Library; if not, write to the Free
  47426. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47427. - 02111-1307 USA. */
  47428. + License along with the GNU C Library; if not, see
  47429. + <http://www.gnu.org/licenses/>. */
  47430. #ifndef _NETDB_H
  47431. # error "Never include <bits/netdb.h> directly; use <netdb.h> instead."
  47432. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/resource.h uClibc-git/libc/sysdeps/linux/alpha/bits/resource.h
  47433. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/resource.h 2012-05-15 09:20:09.000000000 +0200
  47434. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/resource.h 2014-06-02 17:40:34.262713357 +0200
  47435. @@ -14,9 +14,8 @@
  47436. Lesser General Public License for more details.
  47437. You should have received a copy of the GNU Lesser General Public
  47438. - License along with the GNU C Library; if not, write to the Free
  47439. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47440. - 02111-1307 USA. */
  47441. + License along with the GNU C Library; if not, see
  47442. + <http://www.gnu.org/licenses/>. */
  47443. #ifndef _SYS_RESOURCE_H
  47444. # error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
  47445. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sem.h uClibc-git/libc/sysdeps/linux/alpha/bits/sem.h
  47446. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
  47447. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/sem.h 2014-06-02 17:40:34.262713357 +0200
  47448. @@ -12,9 +12,8 @@
  47449. Lesser General Public License for more details.
  47450. You should have received a copy of the GNU Lesser General Public
  47451. - License along with the GNU C Library; if not, write to the Free
  47452. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47453. - 02111-1307 USA. */
  47454. + License along with the GNU C Library; if not, see
  47455. + <http://www.gnu.org/licenses/>. */
  47456. #ifndef _SYS_SEM_H
  47457. # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
  47458. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/setjmp.h uClibc-git/libc/sysdeps/linux/alpha/bits/setjmp.h
  47459. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  47460. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/setjmp.h 2014-06-02 17:40:34.262713357 +0200
  47461. @@ -13,9 +13,8 @@
  47462. Lesser General Public License for more details.
  47463. You should have received a copy of the GNU Lesser General Public
  47464. - License along with the GNU C Library; if not, write to the Free
  47465. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47466. - 02111-1307 USA. */
  47467. + License along with the GNU C Library; if not, see
  47468. + <http://www.gnu.org/licenses/>. */
  47469. #ifndef _BITS_SETJMP_H
  47470. #define _BITS_SETJMP_H 1
  47471. @@ -55,33 +54,6 @@
  47472. * registers.
  47473. */
  47474. -#if defined __USE_MISC || defined __ASSEMBLY__
  47475. -# define JB_S0 0
  47476. -# define JB_S1 1
  47477. -# define JB_S2 2
  47478. -# define JB_S3 3
  47479. -# define JB_S4 4
  47480. -# define JB_S5 5
  47481. -# define JB_PC 6
  47482. -# define JB_FP 7
  47483. -# define JB_SP 8
  47484. -# define JB_F2 9
  47485. -# define JB_F3 10
  47486. -# define JB_F4 11
  47487. -# define JB_F5 12
  47488. -# define JB_F6 13
  47489. -# define JB_F7 14
  47490. -# define JB_F8 15
  47491. -# define JB_F9 16
  47492. -#endif
  47493. -
  47494. -#ifndef __ASSEMBLY__
  47495. typedef long int __jmp_buf[17];
  47496. -/* Test if longjmp to JMPBUF would unwind the frame containing a local
  47497. - variable at ADDRESS. */
  47498. -#define _JMPBUF_UNWINDS(_jmpbuf, _address) \
  47499. - ((void *)(_address) < (void *)((_jmpbuf)[JB_SP]))
  47500. -#endif
  47501. -
  47502. #endif /* bits/setjmp.h */
  47503. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/shm.h uClibc-git/libc/sysdeps/linux/alpha/bits/shm.h
  47504. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  47505. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/shm.h 2014-06-02 17:40:34.262713357 +0200
  47506. @@ -13,9 +13,8 @@
  47507. Lesser General Public License for more details.
  47508. You should have received a copy of the GNU Lesser General Public
  47509. - License along with the GNU C Library; if not, write to the Free
  47510. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47511. - 02111-1307 USA. */
  47512. + License along with the GNU C Library; if not, see
  47513. + <http://www.gnu.org/licenses/>. */
  47514. #ifndef _SYS_SHM_H
  47515. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  47516. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sigaction.h uClibc-git/libc/sysdeps/linux/alpha/bits/sigaction.h
  47517. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sigaction.h 2012-05-15 09:20:09.000000000 +0200
  47518. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/sigaction.h 2014-06-02 17:40:34.262713357 +0200
  47519. @@ -13,9 +13,8 @@
  47520. Lesser General Public License for more details.
  47521. You should have received a copy of the GNU Lesser General Public
  47522. - License along with the GNU C Library; if not, write to the Free
  47523. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47524. - 02111-1307 USA. */
  47525. + License along with the GNU C Library; if not, see
  47526. + <http://www.gnu.org/licenses/>. */
  47527. #ifndef _SIGNAL_H
  47528. # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
  47529. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/alpha/bits/sigcontextinfo.h
  47530. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  47531. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/sigcontextinfo.h 2014-06-02 17:40:34.262713357 +0200
  47532. @@ -12,9 +12,8 @@
  47533. Lesser General Public License for more details.
  47534. You should have received a copy of the GNU Lesser General Public
  47535. - License along with the GNU C Library; if not, write to the Free
  47536. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47537. - 02111-1307 USA. */
  47538. + License along with the GNU C Library; if not, see
  47539. + <http://www.gnu.org/licenses/>. */
  47540. #define SIGCONTEXT int _code, struct sigcontext *
  47541. #define SIGCONTEXT_EXTRA_ARGS _code,
  47542. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/siginfo.h uClibc-git/libc/sysdeps/linux/alpha/bits/siginfo.h
  47543. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/siginfo.h 2012-05-15 09:20:09.000000000 +0200
  47544. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/siginfo.h 2014-06-02 17:40:34.262713357 +0200
  47545. @@ -13,9 +13,8 @@
  47546. Lesser General Public License for more details.
  47547. You should have received a copy of the GNU Lesser General Public
  47548. - License along with the GNU C Library; if not, write to the Free
  47549. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47550. - 02111-1307 USA. */
  47551. + License along with the GNU C Library; if not, see
  47552. + <http://www.gnu.org/licenses/>. */
  47553. #if !defined _SIGNAL_H && !defined __need_siginfo_t \
  47554. && !defined __need_sigevent_t
  47555. @@ -258,7 +257,11 @@
  47556. /* Structure to transport application-defined values with signals. */
  47557. # define __SIGEV_MAX_SIZE 64
  47558. -# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
  47559. +# if __WORDSIZE == 64
  47560. +# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
  47561. +# else
  47562. +# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
  47563. +# endif
  47564. typedef struct sigevent
  47565. {
  47566. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/signum.h uClibc-git/libc/sysdeps/linux/alpha/bits/signum.h
  47567. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/signum.h 2012-05-15 09:20:09.000000000 +0200
  47568. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/signum.h 2014-06-02 17:40:34.262713357 +0200
  47569. @@ -13,9 +13,8 @@
  47570. Lesser General Public License for more details.
  47571. You should have received a copy of the GNU Lesser General Public
  47572. - License along with the GNU C Library; if not, write to the Free
  47573. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47574. - 02111-1307 USA. */
  47575. + License along with the GNU C Library; if not, see
  47576. + <http://www.gnu.org/licenses/>. */
  47577. #ifdef _SIGNAL_H
  47578. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sigstack.h uClibc-git/libc/sysdeps/linux/alpha/bits/sigstack.h
  47579. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sigstack.h 2012-05-15 09:20:09.000000000 +0200
  47580. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/sigstack.h 2014-06-02 17:40:34.262713357 +0200
  47581. @@ -13,9 +13,8 @@
  47582. Lesser General Public License for more details.
  47583. You should have received a copy of the GNU Lesser General Public
  47584. - License along with the GNU C Library; if not, write to the Free
  47585. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47586. - 02111-1307 USA. */
  47587. + License along with the GNU C Library; if not, see
  47588. + <http://www.gnu.org/licenses/>. */
  47589. #ifndef _SIGNAL_H
  47590. # error "Never include this file directly. Use <signal.h> instead"
  47591. 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
  47592. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/socket_type.h 1970-01-01 01:00:00.000000000 +0100
  47593. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/socket_type.h 2014-06-02 17:40:34.262713357 +0200
  47594. @@ -0,0 +1,54 @@
  47595. +/* Define enum __socket_type for Linux/Alpha.
  47596. + Copyright (C) 1991-2012 Free Software Foundation, Inc.
  47597. + This file is part of the GNU C Library.
  47598. +
  47599. + The GNU C Library is free software; you can redistribute it and/or
  47600. + modify it under the terms of the GNU Lesser General Public
  47601. + License as published by the Free Software Foundation; either
  47602. + version 2.1 of the License, or (at your option) any later version.
  47603. +
  47604. + The GNU C Library is distributed in the hope that it will be useful,
  47605. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  47606. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  47607. + Lesser General Public License for more details.
  47608. +
  47609. + You should have received a copy of the GNU Lesser General Public
  47610. + License along with the GNU C Library. If not, see
  47611. + <http://www.gnu.org/licenses/>. */
  47612. +
  47613. +#ifndef _SYS_SOCKET_H
  47614. +# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
  47615. +#endif
  47616. +
  47617. +/* Types of sockets. */
  47618. +enum __socket_type
  47619. +{
  47620. + SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
  47621. + byte streams. */
  47622. +#define SOCK_STREAM SOCK_STREAM
  47623. + SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
  47624. + of fixed maximum length. */
  47625. +#define SOCK_DGRAM SOCK_DGRAM
  47626. + SOCK_RAW = 3, /* Raw protocol interface. */
  47627. +#define SOCK_RAW SOCK_RAW
  47628. + SOCK_RDM = 4, /* Reliably-delivered messages. */
  47629. +#define SOCK_RDM SOCK_RDM
  47630. + SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
  47631. + datagrams of fixed maximum length. */
  47632. +#define SOCK_SEQPACKET SOCK_SEQPACKET
  47633. + SOCK_DCCP = 6, /* Datagram Congestion Control Protocol. */
  47634. +#define SOCK_DCCP SOCK_DCCP
  47635. + SOCK_PACKET = 10, /* Linux specific way of getting packets
  47636. + at the dev level. For writing rarp and
  47637. + other similar things on the user level. */
  47638. +#define SOCK_PACKET SOCK_PACKET
  47639. +
  47640. + /* Flags to be ORed into the type parameter of socket and socketpair. */
  47641. +
  47642. + SOCK_CLOEXEC = 010000000, /* Atomically set close-on-exec flag for the
  47643. + new descriptor(s). */
  47644. +#define SOCK_CLOEXEC SOCK_CLOEXEC
  47645. + SOCK_NONBLOCK = 0x40000000 /* Atomically mark descriptor(s) as
  47646. + non-blocking. */
  47647. +#define SOCK_NONBLOCK SOCK_NONBLOCK
  47648. +};
  47649. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/alpha/bits/stackinfo.h
  47650. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  47651. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/stackinfo.h 2014-06-02 17:40:34.262713357 +0200
  47652. @@ -12,9 +12,8 @@
  47653. Lesser General Public License for more details.
  47654. You should have received a copy of the GNU Lesser General Public
  47655. - License along with the GNU C Library; if not, write to the Free
  47656. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47657. - 02111-1307 USA. */
  47658. + License along with the GNU C Library; if not, see
  47659. + <http://www.gnu.org/licenses/>. */
  47660. /* This file contains a bit of information about the stack allocation
  47661. of the processor. */
  47662. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/statfs.h uClibc-git/libc/sysdeps/linux/alpha/bits/statfs.h
  47663. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/statfs.h 2012-05-15 09:20:09.000000000 +0200
  47664. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/statfs.h 2014-06-02 17:40:34.262713357 +0200
  47665. @@ -12,9 +12,8 @@
  47666. Lesser General Public License for more details.
  47667. You should have received a copy of the GNU Lesser General Public
  47668. - License along with the GNU C Library; if not, write to the Free
  47669. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47670. - 02111-1307 USA. */
  47671. + License along with the GNU C Library; if not, see
  47672. + <http://www.gnu.org/licenses/>. */
  47673. #ifndef _SYS_STATFS_H
  47674. # error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
  47675. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/stat.h uClibc-git/libc/sysdeps/linux/alpha/bits/stat.h
  47676. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  47677. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/stat.h 2014-06-02 17:40:34.262713357 +0200
  47678. @@ -13,9 +13,8 @@
  47679. Lesser General Public License for more details.
  47680. You should have received a copy of the GNU Lesser General Public
  47681. - License along with the GNU C Library; if not, write to the Free
  47682. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47683. - 02111-1307 USA. */
  47684. + License along with the GNU C Library; if not, see
  47685. + <http://www.gnu.org/licenses/>. */
  47686. #ifndef _SYS_STAT_H
  47687. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  47688. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/syscalls.h uClibc-git/libc/sysdeps/linux/alpha/bits/syscalls.h
  47689. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/syscalls.h 2012-05-15 09:20:09.000000000 +0200
  47690. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/syscalls.h 2014-06-02 17:40:34.262713357 +0200
  47691. @@ -14,9 +14,8 @@
  47692. Lesser General Public License for more details.
  47693. You should have received a copy of the GNU Lesser General Public
  47694. - License along with the GNU C Library; if not, write to the Free
  47695. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47696. - 02111-1307 USA. */
  47697. + License along with the GNU C Library; if not, see
  47698. + <http://www.gnu.org/licenses/>. */
  47699. #ifndef _BITS_SYSCALLS_H
  47700. #define _BITS_SYSCALLS_H
  47701. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/termios.h uClibc-git/libc/sysdeps/linux/alpha/bits/termios.h
  47702. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/termios.h 2012-05-15 09:20:09.000000000 +0200
  47703. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/termios.h 2014-06-02 17:40:34.262713357 +0200
  47704. @@ -14,9 +14,8 @@
  47705. Lesser General Public License for more details.
  47706. You should have received a copy of the GNU Lesser General Public
  47707. - License along with the GNU C Library; if not, write to the Free
  47708. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47709. - 02111-1307 USA. */
  47710. + License along with the GNU C Library; if not, see
  47711. + <http://www.gnu.org/licenses/>. */
  47712. #ifndef _TERMIOS_H
  47713. # error "Never include <bits/termios.h> directly; use <termios.h> instead."
  47714. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/typesizes.h uClibc-git/libc/sysdeps/linux/alpha/bits/typesizes.h
  47715. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
  47716. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/typesizes.h 2014-06-02 17:40:34.262713357 +0200
  47717. @@ -13,9 +13,8 @@
  47718. Lesser General Public License for more details.
  47719. You should have received a copy of the GNU Lesser General Public
  47720. - License along with the GNU C Library; if not, write to the Free
  47721. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47722. - 02111-1307 USA. */
  47723. + License along with the GNU C Library; if not, see
  47724. + <http://www.gnu.org/licenses/>. */
  47725. #ifndef _BITS_TYPES_H
  47726. # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
  47727. 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
  47728. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  47729. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/uClibc_arch_features.h 2014-06-02 17:40:34.262713357 +0200
  47730. @@ -11,8 +11,8 @@
  47731. /* can your target use syscall6() for mmap ? */
  47732. #define __UCLIBC_MMAP_HAS_6_ARGS__
  47733. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  47734. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  47735. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  47736. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  47737. /* does your target have a broken create_module() ? */
  47738. #define __UCLIBC_SLIGHTLY_BROKEN_CREATE_MODULE__
  47739. 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
  47740. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
  47741. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/uClibc_page.h 2014-06-02 17:40:34.262713357 +0200
  47742. @@ -11,8 +11,8 @@
  47743. * Library General Public License for more details.
  47744. *
  47745. * You should have received a copy of the GNU Library General Public
  47746. - * License along with this library; if not, write to the Free
  47747. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  47748. + * License along with this library; if not, see
  47749. + * <http://www.gnu.org/licenses/>.
  47750. */
  47751. /* Supply an architecture specific value for PAGE_SIZE and friends. */
  47752. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/wordsize.h uClibc-git/libc/sysdeps/linux/alpha/bits/wordsize.h
  47753. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  47754. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/wordsize.h 2014-06-02 17:40:34.262713357 +0200
  47755. @@ -12,9 +12,8 @@
  47756. Lesser General Public License for more details.
  47757. You should have received a copy of the GNU Lesser General Public
  47758. - License along with the GNU C Library; if not, write to the Free
  47759. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47760. - 02111-1307 USA. */
  47761. + License along with the GNU C Library; if not, see
  47762. + <http://www.gnu.org/licenses/>. */
  47763. #define __WORDSIZE 64
  47764. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/brk.S uClibc-git/libc/sysdeps/linux/alpha/brk.S
  47765. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/brk.S 2012-05-15 09:20:09.000000000 +0200
  47766. +++ uClibc-git/libc/sysdeps/linux/alpha/brk.S 2014-06-02 17:40:34.262713357 +0200
  47767. @@ -13,9 +13,8 @@
  47768. Lesser General Public License for more details.
  47769. You should have received a copy of the GNU Lesser General Public
  47770. - License along with the GNU C Library; if not, write to the Free
  47771. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47772. - 02111-1307 USA. */
  47773. + License along with the GNU C Library; if not, see
  47774. + <http://www.gnu.org/licenses/>. */
  47775. /* __brk is a special syscall under Linux since it never returns an
  47776. error. Instead, the error condition is indicated by returning the old
  47777. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/clone.S uClibc-git/libc/sysdeps/linux/alpha/clone.S
  47778. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/clone.S 2012-05-15 09:20:09.000000000 +0200
  47779. +++ uClibc-git/libc/sysdeps/linux/alpha/clone.S 2014-06-02 17:40:34.262713357 +0200
  47780. @@ -13,9 +13,8 @@
  47781. Lesser General Public License for more details.
  47782. You should have received a copy of the GNU Lesser General Public
  47783. - License along with the GNU C Library; if not, write to the Free
  47784. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47785. - 02111-1307 USA. */
  47786. + License along with the GNU C Library; if not, see
  47787. + <http://www.gnu.org/licenses/>. */
  47788. /* clone() is even more special than fork() as it mucks with stacks
  47789. and invokes a function in the right context after its all over. */
  47790. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/crt1.S uClibc-git/libc/sysdeps/linux/alpha/crt1.S
  47791. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/crt1.S 2012-05-15 09:20:09.000000000 +0200
  47792. +++ uClibc-git/libc/sysdeps/linux/alpha/crt1.S 2014-06-02 17:40:34.262713357 +0200
  47793. @@ -32,9 +32,8 @@
  47794. Lesser General Public License for more details.
  47795. You should have received a copy of the GNU Lesser General Public
  47796. - License along with the GNU C Library; if not, write to the Free
  47797. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47798. - 02111-1307 USA. */
  47799. + License along with the GNU C Library; if not, see
  47800. + <http://www.gnu.org/licenses/>. */
  47801. #include <features.h>
  47802. #include <sys/regdef.h>
  47803. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/divrem.h uClibc-git/libc/sysdeps/linux/alpha/divrem.h
  47804. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/divrem.h 2012-05-15 09:20:09.000000000 +0200
  47805. +++ uClibc-git/libc/sysdeps/linux/alpha/divrem.h 2014-06-02 17:40:34.262713357 +0200
  47806. @@ -13,9 +13,8 @@
  47807. Lesser General Public License for more details.
  47808. You should have received a copy of the GNU Lesser General Public
  47809. - License along with the GNU C Library; if not, write to the Free
  47810. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47811. - 02111-1307 USA. */
  47812. + License along with the GNU C Library; if not, see
  47813. + <http://www.gnu.org/licenses/>. */
  47814. /* The current Alpha chips don't provide hardware for integer
  47815. division. The C compiler expects the functions
  47816. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/fpu_control.h uClibc-git/libc/sysdeps/linux/alpha/fpu_control.h
  47817. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  47818. +++ uClibc-git/libc/sysdeps/linux/alpha/fpu_control.h 2014-06-02 17:40:34.262713357 +0200
  47819. @@ -14,9 +14,8 @@
  47820. Lesser General Public License for more details.
  47821. You should have received a copy of the GNU Lesser General Public
  47822. - License along with the GNU C Library; if not, write to the Free
  47823. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47824. - 02111-1307 USA. */
  47825. + License along with the GNU C Library; if not, see
  47826. + <http://www.gnu.org/licenses/>. */
  47827. #ifndef _ALPHA_FPU_CONTROL_H
  47828. #define _ALPHA_FPU_CONTROL_H
  47829. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/alpha/jmpbuf-offsets.h
  47830. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  47831. +++ uClibc-git/libc/sysdeps/linux/alpha/jmpbuf-offsets.h 2014-06-02 17:40:34.262713357 +0200
  47832. @@ -0,0 +1,35 @@
  47833. +/* Private macros for accessing __jmp_buf contents. Alpha version.
  47834. + Copyright (C) 2006 Free Software Foundation, Inc.
  47835. + This file is part of the GNU C Library.
  47836. +
  47837. + The GNU C Library is free software; you can redistribute it and/or
  47838. + modify it under the terms of the GNU Lesser General Public
  47839. + License as published by the Free Software Foundation; either
  47840. + version 2.1 of the License, or (at your option) any later version.
  47841. +
  47842. + The GNU C Library is distributed in the hope that it will be useful,
  47843. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  47844. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  47845. + Lesser General Public License for more details.
  47846. +
  47847. + You should have received a copy of the GNU Lesser General Public
  47848. + License along with the GNU C Library; if not, see
  47849. + <http://www.gnu.org/licenses/>. */
  47850. +
  47851. +#define JB_S0 0
  47852. +#define JB_S1 1
  47853. +#define JB_S2 2
  47854. +#define JB_S3 3
  47855. +#define JB_S4 4
  47856. +#define JB_S5 5
  47857. +#define JB_PC 6
  47858. +#define JB_FP 7
  47859. +#define JB_SP 8
  47860. +#define JB_F2 9
  47861. +#define JB_F3 10
  47862. +#define JB_F4 11
  47863. +#define JB_F5 12
  47864. +#define JB_F6 13
  47865. +#define JB_F7 14
  47866. +#define JB_F8 15
  47867. +#define JB_F9 16
  47868. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/alpha/jmpbuf-unwind.h
  47869. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  47870. +++ uClibc-git/libc/sysdeps/linux/alpha/jmpbuf-unwind.h 2014-06-02 17:40:34.262713357 +0200
  47871. @@ -0,0 +1,23 @@
  47872. +/*
  47873. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  47874. + *
  47875. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  47876. + */
  47877. +#include <setjmp.h>
  47878. +#include <jmpbuf-offsets.h>
  47879. +
  47880. +/* Test if longjmp to JMPBUF would unwind the frame containing a local
  47881. + variable at ADDRESS. */
  47882. +#define _JMPBUF_UNWINDS(_jmpbuf, _address) \
  47883. + ((void *)(_address) < (void *)((_jmpbuf)[JB_SP]))
  47884. +
  47885. +#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  47886. +#include <stdint.h>
  47887. +#include <unwind.h>
  47888. +
  47889. +#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
  47890. + _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
  47891. +
  47892. +#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  47893. + ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_SP] - (_adj))
  47894. +#endif
  47895. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/__longjmp.S uClibc-git/libc/sysdeps/linux/alpha/__longjmp.S
  47896. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  47897. +++ uClibc-git/libc/sysdeps/linux/alpha/__longjmp.S 2014-06-02 17:40:34.258713336 +0200
  47898. @@ -12,14 +12,10 @@
  47899. Lesser General Public License for more details.
  47900. You should have received a copy of the GNU Lesser General Public
  47901. - License along with the GNU C Library; if not, write to the Free
  47902. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47903. - 02111-1307 USA. */
  47904. + License along with the GNU C Library; if not, see
  47905. + <http://www.gnu.org/licenses/>. */
  47906. -#include <features.h>
  47907. -#define _SETJMP_H
  47908. -#define __ASSEMBLY__
  47909. -#include <bits/setjmp.h>
  47910. +#include <setjmp-offsets.h>
  47911. #define a0 $16
  47912. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/Makefile.arch uClibc-git/libc/sysdeps/linux/alpha/Makefile.arch
  47913. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  47914. +++ uClibc-git/libc/sysdeps/linux/alpha/Makefile.arch 2014-06-02 17:40:34.258713336 +0200
  47915. @@ -5,9 +5,9 @@
  47916. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  47917. #
  47918. -CSRC := __syscall_error.c sigprocmask.c
  47919. +CSRC-y := __syscall_error.c sigprocmask.c
  47920. -SSRC := \
  47921. +SSRC-y := \
  47922. __longjmp.S brk.S bsd-_setjmp.S bsd-setjmp.S clone.S \
  47923. divl.S divq.S pipe.S reml.S remq.S __syscall_rt_sigaction.S setjmp.S \
  47924. syscall.S
  47925. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/pipe.S uClibc-git/libc/sysdeps/linux/alpha/pipe.S
  47926. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/pipe.S 2012-05-15 09:20:09.000000000 +0200
  47927. +++ uClibc-git/libc/sysdeps/linux/alpha/pipe.S 2014-06-02 17:40:34.262713357 +0200
  47928. @@ -13,9 +13,8 @@
  47929. Lesser General Public License for more details.
  47930. You should have received a copy of the GNU Lesser General Public
  47931. - License along with the GNU C Library; if not, write to the Free
  47932. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47933. - 02111-1307 USA. */
  47934. + License along with the GNU C Library; if not, see
  47935. + <http://www.gnu.org/licenses/>. */
  47936. #include <features.h>
  47937. #include <sys/syscall.h>
  47938. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/setjmp.S uClibc-git/libc/sysdeps/linux/alpha/setjmp.S
  47939. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  47940. +++ uClibc-git/libc/sysdeps/linux/alpha/setjmp.S 2014-06-02 17:40:34.262713357 +0200
  47941. @@ -12,15 +12,10 @@
  47942. Lesser General Public License for more details.
  47943. You should have received a copy of the GNU Lesser General Public
  47944. - License along with the GNU C Library; if not, write to the Free
  47945. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47946. - 02111-1307 USA. */
  47947. -
  47948. -#include <features.h>
  47949. -#define _ASM
  47950. -#define _SETJMP_H
  47951. -#define __ASSEMBLY__
  47952. -#include <bits/setjmp.h>
  47953. + License along with the GNU C Library; if not, see
  47954. + <http://www.gnu.org/licenses/>. */
  47955. +
  47956. +#include <jmpbuf-offsets.h>
  47957. #define a0 $16
  47958. @@ -30,10 +25,16 @@
  47959. ldgp $29, 0($27)
  47960. $sigsetjmp_local:
  47961. - subq $30, 16, $30
  47962. - .frame $26, 16, $26, 0
  47963. - stq $26, 0($30)
  47964. - .mask 0x04000000, -16
  47965. +#ifndef __PIC__
  47966. +# define FRAME 16
  47967. + subq $30, FRAME, $30
  47968. + .frame $30, FRAME, $26, 0
  47969. + stq $26, 0($30)
  47970. + .mask 0x04000000, -FRAME
  47971. +#else
  47972. +# define FRAME 0
  47973. + .frame $30, FRAME, $26, 0
  47974. +#endif
  47975. .prologue 1
  47976. stq $9, JB_S0*8(a0)
  47977. @@ -43,9 +44,9 @@
  47978. stq $13, JB_S4*8(a0)
  47979. stq $14, JB_S5*8(a0)
  47980. stq $26, JB_PC*8(a0)
  47981. - addq $30, 16, $1
  47982. - stq $15, JB_FP*8(a0)
  47983. + addq $30, FRAME, $1
  47984. stq $1, JB_SP*8(a0)
  47985. + stq $15, JB_FP*8(a0)
  47986. stt $f2, JB_F2*8(a0)
  47987. stt $f3, JB_F3*8(a0)
  47988. stt $f4, JB_F4*8(a0)
  47989. @@ -55,12 +56,16 @@
  47990. stt $f8, JB_F8*8(a0)
  47991. stt $f9, JB_F9*8(a0)
  47992. +#ifndef __PIC__
  47993. /* Call to C to (potentially) save our signal mask. */
  47994. jsr $26, __sigjmp_save
  47995. -
  47996. ldq $26, 0($30)
  47997. addq $30, 16, $30
  47998. ret
  47999. +#else
  48000. + /* Tailcall to save the signal mask. */
  48001. + br $31, __sigjmp_save !samegp
  48002. +#endif
  48003. .end __sigsetjmp
  48004. @@ -71,7 +76,6 @@
  48005. .align 3;
  48006. .ent _setjmp , 0;
  48007. _setjmp:
  48008. - .frame $30 , 0, $26
  48009. ldgp $29, 0($27)
  48010. mov 0, $17
  48011. br $sigsetjmp_local
  48012. @@ -81,11 +85,7 @@
  48013. .align 3;
  48014. .ent setjmp , 0;
  48015. setjmp:
  48016. - .frame $30 , 0, $26
  48017. ldgp $29, 0($27)
  48018. mov 1, $17
  48019. br $sigsetjmp_local
  48020. .end setjmp
  48021. -
  48022. -.weak _setjmp
  48023. -.weak setjmp
  48024. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sigprocmask.c uClibc-git/libc/sysdeps/linux/alpha/sigprocmask.c
  48025. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sigprocmask.c 2012-05-15 09:20:09.000000000 +0200
  48026. +++ uClibc-git/libc/sysdeps/linux/alpha/sigprocmask.c 2014-06-02 17:40:34.262713357 +0200
  48027. @@ -13,9 +13,8 @@
  48028. Lesser General Public License for more details.
  48029. You should have received a copy of the GNU Lesser General Public
  48030. - License along with the GNU C Library; if not, write to the Free
  48031. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  48032. - 02111-1307 USA. */
  48033. + License along with the GNU C Library; if not, see
  48034. + <http://www.gnu.org/licenses/>. */
  48035. #include <features.h>
  48036. #include <errno.h>
  48037. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/acct.h uClibc-git/libc/sysdeps/linux/alpha/sys/acct.h
  48038. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/acct.h 2012-05-15 09:20:09.000000000 +0200
  48039. +++ uClibc-git/libc/sysdeps/linux/alpha/sys/acct.h 2014-06-02 17:40:34.262713357 +0200
  48040. @@ -12,9 +12,8 @@
  48041. Lesser General Public License for more details.
  48042. You should have received a copy of the GNU Lesser General Public
  48043. - License along with the GNU C Library; if not, write to the Free
  48044. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  48045. - 02111-1307 USA. */
  48046. + License along with the GNU C Library; if not, see
  48047. + <http://www.gnu.org/licenses/>. */
  48048. #ifndef _SYS_ACCT_H
  48049. @@ -59,7 +58,7 @@
  48050. /* Switch process accounting on and off. */
  48051. -extern int acct (__const char *__filename) __THROW;
  48052. +extern int acct (const char *__filename) __THROW;
  48053. __END_DECLS
  48054. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/io.h uClibc-git/libc/sysdeps/linux/alpha/sys/io.h
  48055. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/io.h 2012-05-15 09:20:09.000000000 +0200
  48056. +++ uClibc-git/libc/sysdeps/linux/alpha/sys/io.h 2014-06-02 17:40:34.262713357 +0200
  48057. @@ -12,9 +12,8 @@
  48058. Lesser General Public License for more details.
  48059. You should have received a copy of the GNU Lesser General Public
  48060. - License along with the GNU C Library; if not, write to the Free
  48061. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  48062. - 02111-1307 USA. */
  48063. + License along with the GNU C Library; if not, see
  48064. + <http://www.gnu.org/licenses/>. */
  48065. #ifndef _SYS_IO_H
  48066. @@ -23,6 +22,7 @@
  48067. __BEGIN_DECLS
  48068. +#if defined __UCLIBC_LINUX_SPECIFIC__
  48069. /* If TURN_ON is TRUE, request for permission to do direct i/o on the
  48070. port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
  48071. permission off for that range. This call requires root privileges.
  48072. @@ -32,12 +32,12 @@
  48073. E.g., Linux/Alpha for Alpha PCs supports this. */
  48074. extern int ioperm (unsigned long int __from, unsigned long int __num,
  48075. int __turn_on) __THROW;
  48076. -libc_hidden_proto(ioperm)
  48077. /* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to
  48078. access any I/O port is granted. This call requires root
  48079. privileges. */
  48080. extern int iopl (int __level) __THROW;
  48081. +#endif /* __UCLIBC_LINUX_SPECIFIC__ */
  48082. /* Return the physical address of the DENSE I/O memory or NULL if none
  48083. is available (e.g. on a jensen). */
  48084. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/procfs.h uClibc-git/libc/sysdeps/linux/alpha/sys/procfs.h
  48085. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  48086. +++ uClibc-git/libc/sysdeps/linux/alpha/sys/procfs.h 2014-06-02 17:40:34.262713357 +0200
  48087. @@ -12,9 +12,8 @@
  48088. Lesser General Public License for more details.
  48089. You should have received a copy of the GNU Lesser General Public
  48090. - License along with the GNU C Library; if not, write to the Free
  48091. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  48092. - 02111-1307 USA. */
  48093. + License along with the GNU C Library; if not, see
  48094. + <http://www.gnu.org/licenses/>. */
  48095. #ifndef _SYS_PROCFS_H
  48096. #define _SYS_PROCFS_H 1
  48097. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/ucontext.h uClibc-git/libc/sysdeps/linux/alpha/sys/ucontext.h
  48098. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  48099. +++ uClibc-git/libc/sysdeps/linux/alpha/sys/ucontext.h 2014-06-02 17:40:34.262713357 +0200
  48100. @@ -12,9 +12,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. #ifndef _SYS_UCONTEXT_H
  48109. #define _SYS_UCONTEXT_H 1
  48110. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/user.h uClibc-git/libc/sysdeps/linux/alpha/sys/user.h
  48111. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/user.h 2012-05-15 09:20:09.000000000 +0200
  48112. +++ uClibc-git/libc/sysdeps/linux/alpha/sys/user.h 2014-06-02 17:40:34.262713357 +0200
  48113. @@ -12,9 +12,8 @@
  48114. Lesser General Public License for more details.
  48115. You should have received a copy of the GNU Lesser General Public
  48116. - License along with the GNU C Library; if not, write to the Free
  48117. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  48118. - 02111-1307 USA. */
  48119. + License along with the GNU C Library; if not, see
  48120. + <http://www.gnu.org/licenses/>. */
  48121. #ifndef _SYS_USER_H
  48122. #define _SYS_USER_H 1
  48123. 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
  48124. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/__syscall_rt_sigaction.S 2012-05-15 09:20:09.000000000 +0200
  48125. +++ uClibc-git/libc/sysdeps/linux/alpha/__syscall_rt_sigaction.S 2014-06-02 17:40:34.258713336 +0200
  48126. @@ -13,9 +13,8 @@
  48127. Lesser General Public License for more details.
  48128. You should have received a copy of the GNU Lesser General Public
  48129. - License along with the GNU C Library; if not, write to the Free
  48130. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  48131. - 02111-1307 USA. */
  48132. + License along with the GNU C Library; if not, see
  48133. + <http://www.gnu.org/licenses/>. */
  48134. #include <features.h>
  48135. #include <sys/syscall.h>
  48136. @@ -31,6 +30,9 @@
  48137. .text
  48138. .globl __syscall_rt_sigaction
  48139. +#ifndef __UCLIBC_HAS_THREADS_NATIVE__
  48140. +.hidden __syscall_rt_sigaction
  48141. +#endif
  48142. .align 4
  48143. .ent __syscall_rt_sigaction, 0
  48144. __syscall_rt_sigaction:
  48145. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/syscall.S uClibc-git/libc/sysdeps/linux/alpha/syscall.S
  48146. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/syscall.S 2012-05-15 09:20:09.000000000 +0200
  48147. +++ uClibc-git/libc/sysdeps/linux/alpha/syscall.S 2014-06-02 17:40:34.262713357 +0200
  48148. @@ -13,9 +13,8 @@
  48149. Lesser General Public License for more details.
  48150. You should have received a copy of the GNU Lesser General Public
  48151. - License along with the GNU C Library; if not, write to the Free
  48152. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  48153. - 02111-1307 USA. */
  48154. + License along with the GNU C Library; if not, see
  48155. + <http://www.gnu.org/licenses/>. */
  48156. #include <features.h>
  48157. #include <sys/regdef.h>
  48158. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/byteswap.h uClibc-git/libc/sysdeps/linux/arc/bits/byteswap.h
  48159. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/byteswap.h 1970-01-01 01:00:00.000000000 +0100
  48160. +++ uClibc-git/libc/sysdeps/linux/arc/bits/byteswap.h 2014-06-02 17:40:34.266713379 +0200
  48161. @@ -0,0 +1,23 @@
  48162. +/*
  48163. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48164. + *
  48165. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48166. + *
  48167. + */
  48168. +
  48169. +#ifndef _ASM_BITS_BYTESWAP_H
  48170. +#define _ASM_BITS_BYTESWAP_H 1
  48171. +
  48172. +#ifdef __Xswape /* gcc defined if -mswape is enabled */
  48173. +
  48174. +#define __bswap_non_constant_32(x) \
  48175. + __extension__ \
  48176. + ({ unsigned int __bswap_32_v = x; \
  48177. + __asm__ ("swape %0, %0" : "+r" (__bswap_32_v)); \
  48178. + __bswap_32_v; })
  48179. +
  48180. +#endif /* __Xswape */
  48181. +
  48182. +#endif /* _ASM_BITS_BYTESWAP_H */
  48183. +
  48184. +#include <bits/byteswap-common.h>
  48185. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/endian.h uClibc-git/libc/sysdeps/linux/arc/bits/endian.h
  48186. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/endian.h 1970-01-01 01:00:00.000000000 +0100
  48187. +++ uClibc-git/libc/sysdeps/linux/arc/bits/endian.h 2014-06-02 17:40:34.266713379 +0200
  48188. @@ -0,0 +1,15 @@
  48189. +/*
  48190. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48191. + *
  48192. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48193. + */
  48194. +#ifndef _ENDIAN_H
  48195. +# error "Never use <bits/endian.h> directly; include <endian.h> instead."
  48196. +#endif
  48197. +
  48198. +/* ARC support either endianness. */
  48199. +#ifdef __BIG_ENDIAN__
  48200. +#define __BYTE_ORDER __BIG_ENDIAN
  48201. +#else
  48202. +#define __BYTE_ORDER __LITTLE_ENDIAN
  48203. +#endif
  48204. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/fcntl.h uClibc-git/libc/sysdeps/linux/arc/bits/fcntl.h
  48205. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/fcntl.h 1970-01-01 01:00:00.000000000 +0100
  48206. +++ uClibc-git/libc/sysdeps/linux/arc/bits/fcntl.h 2014-06-02 17:40:34.266713379 +0200
  48207. @@ -0,0 +1,223 @@
  48208. +/* O_*, F_*, FD_* bit values for Linux.
  48209. + *
  48210. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48211. + *
  48212. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48213. + */
  48214. +#ifndef _FCNTL_H
  48215. +# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  48216. +#endif
  48217. +
  48218. +
  48219. +#include <sys/types.h>
  48220. +#ifdef __USE_GNU
  48221. +# include <bits/uio.h>
  48222. +#endif
  48223. +
  48224. +/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
  48225. + located on an ext2 file system */
  48226. +#define O_ACCMODE 0003
  48227. +#define O_RDONLY 00
  48228. +#define O_WRONLY 01
  48229. +#define O_RDWR 02
  48230. +#define O_CREAT 0100 /* not fcntl */
  48231. +#define O_EXCL 0200 /* not fcntl */
  48232. +#define O_NOCTTY 0400 /* not fcntl */
  48233. +#define O_TRUNC 01000 /* not fcntl */
  48234. +#define O_APPEND 02000
  48235. +#define O_NONBLOCK 04000
  48236. +#define O_NDELAY O_NONBLOCK
  48237. +#define O_SYNC 010000
  48238. +#define O_FSYNC O_SYNC
  48239. +#define O_ASYNC 020000
  48240. +
  48241. +#ifdef __USE_GNU
  48242. +# define O_DIRECT 040000 /* Direct disk access. */
  48243. +# define O_DIRECTORY 0200000 /* Must be a directory. */
  48244. +# define O_NOFOLLOW 0400000 /* Do not follow links. */
  48245. +# define O_NOATIME 01000000 /* Do not set atime. */
  48246. +# define O_CLOEXEC 02000000 /* Set close_on_exec. */
  48247. +#endif
  48248. +
  48249. +#ifdef __USE_LARGEFILE64
  48250. +# define O_LARGEFILE 0100000
  48251. +#endif
  48252. +
  48253. +/* For now Linux has synchronisity options for data and read operations.
  48254. + We define the symbols here but let them do the same as O_SYNC since
  48255. + this is a superset. */
  48256. +#if defined __USE_POSIX199309 || defined __USE_UNIX98
  48257. +# define O_DSYNC O_SYNC /* Synchronize data. */
  48258. +# define O_RSYNC O_SYNC /* Synchronize read operations. */
  48259. +#endif
  48260. +
  48261. +/* Values for the second argument to `fcntl'. */
  48262. +#define F_DUPFD 0 /* Duplicate file descriptor. */
  48263. +#define F_GETFD 1 /* Get file descriptor flags. */
  48264. +#define F_SETFD 2 /* Set file descriptor flags. */
  48265. +#define F_GETFL 3 /* Get file status flags. */
  48266. +#define F_SETFL 4 /* Set file status flags. */
  48267. +
  48268. +#ifndef __USE_FILE_OFFSET64
  48269. +# define F_GETLK 5 /* Get record locking info. */
  48270. +# define F_SETLK 6 /* Set record locking info (non-blocking). */
  48271. +# define F_SETLKW 7 /* Set record locking info (blocking). */
  48272. +#else
  48273. +# define F_GETLK F_GETLK64 /* Get record locking info. */
  48274. +# define F_SETLK F_SETLK64 /* Set record locking info (non-blocking).*/
  48275. +# define F_SETLKW F_SETLKW64 /* Set record locking info (blocking). */
  48276. +#endif
  48277. +#define F_GETLK64 12 /* Get record locking info. */
  48278. +#define F_SETLK64 13 /* Set record locking info (non-blocking). */
  48279. +#define F_SETLKW64 14 /* Set record locking info (blocking). */
  48280. +
  48281. +#if defined __USE_BSD || defined __USE_XOPEN2K
  48282. +# define F_SETOWN 8 /* Get owner of socket (receiver of SIGIO). */
  48283. +# define F_GETOWN 9 /* Set owner of socket (receiver of SIGIO). */
  48284. +#endif
  48285. +
  48286. +#ifdef __USE_GNU
  48287. +# define F_SETSIG 10 /* Set number of signal to be sent. */
  48288. +# define F_GETSIG 11 /* Get number of signal to be sent. */
  48289. +#endif
  48290. +
  48291. +#ifdef __USE_GNU
  48292. +# define F_SETLEASE 1024 /* Set a lease. */
  48293. +# define F_GETLEASE 1025 /* Enquire what lease is active. */
  48294. +# define F_NOTIFY 1026 /* Request notfications on a directory. */
  48295. +# define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with
  48296. + close-on-exit set on new fd. */
  48297. +#endif
  48298. +
  48299. +/* For F_[GET|SET]FL. */
  48300. +#define FD_CLOEXEC 1 /* actually anything with low bit set goes */
  48301. +
  48302. +/* For posix fcntl() and `l_type' field of a `struct flock' for lockf(). */
  48303. +#define F_RDLCK 0 /* Read lock. */
  48304. +#define F_WRLCK 1 /* Write lock. */
  48305. +#define F_UNLCK 2 /* Remove lock. */
  48306. +
  48307. +/* For old implementation of bsd flock(). */
  48308. +#define F_EXLCK 4 /* or 3 */
  48309. +#define F_SHLCK 8 /* or 4 */
  48310. +
  48311. +#ifdef __USE_BSD
  48312. +/* Operations for bsd flock(), also used by the kernel implementation. */
  48313. +# define LOCK_SH 1 /* shared lock */
  48314. +# define LOCK_EX 2 /* exclusive lock */
  48315. +# define LOCK_NB 4 /* or'd with one of the above to prevent
  48316. + blocking */
  48317. +# define LOCK_UN 8 /* remove lock */
  48318. +#endif
  48319. +
  48320. +#ifdef __USE_GNU
  48321. +# define LOCK_MAND 32 /* This is a mandatory flock: */
  48322. +# define LOCK_READ 64 /* ... which allows concurrent read operations. */
  48323. +# define LOCK_WRITE 128 /* ... which allows concurrent write operations. */
  48324. +# define LOCK_RW 192 /* ... Which allows concurrent read & write operations. */
  48325. +#endif
  48326. +
  48327. +#ifdef __USE_GNU
  48328. +/* Types of directory notifications that may be requested with F_NOTIFY. */
  48329. +# define DN_ACCESS 0x00000001 /* File accessed. */
  48330. +# define DN_MODIFY 0x00000002 /* File modified. */
  48331. +# define DN_CREATE 0x00000004 /* File created. */
  48332. +# define DN_DELETE 0x00000008 /* File removed. */
  48333. +# define DN_RENAME 0x00000010 /* File renamed. */
  48334. +# define DN_ATTRIB 0x00000020 /* File changed attibutes. */
  48335. +# define DN_MULTISHOT 0x80000000 /* Don't remove notifier. */
  48336. +#endif
  48337. +
  48338. +struct flock
  48339. + {
  48340. + short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
  48341. + short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
  48342. +#ifndef __USE_FILE_OFFSET64
  48343. + __off_t l_start; /* Offset where the lock begins. */
  48344. + __off_t l_len; /* Size of the locked area; zero means until EOF. */
  48345. +#else
  48346. + __off64_t l_start; /* Offset where the lock begins. */
  48347. + __off64_t l_len; /* Size of the locked area; zero means until EOF. */
  48348. +#endif
  48349. + __pid_t l_pid; /* Process holding the lock. */
  48350. + };
  48351. +
  48352. +#ifdef __USE_LARGEFILE64
  48353. +struct flock64
  48354. + {
  48355. + short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
  48356. + short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
  48357. + __off64_t l_start; /* Offset where the lock begins. */
  48358. + __off64_t l_len; /* Size of the locked area; zero means until EOF. */
  48359. + __pid_t l_pid; /* Process holding the lock. */
  48360. + };
  48361. +#endif
  48362. +
  48363. +/* Define some more compatibility macros to be backward compatible with
  48364. + BSD systems which did not managed to hide these kernel macros. */
  48365. +#ifdef __USE_BSD
  48366. +# define FAPPEND O_APPEND
  48367. +# define FFSYNC O_FSYNC
  48368. +# define FASYNC O_ASYNC
  48369. +# define FNONBLOCK O_NONBLOCK
  48370. +# define FNDELAY O_NDELAY
  48371. +#endif /* Use BSD. */
  48372. +
  48373. +/* Advise to `posix_fadvise'. */
  48374. +#ifdef __USE_XOPEN2K
  48375. +# define POSIX_FADV_NORMAL 0 /* No further special treatment. */
  48376. +# define POSIX_FADV_RANDOM 1 /* Expect random page references. */
  48377. +# define POSIX_FADV_SEQUENTIAL 2 /* Expect sequential page references. */
  48378. +# define POSIX_FADV_WILLNEED 3 /* Will need these pages. */
  48379. +# define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */
  48380. +# define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */
  48381. +#endif
  48382. +
  48383. +#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
  48384. +/* Flags for SYNC_FILE_RANGE. */
  48385. +# define SYNC_FILE_RANGE_WAIT_BEFORE 1 /* Wait upon writeout of all pages
  48386. + in the range before performing the
  48387. + write. */
  48388. +# define SYNC_FILE_RANGE_WRITE 2 /* Initiate writeout of all those
  48389. + dirty pages in the range which are
  48390. + not presently under writeback. */
  48391. +# define SYNC_FILE_RANGE_WAIT_AFTER 4 /* Wait upon writeout of all pages in
  48392. + the range after performing the
  48393. + write. */
  48394. +
  48395. +/* Flags for SPLICE and VMSPLICE. */
  48396. +# define SPLICE_F_MOVE 1 /* Move pages instead of copying. */
  48397. +# define SPLICE_F_NONBLOCK 2 /* Don't block on the pipe splicing
  48398. + (but we may still block on the fd
  48399. + we splice from/to). */
  48400. +# define SPLICE_F_MORE 4 /* Expect more data. */
  48401. +# define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */
  48402. +#endif
  48403. +
  48404. +__BEGIN_DECLS
  48405. +
  48406. +#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
  48407. +
  48408. +/* Provide kernel hint to read ahead. */
  48409. +extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
  48410. + __THROW;
  48411. +
  48412. +/* Selective file content synch'ing. */
  48413. +extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to,
  48414. + unsigned int __flags);
  48415. +
  48416. +/* Splice address range into a pipe. */
  48417. +extern ssize_t vmsplice (int __fdout, const struct iovec *__iov,
  48418. + size_t __count, unsigned int __flags);
  48419. +
  48420. +/* Splice two files together. */
  48421. +extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
  48422. + __off64_t *__offout, size_t __len,
  48423. + unsigned int __flags);
  48424. +
  48425. +/* In-kernel implementation of tee for pipe buffers. */
  48426. +extern ssize_t tee (int __fdin, int __fdout, size_t __len,
  48427. + unsigned int __flags);
  48428. +
  48429. +#endif
  48430. +__END_DECLS
  48431. 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
  48432. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/kernel_types.h 1970-01-01 01:00:00.000000000 +0100
  48433. +++ uClibc-git/libc/sysdeps/linux/arc/bits/kernel_types.h 2014-06-02 17:40:34.266713379 +0200
  48434. @@ -0,0 +1,59 @@
  48435. +/*
  48436. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48437. + *
  48438. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48439. + */
  48440. +
  48441. +/* Note that we use the exact same include guard #define names
  48442. + * as asm/posix_types.h. This will avoid gratuitous conflicts
  48443. + * with the posix_types.h kernel header, and will ensure that
  48444. + * our private content, and not the kernel header, will win.
  48445. + * -Erik
  48446. + *
  48447. + * Update: ARC Linux 3.2 ABI change - asm-generic/posix_types.h used now.
  48448. + * for which ARCH wrapper (asm/posix_types.h) is generated, so need to use
  48449. + * the asm-generic file's gaurd.
  48450. + *
  48451. + * Based on asm-generic/stat.h
  48452. + */
  48453. +
  48454. +#ifndef __ASM_GENERIC_POSIX_TYPES_H
  48455. +#define __ASM_GENERIC_POSIX_TYPES_H
  48456. +
  48457. +typedef unsigned long __kernel_dev_t;
  48458. +typedef unsigned long __kernel_ino_t;
  48459. +typedef unsigned int __kernel_mode_t;
  48460. +typedef unsigned int __kernel_nlink_t;
  48461. +typedef long __kernel_off_t;
  48462. +typedef int __kernel_pid_t;
  48463. +typedef int __kernel_ipc_pid_t;
  48464. +typedef unsigned int __kernel_uid_t;
  48465. +typedef unsigned int __kernel_gid_t;
  48466. +typedef unsigned int __kernel_size_t;
  48467. +typedef int __kernel_ssize_t;
  48468. +typedef int __kernel_ptrdiff_t;
  48469. +typedef long __kernel_time_t;
  48470. +typedef long __kernel_suseconds_t;
  48471. +typedef long __kernel_clock_t;
  48472. +typedef int __kernel_daddr_t;
  48473. +typedef char * __kernel_caddr_t;
  48474. +typedef unsigned short __kernel_uid16_t;
  48475. +typedef unsigned short __kernel_gid16_t;
  48476. +typedef __kernel_uid_t __kernel_uid32_t;
  48477. +typedef __kernel_gid_t __kernel_gid32_t;
  48478. +typedef __kernel_uid_t __kernel_old_uid_t;
  48479. +typedef __kernel_gid_t __kernel_old_gid_t;
  48480. +typedef long long __kernel_loff_t;
  48481. +typedef unsigned int __kernel_old_dev_t;
  48482. +typedef long __kernel_long_t;
  48483. +typedef unsigned long __kernel_ulong_t;
  48484. +
  48485. +typedef struct {
  48486. +#ifdef __USE_ALL
  48487. + int val[2];
  48488. +#else
  48489. + int __val[2];
  48490. +#endif
  48491. +} __kernel_fsid_t;
  48492. +
  48493. +#endif /* _ASM_ARC_POSIX_TYPES_H */
  48494. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/setjmp.h uClibc-git/libc/sysdeps/linux/arc/bits/setjmp.h
  48495. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/setjmp.h 1970-01-01 01:00:00.000000000 +0100
  48496. +++ uClibc-git/libc/sysdeps/linux/arc/bits/setjmp.h 2014-06-02 17:40:34.266713379 +0200
  48497. @@ -0,0 +1,16 @@
  48498. +/*
  48499. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48500. + *
  48501. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48502. + */
  48503. +
  48504. +#ifndef _BITS_SETJMP_H
  48505. +#define _BITS_SETJMP_H 1
  48506. +
  48507. +#if !defined _SETJMP_H && !defined _PTHREAD_H
  48508. +# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  48509. +#endif
  48510. +
  48511. +typedef int __jmp_buf[13+1+1+1]; /*r13-r25, fp, sp, blink */
  48512. +
  48513. +#endif
  48514. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/arc/bits/sigcontextinfo.h
  48515. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/sigcontextinfo.h 1970-01-01 01:00:00.000000000 +0100
  48516. +++ uClibc-git/libc/sysdeps/linux/arc/bits/sigcontextinfo.h 2014-06-02 17:40:34.266713379 +0200
  48517. @@ -0,0 +1,15 @@
  48518. +/*
  48519. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48520. + *
  48521. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48522. + */
  48523. +
  48524. +#include <features.h>
  48525. +#define SIGCONTEXT struct sigcontext *
  48526. +#define SIGCONTEXT_EXTRA_ARGS
  48527. +
  48528. +#define GET_PC(ctx) ((void *) ctx->regs.scratch.ret)
  48529. +#define GET_FRAME(ctx) ((void *) ctx->regs.scratch.fp)
  48530. +#define GET_STACK(ctx) ((void *) ctx->regs.scratch.sp)
  48531. +#define CALL_SIGHANDLER(handler, signo, ctx) \
  48532. + (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
  48533. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/arc/bits/stackinfo.h
  48534. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/stackinfo.h 1970-01-01 01:00:00.000000000 +0100
  48535. +++ uClibc-git/libc/sysdeps/linux/arc/bits/stackinfo.h 2014-06-02 17:40:34.266713379 +0200
  48536. @@ -0,0 +1,13 @@
  48537. +/*
  48538. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48539. + *
  48540. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48541. + */
  48542. +
  48543. +#ifndef _STACKINFO_H
  48544. +#define _STACKINFO_H 1
  48545. +
  48546. +/* On ARC, the stack grows down. */
  48547. +#define _STACK_GROWS_DOWN 1
  48548. +
  48549. +#endif /* stackinfo.h */
  48550. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/syscalls.h uClibc-git/libc/sysdeps/linux/arc/bits/syscalls.h
  48551. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/syscalls.h 1970-01-01 01:00:00.000000000 +0100
  48552. +++ uClibc-git/libc/sysdeps/linux/arc/bits/syscalls.h 2014-06-02 17:40:34.266713379 +0200
  48553. @@ -0,0 +1,192 @@
  48554. +/*
  48555. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48556. + *
  48557. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48558. + *
  48559. + */
  48560. +#ifndef _BITS_SYSCALLS_H
  48561. +#define _BITS_SYSCALLS_H
  48562. +#ifndef _SYSCALL_H
  48563. +#error "Never use <bits/syscalls.h> directly; include <sys/syscall.h> instead."
  48564. +#endif
  48565. +
  48566. +#ifndef __ASSEMBLER__
  48567. +
  48568. +#include <errno.h>
  48569. +
  48570. +/*
  48571. + * Fine tuned code for errno handling in syscall wrappers.
  48572. + *
  48573. + * 1. __syscall_error(raw_syscall_ret_val) is used to set the errno (vs.
  48574. + * the typical __set_errno). This helps elide the generated code for
  48575. + * GOT fetch for __errno_location pointer etc, in each wrapper.
  48576. + *
  48577. + * 2. The call to above is also disguised in inline asm. This elides
  48578. + * unconditional save/restore of a few callee regs which gcc almost
  48579. + * always generates if the call is exposed
  48580. + *
  48581. + * 3. The function can't be hidden because wrappers from librt et all also
  48582. + * call it. However hidden is not really needed to bypass PLT for
  48583. + * intra-libc calls as the branch insn w/o @plt is sufficient.
  48584. + */
  48585. +
  48586. +#ifdef IS_IN_rtld
  48587. +/* ldso doesn't have real errno */
  48588. +#define ERRNO_ERRANDS(_sys_result)
  48589. +#else /* !IS_IN_rtld */
  48590. +extern int __syscall_error (int);
  48591. +#ifndef IS_IN_libc
  48592. +/* Inter-libc callers use PLT */
  48593. +#define CALL_ERRNO_SETTER "bl __syscall_error@plt \n\t"
  48594. +#else
  48595. +/* intra-libc callers, despite PIC can bypass PLT */
  48596. +#define CALL_ERRNO_SETTER "bl __syscall_error \n\t"
  48597. +#endif
  48598. +
  48599. +#define ERRNO_ERRANDS(_sys_result) \
  48600. + __asm__ volatile ( \
  48601. + "st.a blink, [sp, -4] \n\t" \
  48602. + CALL_ERRNO_SETTER \
  48603. + "ld.ab blink, [sp, 4] \n\t" \
  48604. + :"+r" (_sys_result) \
  48605. + : \
  48606. + :"r1","r2","r3","r4","r5","r6", \
  48607. + "r7","r8","r9","r10","r11","r12" \
  48608. + );
  48609. +
  48610. +#endif /* IS_IN_rtld */
  48611. +
  48612. +/* Invoke the syscall and return unprocessed kernel status */
  48613. +#define INTERNAL_SYSCALL(nm, err, nr, args...) \
  48614. + INTERNAL_SYSCALL_NCS(SYS_ify (nm), err, nr, args)
  48615. +
  48616. +/* -1 to -1023 as valid error values will suffice for some time */
  48617. +#define INTERNAL_SYSCALL_ERROR_P(val, err) \
  48618. + ((unsigned int) (val) > (unsigned int) -1024)
  48619. +
  48620. +/*
  48621. + * Standard sycall wrapper:
  48622. + * -"const" syscall number @nm, sets errno, return success/error-codes
  48623. + */
  48624. +#define INLINE_SYSCALL(nm, nr_args, args...) \
  48625. +({ \
  48626. + register int __res __asm__("r0"); \
  48627. + __res = INTERNAL_SYSCALL(nm, , nr_args, args); \
  48628. + if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P ((__res), ), 0)) \
  48629. + { \
  48630. + ERRNO_ERRANDS(__res); \
  48631. + } \
  48632. + __res; \
  48633. +})
  48634. +
  48635. +/* Non const syscall number @nm
  48636. + * Ideally this could be folded within INLINE_SYSCALL with
  48637. + * __builtin_constant_p in INTERNAL_SYSCALL but that fails for syscall.c
  48638. + */
  48639. +#define INLINE_SYSCALL_NCS(nm, nr_args, args...) \
  48640. +({ \
  48641. + register int __res __asm__("r0"); \
  48642. + __res = INTERNAL_SYSCALL_NCS(nm, , nr_args, args); \
  48643. + if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P ((__res), ), 0)) \
  48644. + { \
  48645. + ERRNO_ERRANDS(__res); \
  48646. + } \
  48647. + __res; \
  48648. +})
  48649. +
  48650. +#define INLINE_SYSCALL_NOERR(name, nr, args...) \
  48651. + ({ unsigned int _inline_sys_result = INTERNAL_SYSCALL (name, , nr, args);\
  48652. + (int) _inline_sys_result; })
  48653. +
  48654. +/*-------------------------------------------------------------------------
  48655. + * Mechanics of Trap - specific to ARC700
  48656. + *
  48657. + * Note the memory clobber is not strictly needed for intended semantics of
  48658. + * the inline asm. However some of the cases, such as old-style 6 arg mmap
  48659. + * gcc was generating code for inline syscall ahead of buffer packing needed
  48660. + * for syscall itself.
  48661. + *-------------------------------------------------------------------------*/
  48662. +
  48663. +#define ARC_TRAP_INSN "trap0 \n\t"
  48664. +
  48665. +#define INTERNAL_SYSCALL_NCS(nm, err, nr_args, args...) \
  48666. +({ \
  48667. + /* Per ABI, r0 is 1st arg and return reg */ \
  48668. + register int __ret __asm__("r0"); \
  48669. + register int _sys_num __asm__("r8"); \
  48670. + \
  48671. + LOAD_ARGS_##nr_args (nm, args) \
  48672. + \
  48673. + __asm__ volatile ( \
  48674. + ARC_TRAP_INSN \
  48675. + : "+r" (__ret) \
  48676. + : "r"(_sys_num) ASM_ARGS_##nr_args \
  48677. + : "memory"); \
  48678. + \
  48679. + __ret; \
  48680. +})
  48681. +
  48682. +/* Macros for setting up inline __asm__ input regs */
  48683. +#define ASM_ARGS_0
  48684. +#define ASM_ARGS_1 ASM_ARGS_0, "r" (__ret)
  48685. +#define ASM_ARGS_2 ASM_ARGS_1, "r" (_arg2)
  48686. +#define ASM_ARGS_3 ASM_ARGS_2, "r" (_arg3)
  48687. +#define ASM_ARGS_4 ASM_ARGS_3, "r" (_arg4)
  48688. +#define ASM_ARGS_5 ASM_ARGS_4, "r" (_arg5)
  48689. +#define ASM_ARGS_6 ASM_ARGS_5, "r" (_arg6)
  48690. +#define ASM_ARGS_7 ASM_ARGS_6, "r" (_arg7)
  48691. +
  48692. +/* Macros for converting sys-call wrapper args into sys call args */
  48693. +#define LOAD_ARGS_0(nm, arg) \
  48694. + _sys_num = (int) (nm); \
  48695. +
  48696. +#define LOAD_ARGS_1(nm, arg1) \
  48697. + __ret = (int) (arg1); \
  48698. + LOAD_ARGS_0 (nm, arg1)
  48699. +
  48700. +/*
  48701. + * Note that the use of _tmpX might look superflous, however it is needed
  48702. + * to ensure that register variables are not clobbered if arg happens to be
  48703. + * a function call itself. e.g. sched_setaffinity() calling getpid() for arg2
  48704. + *
  48705. + * Also this specific order of recursive calling is important to segregate
  48706. + * the tmp args evaluation (function call case described above) and assigment
  48707. + * of register variables
  48708. + */
  48709. +#define LOAD_ARGS_2(nm, arg1, arg2) \
  48710. + int _tmp2 = (int) (arg2); \
  48711. + LOAD_ARGS_1 (nm, arg1) \
  48712. + register int _arg2 __asm__ ("r1") = _tmp2;
  48713. +
  48714. +#define LOAD_ARGS_3(nm, arg1, arg2, arg3) \
  48715. + int _tmp3 = (int) (arg3); \
  48716. + LOAD_ARGS_2 (nm, arg1, arg2) \
  48717. + register int _arg3 __asm__ ("r2") = _tmp3;
  48718. +
  48719. +#define LOAD_ARGS_4(nm, arg1, arg2, arg3, arg4) \
  48720. + int _tmp4 = (int) (arg4); \
  48721. + LOAD_ARGS_3 (nm, arg1, arg2, arg3) \
  48722. + register int _arg4 __asm__ ("r3") = _tmp4;
  48723. +
  48724. +#define LOAD_ARGS_5(nm, arg1, arg2, arg3, arg4, arg5) \
  48725. + int _tmp5 = (int) (arg5); \
  48726. + LOAD_ARGS_4 (nm, arg1, arg2, arg3, arg4) \
  48727. + register int _arg5 __asm__ ("r4") = _tmp5;
  48728. +
  48729. +#define LOAD_ARGS_6(nm, arg1, arg2, arg3, arg4, arg5, arg6) \
  48730. + int _tmp6 = (int) (arg6); \
  48731. + LOAD_ARGS_5 (nm, arg1, arg2, arg3, arg4, arg5) \
  48732. + register int _arg6 __asm__ ("r5") = _tmp6;
  48733. +
  48734. +#define LOAD_ARGS_7(nm, arg1, arg2, arg3, arg4, arg5, arg6, arg7)\
  48735. + int _tmp7 = (int) (arg7); \
  48736. + LOAD_ARGS_6 (nm, arg1, arg2, arg3, arg4, arg5, arg6) \
  48737. + register int _arg7 __asm__ ("r6") = _tmp7;
  48738. +
  48739. +#else
  48740. +
  48741. +#define ARC_TRAP_INSN trap0
  48742. +
  48743. +#endif /* __ASSEMBLER__ */
  48744. +
  48745. +#endif /* _BITS_SYSCALLS_H */
  48746. 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
  48747. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/uClibc_arch_features.h 1970-01-01 01:00:00.000000000 +0100
  48748. +++ uClibc-git/libc/sysdeps/linux/arc/bits/uClibc_arch_features.h 2014-06-02 17:40:34.266713379 +0200
  48749. @@ -0,0 +1,53 @@
  48750. +/*
  48751. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48752. + *
  48753. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48754. + */
  48755. +
  48756. +/*
  48757. + * Track misc arch-specific features that aren't config options
  48758. + */
  48759. +
  48760. +#ifndef _BITS_UCLIBC_ARCH_FEATURES_H
  48761. +#define _BITS_UCLIBC_ARCH_FEATURES_H
  48762. +
  48763. +/* instruction used when calling abort() to kill yourself */
  48764. +#define __UCLIBC_ABORT_INSTRUCTION__ "flag 0"
  48765. +
  48766. +/* can your target use syscall6() for mmap ? */
  48767. +#undef __UCLIBC_MMAP_HAS_6_ARGS__
  48768. +
  48769. +/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  48770. +#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  48771. +
  48772. +/* does your target have a broken create_module() ? */
  48773. +#undef __UCLIBC_BROKEN_CREATE_MODULE__
  48774. +
  48775. +/* does your target have to worry about older [gs]etrlimit() ? */
  48776. +#undef __UCLIBC_HANDLE_OLDER_RLIMIT__
  48777. +
  48778. +/* does your target have an asm .set ? */
  48779. +#define __UCLIBC_HAVE_ASM_SET_DIRECTIVE__
  48780. +
  48781. +/* define if target doesn't like .global */
  48782. +#undef __UCLIBC_ASM_GLOBAL_DIRECTIVE__
  48783. +
  48784. +/* define if target supports .weak */
  48785. +#define __UCLIBC_HAVE_ASM_WEAK_DIRECTIVE__
  48786. +
  48787. +/* define if target supports .weakext */
  48788. +#undef __UCLIBC_HAVE_ASM_WEAKEXT_DIRECTIVE__
  48789. +
  48790. +/* needed probably only for ppc64 */
  48791. +#undef __UCLIBC_HAVE_ASM_GLOBAL_DOT_NAME__
  48792. +
  48793. +/* define if target supports CFI pseudo ops */
  48794. +#undef __UCLIBC_HAVE_ASM_CFI_DIRECTIVES__
  48795. +
  48796. +/* define if target supports IEEE signed zero floats */
  48797. +#define __UCLIBC_HAVE_SIGNED_ZERO__
  48798. +
  48799. +/* The default ';' is a comment on ARC. */
  48800. +#define __UCLIBC_ASM_LINE_SEP__ `
  48801. +
  48802. +#endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
  48803. 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
  48804. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/uClibc_page.h 1970-01-01 01:00:00.000000000 +0100
  48805. +++ uClibc-git/libc/sysdeps/linux/arc/bits/uClibc_page.h 2014-06-02 17:40:34.266713379 +0200
  48806. @@ -0,0 +1,26 @@
  48807. +/*
  48808. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48809. + *
  48810. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48811. + */
  48812. +
  48813. +#ifndef _UCLIBC_PAGE_H
  48814. +#define _UCLIBC_PAGE_H
  48815. +
  48816. +/*
  48817. + * ARC700/linux supports 4k, 8k, 16k pages (build time).
  48818. + * We rely on the kernel exported header (aka uapi headers since 3.8)
  48819. + * for PAGE_SIZE and friends. This avoids hand-editing here when building
  48820. + * toolchain.
  48821. + *
  48822. + * Although uClibc determines page size dynamically, from kernel's auxv which
  48823. + * ARC Linux does pass, still the generic code needs a fall back
  48824. + * _dl_pagesize = auxvt[AT_PAGESZ].a_un.a_val ? : PAGE_SIZE
  48825. + *
  48826. + */
  48827. +#include <asm/page.h>
  48828. +
  48829. +/* TBD: fix this with runtime value for a PAGE_SIZE agnostic uClibc */
  48830. +#define MMAP2_PAGE_SHIFT PAGE_SHIFT
  48831. +
  48832. +#endif /* _UCLIBC_PAGE_H */
  48833. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/wordsize.h uClibc-git/libc/sysdeps/linux/arc/bits/wordsize.h
  48834. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/wordsize.h 1970-01-01 01:00:00.000000000 +0100
  48835. +++ uClibc-git/libc/sysdeps/linux/arc/bits/wordsize.h 2014-06-02 17:40:34.266713379 +0200
  48836. @@ -0,0 +1,7 @@
  48837. +/*
  48838. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48839. + *
  48840. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48841. + */
  48842. +
  48843. +#define __WORDSIZE 32
  48844. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/arc/bsd-setjmp.S
  48845. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bsd-setjmp.S 1970-01-01 01:00:00.000000000 +0100
  48846. +++ uClibc-git/libc/sysdeps/linux/arc/bsd-setjmp.S 2014-06-02 17:40:34.266713379 +0200
  48847. @@ -0,0 +1,20 @@
  48848. +/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. ARC version.
  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. +/* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
  48856. + We cannot do it in C because it must be a tail-call, so frame-unwinding
  48857. + in setjmp doesn't clobber the state restored by longjmp. */
  48858. +
  48859. +#include <sysdep.h>
  48860. +
  48861. +;@ r0 = jump buffer into which regs will be saved
  48862. +
  48863. +ENTRY(setjmp)
  48864. + b.d __sigsetjmp
  48865. + mov r1, 1 ; save signals
  48866. +END(setjmp)
  48867. +libc_hidden_def(setjmp)
  48868. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/arc/bsd-_setjmp.S
  48869. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bsd-_setjmp.S 1970-01-01 01:00:00.000000000 +0100
  48870. +++ uClibc-git/libc/sysdeps/linux/arc/bsd-_setjmp.S 2014-06-02 17:40:34.266713379 +0200
  48871. @@ -0,0 +1,20 @@
  48872. +/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. ARC version.
  48873. + *
  48874. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48875. + *
  48876. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48877. + */
  48878. +
  48879. +/* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
  48880. + We cannot do it in C because it must be a tail-call, so frame-unwinding
  48881. + in setjmp doesn't clobber the state restored by longjmp. */
  48882. +
  48883. +#include <sysdep.h>
  48884. +
  48885. +;@ r0 = jump buffer into which regs will be saved
  48886. +
  48887. +ENTRY(_setjmp)
  48888. + b.d __sigsetjmp
  48889. + mov r1, 0 ; don't save signals
  48890. +END(_setjmp)
  48891. +libc_hidden_def(_setjmp)
  48892. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/cacheflush.c uClibc-git/libc/sysdeps/linux/arc/cacheflush.c
  48893. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/cacheflush.c 1970-01-01 01:00:00.000000000 +0100
  48894. +++ uClibc-git/libc/sysdeps/linux/arc/cacheflush.c 2014-06-02 17:40:34.266713379 +0200
  48895. @@ -0,0 +1,11 @@
  48896. +/* cacheflush syscall for ARC
  48897. + *
  48898. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48899. + *
  48900. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48901. + */
  48902. +
  48903. +#include <sys/syscall.h>
  48904. +#include <sys/cachectl.h>
  48905. +
  48906. +_syscall3(int, cacheflush, void *, addr, int, nbytes, int, op)
  48907. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/clone.S uClibc-git/libc/sysdeps/linux/arc/clone.S
  48908. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/clone.S 1970-01-01 01:00:00.000000000 +0100
  48909. +++ uClibc-git/libc/sysdeps/linux/arc/clone.S 2014-06-02 17:40:34.266713379 +0200
  48910. @@ -0,0 +1,71 @@
  48911. +/*
  48912. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48913. + *
  48914. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48915. + */
  48916. +
  48917. +#include <asm/errno.h>
  48918. +#include <sys/syscall.h>
  48919. +#include <sysdep.h>
  48920. +
  48921. +; Per man, libc clone( ) is as follows
  48922. +;
  48923. +; int clone(int (*fn)(void *), void *child_stack,
  48924. +; int flags, void *arg, ...
  48925. +; /* pid_t *ptid, struct user_desc *tls, pid_t *ctid */);
  48926. +;
  48927. +; NOTE: I'm assuming that the last 3 args are NOT var-args and in case all
  48928. +; 3 are not relevant, caller will nevertheless pass those as NULL.
  48929. +; Current (Jul 2012) upstream powerpc/clone.S assumes similarly.
  48930. +; Our LTP (from 2007) doesn't seem to have tests to prove otherwise
  48931. +
  48932. +; clone syscall in kernel
  48933. +;
  48934. +; int sys_clone(unsigned long clone_flags, unsigned long newsp,
  48935. +; int __user *parent_tidptr, void *tls,
  48936. +; int __user *child_tidptr)
  48937. +
  48938. +
  48939. +ENTRY(clone)
  48940. + cmp r0, 0 ; @fn can't be NULL
  48941. + cmp.ne r1, 0 ; @child_stack can't be NULL
  48942. + bz .L__sys_err
  48943. +
  48944. + ; @fn and @args needed after the syscall for child
  48945. + ; However r3 containing @arg will be clobbered BEFORE syscall
  48946. + ; r0 containg @fn will be clobbered AFTER syscall (with ret val)
  48947. + mov r10, r0
  48948. + mov r11, r3
  48949. +
  48950. + ; adjust libc args for syscall
  48951. + mov r0, r2 ; libc @flags is 1st syscall arg
  48952. + mov r2, r4 ; libc @ptid
  48953. + mov r3, r5 ; libc @tls
  48954. + mov r4, r6 ; libc @ctid
  48955. + mov r8, __NR_clone
  48956. + ARC_TRAP_INSN
  48957. +
  48958. + cmp r0, 0 ; return code : 0 new process, !0 parent
  48959. + blt .L__sys_err2 ; < 0 (signed) error
  48960. + jnz [blink] ; Parent returns
  48961. +
  48962. + ; child jumps off to @fn with @arg as argument
  48963. + j.d [r10]
  48964. + mov r0, r11
  48965. +
  48966. + ; falls thru to _exit() with result from @fn (already in r0)
  48967. + b HIDDEN_JUMPTARGET(_exit)
  48968. +
  48969. +.L__sys_err:
  48970. + mov r0, -EINVAL
  48971. +.L__sys_err2:
  48972. + ; (1) No need to make -ve kernel error code as positive errno
  48973. + ; __syscall_error expects the -ve error code returned by kernel
  48974. + ; (2) r0 still had orig -ve kernel error code
  48975. + ; (3) Tail call to __syscall_error so we dont have to come back
  48976. + ; here hence instead of jmp-n-link (reg push/pop) we do jmp
  48977. + ; (4) No need to route __syscall_error via PLT, B is inherently
  48978. + ; position independent
  48979. + b __syscall_error
  48980. +END(clone)
  48981. +libc_hidden_def(clone)
  48982. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/crt1.S uClibc-git/libc/sysdeps/linux/arc/crt1.S
  48983. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/crt1.S 1970-01-01 01:00:00.000000000 +0100
  48984. +++ uClibc-git/libc/sysdeps/linux/arc/crt1.S 2014-06-02 17:40:34.266713379 +0200
  48985. @@ -0,0 +1,57 @@
  48986. +/*
  48987. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48988. + *
  48989. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48990. + */
  48991. +
  48992. +#include <features.h>
  48993. +
  48994. +.text
  48995. +
  48996. +#ifndef __UCLIBC_CTOR_DTOR__
  48997. + .weak _init
  48998. + .weak _fini
  48999. +#endif
  49000. +
  49001. +/* Stick in a dummy reference to main(), so that if an application
  49002. + * is linking when the main() function is in a static library (.a)
  49003. + * we can be sure that main() actually gets linked in
  49004. + */
  49005. + .type main,@function
  49006. + .type _main,@function
  49007. +
  49008. +
  49009. +/* When we enter this piece of code, the program stack looks like this:
  49010. + argc argument counter (integer)
  49011. + argv[0] program name (pointer)
  49012. + argv[1...N] program args (pointers)
  49013. + argv[argc-1] end of args (integer)
  49014. + NULL
  49015. + env[0...N] environment variables (pointers)
  49016. + NULL
  49017. +*/
  49018. + .text
  49019. + .align 4
  49020. + .global __start
  49021. + .hidden __start
  49022. + .type __start,@function
  49023. +__start:
  49024. + mov fp, 0
  49025. + ld_s r1, [sp] ; argc
  49026. +
  49027. + mov_s r5, r0 ; rltd_fini
  49028. + add_s r2, sp, 4 ; argv
  49029. +
  49030. + mov_s r0, main
  49031. + mov_s r3, _init
  49032. + mov r4, _fini
  49033. +
  49034. + and sp, sp, -8
  49035. + mov r6, sp
  49036. +
  49037. + /* __uClibc_main (main, argc, argv, init, fini, rtld_fini, stack_end) */
  49038. + bl __uClibc_main
  49039. +
  49040. + /* Should never get here.... */
  49041. + flag 1
  49042. +.size __start,.-__start
  49043. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/crti.S uClibc-git/libc/sysdeps/linux/arc/crti.S
  49044. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/crti.S 1970-01-01 01:00:00.000000000 +0100
  49045. +++ uClibc-git/libc/sysdeps/linux/arc/crti.S 2014-06-02 17:40:34.266713379 +0200
  49046. @@ -0,0 +1,27 @@
  49047. +/*
  49048. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49049. + *
  49050. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49051. + */
  49052. +
  49053. +___gnu_compiled_c:
  49054. +
  49055. + .section .init
  49056. + .align 4
  49057. + .global _init
  49058. + .type _init,@function
  49059. +_init:
  49060. + st.a blink,[sp,-4]
  49061. + st.a fp,[sp,-4]
  49062. + mov fp,sp
  49063. +
  49064. +
  49065. + .section .fini
  49066. + .align 4
  49067. + .global _fini
  49068. + .type _fini,@function
  49069. +_fini:
  49070. + st.a blink,[sp,-4]
  49071. + st.a fp,[sp,-4]
  49072. + mov fp,sp
  49073. + .align 4
  49074. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/crtn.S uClibc-git/libc/sysdeps/linux/arc/crtn.S
  49075. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/crtn.S 1970-01-01 01:00:00.000000000 +0100
  49076. +++ uClibc-git/libc/sysdeps/linux/arc/crtn.S 2014-06-02 17:40:34.266713379 +0200
  49077. @@ -0,0 +1,29 @@
  49078. +/*
  49079. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49080. + *
  49081. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49082. + */
  49083. +
  49084. +___gnu_compiled_c:
  49085. +
  49086. + .section .init
  49087. + .align 4
  49088. + .global _init
  49089. + .type _init,@function
  49090. + ; EPILOGUE
  49091. + ld.ab fp,[sp,4]
  49092. + ld blink,[sp,0]
  49093. + j.d [blink]
  49094. + add sp,sp,4
  49095. +; .size _init,.-_init
  49096. +
  49097. + .section .fini
  49098. + .align 4
  49099. + .global _fini
  49100. + .type _fini,@function
  49101. + ; EPILOGUE
  49102. + ld.ab fp,[sp,4]
  49103. + ld blink,[sp,0]
  49104. + j.d [blink]
  49105. + add sp,sp,4
  49106. +; .size _fini,.-_fini
  49107. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/arc/jmpbuf-offsets.h
  49108. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  49109. +++ uClibc-git/libc/sysdeps/linux/arc/jmpbuf-offsets.h 2014-06-02 17:40:34.266713379 +0200
  49110. @@ -0,0 +1,7 @@
  49111. +/*
  49112. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49113. + *
  49114. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49115. + */
  49116. +
  49117. +#define __JMP_BUF_SP (13+1)
  49118. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/arc/jmpbuf-unwind.h
  49119. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  49120. +++ uClibc-git/libc/sysdeps/linux/arc/jmpbuf-unwind.h 2014-06-02 17:40:34.266713379 +0200
  49121. @@ -0,0 +1,13 @@
  49122. +/*
  49123. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49124. + *
  49125. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49126. + */
  49127. +
  49128. +#include <setjmp.h>
  49129. +#include <jmpbuf-offsets.h>
  49130. +
  49131. +/* Test if longjmp to JMPBUF would unwind the frame
  49132. + containing a local variable at ADDRESS. */
  49133. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  49134. + ((void *) (address) < (void *) (jmpbuf[__JMP_BUF_SP]))
  49135. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/__longjmp.S uClibc-git/libc/sysdeps/linux/arc/__longjmp.S
  49136. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/__longjmp.S 1970-01-01 01:00:00.000000000 +0100
  49137. +++ uClibc-git/libc/sysdeps/linux/arc/__longjmp.S 2014-06-02 17:40:34.262713357 +0200
  49138. @@ -0,0 +1,38 @@
  49139. +/*
  49140. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49141. + *
  49142. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49143. + */
  49144. +
  49145. +#include <sysdep.h>
  49146. +
  49147. +;@ r0 = jump buffer from which regs will be restored
  49148. +;@ r1 = value that setjmp( ) will return due to this longjmp
  49149. +
  49150. +ENTRY(__longjmp)
  49151. +
  49152. + ld_s r13, [r0]
  49153. + ld_s r14, [r0,4]
  49154. + ld r15, [r0,8]
  49155. + ld r16, [r0,12]
  49156. + ld r17, [r0,16]
  49157. + ld r18, [r0,20]
  49158. + ld r19, [r0,24]
  49159. + ld r20, [r0,28]
  49160. + ld r21, [r0,32]
  49161. + ld r22, [r0,36]
  49162. + ld r23, [r0,40]
  49163. + ld r24, [r0,44]
  49164. + ld r25, [r0,48]
  49165. +
  49166. + ld blink, [r0,60] ; load it early enough to not stall the pipeline
  49167. + ld fp, [r0,52]
  49168. + ld sp, [r0,56]
  49169. +
  49170. + mov.f r0, r1 ; get the setjmp return value(due to longjmp) in place
  49171. +
  49172. + j.d [blink] ; to caller of setjmp location, right after the call
  49173. + mov.z r0, 1 ; can't let setjmp return 0 when it is due to longjmp
  49174. +
  49175. +END(__longjmp)
  49176. +libc_hidden_def(__longjmp)
  49177. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/Makefile uClibc-git/libc/sysdeps/linux/arc/Makefile
  49178. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/Makefile 1970-01-01 01:00:00.000000000 +0100
  49179. +++ uClibc-git/libc/sysdeps/linux/arc/Makefile 2014-06-02 17:40:34.262713357 +0200
  49180. @@ -0,0 +1,13 @@
  49181. +# Makefile for uClibc
  49182. +#
  49183. +# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
  49184. +#
  49185. +# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49186. +#
  49187. +
  49188. +top_srcdir=../../../../
  49189. +top_builddir=../../../../
  49190. +all: objs
  49191. +include $(top_builddir)Rules.mak
  49192. +include Makefile.arch
  49193. +include $(top_srcdir)Makerules
  49194. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/Makefile.arch uClibc-git/libc/sysdeps/linux/arc/Makefile.arch
  49195. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/Makefile.arch 1970-01-01 01:00:00.000000000 +0100
  49196. +++ uClibc-git/libc/sysdeps/linux/arc/Makefile.arch 2014-06-02 17:40:34.262713357 +0200
  49197. @@ -0,0 +1,11 @@
  49198. +# Makefile for uClibc
  49199. +#
  49200. +# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
  49201. +#
  49202. +# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49203. +#
  49204. +
  49205. +CSRC-y := syscall.c sigaction.c __syscall_error.c cacheflush.c
  49206. +
  49207. +SSRC-y := sigrestorer.S __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
  49208. + vfork.S clone.S
  49209. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/setjmp.S uClibc-git/libc/sysdeps/linux/arc/setjmp.S
  49210. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/setjmp.S 1970-01-01 01:00:00.000000000 +0100
  49211. +++ uClibc-git/libc/sysdeps/linux/arc/setjmp.S 2014-06-02 17:40:34.266713379 +0200
  49212. @@ -0,0 +1,39 @@
  49213. +/*
  49214. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49215. + *
  49216. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49217. + */
  49218. +
  49219. +#include <sysdep.h>
  49220. +
  49221. +;@ r0 = jump buffer into which regs will be saved
  49222. +;@ r1 = do we need to save signals
  49223. +
  49224. +ENTRY(__sigsetjmp)
  49225. +
  49226. + st_s r13, [r0]
  49227. + st_s r14, [r0,4]
  49228. + st r15, [r0,8]
  49229. + st r16, [r0,12]
  49230. + st r17, [r0,16]
  49231. + st r18, [r0,20]
  49232. + st r19, [r0,24]
  49233. + st r20, [r0,28]
  49234. + st r21, [r0,32]
  49235. + st r22, [r0,36]
  49236. + st r23, [r0,40]
  49237. + st r24, [r0,44]
  49238. + st r25, [r0,48]
  49239. + st fp, [r0,52]
  49240. + st sp, [r0,56]
  49241. +
  49242. + ; make a note of where longjmp will return to.
  49243. + ; that will be right next to this setjmp call-site which will be
  49244. + ; contained in blink, since "C" caller of this routine will do
  49245. + ; a branch-n-link
  49246. +
  49247. + st blink, [r0,60]
  49248. + b __sigjmp_save
  49249. +
  49250. +END(__sigsetjmp)
  49251. +libc_hidden_def(__sigsetjmp)
  49252. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/sigaction.c uClibc-git/libc/sysdeps/linux/arc/sigaction.c
  49253. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/sigaction.c 1970-01-01 01:00:00.000000000 +0100
  49254. +++ uClibc-git/libc/sysdeps/linux/arc/sigaction.c 2014-06-02 17:40:34.266713379 +0200
  49255. @@ -0,0 +1,47 @@
  49256. +/*
  49257. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49258. + *
  49259. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49260. + */
  49261. +
  49262. +#include <errno.h>
  49263. +#include <signal.h>
  49264. +#include <string.h>
  49265. +#include <sys/syscall.h>
  49266. +#include <bits/kernel_sigaction.h>
  49267. +
  49268. +extern void __default_rt_sa_restorer(void);
  49269. +//libc_hidden_proto(__default_rt_sa_restorer);
  49270. +
  49271. +#define SA_RESTORER 0x04000000
  49272. +
  49273. +/* If @act is not NULL, change the action for @sig to @act.
  49274. + If @oact is not NULL, put the old action for @sig in @oact. */
  49275. +int
  49276. +__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
  49277. +{
  49278. + struct sigaction kact;
  49279. +
  49280. + /* !act means caller only wants to know @oact
  49281. + * Hence only otherwise, do SA_RESTORER stuff
  49282. + *
  49283. + * For the normal/default cases (user not providing SA_RESTORER) use
  49284. + * a real sigreturn stub to avoid kernel synthesizing one on user stack
  49285. + * at runtime, which needs PTE permissions update (hence TLB entry
  49286. + * update) and costly cache line flushes for code modification
  49287. + */
  49288. + if (act && !(act->sa_flags & SA_RESTORER)) {
  49289. + memcpy(&kact, act, sizeof(kact));
  49290. + kact.sa_restorer = __default_rt_sa_restorer;
  49291. + kact.sa_flags |= SA_RESTORER;
  49292. +
  49293. + act = &kact;
  49294. + }
  49295. +
  49296. + return __syscall_rt_sigaction(sig, act, oact, sizeof(act->sa_mask));
  49297. +}
  49298. +
  49299. +#ifndef LIBC_SIGACTION
  49300. +weak_alias(__libc_sigaction,sigaction)
  49301. +libc_hidden_weak(sigaction)
  49302. +#endif
  49303. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/sigrestorer.S uClibc-git/libc/sysdeps/linux/arc/sigrestorer.S
  49304. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/sigrestorer.S 1970-01-01 01:00:00.000000000 +0100
  49305. +++ uClibc-git/libc/sysdeps/linux/arc/sigrestorer.S 2014-06-02 17:40:34.266713379 +0200
  49306. @@ -0,0 +1,21 @@
  49307. +/*
  49308. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49309. + *
  49310. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49311. + */
  49312. +
  49313. +#include <sysdep.h>
  49314. +#include <sys/syscall.h>
  49315. +
  49316. +/*
  49317. + * Provide a real sigreturn stub to avoid kernel synthesizing one
  49318. + * on user stack at runtime, which needs PTE permissions update
  49319. + * (hence TLB entry update) and costly cache line flushes for
  49320. + * code modification
  49321. + */
  49322. +
  49323. +ENTRY(__default_rt_sa_restorer)
  49324. + mov r8, __NR_rt_sigreturn
  49325. + ARC_TRAP_INSN
  49326. +END(__default_rt_sa_restorer)
  49327. +libc_hidden_def(__default_rt_sa_restorer)
  49328. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/cachectl.h uClibc-git/libc/sysdeps/linux/arc/sys/cachectl.h
  49329. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/cachectl.h 1970-01-01 01:00:00.000000000 +0100
  49330. +++ uClibc-git/libc/sysdeps/linux/arc/sys/cachectl.h 2014-06-02 17:40:34.266713379 +0200
  49331. @@ -0,0 +1,21 @@
  49332. +/*
  49333. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49334. + *
  49335. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49336. + */
  49337. +
  49338. +#ifndef _SYS_CACHECTL_H
  49339. +#define _SYS_CACHECTL_H 1
  49340. +
  49341. +/*
  49342. + * Get the kernel definition for the flag bits
  49343. + */
  49344. +#include <asm/cachectl.h>
  49345. +
  49346. +__BEGIN_DECLS
  49347. +
  49348. +extern int cacheflush(void *addr, int nbytes, int flags);
  49349. +
  49350. +__END_DECLS
  49351. +
  49352. +#endif /* sys/cachectl.h */
  49353. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/procfs.h uClibc-git/libc/sysdeps/linux/arc/sys/procfs.h
  49354. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/procfs.h 1970-01-01 01:00:00.000000000 +0100
  49355. +++ uClibc-git/libc/sysdeps/linux/arc/sys/procfs.h 2014-06-02 17:40:34.266713379 +0200
  49356. @@ -0,0 +1,108 @@
  49357. +/*
  49358. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49359. + *
  49360. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49361. + */
  49362. +
  49363. +#ifndef _SYS_PROCFS_H
  49364. +#define _SYS_PROCFS_H 1
  49365. +
  49366. +/* This is somewhat modelled after the file of the same name on SVR4
  49367. + systems. It provides a definition of the core file format for ELF
  49368. + used on Linux. It doesn't have anything to do with the /proc file
  49369. + system, even though Linux has one.
  49370. +
  49371. + Anyway, the whole purpose of this file is for GDB and GDB only.
  49372. + Don't read too much into it. Don't use it for anything other than
  49373. + GDB unless you know what you are doing. */
  49374. +
  49375. +#include <features.h>
  49376. +#include <sys/time.h>
  49377. +#include <sys/types.h>
  49378. +#include <sys/user.h>
  49379. +
  49380. +__BEGIN_DECLS
  49381. +
  49382. +/* Type for a general-purpose register. */
  49383. +typedef unsigned long elf_greg_t;
  49384. +
  49385. +/* And the whole bunch of them. We could have used `struct
  49386. + user_regs' directly in the typedef, but tradition says that
  49387. + the register set is an array, which does have some peculiar
  49388. + semantics, so leave it that way. */
  49389. +#define ELF_NGREG 20
  49390. +typedef elf_greg_t elf_gregset_t[ELF_NGREG];
  49391. +
  49392. +/* Signal info. */
  49393. +struct elf_siginfo
  49394. + {
  49395. + int si_signo; /* Signal number. */
  49396. + int si_code; /* Extra code. */
  49397. + int si_errno; /* Errno. */
  49398. + };
  49399. +
  49400. +/* Definitions to generate Intel SVR4-like core files. These mostly
  49401. + have the same names as the SVR4 types with "elf_" tacked on the
  49402. + front to prevent clashes with Linux definitions, and the typedef
  49403. + forms have been avoided. This is mostly like the SVR4 structure,
  49404. + but more Linuxy, with things that Linux does not support and which
  49405. + GDB doesn't really use excluded. */
  49406. +
  49407. +struct elf_prstatus
  49408. + {
  49409. + struct elf_siginfo pr_info; /* Info associated with signal. */
  49410. + short int pr_cursig; /* Current signal. */
  49411. + unsigned long int pr_sigpend; /* Set of pending signals. */
  49412. + unsigned long int pr_sighold; /* Set of held signals. */
  49413. + __pid_t pr_pid;
  49414. + __pid_t pr_ppid;
  49415. + __pid_t pr_pgrp;
  49416. + __pid_t pr_sid;
  49417. + struct timeval pr_utime; /* User time. */
  49418. + struct timeval pr_stime; /* System time. */
  49419. + struct timeval pr_cutime; /* Cumulative user time. */
  49420. + struct timeval pr_cstime; /* Cumulative system time. */
  49421. + elf_gregset_t pr_reg; /* GP registers. */
  49422. + int pr_fpvalid; /* True if math copro being used. */
  49423. + };
  49424. +
  49425. +
  49426. +#define ELF_PRARGSZ (80) /* Number of chars for args. */
  49427. +
  49428. +struct elf_prpsinfo
  49429. + {
  49430. + char pr_state; /* Numeric process state. */
  49431. + char pr_sname; /* Char for pr_state. */
  49432. + char pr_zomb; /* Zombie. */
  49433. + char pr_nice; /* Nice val. */
  49434. + unsigned long int pr_flag; /* Flags. */
  49435. + unsigned short int pr_uid;
  49436. + unsigned short int pr_gid;
  49437. + int pr_pid, pr_ppid, pr_pgrp, pr_sid;
  49438. + /* Lots missing */
  49439. + char pr_fname[16]; /* Filename of executable. */
  49440. + char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
  49441. + };
  49442. +
  49443. +/* The rest of this file provides the types for emulation of the
  49444. + Solaris <proc_service.h> interfaces that should be implemented by
  49445. + users of libthread_db. */
  49446. +
  49447. +/* Addresses. */
  49448. +typedef void *psaddr_t;
  49449. +
  49450. +/* Register sets. Linux has different names. */
  49451. +typedef elf_gregset_t prgregset_t;
  49452. +typedef elf_gregset_t prfpregset_t;
  49453. +
  49454. +/* We don't have any differences between processes and threads,
  49455. + therefore have only one PID type. */
  49456. +typedef __pid_t lwpid_t;
  49457. +
  49458. +/* Process status and info. In the end we do provide typedefs for them. */
  49459. +typedef struct elf_prstatus prstatus_t;
  49460. +typedef struct elf_prpsinfo prpsinfo_t;
  49461. +
  49462. +__END_DECLS
  49463. +
  49464. +#endif /* sys/procfs.h */
  49465. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/ucontext.h uClibc-git/libc/sysdeps/linux/arc/sys/ucontext.h
  49466. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/ucontext.h 1970-01-01 01:00:00.000000000 +0100
  49467. +++ uClibc-git/libc/sysdeps/linux/arc/sys/ucontext.h 2014-06-02 17:40:34.266713379 +0200
  49468. @@ -0,0 +1,22 @@
  49469. +/*
  49470. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49471. + *
  49472. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49473. + */
  49474. +
  49475. +#ifndef _SYS_UCONTEXT_H
  49476. +#define _SYS_UCONTEXT_H 1
  49477. +
  49478. +#include <features.h>
  49479. +#include <signal.h>
  49480. +#include <bits/sigcontext.h>
  49481. +
  49482. +typedef struct ucontext {
  49483. + unsigned long uc_flags;
  49484. + struct ucontext *uc_link;
  49485. + stack_t uc_stack;
  49486. + struct sigcontext uc_mcontext;
  49487. + sigset_t uc_sigmask; /* mask last for extensibility */
  49488. +} ucontext_t;
  49489. +
  49490. +#endif /* sys/ucontext.h */
  49491. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/user.h uClibc-git/libc/sysdeps/linux/arc/sys/user.h
  49492. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/user.h 1970-01-01 01:00:00.000000000 +0100
  49493. +++ uClibc-git/libc/sysdeps/linux/arc/sys/user.h 2014-06-02 17:40:34.266713379 +0200
  49494. @@ -0,0 +1,23 @@
  49495. +/*
  49496. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49497. + *
  49498. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49499. + */
  49500. +
  49501. +#ifndef _SYS_USER_H
  49502. +#define _SYS_USER_H 1
  49503. +
  49504. +/* The whole purpose of this file is for GDB and GDB only. Don't read
  49505. + too much into it. Don't use it for anything other than GDB unless
  49506. + you know what you are doing. */
  49507. +
  49508. +
  49509. +/* Actually apps like strace also expect a struct user, so it's better to
  49510. + * have a dummy implementation
  49511. + */
  49512. +
  49513. +struct user {
  49514. + int dummy;
  49515. +};
  49516. +
  49517. +#endif /* sys/user.h */
  49518. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/syscall.c uClibc-git/libc/sysdeps/linux/arc/syscall.c
  49519. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/syscall.c 1970-01-01 01:00:00.000000000 +0100
  49520. +++ uClibc-git/libc/sysdeps/linux/arc/syscall.c 2014-06-02 17:40:34.266713379 +0200
  49521. @@ -0,0 +1,17 @@
  49522. +/*
  49523. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49524. + *
  49525. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49526. + */
  49527. +
  49528. +#include <features.h>
  49529. +#include <errno.h>
  49530. +#include <sys/types.h>
  49531. +#include <sys/syscall.h>
  49532. +
  49533. +extern long syscall(long int sysnum, long a, long b, long c, long d, long e, long f);
  49534. +
  49535. +long syscall(long int sysnum, long a, long b, long c, long d, long e, long f)
  49536. +{
  49537. + return INLINE_SYSCALL_NCS(sysnum, 6, a, b, c, d, e, f);
  49538. +}
  49539. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/__syscall_error.c uClibc-git/libc/sysdeps/linux/arc/__syscall_error.c
  49540. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/__syscall_error.c 1970-01-01 01:00:00.000000000 +0100
  49541. +++ uClibc-git/libc/sysdeps/linux/arc/__syscall_error.c 2014-06-02 17:40:34.262713357 +0200
  49542. @@ -0,0 +1,15 @@
  49543. +/* Wrapper for setting errno.
  49544. + *
  49545. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  49546. + *
  49547. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49548. + */
  49549. +
  49550. +#include <errno.h>
  49551. +#include <sys/syscall.h>
  49552. +
  49553. +int __syscall_error(int err_no)
  49554. +{
  49555. + __set_errno(-err_no);
  49556. + return -1;
  49557. +}
  49558. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/sysdep.h uClibc-git/libc/sysdeps/linux/arc/sysdep.h
  49559. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/sysdep.h 1970-01-01 01:00:00.000000000 +0100
  49560. +++ uClibc-git/libc/sysdeps/linux/arc/sysdep.h 2014-06-02 17:40:34.266713379 +0200
  49561. @@ -0,0 +1,22 @@
  49562. +#ifndef _LINUX_ARC_SYSDEP_H
  49563. +#define _LINUX_ARC_SYSDEP_H 1
  49564. +
  49565. +#include <features.h>
  49566. +#include <libc-internal.h>
  49567. +
  49568. +#ifdef __ASSEMBLER__
  49569. +
  49570. +#define ENTRY(nm) \
  49571. + .text ` \
  49572. + .align 4 ` \
  49573. + .globl nm ` \
  49574. + .type nm,@function ` \
  49575. +nm:
  49576. +
  49577. +#define END(name) .size name,.-name
  49578. +
  49579. +#endif /* __ASSEMBLER __*/
  49580. +
  49581. +#include <common/sysdep.h>
  49582. +
  49583. +#endif
  49584. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/vfork.S uClibc-git/libc/sysdeps/linux/arc/vfork.S
  49585. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/vfork.S 1970-01-01 01:00:00.000000000 +0100
  49586. +++ uClibc-git/libc/sysdeps/linux/arc/vfork.S 2014-06-02 17:40:34.266713379 +0200
  49587. @@ -0,0 +1,31 @@
  49588. +/*
  49589. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49590. + *
  49591. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49592. + */
  49593. +
  49594. +#include <sys/syscall.h>
  49595. +#include <sysdep.h>
  49596. +
  49597. +/* No legacy syscall ABI means NR_vfork is not available at all, use clone */
  49598. +#define _SIGNAL_H
  49599. +#include <bits/signum.h> /* For SIGCHLD */
  49600. +
  49601. +#define CLONE_VM 0x00000100
  49602. +#define CLONE_VFORK 0x00004000
  49603. +#define CLONE_FLAGS_FOR_VFORK (CLONE_VM|CLONE_VFORK|SIGCHLD)
  49604. +
  49605. +ENTRY(__vfork)
  49606. + mov r0, CLONE_FLAGS_FOR_VFORK
  49607. + mov_s r1, sp
  49608. + mov r8, __NR_clone
  49609. + ARC_TRAP_INSN
  49610. +
  49611. + cmp r0, 0
  49612. + jge [blink] ; pid >=0 return, else detour via tailcall to errno
  49613. +
  49614. + b __syscall_error
  49615. +END(__vfork)
  49616. +
  49617. +weak_alias(__vfork,vfork)
  49618. +libc_hidden_def(vfork)
  49619. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/xstatconv.c uClibc-git/libc/sysdeps/linux/arc/xstatconv.c
  49620. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/xstatconv.c 1970-01-01 01:00:00.000000000 +0100
  49621. +++ uClibc-git/libc/sysdeps/linux/arc/xstatconv.c 2014-06-02 17:40:34.266713379 +0200
  49622. @@ -0,0 +1 @@
  49623. +/* We don't need any of this. */
  49624. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_assert.c uClibc-git/libc/sysdeps/linux/arm/aeabi_assert.c
  49625. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_assert.c 2012-05-15 09:20:09.000000000 +0200
  49626. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_assert.c 2014-06-02 17:40:34.266713379 +0200
  49627. @@ -12,16 +12,15 @@
  49628. Lesser General Public License for more details.
  49629. You should have received a copy of the GNU Lesser General Public
  49630. - License along with the GNU C Library; if not, write to the Free
  49631. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49632. - 02111-1307 USA. */
  49633. + License along with the GNU C Library; if not, see
  49634. + <http://www.gnu.org/licenses/>. */
  49635. #undef NDEBUG
  49636. #include <assert.h>
  49637. #include <stdlib.h>
  49638. -void __aeabi_assert(const char *assertion, const char *file, unsigned int line);
  49639. +void __aeabi_assert(const char *assertion, const char *file, unsigned int line) attribute_noreturn;
  49640. void __aeabi_assert(const char *assertion, const char *file, unsigned int line)
  49641. {
  49642. __assert (assertion, file, line, NULL);
  49643. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_atexit.c uClibc-git/libc/sysdeps/linux/arm/aeabi_atexit.c
  49644. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_atexit.c 2012-05-15 09:20:09.000000000 +0200
  49645. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_atexit.c 2014-06-02 17:40:34.266713379 +0200
  49646. @@ -12,9 +12,8 @@
  49647. Lesser General Public License for more details.
  49648. You should have received a copy of the GNU Lesser General Public
  49649. - License along with the GNU C Library; if not, write to the Free
  49650. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49651. - 02111-1307 USA. */
  49652. + License along with the GNU C Library; if not, see
  49653. + <http://www.gnu.org/licenses/>. */
  49654. #include <stdlib.h>
  49655. 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
  49656. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_errno_addr.c 2012-05-15 09:20:09.000000000 +0200
  49657. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_errno_addr.c 2014-06-02 17:40:34.266713379 +0200
  49658. @@ -12,9 +12,8 @@
  49659. Lesser General Public License for more details.
  49660. You should have received a copy of the GNU Lesser General Public
  49661. - License along with the GNU C Library; if not, write to the Free
  49662. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49663. - 02111-1307 USA. */
  49664. + License along with the GNU C Library; if not, see
  49665. + <http://www.gnu.org/licenses/>. */
  49666. #include <errno.h>
  49667. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_lcsts.c uClibc-git/libc/sysdeps/linux/arm/aeabi_lcsts.c
  49668. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_lcsts.c 2012-05-15 09:20:09.000000000 +0200
  49669. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_lcsts.c 2014-06-02 17:40:34.270713402 +0200
  49670. @@ -30,9 +30,8 @@
  49671. Lesser General Public License for more details.
  49672. You should have received a copy of the GNU Lesser General Public
  49673. - License along with the GNU C Library; if not, write to the Free
  49674. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49675. - 02111-1307 USA. */
  49676. + License along with the GNU C Library; if not, see
  49677. + <http://www.gnu.org/licenses/>. */
  49678. /* The ARM EABI requires that we provide ISO compile-time constants as
  49679. link-time constants. Some portable applications may reference these. */
  49680. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_localeconv.c uClibc-git/libc/sysdeps/linux/arm/aeabi_localeconv.c
  49681. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_localeconv.c 2012-05-15 09:20:09.000000000 +0200
  49682. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_localeconv.c 2014-06-02 17:40:34.270713402 +0200
  49683. @@ -12,9 +12,8 @@
  49684. Lesser General Public License for more details.
  49685. You should have received a copy of the GNU Lesser General Public
  49686. - License along with the GNU C Library; if not, write to the Free
  49687. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49688. - 02111-1307 USA. */
  49689. + License along with the GNU C Library; if not, see
  49690. + <http://www.gnu.org/licenses/>. */
  49691. #include <locale.h>
  49692. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_math.c uClibc-git/libc/sysdeps/linux/arm/aeabi_math.c
  49693. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_math.c 2012-05-15 09:20:09.000000000 +0200
  49694. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_math.c 2014-06-02 17:40:34.270713402 +0200
  49695. @@ -29,9 +29,8 @@
  49696. Lesser General Public License for more details.
  49697. You should have received a copy of the GNU Lesser General Public
  49698. - License along with the GNU C Library; if not, write to the Free
  49699. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49700. - 02111-1307 USA. */
  49701. + License along with the GNU C Library; if not, see
  49702. + <http://www.gnu.org/licenses/>. */
  49703. #include <math.h>
  49704. 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
  49705. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_mb_cur_max.c 2012-05-15 09:20:09.000000000 +0200
  49706. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_mb_cur_max.c 2014-06-02 17:40:34.270713402 +0200
  49707. @@ -12,16 +12,15 @@
  49708. Lesser General Public License for more details.
  49709. You should have received a copy of the GNU Lesser General Public
  49710. - License along with the GNU C Library; if not, write to the Free
  49711. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49712. - 02111-1307 USA. */
  49713. + License along with the GNU C Library; if not, see
  49714. + <http://www.gnu.org/licenses/>. */
  49715. #include <langinfo.h>
  49716. #include <locale.h>
  49717. #include <stdlib.h>
  49718. -int
  49719. -__aeabi_MB_CUR_MAX (void)
  49720. +int __aeabi_MB_CUR_MAX (void);
  49721. +int __aeabi_MB_CUR_MAX (void)
  49722. {
  49723. return MB_CUR_MAX;
  49724. }
  49725. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memclr.c uClibc-git/libc/sysdeps/linux/arm/aeabi_memclr.c
  49726. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memclr.c 2012-05-15 09:20:09.000000000 +0200
  49727. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_memclr.c 2014-06-02 17:40:34.282713468 +0200
  49728. @@ -12,9 +12,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. #include <string.h>
  49737. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memcpy.c uClibc-git/libc/sysdeps/linux/arm/aeabi_memcpy.c
  49738. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memcpy.c 2012-05-15 09:20:09.000000000 +0200
  49739. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_memcpy.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. #include <string.h>
  49749. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memmove.c uClibc-git/libc/sysdeps/linux/arm/aeabi_memmove.c
  49750. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memmove.c 2012-05-15 09:20:09.000000000 +0200
  49751. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_memmove.c 2014-06-02 17:40:34.282713468 +0200
  49752. @@ -12,9 +12,8 @@
  49753. Lesser General Public License for more details.
  49754. You should have received a copy of the GNU Lesser General Public
  49755. - License along with the GNU C Library; if not, write to the Free
  49756. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49757. - 02111-1307 USA. */
  49758. + License along with the GNU C Library; if not, see
  49759. + <http://www.gnu.org/licenses/>. */
  49760. #include <string.h>
  49761. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memset.c uClibc-git/libc/sysdeps/linux/arm/aeabi_memset.c
  49762. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memset.c 2012-05-15 09:20:09.000000000 +0200
  49763. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_memset.c 2014-06-02 17:40:34.282713468 +0200
  49764. @@ -12,9 +12,8 @@
  49765. Lesser General Public License for more details.
  49766. You should have received a copy of the GNU Lesser General Public
  49767. - License along with the GNU C Library; if not, write to the Free
  49768. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49769. - 02111-1307 USA. */
  49770. + License along with the GNU C Library; if not, see
  49771. + <http://www.gnu.org/licenses/>. */
  49772. #include <string.h>
  49773. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_sighandlers.S uClibc-git/libc/sysdeps/linux/arm/aeabi_sighandlers.S
  49774. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_sighandlers.S 2012-05-15 09:20:09.000000000 +0200
  49775. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_sighandlers.S 2014-06-02 17:40:34.282713468 +0200
  49776. @@ -30,9 +30,8 @@
  49777. Lesser General Public License for more details.
  49778. You should have received a copy of the GNU Lesser General Public
  49779. - License along with the GNU C Library; if not, write to the Free
  49780. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49781. - 02111-1307 USA. */
  49782. + License along with the GNU C Library; if not, see
  49783. + <http://www.gnu.org/licenses/>. */
  49784. /* The ARM EABI defines these as "functions". */
  49785. 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
  49786. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_unwind_cpp_pr1.c 2012-05-15 09:20:09.000000000 +0200
  49787. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_unwind_cpp_pr1.c 2014-06-02 17:40:34.282713468 +0200
  49788. @@ -12,9 +12,8 @@
  49789. Lesser General Public License for more details.
  49790. You should have received a copy of the GNU Lesser General Public
  49791. - License along with the GNU C Library; if not, write to the Free
  49792. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49793. - 02111-1307 USA. */
  49794. + License along with the GNU C Library; if not, see
  49795. + <http://www.gnu.org/licenses/>. */
  49796. /* Because some objects in ld.so and libc.so are built with
  49797. -fexceptions, we end up with references to this personality
  49798. 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
  49799. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/arm_asm.h 2012-05-15 09:20:09.000000000 +0200
  49800. +++ uClibc-git/libc/sysdeps/linux/arm/bits/arm_asm.h 2014-06-13 18:29:20.838293415 +0200
  49801. @@ -3,8 +3,10 @@
  49802. #define _ARM_ASM_H
  49803. #ifdef __thumb2__
  49804. +# ifdef __ASSEMBLER__
  49805. .thumb
  49806. .syntax unified
  49807. +# endif /* __ASSEMBLER__ */
  49808. #define IT(t, cond) i##t cond
  49809. #else
  49810. /* XXX: This can be removed if/when we require an assembler that supports
  49811. @@ -24,12 +26,4 @@
  49812. #define THUMB1_ONLY 1
  49813. #endif
  49814. -#if defined(__USE_BX__)
  49815. -# if ( defined (__ARM_ARCH_2__) || defined (__ARM_ARCH_3__) \
  49816. - || defined (__ARM_ARCH_3M__) || defined (__ARM_ARCH_4__) \
  49817. - )
  49818. -# error Use of BX was requested, but is not available on the target processor.
  49819. -# endif /* ARCH level */
  49820. -#endif /* __USE_BX__ */
  49821. -
  49822. #endif /* _ARM_ASM_H */
  49823. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/arm_bx.h uClibc-git/libc/sysdeps/linux/arm/bits/arm_bx.h
  49824. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/arm_bx.h 1970-01-01 01:00:00.000000000 +0100
  49825. +++ uClibc-git/libc/sysdeps/linux/arm/bits/arm_bx.h 2014-06-13 18:29:20.838293415 +0200
  49826. @@ -0,0 +1,34 @@
  49827. +/* Copyright (C) 2013 Yann E. MORIN <yann.morin.1998@free.fr>
  49828. + *
  49829. + * This file is free software; you can redistribute it and/or modify
  49830. + * it under the terms of the GNU Lesser General Public License as
  49831. + * published by the Free Software Foundation; either version 2.1 of
  49832. + * the License, or (at your option) any later version.
  49833. + *
  49834. + * This file is distributed in the hope that it will be useful, but
  49835. + * WITHOUT ANY WARRANTY; without even the implied warranty of
  49836. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  49837. + * Lesser General Public License for more details.
  49838. + *
  49839. + * You should have received a copy of the GNU Lesser General Public
  49840. + * License along with the GNU C Library; if not, see
  49841. + * <http://www.gnu.org/licenses/>.
  49842. + */
  49843. +
  49844. +#ifndef _ARM_BX_H
  49845. +#define _ARM_BX_H
  49846. +
  49847. +/* We need features.h first */
  49848. +#if !defined _FEATURES_H
  49849. +#error Please include features.h first
  49850. +#endif /* features.h not yet included */
  49851. +
  49852. +#if defined(__USE_BX__)
  49853. +# if ( defined (__ARM_ARCH_2__) || defined (__ARM_ARCH_3__) \
  49854. + || defined (__ARM_ARCH_3M__) || defined (__ARM_ARCH_4__) \
  49855. + )
  49856. +# error Use of BX was requested, but is not available on the target processor.
  49857. +# endif /* ARCH level */
  49858. +#endif /* __USE_BX__ */
  49859. +
  49860. +#endif /* _ARM_BX_H */
  49861. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/armsigctx.h uClibc-git/libc/sysdeps/linux/arm/bits/armsigctx.h
  49862. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/armsigctx.h 2012-05-15 09:20:09.000000000 +0200
  49863. +++ uClibc-git/libc/sysdeps/linux/arm/bits/armsigctx.h 2014-06-02 17:40:34.282713468 +0200
  49864. @@ -13,9 +13,8 @@
  49865. Lesser General Public License for more details.
  49866. You should have received a copy of the GNU Lesser General Public
  49867. - License along with the GNU C Library; if not, write to the Free
  49868. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49869. - 02111-1307 USA. */
  49870. + License along with the GNU C Library; if not, see
  49871. + <http://www.gnu.org/licenses/>. */
  49872. /* The format of struct sigcontext changed between 2.0 and 2.1 kernels.
  49873. Fortunately 2.0 puts a magic number in the first word and this is not
  49874. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/atomic.h uClibc-git/libc/sysdeps/linux/arm/bits/atomic.h
  49875. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  49876. +++ uClibc-git/libc/sysdeps/linux/arm/bits/atomic.h 2014-06-02 17:40:34.282713468 +0200
  49877. @@ -12,9 +12,8 @@
  49878. Lesser General Public License for more details.
  49879. You should have received a copy of the GNU Lesser General Public
  49880. - License along with the GNU C Library; if not, write to the Free
  49881. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49882. - 02111-1307 USA. */
  49883. + License along with the GNU C Library; if not, see
  49884. + <http://www.gnu.org/licenses/>. */
  49885. #if defined __thumb__ && !defined __thumb2__
  49886. #include_next <common/bits/atomic.h>
  49887. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/fcntl.h uClibc-git/libc/sysdeps/linux/arm/bits/fcntl.h
  49888. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  49889. +++ uClibc-git/libc/sysdeps/linux/arm/bits/fcntl.h 2014-06-02 17:40:34.282713468 +0200
  49890. @@ -14,9 +14,8 @@
  49891. Lesser General Public License for more details.
  49892. You should have received a copy of the GNU Lesser General Public
  49893. - License along with the GNU C Library; if not, write to the Free
  49894. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49895. - 02111-1307 USA. */
  49896. + License along with the GNU C Library; if not, see
  49897. + <http://www.gnu.org/licenses/>. */
  49898. #ifndef _FCNTL_H
  49899. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  49900. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/fenv.h uClibc-git/libc/sysdeps/linux/arm/bits/fenv.h
  49901. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  49902. +++ uClibc-git/libc/sysdeps/linux/arm/bits/fenv.h 2014-06-02 17:40:34.302713579 +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 _FENV_H
  49912. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  49913. 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
  49914. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/huge_val.h 2012-05-15 09:20:09.000000000 +0200
  49915. +++ uClibc-git/libc/sysdeps/linux/arm/bits/huge_val.h 2014-06-02 17:40:34.302713579 +0200
  49916. @@ -16,9 +16,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. #ifndef _MATH_H
  49925. # error "Never use <bits/huge_val.h> directly; include <math.h> instead."
  49926. 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
  49927. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  49928. +++ uClibc-git/libc/sysdeps/linux/arm/bits/kernel_types.h 2014-06-02 17:40:34.306713601 +0200
  49929. @@ -32,6 +32,8 @@
  49930. typedef unsigned short __kernel_old_gid_t;
  49931. typedef long long __kernel_loff_t;
  49932. typedef __kernel_dev_t __kernel_old_dev_t;
  49933. +typedef long __kernel_long_t;
  49934. +typedef unsigned long __kernel_ulong_t;
  49935. typedef struct {
  49936. #ifdef __USE_ALL
  49937. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/mathdef.h uClibc-git/libc/sysdeps/linux/arm/bits/mathdef.h
  49938. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  49939. +++ uClibc-git/libc/sysdeps/linux/arm/bits/mathdef.h 2014-06-02 17:40:34.306713601 +0200
  49940. @@ -12,9 +12,8 @@
  49941. Lesser General Public License for more details.
  49942. You should have received a copy of the GNU Lesser General Public
  49943. - License along with the GNU C Library; if not, write to the Free
  49944. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49945. - 02111-1307 USA. */
  49946. + License along with the GNU C Library; if not, see
  49947. + <http://www.gnu.org/licenses/>. */
  49948. #if !defined _MATH_H && !defined _COMPLEX_H
  49949. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  49950. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/setjmp.h uClibc-git/libc/sysdeps/linux/arm/bits/setjmp.h
  49951. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  49952. +++ uClibc-git/libc/sysdeps/linux/arm/bits/setjmp.h 2014-06-02 17:40:34.306713601 +0200
  49953. @@ -1,4 +1,4 @@
  49954. -/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
  49955. +/* Copyright (C) 1997,1998,2005,2006 Free Software Foundation, Inc.
  49956. This file is part of the GNU C Library.
  49957. The GNU C Library is free software; you can redistribute it and/or
  49958. @@ -12,19 +12,18 @@
  49959. Lesser General Public License for more details.
  49960. You should have received a copy of the GNU Lesser General Public
  49961. - License along with the GNU C Library; if not, write to the Free
  49962. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49963. - 02111-1307 USA. */
  49964. + License along with the GNU C Library; if not, see
  49965. + <http://www.gnu.org/licenses/>. */
  49966. /* Define the machine-dependent type `jmp_buf'. ARM version. */
  49967. +
  49968. #ifndef _BITS_SETJMP_H
  49969. -#define _BITS_SETJMP_H 1
  49970. +#define _BITS_SETJMP_H 1
  49971. #if !defined _SETJMP_H && !defined _PTHREAD_H
  49972. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  49973. #endif
  49974. -#ifndef _ASM
  49975. /* Jump buffer contains v1-v6, sl, fp, sp and pc. Other registers are not
  49976. saved. */
  49977. #ifdef __ARM_EABI__
  49978. @@ -38,15 +37,10 @@
  49979. #elif defined __MAVERICK__ || defined __IWMMXT__
  49980. typedef int __jmp_buf[34];
  49981. #else
  49982. +# ifdef __UCLIBC_HAS_FPU__
  49983. typedef int __jmp_buf[22];
  49984. +# else
  49985. +typedef int __jmp_buf[10];
  49986. +# endif
  49987. #endif
  49988. #endif
  49989. -
  49990. -#define __JMP_BUF_SP 8
  49991. -
  49992. -/* Test if longjmp to JMPBUF would unwind the frame
  49993. - containing a local variable at ADDRESS. */
  49994. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  49995. - ((void *) (address) < (void *) (jmpbuf[__JMP_BUF_SP]))
  49996. -
  49997. -#endif /* bits/setjmp.h */
  49998. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/shm.h uClibc-git/libc/sysdeps/linux/arm/bits/shm.h
  49999. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  50000. +++ uClibc-git/libc/sysdeps/linux/arm/bits/shm.h 2014-06-02 17:40:34.306713601 +0200
  50001. @@ -12,9 +12,8 @@
  50002. Lesser General Public License for more details.
  50003. You should have received a copy of the GNU Lesser General Public
  50004. - License along with the GNU C Library; if not, write to the Free
  50005. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50006. - 02111-1307 USA. */
  50007. + License along with the GNU C Library; if not, see
  50008. + <http://www.gnu.org/licenses/>. */
  50009. #ifndef _SYS_SHM_H
  50010. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  50011. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/arm/bits/sigcontextinfo.h
  50012. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  50013. +++ uClibc-git/libc/sysdeps/linux/arm/bits/sigcontextinfo.h 2014-06-02 17:40:34.306713601 +0200
  50014. @@ -13,9 +13,8 @@
  50015. Lesser General Public License for more details.
  50016. You should have received a copy of the GNU Lesser General Public
  50017. - License along with the GNU C Library; if not, write to the Free
  50018. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50019. - 02111-1307 USA. */
  50020. + License along with the GNU C Library; if not, see
  50021. + <http://www.gnu.org/licenses/>. */
  50022. #include <bits/armsigctx.h>
  50023. #include <linux/version.h>
  50024. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/arm/bits/stackinfo.h
  50025. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  50026. +++ uClibc-git/libc/sysdeps/linux/arm/bits/stackinfo.h 2014-06-02 17:40:34.306713601 +0200
  50027. @@ -12,9 +12,8 @@
  50028. Lesser General Public License for more details.
  50029. You should have received a copy of the GNU Lesser General Public
  50030. - License along with the GNU C Library; if not, write to the Free
  50031. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50032. - 02111-1307 USA. */
  50033. + License along with the GNU C Library; if not, see
  50034. + <http://www.gnu.org/licenses/>. */
  50035. /* This file contains a bit of information about the stack allocation
  50036. of the processor. */
  50037. 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
  50038. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  50039. +++ uClibc-git/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h 2014-06-02 17:40:34.306713601 +0200
  50040. @@ -11,11 +11,11 @@
  50041. /* can your target use syscall6() for mmap ? */
  50042. #undef __UCLIBC_MMAP_HAS_6_ARGS__
  50043. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  50044. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  50045. #ifdef __ARM_EABI__
  50046. -#define __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  50047. +#define __UCLIBC_SYSCALL_ALIGN_64BIT__
  50048. #else
  50049. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  50050. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  50051. #endif
  50052. /* does your target have a broken create_module() ? */
  50053. @@ -48,4 +48,15 @@
  50054. /* only weird assemblers generally need this */
  50055. #undef __UCLIBC_ASM_LINE_SEP__
  50056. +#ifdef __GNUC__
  50057. +# define __need_uClibc_config_h
  50058. +# include <bits/uClibc_config.h>
  50059. +# undef __need_uClibc_config_h
  50060. +# if defined __CONFIG_ARM_EABI__ && !defined __ARM_EABI__
  50061. +# error Your toolchain does not support EABI
  50062. +# elif !defined __CONFIG_ARM_EABI__ && defined __ARM_EABI__
  50063. +# error Your toolchain was built for EABI, but you have chosen OABI
  50064. +# endif
  50065. +#endif
  50066. +
  50067. #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
  50068. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/wordsize.h uClibc-git/libc/sysdeps/linux/arm/bits/wordsize.h
  50069. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  50070. +++ uClibc-git/libc/sysdeps/linux/arm/bits/wordsize.h 2014-06-02 17:40:34.306713601 +0200
  50071. @@ -12,8 +12,7 @@
  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. #define __WORDSIZE 32
  50080. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/brk.c uClibc-git/libc/sysdeps/linux/arm/brk.c
  50081. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/brk.c 2012-05-15 09:20:09.000000000 +0200
  50082. +++ uClibc-git/libc/sysdeps/linux/arm/brk.c 2014-06-02 17:40:34.306713601 +0200
  50083. @@ -13,9 +13,8 @@
  50084. Lesser General Public License for more details.
  50085. You should have received a copy of the GNU Lesser General Public
  50086. - License along with the GNU C Library; if not, write to the Free
  50087. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50088. - 02111-1307 USA. */
  50089. + License along with the GNU C Library; if not, see
  50090. + <http://www.gnu.org/licenses/>. */
  50091. #include <errno.h>
  50092. #include <unistd.h>
  50093. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/arm/bsd-setjmp.S
  50094. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
  50095. +++ uClibc-git/libc/sysdeps/linux/arm/bsd-setjmp.S 2014-06-02 17:40:34.306713601 +0200
  50096. @@ -13,9 +13,8 @@
  50097. Lesser General Public License for more details.
  50098. You should have received a copy of the GNU Lesser General Public
  50099. - License along with the GNU C Library; if not, write to the Free
  50100. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50101. - 02111-1307 USA. */
  50102. + License along with the GNU C Library; if not, see
  50103. + <http://www.gnu.org/licenses/>. */
  50104. #include <bits/arm_asm.h>
  50105. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/arm/bsd-_setjmp.S
  50106. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
  50107. +++ uClibc-git/libc/sysdeps/linux/arm/bsd-_setjmp.S 2014-06-02 17:40:34.306713601 +0200
  50108. @@ -13,9 +13,8 @@
  50109. Lesser General Public License for more details.
  50110. You should have received a copy of the GNU Lesser General Public
  50111. - License along with the GNU C Library; if not, write to the Free
  50112. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50113. - 02111-1307 USA. */
  50114. + License along with the GNU C Library; if not, see
  50115. + <http://www.gnu.org/licenses/>. */
  50116. #include <bits/arm_asm.h>
  50117. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/clone.S uClibc-git/libc/sysdeps/linux/arm/clone.S
  50118. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/clone.S 2012-05-15 09:20:09.000000000 +0200
  50119. +++ uClibc-git/libc/sysdeps/linux/arm/clone.S 2014-06-13 18:29:20.838293415 +0200
  50120. @@ -13,9 +13,8 @@
  50121. Lesser General Public License for more details.
  50122. You should have received a copy of the GNU Lesser General Public
  50123. - License along with the GNU C Library; if not, write to the Free
  50124. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50125. - 02111-1307 USA. */
  50126. + License along with the GNU C Library; if not, see
  50127. + <http://www.gnu.org/licenses/>. */
  50128. /* clone() is even more special than fork() as it mucks with stacks
  50129. and invokes a function in the right context after its all over. */
  50130. @@ -25,6 +24,7 @@
  50131. #include <bits/errno.h>
  50132. #include <sys/syscall.h>
  50133. #include <bits/arm_asm.h>
  50134. +#include <bits/arm_bx.h>
  50135. #if defined(__NR_clone)
  50136. /* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg); */
  50137. @@ -111,8 +111,9 @@
  50138. ldr r4, [sp, #12]
  50139. DO_CALL (clone)
  50140. movs a1, a1
  50141. - blt __error
  50142. + IT(t, ne)
  50143. ldmnefd sp!, {r4}
  50144. + blt __error
  50145. IT(t, ne)
  50146. #if defined(__USE_BX__)
  50147. bxne lr
  50148. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/crt1.S uClibc-git/libc/sysdeps/linux/arm/crt1.S
  50149. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/crt1.S 2012-05-15 09:20:09.000000000 +0200
  50150. +++ uClibc-git/libc/sysdeps/linux/arm/crt1.S 2014-06-02 17:40:34.306713601 +0200
  50151. @@ -31,9 +31,8 @@
  50152. Lesser General Public License for more details.
  50153. You should have received a copy of the GNU Lesser General Public
  50154. - License along with the GNU C Library; if not, write to the Free
  50155. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50156. - 02111-1307 USA. */
  50157. + License along with the GNU C Library; if not, see
  50158. + <http://www.gnu.org/licenses/>. */
  50159. /* This is the canonical entry point, usually the first thing in the text
  50160. segment.
  50161. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/find_exidx.c uClibc-git/libc/sysdeps/linux/arm/find_exidx.c
  50162. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/find_exidx.c 2012-05-15 09:20:09.000000000 +0200
  50163. +++ uClibc-git/libc/sysdeps/linux/arm/find_exidx.c 2014-06-02 17:40:34.306713601 +0200
  50164. @@ -12,9 +12,8 @@
  50165. Lesser General Public License for more details.
  50166. You should have received a copy of the GNU Lesser General Public
  50167. - License along with the GNU C Library; if not, write to the Free
  50168. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50169. - 02111-1307 USA. */
  50170. + License along with the GNU C Library; if not, see
  50171. + <http://www.gnu.org/licenses/>. */
  50172. #include <link.h>
  50173. #include <unwind.h>
  50174. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/fpu_control.h uClibc-git/libc/sysdeps/linux/arm/fpu_control.h
  50175. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  50176. +++ uClibc-git/libc/sysdeps/linux/arm/fpu_control.h 2014-06-02 17:40:34.306713601 +0200
  50177. @@ -13,9 +13,8 @@
  50178. Lesser General Public License for more details.
  50179. You should have received a copy of the GNU Lesser General Public
  50180. - License along with the GNU C Library; if not, write to the Free
  50181. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50182. - 02111-1307 USA. */
  50183. + License along with the GNU C Library; if not, see
  50184. + <http://www.gnu.org/licenses/>. */
  50185. #ifndef _FPU_CONTROL_H
  50186. #define _FPU_CONTROL_H
  50187. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/getcontext.S uClibc-git/libc/sysdeps/linux/arm/getcontext.S
  50188. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/getcontext.S 1970-01-01 01:00:00.000000000 +0100
  50189. +++ uClibc-git/libc/sysdeps/linux/arm/getcontext.S 2014-06-02 17:40:34.306713601 +0200
  50190. @@ -0,0 +1,80 @@
  50191. +/* Copyright (C) 2012 Free Software Foundation, Inc.
  50192. + This file is part of the GNU C Library.
  50193. +
  50194. + The GNU C Library is free software; you can redistribute it and/or
  50195. + modify it under the terms of the GNU Lesser General Public
  50196. + License as published by the Free Software Foundation; either
  50197. + version 2.1 of the License, or (at your option) any later version.
  50198. +
  50199. + The GNU C Library is distributed in the hope that it will be useful,
  50200. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  50201. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  50202. + Lesser General Public License for more details.
  50203. +
  50204. + You should have received a copy of the GNU Lesser General Public
  50205. + License along with the GNU C Library; if not, see
  50206. + <http://www.gnu.org/licenses/>. */
  50207. +
  50208. +#include <sysdep.h>
  50209. +
  50210. +#include "ucontext_i.h"
  50211. +
  50212. + .syntax unified
  50213. + .text
  50214. +
  50215. +/* int getcontext (ucontext_t *ucp) */
  50216. +
  50217. +ENTRY(__getcontext)
  50218. + /* No need to save r0-r3, d0-d7, or d16-d31. */
  50219. + add r1, r0, #MCONTEXT_ARM_R4
  50220. + stmia r1, {r4-r11}
  50221. +
  50222. + /* Save R13 separately as Thumb can't STM it. */
  50223. + str r13, [r0, #MCONTEXT_ARM_SP]
  50224. + str r14, [r0, #MCONTEXT_ARM_LR]
  50225. + /* Return to LR */
  50226. + str r14, [r0, #MCONTEXT_ARM_PC]
  50227. + /* Return zero */
  50228. + mov r2, #0
  50229. + str r2, [r0, #MCONTEXT_ARM_R0]
  50230. +
  50231. + /* Save ucontext_t * across the next call. */
  50232. + mov r4, r0
  50233. +
  50234. + /* __sigprocmask(SIG_BLOCK, NULL, &(ucontext->uc_sigmask)) */
  50235. + mov r0, #SIG_BLOCK
  50236. + mov r1, #0
  50237. + add r2, r4, #UCONTEXT_SIGMASK
  50238. + bl PLTJMP(sigprocmask)
  50239. +
  50240. +#if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
  50241. +# ifdef __VFP_FP__
  50242. + /* Store the VFP registers. */
  50243. + /* Following instruction is fstmiax ip!, {d8-d15}. */
  50244. + stc p11, cr8, [r0], #64
  50245. + /* Store the floating-point status register. */
  50246. + /* Following instruction is fmrx r2, fpscr. */
  50247. + mrc p10, 7, r1, cr1, cr0, 0
  50248. + str r1, [r0], #4
  50249. +# endif
  50250. +#endif
  50251. +#ifdef __IWMMXT__
  50252. + /* Save the call-preserved iWMMXt registers. */
  50253. + /* Following instructions are wstrd wr10, [r0], #8 (etc.) */
  50254. + stcl p1, cr10, [r0], #8
  50255. + stcl p1, cr11, [r0], #8
  50256. + stcl p1, cr12, [r0], #8
  50257. + stcl p1, cr13, [r0], #8
  50258. + stcl p1, cr14, [r0], #8
  50259. + stcl p1, cr15, [r0], #8
  50260. +#endif
  50261. +
  50262. + /* Restore the clobbered R4 and LR. */
  50263. + ldr r14, [r4, #MCONTEXT_ARM_LR]
  50264. + ldr r4, [r4, #MCONTEXT_ARM_R4]
  50265. +
  50266. + mov r0, #0
  50267. + DO_RET(r14)
  50268. +
  50269. +END(__getcontext)
  50270. +weak_alias(__getcontext, getcontext)
  50271. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/ioperm.c uClibc-git/libc/sysdeps/linux/arm/ioperm.c
  50272. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/ioperm.c 2012-05-15 09:20:09.000000000 +0200
  50273. +++ uClibc-git/libc/sysdeps/linux/arm/ioperm.c 2014-06-02 17:40:34.306713601 +0200
  50274. @@ -14,9 +14,8 @@
  50275. Lesser General Public License for more details.
  50276. You should have received a copy of the GNU Lesser General Public
  50277. - License along with the GNU C Library; if not, write to the Free
  50278. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50279. - 02111-1307 USA. */
  50280. + License along with the GNU C Library; if not, see
  50281. + <http://www.gnu.org/licenses/>. */
  50282. /* I/O port access on the ARM is something of a fiction. What we do is to
  50283. map an appropriate area of /dev/mem into user space so that a program
  50284. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/iopl.c uClibc-git/libc/sysdeps/linux/arm/iopl.c
  50285. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/iopl.c 2012-05-15 09:20:09.000000000 +0200
  50286. +++ uClibc-git/libc/sysdeps/linux/arm/iopl.c 2014-06-02 17:40:34.306713601 +0200
  50287. @@ -14,9 +14,8 @@
  50288. Lesser General Public License for more details.
  50289. You should have received a copy of the GNU Lesser General Public
  50290. - License along with the GNU C Library; if not, write to the Free
  50291. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50292. - 02111-1307 USA. */
  50293. + License along with the GNU C Library; if not, see
  50294. + <http://www.gnu.org/licenses/>. */
  50295. #include <sys/io.h>
  50296. #include <errno.h>
  50297. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/arm/jmpbuf-offsets.h
  50298. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  50299. +++ uClibc-git/libc/sysdeps/linux/arm/jmpbuf-offsets.h 2014-06-02 17:40:34.306713601 +0200
  50300. @@ -0,0 +1,23 @@
  50301. +/* Private macros for accessing __jmp_buf contents. ARM version.
  50302. + Copyright (C) 2006 Free Software Foundation, Inc.
  50303. + This file is part of the GNU C Library.
  50304. +
  50305. + The GNU C Library is free software; you can redistribute it and/or
  50306. + modify it under the terms of the GNU Lesser General Public
  50307. + License as published by the Free Software Foundation; either
  50308. + version 2.1 of the License, or (at your option) any later version.
  50309. +
  50310. + The GNU C Library is distributed in the hope that it will be useful,
  50311. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  50312. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  50313. + Lesser General Public License for more details.
  50314. +
  50315. + You should have received a copy of the GNU Lesser General Public
  50316. + License along with the GNU C Library; if not, see
  50317. + <http://www.gnu.org/licenses/>. */
  50318. +
  50319. +#ifdef __UCLIBC_HAS_FPU__
  50320. +#define __JMP_BUF_SP 20
  50321. +#else
  50322. +#define __JMP_BUF_SP 8
  50323. +#endif
  50324. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/arm/jmpbuf-unwind.h
  50325. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  50326. +++ uClibc-git/libc/sysdeps/linux/arm/jmpbuf-unwind.h 2014-06-02 17:40:34.306713601 +0200
  50327. @@ -0,0 +1,29 @@
  50328. +/*
  50329. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  50330. + *
  50331. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  50332. + */
  50333. +#include <setjmp.h>
  50334. +#include <jmpbuf-offsets.h>
  50335. +
  50336. +/* Test if longjmp to JMPBUF would unwind the frame
  50337. + containing a local variable at ADDRESS. */
  50338. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  50339. + ((void *) (address) < (void *) (jmpbuf[__JMP_BUF_SP]))
  50340. +
  50341. +#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  50342. +#include <stdint.h>
  50343. +#include <unwind.h>
  50344. +
  50345. +/* Test if longjmp to JMPBUF would unwind the frame
  50346. + containing a local variable at ADDRESS. */
  50347. +#undef _JMPBUF_UNWINDS
  50348. +#define _JMPBUF_UNWINDS(jmpbuf, address, demangle) \
  50349. + ((void *) (address) < (void *) demangle (jmpbuf[__JMP_BUF_SP]))
  50350. +
  50351. +#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
  50352. + _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
  50353. +
  50354. +#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  50355. + ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[__JMP_BUF_SP] - (_adj))
  50356. +#endif
  50357. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/__longjmp.S uClibc-git/libc/sysdeps/linux/arm/__longjmp.S
  50358. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  50359. +++ uClibc-git/libc/sysdeps/linux/arm/__longjmp.S 2014-06-13 18:29:20.838293415 +0200
  50360. @@ -13,16 +13,12 @@
  50361. Lesser General Public License for more details.
  50362. You should have received a copy of the GNU Lesser General Public
  50363. - License along with the GNU C Library; if not, write to the Free
  50364. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50365. - 02111-1307 USA. */
  50366. + License along with the GNU C Library; if not, see
  50367. + <http://www.gnu.org/licenses/>. */
  50368. #include <features.h>
  50369. #include <bits/arm_asm.h>
  50370. -#define _SETJMP_H
  50371. -#define _ASM
  50372. -#include <bits/setjmp.h>
  50373. -
  50374. +#include <bits/arm_bx.h>
  50375. .global __longjmp
  50376. .type __longjmp,%function
  50377. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/makecontext.c uClibc-git/libc/sysdeps/linux/arm/makecontext.c
  50378. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/makecontext.c 1970-01-01 01:00:00.000000000 +0100
  50379. +++ uClibc-git/libc/sysdeps/linux/arm/makecontext.c 2014-06-02 17:40:34.306713601 +0200
  50380. @@ -0,0 +1,73 @@
  50381. +/* Copyright (C) 2012 Free Software Foundation, Inc.
  50382. + This file is part of the GNU C Library.
  50383. +
  50384. + The GNU C Library is free software; you can redistribute it and/or
  50385. + modify it under the terms of the GNU Lesser General Public
  50386. + License as published by the Free Software Foundation; either
  50387. + version 2.1 of the License, or (at your option) any later version.
  50388. +
  50389. + The GNU C Library is distributed in the hope that it will be useful,
  50390. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  50391. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  50392. + Lesser General Public License for more details.
  50393. +
  50394. + You should have received a copy of the GNU Lesser General Public
  50395. + License along with the GNU C Library; if not, see
  50396. + <http://www.gnu.org/licenses/>. */
  50397. +
  50398. +#include <stdarg.h>
  50399. +#include <ucontext.h>
  50400. +
  50401. +/* Number of arguments that go in registers. */
  50402. +#define NREG_ARGS 4
  50403. +
  50404. +/* Take a context previously prepared via getcontext() and set to
  50405. + call func() with the given int only args. */
  50406. +void
  50407. +__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
  50408. +{
  50409. + extern void __startcontext (void);
  50410. + unsigned long *funcstack;
  50411. + va_list vl;
  50412. + unsigned long *regptr;
  50413. + unsigned int reg;
  50414. + int misaligned;
  50415. +
  50416. + /* Start at the top of stack. */
  50417. + funcstack = (unsigned long *) (ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size);
  50418. +
  50419. + /* Ensure the stack stays eight byte aligned. */
  50420. + misaligned = ((unsigned long) funcstack & 4) != 0;
  50421. +
  50422. + if ((argc > NREG_ARGS) && (argc & 1) != 0)
  50423. + misaligned = !misaligned;
  50424. +
  50425. + if (misaligned)
  50426. + funcstack -= 1;
  50427. +
  50428. + va_start (vl, argc);
  50429. +
  50430. + /* Reserve space for the on-stack arguments. */
  50431. + if (argc > NREG_ARGS)
  50432. + funcstack -= (argc - NREG_ARGS);
  50433. +
  50434. + ucp->uc_mcontext.arm_sp = (unsigned long) funcstack;
  50435. + ucp->uc_mcontext.arm_pc = (unsigned long) func;
  50436. +
  50437. + /* Exit to startcontext() with the next context in R4 */
  50438. + ucp->uc_mcontext.arm_r4 = (unsigned long) ucp->uc_link;
  50439. + ucp->uc_mcontext.arm_lr = (unsigned long) __startcontext;
  50440. +
  50441. + /* The first four arguments go into registers. */
  50442. + regptr = &(ucp->uc_mcontext.arm_r0);
  50443. +
  50444. + for (reg = 0; (reg < argc) && (reg < NREG_ARGS); reg++)
  50445. + *regptr++ = va_arg (vl, unsigned long);
  50446. +
  50447. + /* And the remainder on the stack. */
  50448. + for (; reg < argc; reg++)
  50449. + *funcstack++ = va_arg (vl, unsigned long);
  50450. +
  50451. + va_end (vl);
  50452. +}
  50453. +weak_alias (__makecontext, makecontext)
  50454. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/Makefile.arch uClibc-git/libc/sysdeps/linux/arm/Makefile.arch
  50455. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  50456. +++ uClibc-git/libc/sysdeps/linux/arm/Makefile.arch 2014-06-02 17:40:34.266713379 +0200
  50457. @@ -5,42 +5,40 @@
  50458. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  50459. #
  50460. -CSRC := brk.c ioperm.c iopl.c mmap.c __syscall_error.c sigaction.c
  50461. +CSRC-y := brk.c ioperm.c iopl.c __syscall_error.c sigaction.c
  50462. -SSRC := \
  50463. +SSRC-y := \
  50464. __longjmp.S setjmp.S bsd-setjmp.S \
  50465. - bsd-_setjmp.S sigrestorer.S mmap64.S \
  50466. + bsd-_setjmp.S sigrestorer.S \
  50467. vfork.S clone.S
  50468. -ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
  50469. -SSRC += libc-aeabi_read_tp.S libc-thumb_atomics.S
  50470. -endif
  50471. -
  50472. -ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y)
  50473. -CSRC += posix_fadvise.c posix_fadvise64.c
  50474. -endif
  50475. +SSRC-$(UCLIBC_HAS_LFS) += mmap64.S
  50476. +SSRC-$(UCLIBC_HAS_THREADS_NATIVE) += libc-aeabi_read_tp.S libc-thumb_atomics.S
  50477. +CSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += makecontext.c
  50478. +SSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += getcontext.S setcontext.S swapcontext.S
  50479. # Is our compiler set up for EABI ?
  50480. -IS_EABI:=$(shell $(CC) $(CFLAGS) -x c - -E -dM </dev/null 2>/dev/null \
  50481. - | grep __ARM_EABI__ 2>&1 >/dev/null && echo 'y' \
  50482. - )
  50483. +CC_IS_EABI_CHECK = $(filter-out -include libc-symbols.h,$(CC) $(CFLAGS))
  50484. +$(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'))
  50485. -ifeq ($(IS_EABI),y)
  50486. -CSRC += aeabi_assert.c aeabi_atexit.c aeabi_errno_addr.c \
  50487. +CSRC-$(IS_EABI) += aeabi_assert.c aeabi_atexit.c aeabi_errno_addr.c \
  50488. aeabi_localeconv.c aeabi_memclr.c aeabi_memcpy.c \
  50489. aeabi_memmove.c aeabi_memset.c find_exidx.c
  50490. -SSRC += syscall-eabi.S
  50491. -ARCH_OBJ_FILTEROUT := syscall.c
  50492. -ifeq ($(UCLIBC_HAS_WCHAR),y)
  50493. -CSRC += aeabi_mb_cur_max.c
  50494. -endif
  50495. -else
  50496. -CSRC += syscall.c
  50497. -endif
  50498. -
  50499. +SSRC-$(IS_EABI) += syscall-eabi.S
  50500. +CSRC-$(if $(IS_EABI),,y)) += syscall.c
  50501. +ARCH_OBJ_FILTEROUT-$(IS_EABI) := syscall.c
  50502. ifeq ($(IS_EABI),y)
  50503. -libc-static-y += $(ARCH_OUT)/aeabi_lcsts.o $(ARCH_OUT)/aeabi_math.o \
  50504. - $(ARCH_OUT)/aeabi_sighandlers.o
  50505. -libc-nonshared-y += $(ARCH_OUT)/aeabi_lcsts.os $(ARCH_OUT)/aeabi_math.os \
  50506. - $(ARCH_OUT)/aeabi_sighandlers.os $(ARCH_OUT)/aeabi_unwind_cpp_pr1.o
  50507. +CSRC-$(UCLIBC_HAS_WCHAR) += aeabi_mb_cur_max.c
  50508. endif
  50509. +
  50510. +libc-static-$(IS_EABI) += $(addprefix $(ARCH_OUT)/, \
  50511. + aeabi_lcsts.o \
  50512. + aeabi_math.o \
  50513. + aeabi_sighandlers.o \
  50514. + )
  50515. +libc-nonshared-$(IS_EABI) += $(addprefix $(ARCH_OUT)/, \
  50516. + aeabi_lcsts.os \
  50517. + aeabi_math.os \
  50518. + aeabi_sighandlers.os \
  50519. + aeabi_unwind_cpp_pr1.o \
  50520. + )
  50521. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/mmap64.S uClibc-git/libc/sysdeps/linux/arm/mmap64.S
  50522. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/mmap64.S 2012-05-15 09:20:09.000000000 +0200
  50523. +++ uClibc-git/libc/sysdeps/linux/arm/mmap64.S 2014-06-13 18:29:20.838293415 +0200
  50524. @@ -12,17 +12,17 @@
  50525. Lesser General Public License for more details.
  50526. You should have received a copy of the GNU Lesser General Public
  50527. - License along with the GNU C Library; if not, write to the Free
  50528. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50529. - 02111-1307 USA. */
  50530. + License along with the GNU C Library; if not, see
  50531. + <http://www.gnu.org/licenses/>. */
  50532. -#include <features.h>
  50533. +#include <_lfs_64.h>
  50534. #define _ERRNO_H
  50535. #include <bits/errno.h>
  50536. #include <sys/syscall.h>
  50537. #include <bits/arm_asm.h>
  50538. +#include <bits/arm_bx.h>
  50539. -#if defined __UCLIBC_HAS_LFS__ && defined __NR_mmap2
  50540. +#ifdef __NR_mmap2
  50541. /* The mmap2 system call takes six arguments, all in registers. */
  50542. .text
  50543. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/mmap.c uClibc-git/libc/sysdeps/linux/arm/mmap.c
  50544. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/mmap.c 2012-05-15 09:20:09.000000000 +0200
  50545. +++ uClibc-git/libc/sysdeps/linux/arm/mmap.c 1970-01-01 01:00:00.000000000 +0100
  50546. @@ -1,74 +0,0 @@
  50547. -/* vi: set sw=4 ts=4: */
  50548. -/*
  50549. - * _mmap() for uClibc
  50550. - *
  50551. - * Copyright (C) 2000-2004 by Erik Andersen <andersen@codepoet.org>
  50552. - *
  50553. - * GNU Library General Public License (LGPL) version 2 or later.
  50554. - */
  50555. -#include <errno.h>
  50556. -#include <unistd.h>
  50557. -#include <sys/mman.h>
  50558. -#include <sys/syscall.h>
  50559. -
  50560. -#if defined (__NR_mmap) || defined (__NR_mmap2)
  50561. -
  50562. -libc_hidden_proto(mmap)
  50563. -#if defined (__UCLIBC_MMAP_HAS_6_ARGS__) && defined (__NR_mmap)
  50564. -#define __NR__mmap __NR_mmap
  50565. -static __inline__ _syscall6 (__ptr_t, _mmap, __ptr_t, addr, size_t, len,
  50566. - int, prot, int, flags, int, fd, __off_t, offset)
  50567. -__ptr_t mmap(__ptr_t addr, size_t len, int prot,
  50568. - int flags, int fd, __off_t offset)
  50569. -{
  50570. - return (__ptr_t) _mmap (addr, len, prot, flags,
  50571. - fd, offset);
  50572. -}
  50573. -
  50574. -#elif defined (__NR_mmap2)
  50575. -#define __NR__mmap __NR_mmap2
  50576. -
  50577. -#ifndef MMAP2_PAGE_SHIFT
  50578. -# define MMAP2_PAGE_SHIFT 12
  50579. -#endif
  50580. -
  50581. -static __inline__ _syscall6 (__ptr_t, _mmap, __ptr_t, addr, size_t, len,
  50582. - int, prot, int, flags, int, fd, __off_t, offset);
  50583. -__ptr_t mmap(__ptr_t addr, size_t len, int prot,
  50584. - int flags, int fd, __off_t offset)
  50585. -{
  50586. - /* check if offset is page aligned */
  50587. - if (offset & ((1 << MMAP2_PAGE_SHIFT) - 1))
  50588. - {
  50589. - __set_errno(EINVAL);
  50590. - return MAP_FAILED;
  50591. - }
  50592. -#ifdef __USE_FILE_OFFSET64
  50593. - return (__ptr_t) _mmap (addr, len, prot, flags,
  50594. - fd, ((__u_quad_t) offset >> MMAP2_PAGE_SHIFT));
  50595. -#else
  50596. - return (__ptr_t) _mmap (addr, len, prot, flags,
  50597. - fd, ((__u_long) offset >> MMAP2_PAGE_SHIFT));
  50598. -#endif
  50599. -}
  50600. -#elif defined (__NR_mmap)
  50601. -# define __NR__mmap __NR_mmap
  50602. -static __inline__ _syscall1(__ptr_t, _mmap, unsigned long *, buffer)
  50603. -__ptr_t mmap(__ptr_t addr, size_t len, int prot,
  50604. - int flags, int fd, __off_t offset)
  50605. -{
  50606. - unsigned long buffer[6];
  50607. -
  50608. - buffer[0] = (unsigned long) addr;
  50609. - buffer[1] = (unsigned long) len;
  50610. - buffer[2] = (unsigned long) prot;
  50611. - buffer[3] = (unsigned long) flags;
  50612. - buffer[4] = (unsigned long) fd;
  50613. - buffer[5] = (unsigned long) offset;
  50614. - return (__ptr_t) _mmap(buffer);
  50615. -}
  50616. -#endif
  50617. -libc_hidden_def (mmap)
  50618. -#else
  50619. -# error "Your architecture doesn't seem to provide mmap() !?"
  50620. -#endif
  50621. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/posix_fadvise64.c uClibc-git/libc/sysdeps/linux/arm/posix_fadvise64.c
  50622. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/posix_fadvise64.c 2012-05-15 09:20:09.000000000 +0200
  50623. +++ uClibc-git/libc/sysdeps/linux/arm/posix_fadvise64.c 1970-01-01 01:00:00.000000000 +0100
  50624. @@ -1,59 +0,0 @@
  50625. -/* vi: set sw=4 ts=4: */
  50626. -/*
  50627. - * posix_fadvise64() for ARM uClibc
  50628. - * http://www.opengroup.org/onlinepubs/009695399/functions/posix_fadvise.html
  50629. - *
  50630. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  50631. - *
  50632. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  50633. - */
  50634. -
  50635. -#include <features.h>
  50636. -#include <unistd.h>
  50637. -#include <errno.h>
  50638. -#include <endian.h>
  50639. -#include <stdint.h>
  50640. -#include <sys/types.h>
  50641. -#include <sys/syscall.h>
  50642. -#include <fcntl.h>
  50643. -
  50644. -#ifdef __UCLIBC_HAS_LFS__
  50645. -
  50646. -#if defined __NR_arm_fadvise64_64
  50647. -
  50648. -/* Was named __libc_posix_fadvise64 for some inexplicable reason.
  50649. -** google says only uclibc has *__libc*_posix_fadviseXXX,
  50650. -** so it cannot be compat with anything.
  50651. -**
  50652. -** Remove this comment and one at the end after 0.9.31
  50653. -*/
  50654. -
  50655. -/* This is for the ARM version of fadvise64_64 which swaps the params
  50656. - * about to avoid having ABI compat issues
  50657. - */
  50658. -#define __NR___syscall_arm_fadvise64_64 __NR_arm_fadvise64_64
  50659. -int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advise)
  50660. -{
  50661. - INTERNAL_SYSCALL_DECL (err);
  50662. - int ret = INTERNAL_SYSCALL (arm_fadvise64_64, err, 6, fd, advise,
  50663. - __LONG_LONG_PAIR ((long)(offset >> 32), (long)offset),
  50664. - __LONG_LONG_PAIR ((long)(len >> 32), (long)len));
  50665. - if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
  50666. - return 0;
  50667. - if (INTERNAL_SYSCALL_ERRNO (ret, err) != ENOSYS)
  50668. - return INTERNAL_SYSCALL_ERRNO (ret, err);
  50669. - return 0;
  50670. -}
  50671. -
  50672. -/* weak_alias(__libc_posix_fadvise64, posix_fadvise64); */
  50673. -
  50674. -#elif defined __UCLIBC_HAS_STUBS__
  50675. -
  50676. -int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advise)
  50677. -{
  50678. - return ENOSYS;
  50679. -}
  50680. -
  50681. -#endif
  50682. -
  50683. -#endif
  50684. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/posix_fadvise.c uClibc-git/libc/sysdeps/linux/arm/posix_fadvise.c
  50685. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/posix_fadvise.c 2012-05-15 09:20:09.000000000 +0200
  50686. +++ uClibc-git/libc/sysdeps/linux/arm/posix_fadvise.c 1970-01-01 01:00:00.000000000 +0100
  50687. @@ -1,49 +0,0 @@
  50688. -/* vi: set sw=4 ts=4: */
  50689. -/*
  50690. - * posix_fadvise() for ARM uClibc
  50691. - * http://www.opengroup.org/onlinepubs/009695399/functions/posix_fadvise.html
  50692. - *
  50693. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  50694. - *
  50695. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  50696. - */
  50697. -#include <sys/syscall.h>
  50698. -#include <fcntl.h>
  50699. -
  50700. -#if defined __NR_arm_fadvise64_64
  50701. -
  50702. -#define HIGH_BITS(x) (sizeof(x) > 4 ? (x) >> 32 : 0)
  50703. -
  50704. -/* Was named __libc_posix_fadvise for some inexplicable reason.
  50705. -** google says only uclibc has *__libc*_posix_fadviseXXX,
  50706. -** so it cannot be compat with anything.
  50707. -**
  50708. -** Remove this comment and one at the end after 0.9.31
  50709. -*/
  50710. -
  50711. -/* This is for the ARM version of fadvise64_64 which swaps the params
  50712. - * about to avoid having ABI compat issues
  50713. - */
  50714. -#define __NR___syscall_arm_fadvise64_64 __NR_arm_fadvise64_64
  50715. -int posix_fadvise(int fd, off_t offset, off_t len, int advise)
  50716. -{
  50717. - INTERNAL_SYSCALL_DECL (err);
  50718. - int ret = INTERNAL_SYSCALL (arm_fadvise64_64, err, 6, fd, advise,
  50719. - __LONG_LONG_PAIR (HIGH_BITS(offset), (long)offset),
  50720. - __LONG_LONG_PAIR (HIGH_BITS(len), (long)len));
  50721. -
  50722. - if (INTERNAL_SYSCALL_ERROR_P (ret, err))
  50723. - return INTERNAL_SYSCALL_ERRNO (ret, err);
  50724. - return 0;
  50725. -}
  50726. -
  50727. -/* weak_alias(__libc_posix_fadvise, posix_fadvise); */
  50728. -
  50729. -#elif defined __UCLIBC_HAS_STUBS__
  50730. -
  50731. -int posix_fadvise(int fd attribute_unused, off_t offset attribute_unused, off_t len attribute_unused, int advice attribute_unused)
  50732. -{
  50733. - return ENOSYS;
  50734. -}
  50735. -
  50736. -#endif
  50737. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/setcontext.S uClibc-git/libc/sysdeps/linux/arm/setcontext.S
  50738. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/setcontext.S 1970-01-01 01:00:00.000000000 +0100
  50739. +++ uClibc-git/libc/sysdeps/linux/arm/setcontext.S 2014-06-02 17:40:34.306713601 +0200
  50740. @@ -0,0 +1,76 @@
  50741. +/* Copyright (C) 2012 Free Software Foundation, Inc.
  50742. + This file is part of the GNU C Library.
  50743. +
  50744. + The GNU C Library is free software; you can redistribute it and/or
  50745. + modify it under the terms of the GNU Lesser General Public
  50746. + License as published by the Free Software Foundation; either
  50747. + version 2.1 of the License, or (at your option) any later version.
  50748. +
  50749. + The GNU C Library is distributed in the hope that it will be useful,
  50750. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  50751. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  50752. + Lesser General Public License for more details.
  50753. +
  50754. + You should have received a copy of the GNU Lesser General Public
  50755. + License along with the GNU C Library; if not, see
  50756. + <http://www.gnu.org/licenses/>. */
  50757. +
  50758. +#include <sysdep.h>
  50759. +
  50760. +#include "ucontext_i.h"
  50761. +
  50762. + .syntax unified
  50763. + .text
  50764. +
  50765. +/* int setcontext (const ucontext_t *ucp) */
  50766. +
  50767. +ENTRY(__setcontext)
  50768. + mov r4, r0
  50769. +
  50770. +#if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
  50771. +# ifdef __VFP_FP__
  50772. + /* Following instruction is vldmia r0!, {d8-d15}. */
  50773. + ldc p11, cr8, [r0], #64
  50774. + /* Restore the floating-point status register. */
  50775. + ldr r1, [r0], #4
  50776. + /* Following instruction is fmxr fpscr, r1. */
  50777. + mcr p10, 7, r1, cr1, cr0, 0
  50778. +# endif
  50779. +#endif
  50780. +
  50781. +#ifdef __IWMMXT__
  50782. + /* Restore the call-preserved iWMMXt registers. */
  50783. + /* Following instructions are wldrd wr10, [r0], #8 (etc.) */
  50784. + ldcl p1, cr10, [r0], #8
  50785. + ldcl p1, cr11, [r0], #8
  50786. + ldcl p1, cr12, [r0], #8
  50787. + ldcl p1, cr13, [r0], #8
  50788. + ldcl p1, cr14, [r0], #8
  50789. + ldcl p1, cr15, [r0], #8
  50790. +#endif
  50791. +
  50792. + /* Now bring back the signal status. */
  50793. + mov r0, #SIG_SETMASK
  50794. + add r1, r4, #UCONTEXT_SIGMASK
  50795. + mov r2, #0
  50796. + bl PLTJMP(sigprocmask)
  50797. +
  50798. + /* Loading r0-r3 makes makecontext easier. */
  50799. + add r14, r4, #MCONTEXT_ARM_R0
  50800. + ldmia r14, {r0-r11}
  50801. + ldr r13, [r14, #(MCONTEXT_ARM_SP - MCONTEXT_ARM_R0)]
  50802. + add r14, r14, #(MCONTEXT_ARM_LR - MCONTEXT_ARM_R0)
  50803. + ldmia r14, {r14, pc}
  50804. +
  50805. +END(setcontext)
  50806. +weak_alias(__setcontext, setcontext)
  50807. +
  50808. + /* Called when a makecontext() context returns. Start the
  50809. + context in R4 or fall through to exit(). */
  50810. +ENTRY(__startcontext)
  50811. + movs r0, r4
  50812. + bne PLTJMP(__setcontext)
  50813. +
  50814. + @ New context was 0 - exit
  50815. + b PLTJMP(_exit)
  50816. +END(__startcontext)
  50817. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/setjmp.S uClibc-git/libc/sysdeps/linux/arm/setjmp.S
  50818. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  50819. +++ uClibc-git/libc/sysdeps/linux/arm/setjmp.S 2014-06-02 17:40:34.306713601 +0200
  50820. @@ -13,9 +13,8 @@
  50821. Lesser General Public License for more details.
  50822. You should have received a copy of the GNU Lesser General Public
  50823. - License along with the GNU C Library; if not, write to the Free
  50824. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50825. - 02111-1307 USA. */
  50826. + License along with the GNU C Library; if not, see
  50827. + <http://www.gnu.org/licenses/>. */
  50828. #include <features.h>
  50829. #include <bits/arm_asm.h>
  50830. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sigaction.c uClibc-git/libc/sysdeps/linux/arm/sigaction.c
  50831. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sigaction.c 2012-05-15 09:20:09.000000000 +0200
  50832. +++ uClibc-git/libc/sysdeps/linux/arm/sigaction.c 2014-06-02 17:40:34.306713601 +0200
  50833. @@ -12,9 +12,8 @@
  50834. Lesser General Public License for more details.
  50835. You should have received a copy of the GNU Lesser General Public
  50836. - License along with the GNU C Library; if not, write to the Free
  50837. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50838. - 02111-1307 USA.
  50839. + License along with the GNU C Library; if not, see
  50840. + <http://www.gnu.org/licenses/>.
  50841. Totally hacked up for uClibc by Erik Andersen <andersen@codepoet.org>
  50842. */
  50843. @@ -29,8 +28,6 @@
  50844. extern void __default_sa_restorer(void);
  50845. extern void __default_rt_sa_restorer(void);
  50846. -extern __typeof(sigaction) __libc_sigaction;
  50847. -
  50848. /* When RT signals are in use we need to use a different return stub. */
  50849. #ifdef __NR_rt_sigreturn
  50850. #define choose_restorer(flags) \
  50851. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sigrestorer.S uClibc-git/libc/sysdeps/linux/arm/sigrestorer.S
  50852. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sigrestorer.S 2012-05-15 09:20:09.000000000 +0200
  50853. +++ uClibc-git/libc/sysdeps/linux/arm/sigrestorer.S 2014-06-02 17:40:34.306713601 +0200
  50854. @@ -12,9 +12,8 @@
  50855. Lesser General Public License for more details.
  50856. You should have received a copy of the GNU Lesser General Public
  50857. - License along with the GNU C Library; if not, write to the Free
  50858. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50859. - 02111-1307 USA. */
  50860. + License along with the GNU C Library; if not, see
  50861. + <http://www.gnu.org/licenses/>. */
  50862. #include <bits/arm_asm.h>
  50863. #include <sys/syscall.h>
  50864. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/swapcontext.S uClibc-git/libc/sysdeps/linux/arm/swapcontext.S
  50865. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/swapcontext.S 1970-01-01 01:00:00.000000000 +0100
  50866. +++ uClibc-git/libc/sysdeps/linux/arm/swapcontext.S 2014-06-02 17:40:34.306713601 +0200
  50867. @@ -0,0 +1,63 @@
  50868. +/* Copyright (C) 2012 Free Software Foundation, Inc.
  50869. + This file is part of the GNU C Library.
  50870. +
  50871. + The GNU C Library is free software; you can redistribute it and/or
  50872. + modify it under the terms of the GNU Lesser General Public
  50873. + License as published by the Free Software Foundation; either
  50874. + version 2.1 of the License, or (at your option) any later version.
  50875. +
  50876. + The GNU C Library is distributed in the hope that it will be useful,
  50877. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  50878. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  50879. + Lesser General Public License for more details.
  50880. +
  50881. + You should have received a copy of the GNU Lesser General Public
  50882. + License along with the GNU C Library; if not, see
  50883. + <http://www.gnu.org/licenses/>. */
  50884. +
  50885. +#include <sysdep.h>
  50886. +
  50887. +#include "ucontext_i.h"
  50888. +
  50889. + .syntax unified
  50890. + .text
  50891. +
  50892. +/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */
  50893. +
  50894. +ENTRY(swapcontext)
  50895. +
  50896. + /* Have getcontext() do most of the work then fix up
  50897. + LR afterwards. Save R3 to keep the stack aligned. */
  50898. + push {r0,r1,r3,r14}
  50899. + cfi_adjust_cfa_offset (16)
  50900. + cfi_rel_offset (r0,0)
  50901. + cfi_rel_offset (r1,4)
  50902. + cfi_rel_offset (r3,8)
  50903. + cfi_rel_offset (r14,12)
  50904. +
  50905. + bl __getcontext
  50906. + mov r4, r0
  50907. +
  50908. + pop {r0,r1,r3,r14}
  50909. + cfi_adjust_cfa_offset (-16)
  50910. + cfi_restore (r0)
  50911. + cfi_restore (r1)
  50912. + cfi_restore (r3)
  50913. + cfi_restore (r14)
  50914. +
  50915. + /* Exit if getcontext() failed. */
  50916. + cmp r4, #0
  50917. + itt ne
  50918. + movne r0, r4
  50919. + RETINSTR(ne, r14)
  50920. +
  50921. + /* Fix up LR and the PC. */
  50922. + str r13,[r0, #MCONTEXT_ARM_SP]
  50923. + str r14,[r0, #MCONTEXT_ARM_LR]
  50924. + str r14,[r0, #MCONTEXT_ARM_PC]
  50925. +
  50926. + /* And swap using swapcontext(). */
  50927. + mov r0, r1
  50928. + b __setcontext
  50929. +
  50930. +END(swapcontext)
  50931. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/elf.h uClibc-git/libc/sysdeps/linux/arm/sys/elf.h
  50932. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/elf.h 2012-05-15 09:20:09.000000000 +0200
  50933. +++ uClibc-git/libc/sysdeps/linux/arm/sys/elf.h 2014-06-02 17:40:34.306713601 +0200
  50934. @@ -12,9 +12,8 @@
  50935. Lesser General Public License for more details.
  50936. You should have received a copy of the GNU Lesser General Public
  50937. - License along with the GNU C Library; if not, write to the Free
  50938. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50939. - 02111-1307 USA. */
  50940. + License along with the GNU C Library; if not, see
  50941. + <http://www.gnu.org/licenses/>. */
  50942. #ifndef _SYS_ELF_H
  50943. #define _SYS_ELF_H 1
  50944. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/io.h uClibc-git/libc/sysdeps/linux/arm/sys/io.h
  50945. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/io.h 2012-05-15 09:20:09.000000000 +0200
  50946. +++ uClibc-git/libc/sysdeps/linux/arm/sys/io.h 2014-06-02 17:40:34.306713601 +0200
  50947. @@ -12,9 +12,8 @@
  50948. Lesser General Public License for more details.
  50949. You should have received a copy of the GNU Lesser General Public
  50950. - License along with the GNU C Library; if not, write to the Free
  50951. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50952. - 02111-1307 USA. */
  50953. + License along with the GNU C Library; if not, see
  50954. + <http://www.gnu.org/licenses/>. */
  50955. #ifndef _SYS_IO_H
  50956. @@ -23,6 +22,7 @@
  50957. __BEGIN_DECLS
  50958. +#if defined __UCLIBC_LINUX_SPECIFIC__
  50959. /* If TURN_ON is TRUE, request for permission to do direct i/o on the
  50960. port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
  50961. permission off for that range. This call requires root privileges. */
  50962. @@ -34,6 +34,7 @@
  50963. permission to access any I/O port is granted. This call requires
  50964. root privileges. */
  50965. extern int iopl (int __level) __THROW;
  50966. +#endif /* __UCLIBC_LINUX_SPECIFIC__ */
  50967. /* The functions that actually perform reads and writes. */
  50968. extern unsigned char inb (unsigned long int port) __THROW;
  50969. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/procfs.h uClibc-git/libc/sysdeps/linux/arm/sys/procfs.h
  50970. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  50971. +++ uClibc-git/libc/sysdeps/linux/arm/sys/procfs.h 2014-06-02 17:40:34.306713601 +0200
  50972. @@ -12,9 +12,8 @@
  50973. Lesser General Public License for more details.
  50974. You should have received a copy of the GNU Lesser General Public
  50975. - License along with the GNU C Library; if not, write to the Free
  50976. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50977. - 02111-1307 USA. */
  50978. + License along with the GNU C Library; if not, see
  50979. + <http://www.gnu.org/licenses/>. */
  50980. #ifndef _SYS_PROCFS_H
  50981. #define _SYS_PROCFS_H 1
  50982. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/ucontext.h uClibc-git/libc/sysdeps/linux/arm/sys/ucontext.h
  50983. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  50984. +++ uClibc-git/libc/sysdeps/linux/arm/sys/ucontext.h 2014-06-02 17:40:34.310713623 +0200
  50985. @@ -12,9 +12,8 @@
  50986. Lesser General Public License for more details.
  50987. You should have received a copy of the GNU Lesser General Public
  50988. - License along with the GNU C Library; if not, write to the Free
  50989. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50990. - 02111-1307 USA. */
  50991. + License along with the GNU C Library; if not, see
  50992. + <http://www.gnu.org/licenses/>. */
  50993. /* System V/ARM ABI compliant context switching support. */
  50994. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/user.h uClibc-git/libc/sysdeps/linux/arm/sys/user.h
  50995. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/user.h 2012-05-15 09:20:09.000000000 +0200
  50996. +++ uClibc-git/libc/sysdeps/linux/arm/sys/user.h 2014-06-02 17:40:34.310713623 +0200
  50997. @@ -12,9 +12,8 @@
  50998. Lesser General Public License for more details.
  50999. You should have received a copy of the GNU Lesser General Public
  51000. - License along with the GNU C Library; if not, write to the Free
  51001. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51002. - 02111-1307 USA. */
  51003. + License along with the GNU C Library; if not, see
  51004. + <http://www.gnu.org/licenses/>. */
  51005. #ifndef _SYS_USER_H
  51006. #define _SYS_USER_H 1
  51007. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/syscall-eabi.S uClibc-git/libc/sysdeps/linux/arm/syscall-eabi.S
  51008. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/syscall-eabi.S 2012-05-15 09:20:09.000000000 +0200
  51009. +++ uClibc-git/libc/sysdeps/linux/arm/syscall-eabi.S 2014-06-13 18:29:20.838293415 +0200
  51010. @@ -12,12 +12,12 @@
  51011. Lesser General Public License for more details.
  51012. You should have received a copy of the GNU Lesser General Public
  51013. - License along with the GNU C Library; if not, write to the Free
  51014. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51015. - 02111-1307 USA. */
  51016. + License along with the GNU C Library; if not, see
  51017. + <http://www.gnu.org/licenses/>. */
  51018. #include <sys/syscall.h>
  51019. #include <bits/arm_asm.h>
  51020. +#include <bits/arm_bx.h>
  51021. /* In the EABI syscall interface, we don't need a special syscall to
  51022. implement syscall(). It won't work reliably with 64-bit arguments
  51023. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sysdep.h uClibc-git/libc/sysdeps/linux/arm/sysdep.h
  51024. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  51025. +++ uClibc-git/libc/sysdeps/linux/arm/sysdep.h 2014-06-13 18:29:20.838293415 +0200
  51026. @@ -13,15 +13,14 @@
  51027. Lesser General Public License for more details.
  51028. You should have received a copy of the GNU Lesser General Public
  51029. - License along with the GNU C Library; if not, write to the Free
  51030. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51031. - 02111-1307 USA. */
  51032. + License along with the GNU C Library; if not, see
  51033. + <http://www.gnu.org/licenses/>. */
  51034. #ifndef _LINUX_ARM_SYSDEP_H
  51035. #define _LINUX_ARM_SYSDEP_H 1
  51036. #include <common/sysdep.h>
  51037. -#include <bits/arm_asm.h>
  51038. +#include <bits/arm_bx.h>
  51039. #include <sys/syscall.h>
  51040. /* For Linux we can use the system call table in the header file
  51041. @@ -157,6 +156,7 @@
  51042. #define PSEUDO_END_ERRVAL(name) \
  51043. END (name)
  51044. +#undef ret_ERRVAL
  51045. #define ret_ERRVAL PSEUDO_RET_NOERRNO
  51046. #if defined NOT_IN_libc
  51047. @@ -254,7 +254,7 @@
  51048. #undef INLINE_SYSCALL
  51049. #define INLINE_SYSCALL(name, nr, args...) \
  51050. ({ unsigned int _inline_sys_result = INTERNAL_SYSCALL (name, , nr, args); \
  51051. - if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (_inline_sys_result, ), 0)) \
  51052. + if (unlikely (INTERNAL_SYSCALL_ERROR_P (_inline_sys_result, ))) \
  51053. { \
  51054. __set_errno (INTERNAL_SYSCALL_ERRNO (_inline_sys_result, )); \
  51055. _inline_sys_result = (unsigned int) -1; \
  51056. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/ucontext_i.sym uClibc-git/libc/sysdeps/linux/arm/ucontext_i.sym
  51057. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/ucontext_i.sym 1970-01-01 01:00:00.000000000 +0100
  51058. +++ uClibc-git/libc/sysdeps/linux/arm/ucontext_i.sym 2014-06-02 17:40:34.310713623 +0200
  51059. @@ -0,0 +1,30 @@
  51060. +#include <inttypes.h>
  51061. +#include <signal.h>
  51062. +#include <stddef.h>
  51063. +#include <sys/ucontext.h>
  51064. +
  51065. +SIG_BLOCK
  51066. +SIG_SETMASK
  51067. +
  51068. +-- Offsets of the fields in the ucontext_t structure.
  51069. +#define ucontext(member) offsetof (ucontext_t, member)
  51070. +#define mcontext(member) ucontext (uc_mcontext.member)
  51071. +
  51072. +UCONTEXT_FLAGS ucontext (uc_flags)
  51073. +UCONTEXT_LINK ucontext (uc_link)
  51074. +UCONTEXT_STACK ucontext (uc_stack)
  51075. +UCONTEXT_MCONTEXT ucontext (uc_mcontext)
  51076. +UCONTEXT_SIGMASK ucontext (uc_sigmask)
  51077. +
  51078. +UCONTEXT_REGSPACE ucontext (uc_regspace)
  51079. +
  51080. +MCONTEXT_TRAP_NO mcontext (trap_no)
  51081. +MCONTEXT_ERROR_CODE mcontext (error_code)
  51082. +MCONTEXT_OLDMASK mcontext (oldmask)
  51083. +MCONTEXT_ARM_R0 mcontext (arm_r0)
  51084. +MCONTEXT_ARM_R4 mcontext (arm_r4)
  51085. +MCONTEXT_ARM_SP mcontext (arm_sp)
  51086. +MCONTEXT_ARM_LR mcontext (arm_lr)
  51087. +MCONTEXT_ARM_PC mcontext (arm_pc)
  51088. +MCONTEXT_ARM_CPSR mcontext (arm_cpsr)
  51089. +MCONTEXT_FAULT_ADDRESS mcontext (fault_address)
  51090. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/unwind.h uClibc-git/libc/sysdeps/linux/arm/unwind.h
  51091. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/unwind.h 2012-05-15 09:20:09.000000000 +0200
  51092. +++ uClibc-git/libc/sysdeps/linux/arm/unwind.h 2014-06-02 17:40:34.310713623 +0200
  51093. @@ -22,9 +22,8 @@
  51094. General Public License for more details.
  51095. You should have received a copy of the GNU General Public License
  51096. - along with this program; see the file COPYING. If not, write to
  51097. - the Free Software Foundation, 51 Franklin Street, Fifth Floor,
  51098. - Boston, MA 02110-1301, USA. */
  51099. + along with this program; see the file COPYING. If not, see
  51100. + <http://www.gnu.org/licenses/>. */
  51101. /* Language-independent unwinder header public defines. This contains both
  51102. ABI defined objects, and GNU support routines. */
  51103. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/vfork.S uClibc-git/libc/sysdeps/linux/arm/vfork.S
  51104. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/vfork.S 2012-05-15 09:20:09.000000000 +0200
  51105. +++ uClibc-git/libc/sysdeps/linux/arm/vfork.S 2014-06-13 18:29:20.838293415 +0200
  51106. @@ -7,6 +7,7 @@
  51107. #include <features.h>
  51108. #include <bits/arm_asm.h>
  51109. +#include <bits/arm_bx.h>
  51110. #define _ERRNO_H
  51111. #include <bits/errno.h>
  51112. @@ -104,5 +105,5 @@
  51113. .size __vfork,.-__vfork
  51114. weak_alias(__vfork,vfork)
  51115. -libc_hidden_weak(vfork)
  51116. +libc_hidden_def(vfork)
  51117. #endif
  51118. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/atomic.h uClibc-git/libc/sysdeps/linux/avr32/bits/atomic.h
  51119. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  51120. +++ uClibc-git/libc/sysdeps/linux/avr32/bits/atomic.h 2014-06-02 17:40:34.310713623 +0200
  51121. @@ -28,6 +28,7 @@
  51122. #define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
  51123. ({ \
  51124. + __uint32_t __result; \
  51125. __typeof__(*(mem)) __prev; \
  51126. __asm__ __volatile__( \
  51127. "/* __arch_compare_and_exchange_val_32_acq */\n" \
  51128. 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
  51129. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  51130. +++ uClibc-git/libc/sysdeps/linux/avr32/bits/kernel_types.h 2014-06-02 17:40:34.310713623 +0200
  51131. @@ -39,6 +39,8 @@
  51132. typedef unsigned short __kernel_old_uid_t;
  51133. typedef unsigned short __kernel_old_gid_t;
  51134. typedef unsigned short __kernel_old_dev_t;
  51135. +typedef long __kernel_long_t;
  51136. +typedef unsigned long __kernel_ulong_t;
  51137. #ifdef __GNUC__
  51138. typedef long long __kernel_loff_t;
  51139. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/setjmp.h uClibc-git/libc/sysdeps/linux/avr32/bits/setjmp.h
  51140. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  51141. +++ uClibc-git/libc/sysdeps/linux/avr32/bits/setjmp.h 2014-06-02 17:40:34.310713623 +0200
  51142. @@ -12,19 +12,10 @@
  51143. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  51144. #endif
  51145. -#ifndef _ASM
  51146. /*
  51147. * The jump buffer contains r0-r7, sr, sp and lr. Other registers are
  51148. * not saved.
  51149. */
  51150. typedef int __jmp_buf[11];
  51151. -#endif
  51152. -
  51153. -#define __JMP_BUF_SP 4
  51154. -
  51155. -/* Test if longjmp to JMPBUF would unwind the frame containing a local
  51156. - variable at ADDRESS. */
  51157. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  51158. - ((void *)(address) < (void *)(jmpbuf[__JMP_BUF_SP]))
  51159. #endif /* _BITS_SETJMP_H */
  51160. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/avr32/bits/stackinfo.h
  51161. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  51162. +++ uClibc-git/libc/sysdeps/linux/avr32/bits/stackinfo.h 2014-06-02 17:40:34.310713623 +0200
  51163. @@ -12,9 +12,8 @@
  51164. Lesser General Public License for more details.
  51165. You should have received a copy of the GNU Lesser General Public
  51166. - License along with the GNU C Library; if not, write to the Free
  51167. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51168. - 02111-1307 USA. */
  51169. + License along with the GNU C Library; if not, see
  51170. + <http://www.gnu.org/licenses/>. */
  51171. /* This file contains a bit of information about the stack allocation
  51172. of the processor. */
  51173. 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
  51174. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  51175. +++ uClibc-git/libc/sysdeps/linux/avr32/bits/uClibc_arch_features.h 2014-06-02 17:40:34.310713623 +0200
  51176. @@ -12,8 +12,8 @@
  51177. /* can your target use syscall6() for mmap ? */
  51178. #define __UCLIBC_MMAP_HAS_6_ARGS__
  51179. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  51180. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  51181. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  51182. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  51183. /* does your target have a broken create_module() ? */
  51184. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  51185. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/avr32/jmpbuf-offsets.h
  51186. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  51187. +++ uClibc-git/libc/sysdeps/linux/avr32/jmpbuf-offsets.h 2014-06-02 17:40:34.310713623 +0200
  51188. @@ -0,0 +1,9 @@
  51189. +/* Private macros for accessing __jmp_buf contents. avr32 version.
  51190. + * Copyright (C) 2004-2005 Atmel Corporation
  51191. + *
  51192. + * This file is subject to the terms and conditions of the GNU Lesser General
  51193. + * Public License. See the file "COPYING.LIB" in the main directory of this
  51194. + * archive for more details.
  51195. + */
  51196. +
  51197. +#define __JMP_BUF_SP 4
  51198. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/avr32/jmpbuf-unwind.h
  51199. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  51200. +++ uClibc-git/libc/sysdeps/linux/avr32/jmpbuf-unwind.h 2014-06-02 17:40:34.310713623 +0200
  51201. @@ -0,0 +1,14 @@
  51202. +/*
  51203. + * Copyright (C) 2004-2005 Atmel Corporation
  51204. + *
  51205. + * This file is subject to the terms and conditions of the GNU Lesser General
  51206. + * Public License. See the file "COPYING.LIB" in the main directory of this
  51207. + * archive for more details.
  51208. + */
  51209. +#include <setjmp.h>
  51210. +#include <jmpbuf-offsets.h>
  51211. +
  51212. +/* Test if longjmp to JMPBUF would unwind the frame containing a local
  51213. + variable at ADDRESS. */
  51214. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  51215. + ((void *)(address) < (void *)(jmpbuf[__JMP_BUF_SP]))
  51216. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/Makefile uClibc-git/libc/sysdeps/linux/avr32/Makefile
  51217. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/Makefile 2012-05-15 09:20:09.000000000 +0200
  51218. +++ uClibc-git/libc/sysdeps/linux/avr32/Makefile 2014-06-02 17:40:34.310713623 +0200
  51219. @@ -13,8 +13,7 @@
  51220. # details.
  51221. #
  51222. # You should have received a copy of the GNU Library General Public License
  51223. -# along with this program; if not, write to the Free Software Foundation, Inc.,
  51224. -# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  51225. +# along with this program; if not, see <http://www.gnu.org/licenses/>.
  51226. top_srcdir=../../../../
  51227. top_builddir=../../../../
  51228. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/Makefile.arch uClibc-git/libc/sysdeps/linux/avr32/Makefile.arch
  51229. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  51230. +++ uClibc-git/libc/sysdeps/linux/avr32/Makefile.arch 2014-06-02 17:40:34.310713623 +0200
  51231. @@ -5,7 +5,7 @@
  51232. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  51233. #
  51234. -CSRC := brk.c clone.c mmap.c prctl.c sigaction.c
  51235. +CSRC-y := brk.c clone.c mmap.c prctl.c sigaction.c
  51236. -SSRC := __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
  51237. +SSRC-y := __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
  51238. sigrestorer.S syscall.S vfork.S
  51239. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/mmap.c uClibc-git/libc/sysdeps/linux/avr32/mmap.c
  51240. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/mmap.c 2012-05-15 09:20:09.000000000 +0200
  51241. +++ uClibc-git/libc/sysdeps/linux/avr32/mmap.c 2014-06-02 17:40:34.310713623 +0200
  51242. @@ -12,10 +12,10 @@
  51243. #include <sys/syscall.h>
  51244. -static _syscall6(__ptr_t, mmap2, __ptr_t, addr, size_t, len, int, prot,
  51245. - int, flags, int, fd, __off_t, pgoff)
  51246. +static __inline__ _syscall6(void *, mmap2, void *, addr, size_t, len, int, prot,
  51247. + int, flags, int, fd, __off_t, pgoff)
  51248. -__ptr_t mmap(__ptr_t addr, size_t len, int prot, int flags, int fd, __off_t offset)
  51249. +void *mmap(void *addr, size_t len, int prot, int flags, int fd, __off_t offset)
  51250. {
  51251. unsigned long page_size = sysconf(_SC_PAGESIZE);
  51252. unsigned long pgoff;
  51253. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/setjmp.S uClibc-git/libc/sysdeps/linux/avr32/setjmp.S
  51254. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  51255. +++ uClibc-git/libc/sysdeps/linux/avr32/setjmp.S 2014-06-02 17:40:34.310713623 +0200
  51256. @@ -5,9 +5,6 @@
  51257. * Public License. See the file "COPYING.LIB" in the main directory of this
  51258. * archive for more details.
  51259. */
  51260. -#define _SETJMP_H
  51261. -#define _ASM
  51262. -#include <bits/setjmp.h>
  51263. .text
  51264. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sigaction.c uClibc-git/libc/sysdeps/linux/avr32/sigaction.c
  51265. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sigaction.c 2012-05-15 09:20:09.000000000 +0200
  51266. +++ uClibc-git/libc/sysdeps/linux/avr32/sigaction.c 2014-06-02 17:40:34.310713623 +0200
  51267. @@ -14,8 +14,6 @@
  51268. #define SA_RESTORER 0x04000000
  51269. extern void __default_rt_sa_restorer(void);
  51270. -extern __typeof(sigaction) __libc_sigaction;
  51271. -
  51272. /*
  51273. * If act is not NULL, change the action for sig to *act.
  51274. * If oact is not NULL, put the old action for sig in *oact.
  51275. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sys/elf.h uClibc-git/libc/sysdeps/linux/avr32/sys/elf.h
  51276. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sys/elf.h 2012-05-15 09:20:09.000000000 +0200
  51277. +++ uClibc-git/libc/sysdeps/linux/avr32/sys/elf.h 2014-06-02 17:40:34.310713623 +0200
  51278. @@ -12,9 +12,8 @@
  51279. Lesser General Public License for more details.
  51280. You should have received a copy of the GNU Lesser General Public
  51281. - License along with the GNU C Library; if not, write to the Free
  51282. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51283. - 02111-1307 USA. */
  51284. + License along with the GNU C Library; if not, see
  51285. + <http://www.gnu.org/licenses/>. */
  51286. #ifndef _SYS_ELF_H
  51287. #define _SYS_ELF_H 1
  51288. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sys/procfs.h uClibc-git/libc/sysdeps/linux/avr32/sys/procfs.h
  51289. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  51290. +++ uClibc-git/libc/sysdeps/linux/avr32/sys/procfs.h 2014-06-02 17:40:34.310713623 +0200
  51291. @@ -12,9 +12,8 @@
  51292. Lesser General Public License for more details.
  51293. You should have received a copy of the GNU Lesser General Public
  51294. - License along with the GNU C Library; if not, write to the Free
  51295. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51296. - 02111-1307 USA. */
  51297. + License along with the GNU C Library; if not, see
  51298. + <http://www.gnu.org/licenses/>. */
  51299. #ifndef _SYS_PROCFS_H
  51300. #define _SYS_PROCFS_H 1
  51301. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sys/ucontext.h uClibc-git/libc/sysdeps/linux/avr32/sys/ucontext.h
  51302. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  51303. +++ uClibc-git/libc/sysdeps/linux/avr32/sys/ucontext.h 2014-06-02 17:40:34.310713623 +0200
  51304. @@ -12,9 +12,8 @@
  51305. Lesser General Public License for more details.
  51306. You should have received a copy of the GNU Lesser General Public
  51307. - License along with the GNU C Library; if not, write to the Free
  51308. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51309. - 02111-1307 USA. */
  51310. + License along with the GNU C Library; if not, see
  51311. + <http://www.gnu.org/licenses/>. */
  51312. /* Linux/AVR32 ABI compliant context switching support. */
  51313. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/vfork.S uClibc-git/libc/sysdeps/linux/avr32/vfork.S
  51314. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/vfork.S 2012-05-15 09:20:09.000000000 +0200
  51315. +++ uClibc-git/libc/sysdeps/linux/avr32/vfork.S 2014-06-02 17:40:34.310713623 +0200
  51316. @@ -17,10 +17,10 @@
  51317. * Fortunately, the Linux kernel preserves LR across system calls.
  51318. */
  51319. -#include <features.h>
  51320. #include <sys/syscall.h>
  51321. .global __vfork
  51322. + .hidden __vfork
  51323. .type __vfork,@function
  51324. .align 1
  51325. __vfork:
  51326. @@ -55,4 +55,4 @@
  51327. .size __vfork, . - __vfork
  51328. weak_alias(__vfork,vfork)
  51329. -libc_hidden_weak(vfork)
  51330. +libc_hidden_def(vfork)
  51331. 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
  51332. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/elf-fdpic.h 2012-05-15 09:20:09.000000000 +0200
  51333. +++ uClibc-git/libc/sysdeps/linux/bfin/bits/elf-fdpic.h 2014-06-02 17:40:34.314713645 +0200
  51334. @@ -22,8 +22,7 @@
  51335. You should have received a copy of the GNU Lesser General Public
  51336. License along with the GNU C Library; see the file COPYING.LIB. If
  51337. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  51338. -Cambridge, MA 02139, USA. */
  51339. +not, see <http://www.gnu.org/licenses/>. */
  51340. #ifndef _BITS_ELF_FDPIC_H
  51341. #define _BITS_ELF_FDPIC_H
  51342. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/fcntl.h uClibc-git/libc/sysdeps/linux/bfin/bits/fcntl.h
  51343. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  51344. +++ uClibc-git/libc/sysdeps/linux/bfin/bits/fcntl.h 2014-06-02 17:40:34.314713645 +0200
  51345. @@ -13,9 +13,8 @@
  51346. Lesser General Public License for more details.
  51347. You should have received a copy of the GNU Lesser General Public
  51348. - License along with the GNU C Library; if not, write to the Free
  51349. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51350. - 02111-1307 USA. */
  51351. + License along with the GNU C Library; if not, see
  51352. + <http://www.gnu.org/licenses/>. */
  51353. #ifndef _FCNTL_H
  51354. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  51355. 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
  51356. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/huge_val.h 2012-05-15 09:20:09.000000000 +0200
  51357. +++ uClibc-git/libc/sysdeps/linux/bfin/bits/huge_val.h 2014-06-02 17:40:34.314713645 +0200
  51358. @@ -16,9 +16,8 @@
  51359. Lesser General Public License for more details.
  51360. You should have received a copy of the GNU Lesser General Public
  51361. - License along with the GNU C Library; if not, write to the Free
  51362. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51363. - 02111-1307 USA. */
  51364. + License along with the GNU C Library; if not, see
  51365. + <http://www.gnu.org/licenses/>. */
  51366. #ifndef _MATH_H
  51367. # error "Never use <bits/huge_val.h> directly; include <math.h> instead."
  51368. 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
  51369. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  51370. +++ uClibc-git/libc/sysdeps/linux/bfin/bits/kernel_types.h 2014-06-02 17:40:34.314713645 +0200
  51371. @@ -32,6 +32,8 @@
  51372. typedef unsigned short __kernel_old_gid_t;
  51373. typedef long long __kernel_loff_t;
  51374. typedef __kernel_dev_t __kernel_old_dev_t;
  51375. +typedef long __kernel_long_t;
  51376. +typedef unsigned long __kernel_ulong_t;
  51377. typedef struct {
  51378. #ifdef __USE_ALL
  51379. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/setjmp.h uClibc-git/libc/sysdeps/linux/bfin/bits/setjmp.h
  51380. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  51381. +++ uClibc-git/libc/sysdeps/linux/bfin/bits/setjmp.h 2014-06-02 17:40:34.314713645 +0200
  51382. @@ -12,9 +12,8 @@
  51383. Lesser General Public License for more details.
  51384. You should have received a copy of the GNU Lesser General Public
  51385. - License along with the GNU C Library; if not, write to the Free
  51386. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51387. - 02111-1307 USA. */
  51388. + License along with the GNU C Library; if not, see
  51389. + <http://www.gnu.org/licenses/>. */
  51390. /* Define the machine-dependent type `jmp_buf'. bfin version. Lineo, Inc. 2001*/
  51391. #ifndef _BITS_SETJMP_H
  51392. @@ -24,7 +23,6 @@
  51393. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  51394. #endif
  51395. -#ifndef _ASM
  51396. /* Jump buffer contains r7-r4, p5-p3, fp, sp and pc. Other registers are not saved. */
  51397. typedef struct
  51398. {
  51399. @@ -45,13 +43,4 @@
  51400. unsigned long pc;
  51401. }__jmp_buf[1];
  51402. -#endif
  51403. -
  51404. -#define __JMP_BUF_SP 8
  51405. -
  51406. -/* Test if longjmp to JMPBUF would unwind the frame
  51407. - containing a local variable at ADDRESS. */
  51408. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  51409. - ((void *) (address) < (void *) (jmpbuf)->fp)
  51410. -
  51411. #endif /* bits/setjmp.h */
  51412. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/bfin/bits/sigcontextinfo.h
  51413. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  51414. +++ uClibc-git/libc/sysdeps/linux/bfin/bits/sigcontextinfo.h 2014-06-02 17:40:34.314713645 +0200
  51415. @@ -13,9 +13,8 @@
  51416. Lesser General Public License for more details.
  51417. You should have received a copy of the GNU Lesser General Public
  51418. - License along with the GNU C Library; if not, write to the Free
  51419. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51420. - 02111-1307 USA. */
  51421. + License along with the GNU C Library; if not, see
  51422. + <http://www.gnu.org/licenses/>. */
  51423. #define SIGCONTEXT int _code, struct sigcontext *
  51424. #define SIGCONTEXT_EXTRA_ARGS _code,
  51425. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/bfin/bits/stackinfo.h
  51426. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  51427. +++ uClibc-git/libc/sysdeps/linux/bfin/bits/stackinfo.h 2014-06-02 17:40:34.314713645 +0200
  51428. @@ -12,9 +12,8 @@
  51429. Lesser General Public License for more details.
  51430. You should have received a copy of the GNU Lesser General Public
  51431. - License along with the GNU C Library; if not, write to the Free
  51432. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51433. - 02111-1307 USA. */
  51434. + License along with the GNU C Library; if not, see
  51435. + <http://www.gnu.org/licenses/>. */
  51436. /* This file contains a bit of information about the stack allocation
  51437. of the processor. */
  51438. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/typesizes.h uClibc-git/libc/sysdeps/linux/bfin/bits/typesizes.h
  51439. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
  51440. +++ uClibc-git/libc/sysdeps/linux/bfin/bits/typesizes.h 2014-06-02 17:40:34.314713645 +0200
  51441. @@ -13,9 +13,8 @@
  51442. Lesser General Public License for more details.
  51443. You should have received a copy of the GNU Lesser General Public
  51444. - License along with the GNU C Library; if not, write to the Free
  51445. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51446. - 02111-1307 USA. */
  51447. + License along with the GNU C Library; if not, see
  51448. + <http://www.gnu.org/licenses/>. */
  51449. #ifndef _BITS_TYPES_H
  51450. # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
  51451. 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
  51452. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  51453. +++ uClibc-git/libc/sysdeps/linux/bfin/bits/uClibc_arch_features.h 2014-06-02 17:40:34.314713645 +0200
  51454. @@ -11,8 +11,8 @@
  51455. /* can your target use syscall6() for mmap ? */
  51456. #define __UCLIBC_MMAP_HAS_6_ARGS__
  51457. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  51458. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  51459. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  51460. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  51461. /* does your target have a broken create_module() ? */
  51462. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  51463. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/wordsize.h uClibc-git/libc/sysdeps/linux/bfin/bits/wordsize.h
  51464. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  51465. +++ uClibc-git/libc/sysdeps/linux/bfin/bits/wordsize.h 2014-06-02 17:40:34.314713645 +0200
  51466. @@ -12,8 +12,7 @@
  51467. Lesser General Public License for more details.
  51468. You should have received a copy of the GNU Lesser General Public
  51469. - License along with the GNU C Library; if not, write to the Free
  51470. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51471. - 02111-1307 USA. */
  51472. + License along with the GNU C Library; if not, see
  51473. + <http://www.gnu.org/licenses/>. */
  51474. #define __WORDSIZE 32
  51475. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/cacheflush.c uClibc-git/libc/sysdeps/linux/bfin/cacheflush.c
  51476. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/cacheflush.c 2012-05-15 09:20:09.000000000 +0200
  51477. +++ uClibc-git/libc/sysdeps/linux/bfin/cacheflush.c 2014-06-02 17:40:34.314713645 +0200
  51478. @@ -6,9 +6,10 @@
  51479. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  51480. */
  51481. -#include <unistd.h>
  51482. -#include <errno.h>
  51483. #include <sys/syscall.h>
  51484. -#include <sys/cachectl.h>
  51485. -_syscall3 (int, cacheflush, void *, start, const int, nbytes, const int, flags)
  51486. +#ifdef __NR_cacheflush
  51487. +# include <sys/cachectl.h>
  51488. +
  51489. +_syscall3 (int, cacheflush, void *, addr, const int, nbytes, const int, flags)
  51490. +#endif
  51491. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crt1.S uClibc-git/libc/sysdeps/linux/bfin/crt1.S
  51492. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crt1.S 2012-05-15 09:20:09.000000000 +0200
  51493. +++ uClibc-git/libc/sysdeps/linux/bfin/crt1.S 2014-06-02 17:40:34.314713645 +0200
  51494. @@ -14,8 +14,7 @@
  51495. You should have received a copy of the GNU Library General Public
  51496. License along with the GNU C Library; see the file COPYING.LIB. If
  51497. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  51498. -Cambridge, MA 02139, USA. */
  51499. +not, see <http://www.gnu.org/licenses/>. */
  51500. /* When we enter this piece of code, the user stack looks like this:
  51501. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crti.S uClibc-git/libc/sysdeps/linux/bfin/crti.S
  51502. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crti.S 2012-05-15 09:20:09.000000000 +0200
  51503. +++ uClibc-git/libc/sysdeps/linux/bfin/crti.S 2014-06-02 17:40:34.314713645 +0200
  51504. @@ -16,9 +16,8 @@
  51505. GNU General Public License for more details.
  51506. You should have received a copy of the GNU General Public License
  51507. -along with GCC; see the file COPYING. If not, write to
  51508. -the Free Software Foundation, 59 Temple Place - Suite 330,
  51509. -Boston, MA 02111-1307, USA. */
  51510. +along with GCC; see the file COPYING. If not, see
  51511. +<http://www.gnu.org/licenses/>. */
  51512. /* As a special exception, if you link this library with files
  51513. compiled with GCC to produce an executable, this does not cause
  51514. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crtn.S uClibc-git/libc/sysdeps/linux/bfin/crtn.S
  51515. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crtn.S 2012-05-15 09:20:09.000000000 +0200
  51516. +++ uClibc-git/libc/sysdeps/linux/bfin/crtn.S 2014-06-02 17:40:34.314713645 +0200
  51517. @@ -16,9 +16,8 @@
  51518. GNU General Public License for more details.
  51519. You should have received a copy of the GNU General Public License
  51520. -along with GCC; see the file COPYING. If not, write to
  51521. -the Free Software Foundation, 59 Temple Place - Suite 330,
  51522. -Boston, MA 02111-1307, USA. */
  51523. +along with GCC; see the file COPYING. If not, see
  51524. +<http://www.gnu.org/licenses/>. */
  51525. /* As a special exception, if you link this library with files
  51526. compiled with GCC to produce an executable, this does not cause
  51527. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crtreloc.c uClibc-git/libc/sysdeps/linux/bfin/crtreloc.c
  51528. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crtreloc.c 2012-05-15 09:20:09.000000000 +0200
  51529. +++ uClibc-git/libc/sysdeps/linux/bfin/crtreloc.c 2014-06-02 17:40:34.314713645 +0200
  51530. @@ -23,8 +23,7 @@
  51531. You should have received a copy of the GNU Lesser General Public
  51532. License along with the GNU C Library; see the file COPYING.LIB. If
  51533. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  51534. -Cambridge, MA 02139, USA. */
  51535. +not, see <http://www.gnu.org/licenses/>. */
  51536. #ifdef __BFIN_FDPIC__
  51537. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/bfin/jmpbuf-offsets.h
  51538. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  51539. +++ uClibc-git/libc/sysdeps/linux/bfin/jmpbuf-offsets.h 2014-06-02 17:40:34.314713645 +0200
  51540. @@ -0,0 +1,8 @@
  51541. +/* Private macros for accessing __jmp_buf contents. BFIN version. */
  51542. +/*
  51543. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  51544. + *
  51545. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  51546. + */
  51547. +
  51548. +#define __JMP_BUF_SP 8
  51549. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/bfin/jmpbuf-unwind.h
  51550. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  51551. +++ uClibc-git/libc/sysdeps/linux/bfin/jmpbuf-unwind.h 2014-06-02 17:40:34.314713645 +0200
  51552. @@ -0,0 +1,11 @@
  51553. +/*
  51554. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  51555. + *
  51556. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  51557. + */
  51558. +#include <setjmp.h>
  51559. +
  51560. +/* Test if longjmp to JMPBUF would unwind the frame
  51561. + containing a local variable at ADDRESS. */
  51562. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  51563. + ((void *) (address) < (void *) (jmpbuf)->fp)
  51564. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/Makefile.arch uClibc-git/libc/sysdeps/linux/bfin/Makefile.arch
  51565. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  51566. +++ uClibc-git/libc/sysdeps/linux/bfin/Makefile.arch 2014-06-02 17:40:34.310713623 +0200
  51567. @@ -5,9 +5,11 @@
  51568. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  51569. #
  51570. -CSRC := bsdsetjmp.c clone.c \
  51571. - sram-alloc.c sram-free.c dma-memcpy.c cacheflush.c
  51572. +CSRC-y := bsdsetjmp.c clone.c \
  51573. + sram-alloc.c sram-free.c dma-memcpy.c
  51574. -SSRC := __longjmp.S setjmp.S bsd-_setjmp.S
  51575. +SSRC-y := __longjmp.S setjmp.S bsd-_setjmp.S
  51576. +
  51577. +CSRC-$(UCLIBC_LINUX_SPECIFIC) += cacheflush.c
  51578. ARCH_HEADERS := bfin_fixed_code.h bfin_l1layout.h bfin_sram.h
  51579. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/cachectl.h uClibc-git/libc/sysdeps/linux/bfin/sys/cachectl.h
  51580. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/cachectl.h 2012-05-15 09:20:09.000000000 +0200
  51581. +++ uClibc-git/libc/sysdeps/linux/bfin/sys/cachectl.h 2014-06-02 17:40:34.334713756 +0200
  51582. @@ -18,7 +18,7 @@
  51583. __BEGIN_DECLS
  51584. -extern int cacheflush (void *addr, __const int nbytes, __const int flags);
  51585. +extern int cacheflush (void *addr, const int nbytes, const int flags);
  51586. __END_DECLS
  51587. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/elf.h uClibc-git/libc/sysdeps/linux/bfin/sys/elf.h
  51588. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/elf.h 2012-05-15 09:20:09.000000000 +0200
  51589. +++ uClibc-git/libc/sysdeps/linux/bfin/sys/elf.h 2014-06-02 17:40:34.334713756 +0200
  51590. @@ -12,9 +12,8 @@
  51591. Lesser General Public License for more details.
  51592. You should have received a copy of the GNU Lesser General Public
  51593. - License along with the GNU C Library; if not, write to the Free
  51594. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51595. - 02111-1307 USA. */
  51596. + License along with the GNU C Library; if not, see
  51597. + <http://www.gnu.org/licenses/>. */
  51598. #ifndef _SYS_ELF_H
  51599. #define _SYS_ELF_H 1
  51600. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/io.h uClibc-git/libc/sysdeps/linux/bfin/sys/io.h
  51601. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/io.h 2012-05-15 09:20:09.000000000 +0200
  51602. +++ uClibc-git/libc/sysdeps/linux/bfin/sys/io.h 2014-06-02 17:40:34.334713756 +0200
  51603. @@ -12,9 +12,8 @@
  51604. Lesser General Public License for more details.
  51605. You should have received a copy of the GNU Lesser General Public
  51606. - License along with the GNU C Library; if not, write to the Free
  51607. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51608. - 02111-1307 USA. */
  51609. + License along with the GNU C Library; if not, see
  51610. + <http://www.gnu.org/licenses/>. */
  51611. #ifndef _SYS_IO_H
  51612. @@ -23,17 +22,18 @@
  51613. __BEGIN_DECLS
  51614. +#if defined __UCLIBC_LINUX_SPECIFIC__
  51615. /* If TURN_ON is TRUE, request for permission to do direct i/o on the
  51616. port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
  51617. permission off for that range. This call requires root privileges. */
  51618. extern int ioperm (unsigned long int __from, unsigned long int __num,
  51619. int __turn_on) __THROW;
  51620. -libc_hidden_proto(ioperm)
  51621. /* Set the I/O privilege level to LEVEL. If LEVEL is nonzero,
  51622. permission to access any I/O port is granted. This call requires
  51623. root privileges. */
  51624. extern int iopl (int __level) __THROW;
  51625. +#endif /* __UCLIBC_LINUX_SPECIFIC__ */
  51626. /* The functions that actually perform reads and writes. */
  51627. extern unsigned char inb (unsigned long int port) __THROW;
  51628. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/procfs.h uClibc-git/libc/sysdeps/linux/bfin/sys/procfs.h
  51629. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  51630. +++ uClibc-git/libc/sysdeps/linux/bfin/sys/procfs.h 2014-06-02 17:40:34.334713756 +0200
  51631. @@ -12,9 +12,8 @@
  51632. Lesser General Public License for more details.
  51633. You should have received a copy of the GNU Lesser General Public
  51634. - License along with the GNU C Library; if not, write to the Free
  51635. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51636. - 02111-1307 USA. */
  51637. + License along with the GNU C Library; if not, see
  51638. + <http://www.gnu.org/licenses/>. */
  51639. #ifndef _SYS_PROCFS_H
  51640. #define _SYS_PROCFS_H 1
  51641. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/ucontext.h uClibc-git/libc/sysdeps/linux/bfin/sys/ucontext.h
  51642. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  51643. +++ uClibc-git/libc/sysdeps/linux/bfin/sys/ucontext.h 2014-06-02 17:40:34.334713756 +0200
  51644. @@ -12,9 +12,8 @@
  51645. Lesser General Public License for more details.
  51646. You should have received a copy of the GNU Lesser General Public
  51647. - License along with the GNU C Library; if not, write to the Free
  51648. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51649. - 02111-1307 USA. */
  51650. + License along with the GNU C Library; if not, see
  51651. + <http://www.gnu.org/licenses/>. */
  51652. /* System V/blackfin ABI compliant context switching support. */
  51653. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/byteswap.h uClibc-git/libc/sysdeps/linux/c6x/bits/byteswap.h
  51654. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/byteswap.h 2012-05-15 09:20:09.000000000 +0200
  51655. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/byteswap.h 2014-06-02 17:40:34.334713756 +0200
  51656. @@ -14,9 +14,8 @@
  51657. * for more details.
  51658. *
  51659. * You should have received a copy of the GNU Library General Public License
  51660. - * along with this program; if not, write to the Free Software Foundation,
  51661. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  51662. - *
  51663. + * along with this program; see the file COPYING.LIB. If not, see
  51664. + * <http://www.gnu.org/licenses/>.
  51665. */
  51666. #ifndef _ASM_BITS_BYTESWAP_H
  51667. 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
  51668. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/elf-dsbt.h 2012-05-15 09:20:09.000000000 +0200
  51669. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/elf-dsbt.h 2014-06-02 17:40:34.334713756 +0200
  51670. @@ -25,8 +25,7 @@
  51671. You should have received a copy of the GNU Lesser General Public
  51672. License along with the GNU C Library; see the file COPYING.LIB. If
  51673. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  51674. -Cambridge, MA 02139, USA. */
  51675. +not, see <http://www.gnu.org/licenses/>. */
  51676. #ifndef _BITS_ELF_DSBT_H
  51677. #define _BITS_ELF_DSBT_H
  51678. @@ -59,15 +58,10 @@
  51679. struct elf32_dsbt_loadmap {
  51680. /* Protocol version number, must be zero. */
  51681. - Elf32_Word version;
  51682. -
  51683. - /* Pointer to DSBT */
  51684. - unsigned *dsbt_table;
  51685. - unsigned dsbt_size;
  51686. - unsigned dsbt_index;
  51687. + Elf32_Half version;
  51688. /* number of segments */
  51689. - Elf32_Word nsegs;
  51690. + Elf32_Half nsegs;
  51691. /* The actual memory map. */
  51692. struct elf32_dsbt_loadseg segs[0];
  51693. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/fcntl.h uClibc-git/libc/sysdeps/linux/c6x/bits/fcntl.h
  51694. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  51695. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/fcntl.h 2014-06-02 17:40:34.334713756 +0200
  51696. @@ -13,9 +13,8 @@
  51697. Lesser General Public License for more details.
  51698. You should have received a copy of the GNU Lesser General Public
  51699. - License along with the GNU C Library; if not, write to the Free
  51700. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51701. - 02111-1307 USA. */
  51702. + License along with the GNU C Library; if not, see
  51703. + <http://www.gnu.org/licenses/>. */
  51704. #ifndef _FCNTL_H
  51705. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  51706. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/ipc.h uClibc-git/libc/sysdeps/linux/c6x/bits/ipc.h
  51707. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
  51708. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/ipc.h 2014-06-02 17:40:34.334713756 +0200
  51709. @@ -12,9 +12,8 @@
  51710. Lesser General Public License for more details.
  51711. You should have received a copy of the GNU Lesser General Public
  51712. - License along with the GNU C Library; if not, write to the Free
  51713. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51714. - 02111-1307 USA. */
  51715. + License along with the GNU C Library; if not, see
  51716. + <http://www.gnu.org/licenses/>. */
  51717. #ifndef _SYS_IPC_H
  51718. # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
  51719. 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
  51720. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  51721. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/kernel_types.h 2014-06-02 17:40:34.334713756 +0200
  51722. @@ -22,6 +22,8 @@
  51723. typedef unsigned int __kernel_old_uid_t;
  51724. typedef unsigned int __kernel_old_gid_t;
  51725. typedef unsigned int __kernel_old_dev_t;
  51726. +typedef long __kernel_long_t;
  51727. +typedef unsigned long __kernel_ulong_t;
  51728. typedef unsigned int __kernel_size_t;
  51729. typedef int __kernel_ssize_t;
  51730. typedef int __kernel_ptrdiff_t;
  51731. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/mathdef.h uClibc-git/libc/sysdeps/linux/c6x/bits/mathdef.h
  51732. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  51733. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/mathdef.h 2014-06-02 17:40:34.334713756 +0200
  51734. @@ -12,9 +12,8 @@
  51735. Lesser General Public License for more details.
  51736. You should have received a copy of the GNU Lesser General Public
  51737. - License along with the GNU C Library; if not, write to the Free
  51738. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51739. - 02111-1307 USA. */
  51740. + License along with the GNU C Library; if not, see
  51741. + <http://www.gnu.org/licenses/>. */
  51742. #if !defined _MATH_H && !defined _COMPLEX_H
  51743. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  51744. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/nan.h uClibc-git/libc/sysdeps/linux/c6x/bits/nan.h
  51745. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/nan.h 2012-05-15 09:20:09.000000000 +0200
  51746. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/nan.h 2014-06-02 17:40:34.334713756 +0200
  51747. @@ -13,9 +13,8 @@
  51748. Lesser General Public License for more details.
  51749. You should have received a copy of the GNU Lesser General Public
  51750. - License along with the GNU C Library; if not, write to the Free
  51751. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51752. - 02111-1307 USA. */
  51753. + License along with the GNU C Library; if not, see
  51754. + <http://www.gnu.org/licenses/>. */
  51755. #ifndef _MATH_H
  51756. # error "Never use <bits/nan.h> directly; include <math.h> instead."
  51757. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/poll.h uClibc-git/libc/sysdeps/linux/c6x/bits/poll.h
  51758. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/poll.h 2012-05-15 09:20:09.000000000 +0200
  51759. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/poll.h 2014-06-02 17:40:34.334713756 +0200
  51760. @@ -12,9 +12,8 @@
  51761. Lesser General Public License for more details.
  51762. You should have received a copy of the GNU Lesser General Public
  51763. - License along with the GNU C Library; if not, write to the Free
  51764. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51765. - 02111-1307 USA. */
  51766. + License along with the GNU C Library; if not, see
  51767. + <http://www.gnu.org/licenses/>. */
  51768. #ifndef _SYS_POLL_H
  51769. # error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
  51770. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/resource.h uClibc-git/libc/sysdeps/linux/c6x/bits/resource.h
  51771. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/resource.h 2012-05-15 09:20:09.000000000 +0200
  51772. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/resource.h 2014-06-02 17:40:34.334713756 +0200
  51773. @@ -13,9 +13,8 @@
  51774. Lesser General Public License for more details.
  51775. You should have received a copy of the GNU Lesser General Public
  51776. - License along with the GNU C Library; if not, write to the Free
  51777. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51778. - 02111-1307 USA. */
  51779. + License along with the GNU C Library; if not, see
  51780. + <http://www.gnu.org/licenses/>. */
  51781. #ifndef _SYS_RESOURCE_H
  51782. # error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
  51783. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/setjmp.h uClibc-git/libc/sysdeps/linux/c6x/bits/setjmp.h
  51784. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  51785. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/setjmp.h 2014-06-02 17:40:34.334713756 +0200
  51786. @@ -14,12 +14,14 @@
  51787. * for more details.
  51788. *
  51789. * You should have received a copy of the GNU Library General Public License
  51790. - * along with this program; if not, write to the Free Software Foundation,
  51791. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  51792. - *
  51793. + * along with this program; see the file COPYING.LIB. If not, see
  51794. + * <http://www.gnu.org/licenses/>.
  51795. */
  51796. -#ifndef _SETJMP_H
  51797. +#ifndef _BITS_SETJMP_H
  51798. +#define _BITS_SETJMP_H 1
  51799. +
  51800. +#if !defined _SETJMP_H && !defined _PTHREAD_H
  51801. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  51802. #endif
  51803. @@ -28,12 +30,4 @@
  51804. unsigned long __pc; /* the return address */
  51805. } __jmp_buf[1];
  51806. -/* the stack pointer (B15) */
  51807. -#define JP_SP 11
  51808. -
  51809. -/* Test if longjmp to JMPBUF would unwind the frame
  51810. - containing a local variable at ADDRESS. */
  51811. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  51812. - ((void *) (address) < (void *) (jmpbuf)->__regs[JP_SP])
  51813. -
  51814. -
  51815. +#endif
  51816. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/c6x/bits/sigcontextinfo.h
  51817. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  51818. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/sigcontextinfo.h 2014-06-02 17:40:34.334713756 +0200
  51819. @@ -13,9 +13,8 @@
  51820. Lesser General Public License for more details.
  51821. You should have received a copy of the GNU Lesser General Public
  51822. - License along with the GNU C Library; if not, write to the Free
  51823. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51824. - 02111-1307 USA. */
  51825. + License along with the GNU C Library; if not, see
  51826. + <http://www.gnu.org/licenses/>. */
  51827. #define SIGCONTEXT int _code, struct sigcontext *
  51828. #define SIGCONTEXT_EXTRA_ARGS _code,
  51829. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/c6x/bits/stackinfo.h
  51830. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  51831. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/stackinfo.h 2014-06-02 17:40:34.334713756 +0200
  51832. @@ -12,9 +12,8 @@
  51833. Lesser General Public License for more details.
  51834. You should have received a copy of the GNU Lesser General Public
  51835. - License along with the GNU C Library; if not, write to the Free
  51836. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51837. - 02111-1307 USA. */
  51838. + License along with the GNU C Library; if not, see
  51839. + <http://www.gnu.org/licenses/>. */
  51840. /* This file contains a bit of information about the stack allocation
  51841. of the processor. */
  51842. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/syscalls.h uClibc-git/libc/sysdeps/linux/c6x/bits/syscalls.h
  51843. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/syscalls.h 2012-05-15 09:20:09.000000000 +0200
  51844. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/syscalls.h 2014-06-02 17:40:34.334713756 +0200
  51845. @@ -37,7 +37,7 @@
  51846. #undef INLINE_SYSCALL
  51847. #define INLINE_SYSCALL(name, nr, args...) \
  51848. ({ unsigned int _inline_sys_result = INTERNAL_SYSCALL (name, , nr, args); \
  51849. - if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (_inline_sys_result, ), 0)) \
  51850. + if (unlikely (INTERNAL_SYSCALL_ERROR_P (_inline_sys_result, ))) \
  51851. { \
  51852. __set_errno (INTERNAL_SYSCALL_ERRNO (_inline_sys_result, )); \
  51853. _inline_sys_result = (unsigned int) -1; \
  51854. @@ -103,7 +103,7 @@
  51855. register long __B6 __asm__ ("B6") = (long)(arg4); \
  51856. register long __A8 __asm__ ("A8") = (long)(arg5); \
  51857. register long __g1 __asm__ ("g1") = __NR_clone; \
  51858. - __asm __volatile (__CLONE_SYSCALL_STRING : \
  51859. + __asm__ __volatile__ (__CLONE_SYSCALL_STRING : \
  51860. "=r" (__g1), "=r" (__A4), "=r" (__B4) : \
  51861. "0" (__g1), "1" (__A4), "2" (__B4), \
  51862. "r" (__A6), "r" (__B6), "r" (__A8) : \
  51863. 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
  51864. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  51865. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/uClibc_arch_features.h 2014-06-02 17:40:34.334713756 +0200
  51866. @@ -12,8 +12,8 @@
  51867. /* can your target use syscall6() for mmap ? */
  51868. #define __UCLIBC_MMAP_HAS_6_ARGS__
  51869. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  51870. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  51871. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  51872. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  51873. /* does your target have a broken create_module() ? */
  51874. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  51875. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/wordsize.h uClibc-git/libc/sysdeps/linux/c6x/bits/wordsize.h
  51876. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  51877. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/wordsize.h 2014-06-02 17:40:34.334713756 +0200
  51878. @@ -12,8 +12,7 @@
  51879. Lesser General Public License for more details.
  51880. You should have received a copy of the GNU Lesser General Public
  51881. - License along with the GNU C Library; if not, write to the Free
  51882. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51883. - 02111-1307 USA. */
  51884. + License along with the GNU C Library; if not, see
  51885. + <http://www.gnu.org/licenses/>. */
  51886. #define __WORDSIZE 32
  51887. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/brk.c uClibc-git/libc/sysdeps/linux/c6x/brk.c
  51888. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/brk.c 2012-05-15 09:20:09.000000000 +0200
  51889. +++ uClibc-git/libc/sysdeps/linux/c6x/brk.c 2014-06-02 17:40:34.334713756 +0200
  51890. @@ -14,9 +14,8 @@
  51891. * for more details.
  51892. *
  51893. * You should have received a copy of the GNU Library General Public License
  51894. - * along with this program; if not, write to the Free Software Foundation,
  51895. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  51896. - *
  51897. + * along with this program; see the file COPYING.LIB. If not, see
  51898. + * <http://www.gnu.org/licenses/>.
  51899. */
  51900. #include <unistd.h>
  51901. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bsd-_setjmp.s uClibc-git/libc/sysdeps/linux/c6x/bsd-_setjmp.s
  51902. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bsd-_setjmp.s 2012-05-15 09:20:09.000000000 +0200
  51903. +++ uClibc-git/libc/sysdeps/linux/c6x/bsd-_setjmp.s 2014-06-02 17:40:34.334713756 +0200
  51904. @@ -14,8 +14,7 @@
  51905. ; for more details.
  51906. ;
  51907. ; You should have received a copy of the GNU Library General Public License
  51908. - ; along with this program; if not, write to the Free Software Foundation,
  51909. - ; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  51910. + ; along with this program; if not, see <http://www.gnu.org/licenses/>.
  51911. ;
  51912. .global _setjmp
  51913. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/c6x/bsd-setjmp.S
  51914. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
  51915. +++ uClibc-git/libc/sysdeps/linux/c6x/bsd-setjmp.S 2014-06-02 17:40:34.334713756 +0200
  51916. @@ -14,8 +14,7 @@
  51917. ; for more details.
  51918. ;
  51919. ; You should have received a copy of the GNU Library General Public License
  51920. - ; along with this program; if not, write to the Free Software Foundation,
  51921. - ; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  51922. + ; along with this program; if not, see <http://www.gnu.org/licenses/>.
  51923. ;
  51924. .global setjmp
  51925. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/clone.S uClibc-git/libc/sysdeps/linux/c6x/clone.S
  51926. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/clone.S 2012-05-15 09:20:09.000000000 +0200
  51927. +++ uClibc-git/libc/sysdeps/linux/c6x/clone.S 2014-06-02 17:40:34.334713756 +0200
  51928. @@ -14,8 +14,7 @@
  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. + ; along with this program; if not, see <http://www.gnu.org/licenses/>.
  51935. ;
  51936. #define __ASSEMBLY__
  51937. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/crt1.S uClibc-git/libc/sysdeps/linux/c6x/crt1.S
  51938. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/crt1.S 2012-05-15 09:20:09.000000000 +0200
  51939. +++ uClibc-git/libc/sysdeps/linux/c6x/crt1.S 2014-06-02 17:40:34.334713756 +0200
  51940. @@ -15,8 +15,7 @@
  51941. ; for more details.
  51942. ;
  51943. ; You should have received a copy of the GNU Library General Public License
  51944. -; along with this program; if not, write to the Free Software Foundation,
  51945. -; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  51946. +; along with this program; if not, see <http://www.gnu.org/licenses/>.
  51947. ;
  51948. .text
  51949. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/c6x/jmpbuf-offsets.h
  51950. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  51951. +++ uClibc-git/libc/sysdeps/linux/c6x/jmpbuf-offsets.h 2014-06-02 17:40:34.334713756 +0200
  51952. @@ -0,0 +1,22 @@
  51953. +/* Private macros for accessing __jmp_buf contents. c6x version.
  51954. + * Port of uClibc for TMS320C6000 DSP architecture
  51955. + * Copyright (C) 2004 Texas Instruments Incorporated
  51956. + * Author of TMS320C6000 port: Aurelien Jacquiot
  51957. + *
  51958. + * This program is free software; you can redistribute it and/or modify it
  51959. + * under the terms of the GNU Library General Public License as published by
  51960. + * the Free Software Foundation; either version 2 of the License, or (at your
  51961. + * option) any later version.
  51962. + *
  51963. + * This program is distributed in the hope that it will be useful, but WITHOUT
  51964. + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  51965. + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
  51966. + * for more details.
  51967. + *
  51968. + * You should have received a copy of the GNU Library General Public License
  51969. + * along with this program; see the file COPYING.LIB. If not, see
  51970. + * <http://www.gnu.org/licenses/>.
  51971. + */
  51972. +
  51973. +/* the stack pointer (B15) */
  51974. +#define JP_SP 11
  51975. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/c6x/jmpbuf-unwind.h
  51976. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  51977. +++ uClibc-git/libc/sysdeps/linux/c6x/jmpbuf-unwind.h 2014-06-02 17:40:34.334713756 +0200
  51978. @@ -0,0 +1,28 @@
  51979. +/*
  51980. + * Port of uClibc for TMS320C6000 DSP architecture
  51981. + * Copyright (C) 2004 Texas Instruments Incorporated
  51982. + * Author of TMS320C6000 port: Aurelien Jacquiot
  51983. + *
  51984. + * This program is free software; you can redistribute it and/or modify it
  51985. + * under the terms of the GNU Library General Public License as published by
  51986. + * the Free Software Foundation; either version 2 of the License, or (at your
  51987. + * option) any later version.
  51988. + *
  51989. + * This program is distributed in the hope that it will be useful, but WITHOUT
  51990. + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  51991. + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
  51992. + * for more details.
  51993. + *
  51994. + * You should have received a copy of the GNU Library General Public License
  51995. + * along with this program; see the file COPYING.LIB. If not, see
  51996. + * <http://www.gnu.org/licenses/>.
  51997. + */
  51998. +#include <setjmp.h>
  51999. +#include <jmpbuf-offsets.h>
  52000. +
  52001. +/* Test if longjmp to JMPBUF would unwind the frame
  52002. + containing a local variable at ADDRESS. */
  52003. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  52004. + ((void *) (address) < (void *) (jmpbuf)->__regs[JP_SP])
  52005. +
  52006. +
  52007. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/__longjmp.S uClibc-git/libc/sysdeps/linux/c6x/__longjmp.S
  52008. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  52009. +++ uClibc-git/libc/sysdeps/linux/c6x/__longjmp.S 2014-06-02 17:40:34.334713756 +0200
  52010. @@ -14,8 +14,7 @@
  52011. ; for more details.
  52012. ;
  52013. ; You should have received a copy of the GNU Library General Public License
  52014. - ; along with this program; if not, write to the Free Software Foundation,
  52015. - ; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  52016. + ; along with this program; if not, see <http://www.gnu.org/licenses/>.
  52017. ;
  52018. .global __longjmp
  52019. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/Makefile.arch uClibc-git/libc/sysdeps/linux/c6x/Makefile.arch
  52020. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  52021. +++ uClibc-git/libc/sysdeps/linux/c6x/Makefile.arch 2014-06-02 17:40:34.334713756 +0200
  52022. @@ -5,6 +5,6 @@
  52023. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  52024. #
  52025. -CSRC := brk.c pread_write.c syscall.c prctl.c
  52026. +CSRC-y := brk.c syscall.c prctl.c
  52027. -SSRC := __longjmp.S bsd-_setjmp.S bsd-setjmp.S clone.S setjmp.S _vfork.S
  52028. +SSRC-y := __longjmp.S bsd-_setjmp.S bsd-setjmp.S clone.S setjmp.S _vfork.S
  52029. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/pread_write.c uClibc-git/libc/sysdeps/linux/c6x/pread_write.c
  52030. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/pread_write.c 2012-05-15 09:20:09.000000000 +0200
  52031. +++ uClibc-git/libc/sysdeps/linux/c6x/pread_write.c 1970-01-01 01:00:00.000000000 +0100
  52032. @@ -1,103 +0,0 @@
  52033. -/* vi: set sw=4 ts=4:
  52034. - *
  52035. - * Copyright (C) 2002 by Erik Andersen <andersen@uclibc.org>
  52036. - * Based in part on the files
  52037. - * ./sysdeps/unix/sysv/linux/pwrite.c,
  52038. - * ./sysdeps/unix/sysv/linux/pread.c,
  52039. - * sysdeps/posix/pread.c
  52040. - * sysdeps/posix/pwrite.c
  52041. - * from GNU libc 2.2.5, but reworked considerably...
  52042. - *
  52043. - * This program is free software; you can redistribute it and/or modify it
  52044. - * under the terms of the GNU Library General Public License as published by
  52045. - * the Free Software Foundation; either version 2 of the License, or (at your
  52046. - * option) any later version.
  52047. - *
  52048. - * This program is distributed in the hope that it will be useful, but WITHOUT
  52049. - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  52050. - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
  52051. - * for more details.
  52052. - *
  52053. - * You should have received a copy of the GNU Library General Public License
  52054. - * along with this program; if not, write to the Free Software Foundation,
  52055. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  52056. - */
  52057. -
  52058. -#define _LARGEFILE64_SOURCE
  52059. -#include <features.h>
  52060. -#undef __OPTIMIZE__
  52061. -/* We absolutely do _NOT_ want interfaces silently
  52062. - * * * renamed under us or very bad things will happen... */
  52063. -#ifdef __USE_FILE_OFFSET64
  52064. -# undef __USE_FILE_OFFSET64
  52065. -#endif
  52066. -
  52067. -
  52068. -#include <errno.h>
  52069. -#include <sys/types.h>
  52070. -#include <sys/syscall.h>
  52071. -#include <unistd.h>
  52072. -#include <stdint.h>
  52073. -
  52074. -extern __typeof(pread) __libc_pread;
  52075. -extern __typeof(pwrite) __libc_pwrite;
  52076. -#ifdef __UCLIBC_HAS_LFS__
  52077. -extern __typeof(pread64) __libc_pread64;
  52078. -extern __typeof(pwrite64) __libc_pwrite64;
  52079. -#endif
  52080. -
  52081. -#ifdef __NR_pread64 /* Newer kernels renamed but it's the same. */
  52082. -# ifdef __NR_pread
  52083. -# error "__NR_pread and __NR_pread64 both defined???"
  52084. -# endif
  52085. -# define __NR_pread __NR_pread64
  52086. -#endif
  52087. -
  52088. -#define __NR___syscall_pread __NR_pread
  52089. -static inline _syscall5(ssize_t, __syscall_pread, int, fd, void *, buf,
  52090. - size_t, count, off_t, offset_hi, off_t, offset_lo);
  52091. -
  52092. -ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
  52093. -{
  52094. - return(__syscall_pread(fd,buf,count,offset,offset >> 31));
  52095. -}
  52096. -weak_alias (__libc_pread, pread)
  52097. -
  52098. -#if defined __UCLIBC_HAS_LFS__
  52099. -ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
  52100. -{
  52101. - uint32_t low = offset & 0xffffffff;
  52102. - uint32_t high = offset >> 32;
  52103. - return(__syscall_pread(fd, buf, count, low, high));
  52104. -}
  52105. -weak_alias (__libc_pread64, pread64)
  52106. -#endif /* __UCLIBC_HAS_LFS__ */
  52107. -
  52108. -
  52109. -#ifdef __NR_pwrite64 /* Newer kernels renamed but it's the same. */
  52110. -# ifdef __NR_pwrite
  52111. -# error "__NR_pwrite and __NR_pwrite64 both defined???"
  52112. -# endif
  52113. -# define __NR_pwrite __NR_pwrite64
  52114. -#endif
  52115. -
  52116. -#define __NR___syscall_pwrite __NR_pwrite
  52117. -static inline _syscall5(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
  52118. - size_t, count, off_t, offset_hi, off_t, offset_lo);
  52119. -
  52120. -ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
  52121. -{
  52122. - return(__syscall_pwrite(fd,buf,count,offset,offset >> 31));
  52123. -}
  52124. -weak_alias (__libc_pwrite, pwrite)
  52125. -
  52126. -#if defined __UCLIBC_HAS_LFS__
  52127. -ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
  52128. -{
  52129. - uint32_t low = offset & 0xffffffff;
  52130. - uint32_t high = offset >> 32;
  52131. - return(__syscall_pwrite(fd, buf, count, low, high));
  52132. -}
  52133. -weak_alias (__libc_pwrite64, pwrite64)
  52134. -#endif /* __UCLIBC_HAS_LFS__ */
  52135. -
  52136. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/setjmp.s uClibc-git/libc/sysdeps/linux/c6x/setjmp.s
  52137. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/setjmp.s 2012-05-15 09:20:09.000000000 +0200
  52138. +++ uClibc-git/libc/sysdeps/linux/c6x/setjmp.s 2014-06-02 17:40:34.338713778 +0200
  52139. @@ -14,8 +14,7 @@
  52140. ; for more details.
  52141. ;
  52142. ; You should have received a copy of the GNU Library General Public License
  52143. - ; along with this program; if not, write to the Free Software Foundation,
  52144. - ; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  52145. + ; along with this program; if not, see <http://www.gnu.org/licenses/>.
  52146. ;
  52147. .global __sigsetjmp
  52148. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sigaction.c uClibc-git/libc/sysdeps/linux/c6x/sigaction.c
  52149. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sigaction.c 2012-05-15 09:20:09.000000000 +0200
  52150. +++ uClibc-git/libc/sysdeps/linux/c6x/sigaction.c 2014-06-02 17:40:34.338713778 +0200
  52151. @@ -17,8 +17,7 @@
  52152. You should have received a copy of the GNU Library General Public
  52153. License along with the GNU C Library; see the file COPYING.LIB. If not,
  52154. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  52155. - Boston, MA 02111-1307, USA.
  52156. + see <http://www.gnu.org/licenses/>.
  52157. Totally hacked up for uClibc by Erik Andersen <andersen@codepoet.org>
  52158. */
  52159. @@ -34,8 +33,6 @@
  52160. #define SA_RESTORER 0x04000000
  52161. -extern __typeof(sigaction) __libc_sigaction;
  52162. -
  52163. extern void restore_rt(void) __asm__ ("__restore_rt") attribute_hidden;
  52164. extern void restore(void) __asm__ ("__restore") attribute_hidden;
  52165. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/procfs.h uClibc-git/libc/sysdeps/linux/c6x/sys/procfs.h
  52166. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  52167. +++ uClibc-git/libc/sysdeps/linux/c6x/sys/procfs.h 2014-06-02 17:40:34.338713778 +0200
  52168. @@ -12,9 +12,8 @@
  52169. Lesser General Public License for more details.
  52170. You should have received a copy of the GNU Lesser General Public
  52171. - License along with the GNU C Library; if not, write to the Free
  52172. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52173. - 02111-1307 USA. */
  52174. + License along with the GNU C Library; if not, see
  52175. + <http://www.gnu.org/licenses/>. */
  52176. #ifndef _SYS_PROCFS_H
  52177. #define _SYS_PROCFS_H 1
  52178. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/ptrace.h uClibc-git/libc/sysdeps/linux/c6x/sys/ptrace.h
  52179. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
  52180. +++ uClibc-git/libc/sysdeps/linux/c6x/sys/ptrace.h 2014-06-02 17:40:34.338713778 +0200
  52181. @@ -13,9 +13,8 @@
  52182. Lesser General Public License for more details.
  52183. You should have received a copy of the GNU Lesser General Public
  52184. - License along with the GNU C Library; if not, write to the Free
  52185. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52186. - 02111-1307 USA. */
  52187. + License along with the GNU C Library; if not, see
  52188. + <http://www.gnu.org/licenses/>. */
  52189. #ifndef _SYS_PTRACE_H
  52190. #define _SYS_PTRACE_H 1
  52191. @@ -112,12 +111,6 @@
  52192. PTRACE_SYSCALL = 24,
  52193. #define PT_SYSCALL PTRACE_SYSCALL
  52194. - /* Obtain the load map of the main program or the interpreter of the
  52195. - ptraced process, depending on whether the addr argument is
  52196. - (void*)0 or (void*)1, respectively. */
  52197. - PTRACE_GETDSBT = 31,
  52198. -#define PT_GETDSBT PTRACE_GETDSBT
  52199. -
  52200. /* Set ptrace filter options. */
  52201. PTRACE_SETOPTIONS = 0x4200,
  52202. #define PT_SETOPTIONS PTRACE_SETOPTIONS
  52203. @@ -135,9 +128,6 @@
  52204. #define PT_SETSIGINFO PTRACE_SETSIGINFO
  52205. };
  52206. -#define PTRACE_GETDSBT_EXEC ((void*)0) /* [addr] request the executable loadmap */
  52207. -#define PTRACE_GETDSBT_INTERP ((void*)1) /* [addr] request the interpreter loadmap */
  52208. -
  52209. /* Options set using PTRACE_SETOPTIONS. */
  52210. enum __ptrace_setoptions {
  52211. PTRACE_O_TRACESYSGOOD = 0x00000001,
  52212. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/reg.h uClibc-git/libc/sysdeps/linux/c6x/sys/reg.h
  52213. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/reg.h 2012-05-15 09:20:09.000000000 +0200
  52214. +++ uClibc-git/libc/sysdeps/linux/c6x/sys/reg.h 2014-06-02 17:40:34.338713778 +0200
  52215. @@ -14,9 +14,8 @@
  52216. * for more details.
  52217. *
  52218. * You should have received a copy of the GNU Library General Public License
  52219. - * along with this program; if not, write to the Free Software Foundation,
  52220. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  52221. - *
  52222. + * along with this program; see the file COPYING.LIB. If not, see
  52223. + * <http://www.gnu.org/licenses/>.
  52224. */
  52225. #ifndef _SYS_REG_H
  52226. #define _SYS_REG_H 1
  52227. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/ucontext.h uClibc-git/libc/sysdeps/linux/c6x/sys/ucontext.h
  52228. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  52229. +++ uClibc-git/libc/sysdeps/linux/c6x/sys/ucontext.h 2014-06-02 17:40:34.338713778 +0200
  52230. @@ -12,9 +12,8 @@
  52231. Lesser General Public License for more details.
  52232. You should have received a copy of the GNU Lesser General Public
  52233. - License along with the GNU C Library; if not, write to the Free
  52234. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52235. - 02111-1307 USA. */
  52236. + License along with the GNU C Library; if not, see
  52237. + <http://www.gnu.org/licenses/>. */
  52238. #ifndef _SYS_UCONTEXT_H
  52239. #define _SYS_UCONTEXT_H 1
  52240. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/user.h uClibc-git/libc/sysdeps/linux/c6x/sys/user.h
  52241. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/user.h 2012-05-15 09:20:09.000000000 +0200
  52242. +++ uClibc-git/libc/sysdeps/linux/c6x/sys/user.h 2014-06-02 17:40:34.338713778 +0200
  52243. @@ -12,9 +12,8 @@
  52244. Lesser General Public License for more details.
  52245. You should have received a copy of the GNU Lesser General Public
  52246. - License along with the GNU C Library; if not, write to the Free
  52247. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52248. - 02111-1307 USA. */
  52249. + License along with the GNU C Library; if not, see
  52250. + <http://www.gnu.org/licenses/>. */
  52251. #ifndef _SYS_USER_H
  52252. #define _SYS_USER_H 1
  52253. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/_vfork.S uClibc-git/libc/sysdeps/linux/c6x/_vfork.S
  52254. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/_vfork.S 2012-05-15 09:20:09.000000000 +0200
  52255. +++ uClibc-git/libc/sysdeps/linux/c6x/_vfork.S 2014-06-02 17:40:34.334713756 +0200
  52256. @@ -16,8 +16,8 @@
  52257. * for more details.
  52258. *
  52259. * You should have received a copy of the GNU Library General Public License
  52260. - * along with this program; if not, write to the Free Software Foundation,
  52261. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  52262. + * along with this program; see the file COPYING.LIB. If not, see
  52263. + * <http://www.gnu.org/licenses/>.
  52264. */
  52265. #define __ASSEMBLY__
  52266. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/access.c uClibc-git/libc/sysdeps/linux/common/access.c
  52267. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/access.c 2012-05-15 09:20:09.000000000 +0200
  52268. +++ uClibc-git/libc/sysdeps/linux/common/access.c 2014-06-02 17:40:34.338713778 +0200
  52269. @@ -9,4 +9,14 @@
  52270. #include <sys/syscall.h>
  52271. #include <unistd.h>
  52272. +
  52273. +#if defined __NR_faccessat && !defined __NR_access
  52274. +# include <fcntl.h>
  52275. +int access(const char *pathname, int mode)
  52276. +{
  52277. + return faccessat(AT_FDCWD, pathname, mode, 0);
  52278. +}
  52279. +
  52280. +#else
  52281. _syscall2(int, access, const char *, pathname, int, mode)
  52282. +#endif
  52283. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/alarm.c uClibc-git/libc/sysdeps/linux/common/alarm.c
  52284. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/alarm.c 2012-05-15 09:20:09.000000000 +0200
  52285. +++ uClibc-git/libc/sysdeps/linux/common/alarm.c 2014-06-02 17:40:34.338713778 +0200
  52286. @@ -10,12 +10,10 @@
  52287. #include <sys/syscall.h>
  52288. #include <unistd.h>
  52289. -
  52290. #ifdef __NR_alarm
  52291. _syscall1(unsigned int, alarm, unsigned int, seconds)
  52292. #else
  52293. -#include <sys/time.h>
  52294. -
  52295. +# include <sys/time.h>
  52296. unsigned int alarm(unsigned int seconds)
  52297. {
  52298. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/arch_prctl.c uClibc-git/libc/sysdeps/linux/common/arch_prctl.c
  52299. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/arch_prctl.c 2012-05-15 09:20:09.000000000 +0200
  52300. +++ uClibc-git/libc/sysdeps/linux/common/arch_prctl.c 2014-06-02 17:40:34.338713778 +0200
  52301. @@ -10,6 +10,6 @@
  52302. #include <sys/syscall.h>
  52303. #ifdef __NR_arch_prctl
  52304. -extern int arch_prctl(int code, unsigned long addr);
  52305. +int arch_prctl(int code, unsigned long addr);
  52306. _syscall2(int, arch_prctl, int, code, unsigned long, addr)
  52307. #endif
  52308. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/atomic.h uClibc-git/libc/sysdeps/linux/common/bits/atomic.h
  52309. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  52310. +++ uClibc-git/libc/sysdeps/linux/common/bits/atomic.h 2014-06-02 17:40:34.338713778 +0200
  52311. @@ -13,9 +13,8 @@
  52312. Lesser General Public License for more details.
  52313. You should have received a copy of the GNU Lesser General Public
  52314. - License along with the GNU C Library; if not, write to the Free
  52315. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52316. - 02111-1307 USA. */
  52317. + License along with the GNU C Library; if not, see
  52318. + <http://www.gnu.org/licenses/>. */
  52319. #ifndef _BITS_ATOMIC_H
  52320. #define _BITS_ATOMIC_H 1
  52321. 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
  52322. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/byteswap-common.h 2012-05-15 09:20:09.000000000 +0200
  52323. +++ uClibc-git/libc/sysdeps/linux/common/bits/byteswap-common.h 2014-06-02 17:40:34.338713778 +0200
  52324. @@ -13,9 +13,8 @@
  52325. Lesser General Public License for more details.
  52326. You should have received a copy of the GNU Lesser General Public
  52327. - License along with the GNU C Library; if not, write to the Free
  52328. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52329. - 02111-1307 USA. */
  52330. + License along with the GNU C Library; if not, see
  52331. + <http://www.gnu.org/licenses/>. */
  52332. #if !defined _BYTESWAP_H && !defined _NETINET_IN_H
  52333. # error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
  52334. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/cmathcalls.h uClibc-git/libc/sysdeps/linux/common/bits/cmathcalls.h
  52335. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/cmathcalls.h 2012-05-15 09:20:09.000000000 +0200
  52336. +++ uClibc-git/libc/sysdeps/linux/common/bits/cmathcalls.h 2014-06-02 17:40:34.338713778 +0200
  52337. @@ -14,9 +14,8 @@
  52338. Lesser General Public License for more details.
  52339. You should have received a copy of the GNU Lesser General Public
  52340. - License along with the GNU C Library; if not, write to the Free
  52341. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52342. - 02111-1307 USA. */
  52343. + License along with the GNU C Library; if not, see
  52344. + <http://www.gnu.org/licenses/>. */
  52345. /* NOTE: Because of the special way this file is used by <complex.h>, this
  52346. file must NOT be protected from multiple inclusion as header files
  52347. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/confname.h uClibc-git/libc/sysdeps/linux/common/bits/confname.h
  52348. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/confname.h 2012-05-15 09:20:09.000000000 +0200
  52349. +++ uClibc-git/libc/sysdeps/linux/common/bits/confname.h 2014-06-02 17:40:34.342713800 +0200
  52350. @@ -14,9 +14,8 @@
  52351. Lesser General Public License for more details.
  52352. You should have received a copy of the GNU Lesser General Public
  52353. - License along with the GNU C Library; if not, write to the Free
  52354. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52355. - 02111-1307 USA. */
  52356. + License along with the GNU C Library; if not, see
  52357. + <http://www.gnu.org/licenses/>. */
  52358. #ifndef _UNISTD_H
  52359. # error "Never use <bits/confname.h> directly; include <unistd.h> instead."
  52360. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/dirent.h uClibc-git/libc/sysdeps/linux/common/bits/dirent.h
  52361. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/dirent.h 2012-05-15 09:20:09.000000000 +0200
  52362. +++ uClibc-git/libc/sysdeps/linux/common/bits/dirent.h 2014-06-02 17:40:34.342713800 +0200
  52363. @@ -12,9 +12,8 @@
  52364. Lesser General Public License for more details.
  52365. You should have received a copy of the GNU Lesser General Public
  52366. - License along with the GNU C Library; if not, write to the Free
  52367. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52368. - 02111-1307 USA. */
  52369. + License along with the GNU C Library; if not, see
  52370. + <http://www.gnu.org/licenses/>. */
  52371. #ifndef _DIRENT_H
  52372. # error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
  52373. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/dlfcn.h uClibc-git/libc/sysdeps/linux/common/bits/dlfcn.h
  52374. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/dlfcn.h 2012-05-15 09:20:09.000000000 +0200
  52375. +++ uClibc-git/libc/sysdeps/linux/common/bits/dlfcn.h 2014-06-02 17:40:34.342713800 +0200
  52376. @@ -13,9 +13,8 @@
  52377. Lesser General Public License for more details.
  52378. You should have received a copy of the GNU Lesser General Public
  52379. - License along with the GNU C Library; if not, write to the Free
  52380. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52381. - 02111-1307 USA. */
  52382. + License along with the GNU C Library; if not, see
  52383. + <http://www.gnu.org/licenses/>. */
  52384. #ifndef _DLFCN_H
  52385. # error "Never use <bits/dlfcn.h> directly; include <dlfcn.h> instead."
  52386. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/environments.h uClibc-git/libc/sysdeps/linux/common/bits/environments.h
  52387. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/environments.h 2012-05-15 09:20:09.000000000 +0200
  52388. +++ uClibc-git/libc/sysdeps/linux/common/bits/environments.h 2014-06-02 17:40:34.342713800 +0200
  52389. @@ -12,9 +12,8 @@
  52390. Lesser General Public License for more details.
  52391. You should have received a copy of the GNU Lesser General Public
  52392. - License along with the GNU C Library; if not, write to the Free
  52393. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52394. - 02111-1307 USA. */
  52395. + License along with the GNU C Library; if not, see
  52396. + <http://www.gnu.org/licenses/>. */
  52397. #ifndef _UNISTD_H
  52398. # error "Never include this file directly. Use <unistd.h> instead"
  52399. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/errno.h uClibc-git/libc/sysdeps/linux/common/bits/errno.h
  52400. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/errno.h 2012-05-15 09:20:09.000000000 +0200
  52401. +++ uClibc-git/libc/sysdeps/linux/common/bits/errno.h 2014-06-02 17:40:34.342713800 +0200
  52402. @@ -13,9 +13,8 @@
  52403. Lesser General Public License for more details.
  52404. You should have received a copy of the GNU Lesser General Public
  52405. - License along with the GNU C Library; if not, write to the Free
  52406. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52407. - 02111-1307 USA. */
  52408. + License along with the GNU C Library; if not, see
  52409. + <http://www.gnu.org/licenses/>. */
  52410. #ifdef _ERRNO_H
  52411. @@ -43,7 +42,6 @@
  52412. # ifndef __ASSEMBLER__
  52413. /* Function to get address of global `errno' variable. */
  52414. extern int *__errno_location (void) __THROW __attribute__ ((__const__));
  52415. -libc_hidden_proto(__errno_location)
  52416. # ifdef __UCLIBC_HAS_THREADS__
  52417. /* When using threads, errno is a per-thread value. */
  52418. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/eventfd.h uClibc-git/libc/sysdeps/linux/common/bits/eventfd.h
  52419. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/eventfd.h 1970-01-01 01:00:00.000000000 +0100
  52420. +++ uClibc-git/libc/sysdeps/linux/common/bits/eventfd.h 2014-06-02 17:40:34.342713800 +0200
  52421. @@ -0,0 +1,31 @@
  52422. +/* Copyright (C) 2007-2013 Free Software Foundation, Inc.
  52423. + This file is part of the GNU C Library.
  52424. +
  52425. + The GNU C Library is free software; you can redistribute it and/or
  52426. + modify it under the terms of the GNU Lesser General Public
  52427. + License as published by the Free Software Foundation; either
  52428. + version 2.1 of the License, or (at your option) any later version.
  52429. +
  52430. + The GNU C Library is distributed in the hope that it will be useful,
  52431. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  52432. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  52433. + Lesser General Public License for more details.
  52434. +
  52435. + You should have received a copy of the GNU Lesser General Public
  52436. + License along with the GNU C Library; if not, see
  52437. + <http://www.gnu.org/licenses/>. */
  52438. +
  52439. +#ifndef _SYS_EVENTFD_H
  52440. +# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
  52441. +#endif
  52442. +
  52443. +/* Flags for eventfd. */
  52444. +enum
  52445. + {
  52446. + EFD_SEMAPHORE = 00000001,
  52447. +#define EFD_SEMAPHORE EFD_SEMAPHORE
  52448. + EFD_CLOEXEC = 02000000,
  52449. +#define EFD_CLOEXEC EFD_CLOEXEC
  52450. + EFD_NONBLOCK = 00004000
  52451. +#define EFD_NONBLOCK EFD_NONBLOCK
  52452. + };
  52453. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/fenv.h uClibc-git/libc/sysdeps/linux/common/bits/fenv.h
  52454. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  52455. +++ uClibc-git/libc/sysdeps/linux/common/bits/fenv.h 2014-06-02 17:40:34.342713800 +0200
  52456. @@ -12,9 +12,8 @@
  52457. Lesser General Public License for more details.
  52458. You should have received a copy of the GNU Lesser General Public
  52459. - License along with the GNU C Library; if not, write to the Free
  52460. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52461. - 02111-1307 USA. */
  52462. + License along with the GNU C Library; if not, see
  52463. + <http://www.gnu.org/licenses/>. */
  52464. #ifndef _FENV_H
  52465. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  52466. @@ -53,4 +52,4 @@
  52467. fenv_t;
  52468. /* If the default argument is used we use this value. */
  52469. -#define FE_DFL_ENV ((__const fenv_t *) -1l)
  52470. +#define FE_DFL_ENV ((const fenv_t *) -1l)
  52471. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/getopt.h uClibc-git/libc/sysdeps/linux/common/bits/getopt.h
  52472. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/getopt.h 2012-05-15 09:20:09.000000000 +0200
  52473. +++ uClibc-git/libc/sysdeps/linux/common/bits/getopt.h 2014-06-02 17:40:34.342713800 +0200
  52474. @@ -14,9 +14,8 @@
  52475. Lesser General Public License for more details.
  52476. You should have received a copy of the GNU Lesser General Public
  52477. - License along with the GNU C Library; if not, write to the Free
  52478. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52479. - 02111-1307 USA. */
  52480. + License along with the GNU C Library; if not, see
  52481. + <http://www.gnu.org/licenses/>. */
  52482. #ifndef _GETOPT_H
  52483. @@ -26,31 +25,7 @@
  52484. # define _GETOPT_H 1
  52485. #endif
  52486. -/* If __GNU_LIBRARY__ is not already defined, either we are being used
  52487. - standalone, or this is the first header included in the source file.
  52488. - If we are being used with glibc, we need to include <features.h>, but
  52489. - that does not exist if we are standalone. So: if __GNU_LIBRARY__ is
  52490. - not defined, include <ctype.h>, which will pull in <features.h> for us
  52491. - if it's from glibc. (Why ctype.h? It's guaranteed to exist and it
  52492. - doesn't flood the namespace with stuff the way some other headers do.) */
  52493. -#if !defined __GNU_LIBRARY__
  52494. -# include <ctype.h>
  52495. -#endif
  52496. -
  52497. -#ifndef __THROW
  52498. -# ifndef __GNUC_PREREQ
  52499. -# define __GNUC_PREREQ(maj, min) (0)
  52500. -# endif
  52501. -# if defined __cplusplus && __GNUC_PREREQ (2,8)
  52502. -# define __THROW throw ()
  52503. -# else
  52504. -# define __THROW
  52505. -# endif
  52506. -#endif
  52507. -
  52508. -#ifdef __cplusplus
  52509. -extern "C" {
  52510. -#endif
  52511. +__BEGIN_DECLS
  52512. /* For communication from `getopt' to the caller.
  52513. When `getopt' finds an option that takes an argument,
  52514. @@ -147,17 +122,9 @@
  52515. arguments to the option '\0'. This behavior is specific to the GNU
  52516. `getopt'. */
  52517. -#if defined __GNU_LIBRARY__ || defined __UCLIBC__
  52518. -/* Many other libraries have conflicting prototypes for getopt, with
  52519. - differences in the consts, in stdlib.h. To avoid compilation
  52520. - errors, only prototype getopt for the GNU C library. */
  52521. extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
  52522. __THROW;
  52523. libc_hidden_proto(getopt)
  52524. -#else /* not __GNU_LIBRARY__ */
  52525. -extern int getopt ();
  52526. -libc_hidden_proto(getopt)
  52527. -#endif /* __GNU_LIBRARY__ */
  52528. #if defined __UCLIBC_HAS_GNU_GETOPT__ || defined __UCLIBC_HAS_GETOPT_LONG__
  52529. #ifndef __need_getopt
  52530. @@ -173,9 +140,7 @@
  52531. #endif
  52532. #endif
  52533. -#ifdef __cplusplus
  52534. -}
  52535. -#endif
  52536. +__END_DECLS
  52537. /* Make sure we later can get all the definitions and declarations. */
  52538. #undef __need_getopt
  52539. 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
  52540. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/huge_valf.h 2012-05-15 09:20:09.000000000 +0200
  52541. +++ uClibc-git/libc/sysdeps/linux/common/bits/huge_valf.h 2014-06-02 17:40:34.342713800 +0200
  52542. @@ -15,9 +15,8 @@
  52543. Lesser General Public License for more details.
  52544. You should have received a copy of the GNU Lesser General Public
  52545. - License along with the GNU C Library; if not, write to the Free
  52546. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52547. - 02111-1307 USA. */
  52548. + License along with the GNU C Library; if not, see
  52549. + <http://www.gnu.org/licenses/>. */
  52550. #ifndef _MATH_H
  52551. # error "Never use <bits/huge_valf.h> directly; include <math.h> instead."
  52552. 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
  52553. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/huge_val.h 2012-05-15 09:20:09.000000000 +0200
  52554. +++ uClibc-git/libc/sysdeps/linux/common/bits/huge_val.h 2014-06-02 17:40:34.342713800 +0200
  52555. @@ -15,9 +15,8 @@
  52556. Lesser General Public License for more details.
  52557. You should have received a copy of the GNU Lesser General Public
  52558. - License along with the GNU C Library; if not, write to the Free
  52559. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52560. - 02111-1307 USA. */
  52561. + License along with the GNU C Library; if not, see
  52562. + <http://www.gnu.org/licenses/>. */
  52563. #ifndef _MATH_H
  52564. # error "Never use <bits/huge_val.h> directly; include <math.h> instead."
  52565. 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
  52566. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/huge_vall.h 2012-05-15 09:20:09.000000000 +0200
  52567. +++ uClibc-git/libc/sysdeps/linux/common/bits/huge_vall.h 2014-06-02 17:40:34.342713800 +0200
  52568. @@ -14,9 +14,8 @@
  52569. Lesser General Public License for more details.
  52570. You should have received a copy of the GNU Lesser General Public
  52571. - License along with the GNU C Library; if not, write to the Free
  52572. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52573. - 02111-1307 USA. */
  52574. + License along with the GNU C Library; if not, see
  52575. + <http://www.gnu.org/licenses/>. */
  52576. #ifndef _MATH_H
  52577. # error "Never use <bits/huge_vall.h> directly; include <math.h> instead."
  52578. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/inf.h uClibc-git/libc/sysdeps/linux/common/bits/inf.h
  52579. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/inf.h 2012-05-15 09:20:09.000000000 +0200
  52580. +++ uClibc-git/libc/sysdeps/linux/common/bits/inf.h 2014-06-02 17:40:34.342713800 +0200
  52581. @@ -13,9 +13,8 @@
  52582. Lesser General Public License for more details.
  52583. You should have received a copy of the GNU Lesser General Public
  52584. - License along with the GNU C Library; if not, write to the Free
  52585. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52586. - 02111-1307 USA. */
  52587. + License along with the GNU C Library; if not, see
  52588. + <http://www.gnu.org/licenses/>. */
  52589. #ifndef _MATH_H
  52590. # error "Never use <bits/inf.h> directly; include <math.h> instead."
  52591. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/in.h uClibc-git/libc/sysdeps/linux/common/bits/in.h
  52592. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/in.h 2012-05-15 09:20:09.000000000 +0200
  52593. +++ uClibc-git/libc/sysdeps/linux/common/bits/in.h 2014-06-02 17:40:34.342713800 +0200
  52594. @@ -1,4 +1,4 @@
  52595. -/* Copyright (C) 1991-1999, 2000, 2004 Free Software Foundation, Inc.
  52596. +/* Copyright (C) 1991-2013 Free Software Foundation, Inc.
  52597. This file is part of the GNU C Library.
  52598. The GNU C Library is free software; you can redistribute it and/or
  52599. @@ -12,9 +12,8 @@
  52600. Lesser General Public License for more details.
  52601. You should have received a copy of the GNU Lesser General Public
  52602. - License along with the GNU C Library; if not, write to the Free
  52603. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52604. - 02111-1307 USA. */
  52605. + License along with the GNU C Library; if not, see
  52606. + <http://www.gnu.org/licenses/>. */
  52607. /* Linux version. */
  52608. @@ -43,31 +42,49 @@
  52609. #define IP_ADD_SOURCE_MEMBERSHIP 39 /* ip_mreq_source: join source group */
  52610. #define IP_DROP_SOURCE_MEMBERSHIP 40 /* ip_mreq_source: leave source group */
  52611. #define IP_MSFILTER 41
  52612. -#define MCAST_JOIN_GROUP 42 /* group_req: join any-source group */
  52613. -#define MCAST_BLOCK_SOURCE 43 /* group_source_req: block from given group */
  52614. -#define MCAST_UNBLOCK_SOURCE 44 /* group_source_req: unblock from given group*/
  52615. -#define MCAST_LEAVE_GROUP 45 /* group_req: leave any-source group */
  52616. -#define MCAST_JOIN_SOURCE_GROUP 46 /* group_source_req: join source-spec gr */
  52617. -#define MCAST_LEAVE_SOURCE_GROUP 47 /* group_source_req: leave source-spec gr*/
  52618. -#define MCAST_MSFILTER 48
  52619. -
  52620. -#define MCAST_EXCLUDE 0
  52621. -#define MCAST_INCLUDE 1
  52622. -
  52623. -#define IP_ROUTER_ALERT 5 /* bool */
  52624. -#define IP_PKTINFO 8 /* bool */
  52625. -#define IP_PKTOPTIONS 9
  52626. -#define IP_PMTUDISC 10 /* obsolete name? */
  52627. -#define IP_MTU_DISCOVER 10 /* int; see below */
  52628. -#define IP_RECVERR 11 /* bool */
  52629. -#define IP_RECVTTL 12 /* bool */
  52630. -#define IP_RECVTOS 13 /* bool */
  52631. +#if defined __USE_MISC || defined __USE_GNU
  52632. +# define MCAST_JOIN_GROUP 42 /* group_req: join any-source group */
  52633. +# define MCAST_BLOCK_SOURCE 43 /* group_source_req: block from given group */
  52634. +# define MCAST_UNBLOCK_SOURCE 44 /* group_source_req: unblock from given group*/
  52635. +# define MCAST_LEAVE_GROUP 45 /* group_req: leave any-source group */
  52636. +# define MCAST_JOIN_SOURCE_GROUP 46 /* group_source_req: join source-spec gr */
  52637. +# define MCAST_LEAVE_SOURCE_GROUP 47 /* group_source_req: leave source-spec gr*/
  52638. +# define MCAST_MSFILTER 48
  52639. +# define IP_MULTICAST_ALL 49
  52640. +# define IP_UNICAST_IF 50
  52641. +
  52642. +# define MCAST_EXCLUDE 0
  52643. +# define MCAST_INCLUDE 1
  52644. +#endif
  52645. +
  52646. +#define IP_ROUTER_ALERT 5 /* bool */
  52647. +#define IP_PKTINFO 8 /* bool */
  52648. +#define IP_PKTOPTIONS 9
  52649. +#define IP_PMTUDISC 10 /* obsolete name? */
  52650. +#define IP_MTU_DISCOVER 10 /* int; see below */
  52651. +#define IP_RECVERR 11 /* bool */
  52652. +#define IP_RECVTTL 12 /* bool */
  52653. +#define IP_RECVTOS 13 /* bool */
  52654. +#define IP_MTU 14 /* int */
  52655. +#define IP_FREEBIND 15
  52656. +#define IP_IPSEC_POLICY 16
  52657. +#define IP_XFRM_POLICY 17
  52658. +#define IP_PASSSEC 18
  52659. +#define IP_TRANSPARENT 19
  52660. +#define IP_MULTICAST_ALL 49 /* bool */
  52661. +
  52662. +/* TProxy original addresses */
  52663. +#define IP_ORIGDSTADDR 20
  52664. +#define IP_RECVORIGDSTADDR IP_ORIGDSTADDR
  52665. +
  52666. +#define IP_MINTTL 21
  52667. /* IP_MTU_DISCOVER arguments. */
  52668. #define IP_PMTUDISC_DONT 0 /* Never send DF frames. */
  52669. #define IP_PMTUDISC_WANT 1 /* Use per route hints. */
  52670. #define IP_PMTUDISC_DO 2 /* Always DF. */
  52671. +#define IP_PMTUDISC_PROBE 3 /* Ignore dst pmtu. */
  52672. /* To select the IP level. */
  52673. #define SOL_IP 0
  52674. @@ -76,6 +93,7 @@
  52675. #define IP_DEFAULT_MULTICAST_LOOP 1
  52676. #define IP_MAX_MEMBERSHIPS 20
  52677. +#if defined __USE_MISC || defined __USE_GNU
  52678. /* Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS.
  52679. The `ip_dst' field is used for the first-hop gateway when using a
  52680. source route (this gets put into the header proper). */
  52681. @@ -100,6 +118,7 @@
  52682. struct in_addr ipi_spec_dst; /* Routing destination address */
  52683. struct in_addr ipi_addr; /* Header destination address */
  52684. };
  52685. +#endif
  52686. #ifdef __UCLIBC_HAS_IPV6__
  52687. /* Options for use with `getsockopt' and `setsockopt' at the IPv6 level.
  52688. @@ -159,6 +178,7 @@
  52689. #define IPV6_PMTUDISC_DONT 0 /* Never send DF frames. */
  52690. #define IPV6_PMTUDISC_WANT 1 /* Use per route hints. */
  52691. #define IPV6_PMTUDISC_DO 2 /* Always DF. */
  52692. +#define IPV6_PMTUDISC_PROBE 3 /* Ignore dst pmtu. */
  52693. /* Socket level values for IPv6. */
  52694. #define SOL_IPV6 41
  52695. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/initspin.h uClibc-git/libc/sysdeps/linux/common/bits/initspin.h
  52696. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/initspin.h 2012-05-15 09:20:09.000000000 +0200
  52697. +++ uClibc-git/libc/sysdeps/linux/common/bits/initspin.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; see the file COPYING.LIB. If not,
  52702. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  52703. - Boston, MA 02111-1307, USA. */
  52704. + License along with the GNU C Library; see the file COPYING.LIB. If
  52705. + not, see <http://www.gnu.org/licenses/>. */
  52706. /* Initial value of a spinlock. Most platforms should use zero,
  52707. unless they only implement a "test and clear" operation instead of
  52708. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/ioctls.h uClibc-git/libc/sysdeps/linux/common/bits/ioctls.h
  52709. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/ioctls.h 2012-05-15 09:20:09.000000000 +0200
  52710. +++ uClibc-git/libc/sysdeps/linux/common/bits/ioctls.h 2014-06-02 17:40:34.342713800 +0200
  52711. @@ -12,9 +12,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; if not, write to the Free
  52715. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52716. - 02111-1307 USA. */
  52717. + License along with the GNU C Library; if not, see
  52718. + <http://www.gnu.org/licenses/>. */
  52719. #ifndef _SYS_IOCTL_H
  52720. # error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
  52721. 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
  52722. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/ioctl-types.h 2012-05-15 09:20:09.000000000 +0200
  52723. +++ uClibc-git/libc/sysdeps/linux/common/bits/ioctl-types.h 2014-06-02 17:40:34.342713800 +0200
  52724. @@ -13,9 +13,8 @@
  52725. Lesser General Public License for more details.
  52726. You should have received a copy of the GNU Lesser General Public
  52727. - License along with the GNU C Library; if not, write to the Free
  52728. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52729. - 02111-1307 USA. */
  52730. + License along with the GNU C Library; if not, see
  52731. + <http://www.gnu.org/licenses/>. */
  52732. #ifndef _SYS_IOCTL_H
  52733. # error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead."
  52734. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/ipc.h uClibc-git/libc/sysdeps/linux/common/bits/ipc.h
  52735. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
  52736. +++ uClibc-git/libc/sysdeps/linux/common/bits/ipc.h 2014-06-02 17:40:34.342713800 +0200
  52737. @@ -12,9 +12,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. #ifndef _SYS_IPC_H
  52746. # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
  52747. 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
  52748. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/kernel-features.h 2012-05-15 09:20:09.000000000 +0200
  52749. +++ uClibc-git/libc/sysdeps/linux/common/bits/kernel-features.h 2014-06-02 17:40:34.342713800 +0200
  52750. @@ -14,9 +14,8 @@
  52751. Lesser General Public License for more details.
  52752. You should have received a copy of the GNU Lesser General Public
  52753. - License along with the GNU C Library; if not, write to the Free
  52754. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52755. - 02111-1307 USA. */
  52756. + License along with the GNU C Library; if not, see
  52757. + <http://www.gnu.org/licenses/>. */
  52758. /* This file must not contain any C code. At least it must be protected
  52759. to allow using the file also in assembler files. */
  52760. @@ -311,17 +310,19 @@
  52761. /* Support for various CLOEXEC and NONBLOCK flags was added for x86,
  52762. * x86-64, PPC, IA-64, and SPARC in 2.6.27. */
  52763. -#if __LINUX_KERNEL_VERSION >= 0x02061b \
  52764. - && (defined __i386__ || defined __x86_64__ || defined __powerpc__ \
  52765. - || defined __ia64__ || defined __sparc__ || defined __s390__)
  52766. +#if (__LINUX_KERNEL_VERSION >= 0x02061b \
  52767. + && (defined __i386__ || defined __x86_64__ || defined __powerpc__ \
  52768. + || defined __ia64__ || defined __sparc__ || defined __s390__) \
  52769. + ) || (__LINUX_KERNEL_VERSION >= 0x020621 && defined __alpha__) \
  52770. + || defined __aarch64__ || defined __tile__
  52771. /* # define __ASSUME_SOCK_CLOEXEC 1 */
  52772. /* # define __ASSUME_IN_NONBLOCK 1 */
  52773. # define __ASSUME_PIPE2 1
  52774. /* # define __ASSUME_EVENTFD2 1 */
  52775. /* # define __ASSUME_SIGNALFD4 1 */
  52776. +/* # define __ASSUME_DUP3 1 */
  52777. #endif
  52778. -
  52779. /* These features were surely available with 2.4.12. */
  52780. #if __LINUX_KERNEL_VERSION >= 132108 && defined __mc68000__
  52781. # define __ASSUME_MMAP2_SYSCALL 1
  52782. @@ -494,6 +495,14 @@
  52783. # define __ASSUME_PRIVATE_FUTEX 1
  52784. #endif
  52785. +/* Support for fallocate was added in 2.6.23,
  52786. + on s390 only after 2.6.23-rc1, on alpha only after 2.6.33-rc1. */
  52787. +#if __LINUX_KERNEL_VERSION >= 0x020617 \
  52788. + && (!defined __s390__ || __LINUX_KERNEL_VERSION >= 0x020618) \
  52789. + && (!defined __alpha__ || __LINUX_KERNEL_VERSION >= 0x020621)
  52790. +# define __ASSUME_FALLOCATE 1
  52791. +#endif
  52792. +
  52793. /* getcpu is a syscall for x86-64 since 3.1. */
  52794. #if defined __x86_64__ && __LINUX_KERNEL_VERSION >= 0x030100
  52795. # define __ASSUME_GETCPU_SYSCALL 1
  52796. 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
  52797. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/kernel_sigaction.h 2012-05-15 09:20:09.000000000 +0200
  52798. +++ uClibc-git/libc/sysdeps/linux/common/bits/kernel_sigaction.h 2014-06-02 17:40:34.342713800 +0200
  52799. @@ -19,18 +19,6 @@
  52800. unsigned long sa_flags;
  52801. void (*sa_restorer)(void);
  52802. };
  52803. -/* In uclibc, userspace struct sigaction is identical to
  52804. - * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel).
  52805. - * See sigaction.h
  52806. - */
  52807. -
  52808. -extern int __syscall_sigaction(int, const struct old_kernel_sigaction *,
  52809. - struct old_kernel_sigaction *);
  52810. -
  52811. #endif
  52812. -
  52813. -extern int __syscall_rt_sigaction(int, const struct sigaction *,
  52814. - struct sigaction *, size_t);
  52815. -
  52816. #endif /* _BITS_SIGACTION_STRUCT_H */
  52817. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/locale.h uClibc-git/libc/sysdeps/linux/common/bits/locale.h
  52818. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/locale.h 2012-05-15 09:20:09.000000000 +0200
  52819. +++ uClibc-git/libc/sysdeps/linux/common/bits/locale.h 2014-06-02 17:40:34.342713800 +0200
  52820. @@ -13,9 +13,8 @@
  52821. Lesser General Public License for more details.
  52822. You should have received a copy of the GNU Lesser General Public
  52823. - License along with the GNU C Library; if not, write to the Free
  52824. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52825. - 02111-1307 USA. */
  52826. + License along with the GNU C Library; if not, see
  52827. + <http://www.gnu.org/licenses/>. */
  52828. #if !defined _LOCALE_H && !defined _LANGINFO_H
  52829. # error "Never use <bits/locale.h> directly; include <locale.h> instead."
  52830. 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
  52831. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/local_lim.h 2012-05-15 09:20:09.000000000 +0200
  52832. +++ uClibc-git/libc/sysdeps/linux/common/bits/local_lim.h 2014-06-02 17:40:34.342713800 +0200
  52833. @@ -13,9 +13,8 @@
  52834. Lesser General Public License for more details.
  52835. You should have received a copy of the GNU Lesser General Public
  52836. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  52837. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  52838. - Boston, MA 02111-1307, USA. */
  52839. + License along with the GNU C Library; see the file COPYING.LIB. If
  52840. + not, see <http://www.gnu.org/licenses/>. */
  52841. /* The kernel header pollutes the namespace with the NR_OPEN symbol
  52842. and defines LINK_MAX although filesystems have different maxima. A
  52843. @@ -71,6 +70,8 @@
  52844. /* The number of threads per process. */
  52845. #define _POSIX_THREAD_THREADS_MAX 64
  52846. +/* We have no predefined limit on the number of threads. */
  52847. +#undef PTHREAD_THREADS_MAX
  52848. /* Maximum amount by which a process can descrease its asynchronous I/O
  52849. priority level. */
  52850. @@ -93,3 +94,6 @@
  52851. /* Maximum message queue priority level. */
  52852. #define MQ_PRIO_MAX 32768
  52853. +
  52854. +/* Maximum value the semaphore can have. */
  52855. +#define SEM_VALUE_MAX (2147483647)
  52856. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/mathcalls.h uClibc-git/libc/sysdeps/linux/common/bits/mathcalls.h
  52857. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/mathcalls.h 2012-05-15 09:20:09.000000000 +0200
  52858. +++ uClibc-git/libc/sysdeps/linux/common/bits/mathcalls.h 2014-06-02 17:40:34.342713800 +0200
  52859. @@ -13,9 +13,8 @@
  52860. Lesser General Public License for more details.
  52861. You should have received a copy of the GNU Lesser General Public
  52862. - License along with the GNU C Library; if not, write to the Free
  52863. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52864. - 02111-1307 USA. */
  52865. + License along with the GNU C Library; if not, see
  52866. + <http://www.gnu.org/licenses/>. */
  52867. /* NOTE: Because of the special way this file is used by <math.h>, this
  52868. file must NOT be protected from multiple inclusion as header files
  52869. @@ -49,7 +48,7 @@
  52870. /* __MATHCALLX(type,function,[suffix],args,attrib) and
  52871. - * __MATHCALLI(type,function,[suffix],args) include libm_hidden_def
  52872. + * __MATHCALLI(type,function,[suffix],args) include libm_hidden_proto
  52873. * (for "double" versions only, xxxf and xxxl do not get this treatment).
  52874. *
  52875. * __MATHDECL(type,function,[suffix],args) does not.
  52876. @@ -57,7 +56,7 @@
  52877. * (it is just a shortcut to __MATHDECL(_Mdouble_,function,[suffix],args)).
  52878. *
  52879. * __MATHDECL_PRIV(type,function,[suffix],args,attrib)
  52880. - * includes libm_hidden_def (always) and declares __foo, not foo.
  52881. + * includes libm_hidden_proto (always) and declares __foo, not foo.
  52882. */
  52883. @@ -155,7 +154,7 @@
  52884. __MATHCALLI (exp2,, (_Mdouble_ __x))
  52885. /* Compute base-2 logarithm of X. */
  52886. -__MATHCALL (log2,, (_Mdouble_ __x))
  52887. +__MATHCALLI (log2,, (_Mdouble_ __x))
  52888. __END_NAMESPACE_C99
  52889. #endif
  52890. @@ -223,7 +222,7 @@
  52891. /* Return the fractional part of X after dividing out `ilogb (X)'. */
  52892. -__MATHCALL (significand,, (_Mdouble_ __x))
  52893. +__MATHCALLI (significand,, (_Mdouble_ __x))
  52894. #endif /* Use misc. */
  52895. #if defined __USE_MISC || defined __USE_ISOC99
  52896. @@ -236,7 +235,7 @@
  52897. #ifdef __USE_ISOC99
  52898. __BEGIN_NAMESPACE_C99
  52899. /* Return representation of NaN for double type. */
  52900. -__MATHCALLX (nan,, (__const char *__tagb), (__const__))
  52901. +__MATHCALLX (nan,, (const char *__tagb), (__const__))
  52902. __END_NAMESPACE_C99
  52903. #endif
  52904. @@ -278,7 +277,7 @@
  52905. #if defined __USE_MISC || defined __USE_XOPEN
  52906. /* Obsolete alias for `lgamma'. */
  52907. -__MATHCALL (gamma,, (_Mdouble_))
  52908. +__MATHCALLI (gamma,, (_Mdouble_))
  52909. #endif
  52910. #ifdef __USE_MISC
  52911. @@ -286,6 +285,8 @@
  52912. `signgam'. The reentrant version instead takes a pointer and stores
  52913. the value through it. */
  52914. __MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp))
  52915. +/* __MATHCALLI does not work here, probably due to ,_r, */
  52916. +libm_hidden_proto(lgamma_r)
  52917. #endif
  52918. @@ -376,5 +377,5 @@
  52919. #if (defined __USE_MISC || defined __USE_XOPEN_EXTENDED) \
  52920. && defined __UCLIBC_SUSV3_LEGACY__
  52921. /* Return X times (2 to the Nth power). */
  52922. -__MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n))
  52923. +__MATHCALLI (scalb,, (_Mdouble_ __x, _Mdouble_ __n))
  52924. #endif
  52925. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/mathdef.h uClibc-git/libc/sysdeps/linux/common/bits/mathdef.h
  52926. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  52927. +++ uClibc-git/libc/sysdeps/linux/common/bits/mathdef.h 2014-06-02 17:40:34.342713800 +0200
  52928. @@ -12,9 +12,8 @@
  52929. Lesser General Public License for more details.
  52930. You should have received a copy of the GNU Lesser General Public
  52931. - License along with the GNU C Library; if not, write to the Free
  52932. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52933. - 02111-1307 USA. */
  52934. + License along with the GNU C Library; if not, see
  52935. + <http://www.gnu.org/licenses/>. */
  52936. #if !defined _MATH_H && !defined _COMPLEX_H
  52937. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  52938. 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
  52939. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/mman-common.h 2012-05-15 09:20:09.000000000 +0200
  52940. +++ uClibc-git/libc/sysdeps/linux/common/bits/mman-common.h 2014-06-02 17:40:34.342713800 +0200
  52941. @@ -13,9 +13,8 @@
  52942. Lesser General Public License for more details.
  52943. You should have received a copy of the GNU Lesser General Public
  52944. - License along with the GNU C Library; if not, write to the Free
  52945. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52946. - 02111-1307 USA. */
  52947. + License along with the GNU C Library; if not, see
  52948. + <http://www.gnu.org/licenses/>. */
  52949. #ifndef _SYS_MMAN_H
  52950. # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
  52951. @@ -64,7 +63,7 @@
  52952. # define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
  52953. # define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
  52954. # define MAP_STACK 0x20000 /* Allocation is for a stack. */
  52955. -# define MAP_UNINITIALIZE 0x4000000 /* For anonymous mmap, memory could
  52956. +# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could
  52957. be uninitialized. */
  52958. #endif
  52959. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/mqueue.h uClibc-git/libc/sysdeps/linux/common/bits/mqueue.h
  52960. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/mqueue.h 2012-05-15 09:20:09.000000000 +0200
  52961. +++ uClibc-git/libc/sysdeps/linux/common/bits/mqueue.h 2014-06-02 17:40:34.342713800 +0200
  52962. @@ -12,9 +12,8 @@
  52963. Lesser General Public License for more details.
  52964. You should have received a copy of the GNU Lesser General Public
  52965. - License along with the GNU C Library; if not, write to the Free
  52966. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52967. - 02111-1307 USA. */
  52968. + License along with the GNU C Library; if not, see
  52969. + <http://www.gnu.org/licenses/>. */
  52970. #ifndef _MQUEUE_H
  52971. # error "Never use <bits/mqueue.h> directly; include <mqueue.h> instead."
  52972. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/msq.h uClibc-git/libc/sysdeps/linux/common/bits/msq.h
  52973. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
  52974. +++ uClibc-git/libc/sysdeps/linux/common/bits/msq.h 2014-06-02 17:40:34.342713800 +0200
  52975. @@ -12,9 +12,8 @@
  52976. Lesser General Public License for more details.
  52977. You should have received a copy of the GNU Lesser General Public
  52978. - License along with the GNU C Library; if not, write to the Free
  52979. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52980. - 02111-1307 USA. */
  52981. + License along with the GNU C Library; if not, see
  52982. + <http://www.gnu.org/licenses/>. */
  52983. #ifndef _SYS_MSG_H
  52984. # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
  52985. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/nan.h uClibc-git/libc/sysdeps/linux/common/bits/nan.h
  52986. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/nan.h 2012-05-15 09:20:09.000000000 +0200
  52987. +++ uClibc-git/libc/sysdeps/linux/common/bits/nan.h 2014-06-02 17:40:34.342713800 +0200
  52988. @@ -13,9 +13,8 @@
  52989. Lesser General Public License for more details.
  52990. You should have received a copy of the GNU Lesser General Public
  52991. - License along with the GNU C Library; if not, write to the Free
  52992. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52993. - 02111-1307 USA. */
  52994. + License along with the GNU C Library; if not, see
  52995. + <http://www.gnu.org/licenses/>. */
  52996. #ifndef _MATH_H
  52997. # error "Never use <bits/nan.h> directly; include <math.h> instead."
  52998. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/netdb.h uClibc-git/libc/sysdeps/linux/common/bits/netdb.h
  52999. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/netdb.h 2012-05-15 09:20:09.000000000 +0200
  53000. +++ uClibc-git/libc/sysdeps/linux/common/bits/netdb.h 2014-06-02 17:40:34.342713800 +0200
  53001. @@ -12,9 +12,8 @@
  53002. Lesser General Public License for more details.
  53003. You should have received a copy of the GNU Lesser General Public
  53004. - License along with the GNU C Library; if not, write to the Free
  53005. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53006. - 02111-1307 USA. */
  53007. + License along with the GNU C Library; if not, see
  53008. + <http://www.gnu.org/licenses/>. */
  53009. #ifndef _NETDB_H
  53010. # error "Never include <bits/netdb.h> directly; use <netdb.h> instead."
  53011. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/poll.h uClibc-git/libc/sysdeps/linux/common/bits/poll.h
  53012. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/poll.h 2012-05-15 09:20:09.000000000 +0200
  53013. +++ uClibc-git/libc/sysdeps/linux/common/bits/poll.h 2014-06-02 17:40:34.342713800 +0200
  53014. @@ -12,9 +12,8 @@
  53015. Lesser General Public License for more details.
  53016. You should have received a copy of the GNU Lesser General Public
  53017. - License along with the GNU C Library; if not, write to the Free
  53018. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53019. - 02111-1307 USA. */
  53020. + License along with the GNU C Library; if not, see
  53021. + <http://www.gnu.org/licenses/>. */
  53022. #ifndef _SYS_POLL_H
  53023. # error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
  53024. 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
  53025. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/posix1_lim.h 2012-05-15 09:20:09.000000000 +0200
  53026. +++ uClibc-git/libc/sysdeps/linux/common/bits/posix1_lim.h 2014-06-02 17:40:34.342713800 +0200
  53027. @@ -12,9 +12,8 @@
  53028. Lesser General Public License for more details.
  53029. You should have received a copy of the GNU Lesser General Public
  53030. - License along with the GNU C Library; if not, write to the Free
  53031. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53032. - 02111-1307 USA. */
  53033. + License along with the GNU C Library; if not, see
  53034. + <http://www.gnu.org/licenses/>. */
  53035. /*
  53036. * POSIX Standard: 2.9.2 Minimum Values Added to <limits.h>
  53037. 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
  53038. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/posix2_lim.h 2012-05-15 09:20:09.000000000 +0200
  53039. +++ uClibc-git/libc/sysdeps/linux/common/bits/posix2_lim.h 2014-06-02 17:40:34.342713800 +0200
  53040. @@ -12,9 +12,8 @@
  53041. Lesser General Public License for more details.
  53042. You should have received a copy of the GNU Lesser General Public
  53043. - License along with the GNU C Library; if not, write to the Free
  53044. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53045. - 02111-1307 USA. */
  53046. + License along with the GNU C Library; if not, see
  53047. + <http://www.gnu.org/licenses/>. */
  53048. /*
  53049. * Never include this file directly; include <limits.h> instead.
  53050. 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
  53051. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/posix_opt.h 2012-05-15 09:20:09.000000000 +0200
  53052. +++ uClibc-git/libc/sysdeps/linux/common/bits/posix_opt.h 2014-06-02 17:40:34.342713800 +0200
  53053. @@ -1,5 +1,5 @@
  53054. /* Define POSIX options for Linux.
  53055. - Copyright (C) 1996-2001, 2002, 2003, 2004 Free Software Foundation, Inc.
  53056. + Copyright (C) 1996-2004, 2006, 2008, 2009 Free Software Foundation, Inc.
  53057. This file is part of the GNU C Library.
  53058. The GNU C Library is free software; you can redistribute it and/or
  53059. @@ -13,12 +13,11 @@
  53060. Lesser General Public License for more details.
  53061. You should have received a copy of the GNU Lesser General Public
  53062. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  53063. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  53064. - Boston, MA 02111-1307, USA. */
  53065. + License along with the GNU C Library; see the file COPYING.LIB. If
  53066. + not, see <http://www.gnu.org/licenses/>. */
  53067. -#ifndef _POSIX_OPT_H
  53068. -#define _POSIX_OPT_H 1
  53069. +#ifndef _BITS_POSIX_OPT_H
  53070. +#define _BITS_POSIX_OPT_H 1
  53071. /* Job control is supported. */
  53072. #define _POSIX_JOB_CONTROL 1
  53073. @@ -27,28 +26,28 @@
  53074. #define _POSIX_SAVED_IDS 1
  53075. /* Priority scheduling is supported. */
  53076. -#define _POSIX_PRIORITY_SCHEDULING 200112L
  53077. +#define _POSIX_PRIORITY_SCHEDULING 200809L
  53078. /* Synchronizing file data is supported. */
  53079. -#define _POSIX_SYNCHRONIZED_IO 200112L
  53080. +#define _POSIX_SYNCHRONIZED_IO 200809L
  53081. /* The fsync function is present. */
  53082. -#define _POSIX_FSYNC 200112L
  53083. +#define _POSIX_FSYNC 200809L
  53084. /* Mapping of files to memory is supported. */
  53085. -#define _POSIX_MAPPED_FILES 200112L
  53086. +#define _POSIX_MAPPED_FILES 200809L
  53087. /* Locking of all memory is supported. */
  53088. -#define _POSIX_MEMLOCK 200112L
  53089. +#define _POSIX_MEMLOCK 200809L
  53090. /* Locking of ranges of memory is supported. */
  53091. -#define _POSIX_MEMLOCK_RANGE 200112L
  53092. +#define _POSIX_MEMLOCK_RANGE 200809L
  53093. /* Setting of memory protections is supported. */
  53094. -#define _POSIX_MEMORY_PROTECTION 200112L
  53095. +#define _POSIX_MEMORY_PROTECTION 200809L
  53096. -/* Only root can change owner of file. */
  53097. -#define _POSIX_CHOWN_RESTRICTED 1
  53098. +/* Some filesystems allow all users to change file ownership. */
  53099. +#define _POSIX_CHOWN_RESTRICTED 0
  53100. /* `c_cc' member of 'struct termios' structure can be disabled by
  53101. using the value _POSIX_VDISABLE. */
  53102. @@ -60,53 +59,67 @@
  53103. /* X/Open realtime support is available. */
  53104. #define _XOPEN_REALTIME 1
  53105. +/* X/Open thread realtime support is available. */
  53106. +#define _XOPEN_REALTIME_THREADS 1
  53107. +
  53108. /* XPG4.2 shared memory is supported. */
  53109. #define _XOPEN_SHM 1
  53110. /* Tell we have POSIX threads. */
  53111. -#define _POSIX_THREADS 200112L
  53112. +#define _POSIX_THREADS 200809L
  53113. /* We have the reentrant functions described in POSIX. */
  53114. #define _POSIX_REENTRANT_FUNCTIONS 1
  53115. -#define _POSIX_THREAD_SAFE_FUNCTIONS 200112L
  53116. +#define _POSIX_THREAD_SAFE_FUNCTIONS 200809L
  53117. /* We provide priority scheduling for threads. */
  53118. -#define _POSIX_THREAD_PRIORITY_SCHEDULING 200112L
  53119. +#define _POSIX_THREAD_PRIORITY_SCHEDULING 200809L
  53120. /* We support user-defined stack sizes. */
  53121. -#define _POSIX_THREAD_ATTR_STACKSIZE 200112L
  53122. +#define _POSIX_THREAD_ATTR_STACKSIZE 200809L
  53123. /* We support user-defined stacks. */
  53124. -#define _POSIX_THREAD_ATTR_STACKADDR 200112L
  53125. +#define _POSIX_THREAD_ATTR_STACKADDR 200809L
  53126. -#ifdef __UCLIBC_HAS_REALTIME__
  53127. -/* We support POSIX.1b semaphores. */
  53128. -#define _POSIX_SEMAPHORES 200112L
  53129. +/* We support priority inheritence. */
  53130. +#define _POSIX_THREAD_PRIO_INHERIT 200809L
  53131. +
  53132. +/* We support priority protection, though only for non-robust
  53133. + mutexes. */
  53134. +#define _POSIX_THREAD_PRIO_PROTECT 200809L
  53135. +
  53136. +#ifdef __USE_XOPEN2K8
  53137. +/* We support priority inheritence for robust mutexes. */
  53138. +# define _POSIX_THREAD_ROBUST_PRIO_INHERIT 200809L
  53139. +
  53140. +/* We do not support priority protection for robust mutexes. */
  53141. +# define _POSIX_THREAD_ROBUST_PRIO_PROTECT -1
  53142. #endif
  53143. +/* We support POSIX.1b semaphores. */
  53144. +#define _POSIX_SEMAPHORES 200809L
  53145. +
  53146. /* Real-time signals are supported. */
  53147. -#define _POSIX_REALTIME_SIGNALS 200112L
  53148. +#define _POSIX_REALTIME_SIGNALS 200809L
  53149. /* We support asynchronous I/O. */
  53150. -#define _POSIX_ASYNCHRONOUS_IO 200112L
  53151. +#define _POSIX_ASYNCHRONOUS_IO 200809L
  53152. #define _POSIX_ASYNC_IO 1
  53153. /* Alternative name for Unix98. */
  53154. #define _LFS_ASYNCHRONOUS_IO 1
  53155. /* Support for prioritization is also available. */
  53156. -#define _POSIX_PRIORITIZED_IO 200112L
  53157. +#define _POSIX_PRIORITIZED_IO 200809L
  53158. /* The LFS support in asynchronous I/O is also available. */
  53159. #define _LFS64_ASYNCHRONOUS_IO 1
  53160. -#ifdef __UCLIBC_HAS_LFS__
  53161. /* The rest of the LFS is also available. */
  53162. #define _LFS_LARGEFILE 1
  53163. #define _LFS64_LARGEFILE 1
  53164. #define _LFS64_STDIO 1
  53165. -#endif
  53166. /* POSIX shared memory objects are implemented. */
  53167. -#define _POSIX_SHARED_MEMORY_OBJECTS 200112L
  53168. +#define _POSIX_SHARED_MEMORY_OBJECTS 200809L
  53169. /* CPU-time clocks support needs to be checked at runtime. */
  53170. #define _POSIX_CPUTIME 0
  53171. @@ -114,61 +127,53 @@
  53172. /* Clock support in threads must be also checked at runtime. */
  53173. #define _POSIX_THREAD_CPUTIME 0
  53174. -#ifdef __UCLIBC_HAS_REGEX__
  53175. /* GNU libc provides regular expression handling. */
  53176. #define _POSIX_REGEXP 1
  53177. -#endif
  53178. /* Reader/Writer locks are available. */
  53179. -#define _POSIX_READER_WRITER_LOCKS 200112L
  53180. +#define _POSIX_READER_WRITER_LOCKS 200809L
  53181. /* We have a POSIX shell. */
  53182. #define _POSIX_SHELL 1
  53183. /* We support the Timeouts option. */
  53184. -#define _POSIX_TIMEOUTS 200112L
  53185. +#define _POSIX_TIMEOUTS 200809L
  53186. /* We support spinlocks. */
  53187. -#define _POSIX_SPIN_LOCKS 200112L
  53188. +#define _POSIX_SPIN_LOCKS 200809L
  53189. /* The `spawn' function family is supported. */
  53190. -#if 0 /* no support in uClibc (yet) */
  53191. -#define _POSIX_SPAWN 200112L
  53192. -#endif
  53193. +#define _POSIX_SPAWN 200809L
  53194. /* We have POSIX timers. */
  53195. -#define _POSIX_TIMERS 200112L
  53196. +#define _POSIX_TIMERS 200809L
  53197. /* The barrier functions are available. */
  53198. -#define _POSIX_BARRIERS 200112L
  53199. +#define _POSIX_BARRIERS 200809L
  53200. /* POSIX message queues are available. */
  53201. -#define _POSIX_MESSAGE_PASSING 200112L
  53202. +#define _POSIX_MESSAGE_PASSING 200809L
  53203. /* Thread process-shared synchronization is supported. */
  53204. -#define _POSIX_THREAD_PROCESS_SHARED 200112L
  53205. +#define _POSIX_THREAD_PROCESS_SHARED 200809L
  53206. /* The monotonic clock might be available. */
  53207. #define _POSIX_MONOTONIC_CLOCK 0
  53208. /* The clock selection interfaces are available. */
  53209. -#define _POSIX_CLOCK_SELECTION 200112L
  53210. +#define _POSIX_CLOCK_SELECTION 200809L
  53211. /* Advisory information interfaces are available. */
  53212. -#define _POSIX_ADVISORY_INFO 200112L
  53213. +#define _POSIX_ADVISORY_INFO 200809L
  53214. -#ifdef __UCLIBC_HAS_IPV6__
  53215. /* IPv6 support is available. */
  53216. -#define _POSIX_IPV6 200112L
  53217. -#endif
  53218. +#define _POSIX_IPV6 200809L
  53219. -#ifdef __UCLIBC_HAS_SOCKET__
  53220. /* Raw socket support is available. */
  53221. -#define _POSIX_RAW_SOCKETS 200112L
  53222. -#endif
  53223. +#define _POSIX_RAW_SOCKETS 200809L
  53224. /* We have at least one terminal. */
  53225. -#define _POSIX2_CHAR_TERM 200112L
  53226. +#define _POSIX2_CHAR_TERM 200809L
  53227. /* Neither process nor thread sporadic server interfaces is available. */
  53228. #define _POSIX_SPORADIC_SERVER -1
  53229. @@ -183,8 +188,4 @@
  53230. /* Typed memory objects are not available. */
  53231. #define _POSIX_TYPED_MEMORY_OBJECTS -1
  53232. -/* No support for priority inheritance or protection so far. */
  53233. -#define _POSIX_THREAD_PRIO_INHERIT -1
  53234. -#define _POSIX_THREAD_PRIO_PROTECT -1
  53235. -
  53236. -#endif /* posix_opt.h */
  53237. +#endif /* bits/posix_opt.h */
  53238. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/resource.h uClibc-git/libc/sysdeps/linux/common/bits/resource.h
  53239. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/resource.h 2012-05-15 09:20:09.000000000 +0200
  53240. +++ uClibc-git/libc/sysdeps/linux/common/bits/resource.h 2014-06-02 17:40:34.342713800 +0200
  53241. @@ -14,9 +14,8 @@
  53242. Lesser General Public License for more details.
  53243. You should have received a copy of the GNU Lesser General Public
  53244. - License along with the GNU C Library; if not, write to the Free
  53245. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53246. - 02111-1307 USA. */
  53247. + License along with the GNU C Library; if not, see
  53248. + <http://www.gnu.org/licenses/>. */
  53249. #ifndef _SYS_RESOURCE_H
  53250. # error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
  53251. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sched.h uClibc-git/libc/sysdeps/linux/common/bits/sched.h
  53252. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sched.h 2012-05-15 09:20:09.000000000 +0200
  53253. +++ uClibc-git/libc/sysdeps/linux/common/bits/sched.h 2014-06-02 17:40:34.342713800 +0200
  53254. @@ -15,9 +15,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 __need_schedparam
  53263. @@ -109,6 +108,7 @@
  53264. /* Size definition for CPU sets. */
  53265. # define __CPU_SETSIZE 1024
  53266. # define __NCPUBITS (8 * sizeof (__cpu_mask))
  53267. +# include <stdlib.h>
  53268. /* Type for array elements in 'cpu_set_t'. */
  53269. typedef unsigned long int __cpu_mask;
  53270. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/select.h uClibc-git/libc/sysdeps/linux/common/bits/select.h
  53271. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/select.h 2012-05-15 09:20:09.000000000 +0200
  53272. +++ uClibc-git/libc/sysdeps/linux/common/bits/select.h 2014-06-02 17:40:34.342713800 +0200
  53273. @@ -12,9 +12,8 @@
  53274. Lesser General Public License for more details.
  53275. You should have received a copy of the GNU Lesser General Public
  53276. - License along with the GNU C Library; if not, write to the Free
  53277. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53278. - 02111-1307 USA. */
  53279. + License along with the GNU C Library; if not, see
  53280. + <http://www.gnu.org/licenses/>. */
  53281. #ifndef _SYS_SELECT_H
  53282. # error "Never use <bits/select.h> directly; include <sys/select.h> instead."
  53283. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sem.h uClibc-git/libc/sysdeps/linux/common/bits/sem.h
  53284. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
  53285. +++ uClibc-git/libc/sysdeps/linux/common/bits/sem.h 2014-06-02 17:40:34.342713800 +0200
  53286. @@ -12,9 +12,8 @@
  53287. Lesser General Public License for more details.
  53288. You should have received a copy of the GNU Lesser General Public
  53289. - License along with the GNU C Library; if not, write to the Free
  53290. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53291. - 02111-1307 USA. */
  53292. + License along with the GNU C Library; if not, see
  53293. + <http://www.gnu.org/licenses/>. */
  53294. #ifndef _SYS_SEM_H
  53295. # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
  53296. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/shm.h uClibc-git/libc/sysdeps/linux/common/bits/shm.h
  53297. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  53298. +++ uClibc-git/libc/sysdeps/linux/common/bits/shm.h 2014-06-02 17:40:34.342713800 +0200
  53299. @@ -12,9 +12,8 @@
  53300. Lesser General Public License for more details.
  53301. You should have received a copy of the GNU Lesser General Public
  53302. - License along with the GNU C Library; if not, write to the Free
  53303. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53304. - 02111-1307 USA. */
  53305. + License along with the GNU C Library; if not, see
  53306. + <http://www.gnu.org/licenses/>. */
  53307. #ifndef _SYS_SHM_H
  53308. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  53309. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigaction.h uClibc-git/libc/sysdeps/linux/common/bits/sigaction.h
  53310. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigaction.h 2012-05-15 09:20:09.000000000 +0200
  53311. +++ uClibc-git/libc/sysdeps/linux/common/bits/sigaction.h 2014-06-02 17:40:34.342713800 +0200
  53312. @@ -13,9 +13,8 @@
  53313. Lesser General Public License for more details.
  53314. You should have received a copy of the GNU Lesser General Public
  53315. - License along with the GNU C Library; if not, write to the Free
  53316. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53317. - 02111-1307 USA. */
  53318. + License along with the GNU C Library; if not, see
  53319. + <http://www.gnu.org/licenses/>. */
  53320. #ifndef _SIGNAL_H
  53321. # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
  53322. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigcontext.h uClibc-git/libc/sysdeps/linux/common/bits/sigcontext.h
  53323. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigcontext.h 2012-05-15 09:20:09.000000000 +0200
  53324. +++ uClibc-git/libc/sysdeps/linux/common/bits/sigcontext.h 2014-06-02 17:40:34.342713800 +0200
  53325. @@ -12,9 +12,8 @@
  53326. Lesser General Public License for more details.
  53327. You should have received a copy of the GNU Lesser General Public
  53328. - License along with the GNU C Library; if not, write to the Free
  53329. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53330. - 02111-1307 USA. */
  53331. + License along with the GNU C Library; if not, see
  53332. + <http://www.gnu.org/licenses/>. */
  53333. #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
  53334. # error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
  53335. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/common/bits/sigcontextinfo.h
  53336. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  53337. +++ uClibc-git/libc/sysdeps/linux/common/bits/sigcontextinfo.h 2014-06-02 17:40:34.346713822 +0200
  53338. @@ -13,9 +13,8 @@
  53339. Lesser General Public License for more details.
  53340. You should have received a copy of the GNU Lesser General Public
  53341. - License along with the GNU C Library; if not, write to the Free
  53342. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53343. - 02111-1307 USA. */
  53344. + License along with the GNU C Library; if not, see
  53345. + <http://www.gnu.org/licenses/>. */
  53346. /* In general we cannot provide any information. */
  53347. #define SIGCONTEXT struct sigcontext *
  53348. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/siginfo.h uClibc-git/libc/sysdeps/linux/common/bits/siginfo.h
  53349. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/siginfo.h 2012-05-15 09:20:09.000000000 +0200
  53350. +++ uClibc-git/libc/sysdeps/linux/common/bits/siginfo.h 2014-06-02 17:40:34.346713822 +0200
  53351. @@ -13,9 +13,8 @@
  53352. Lesser General Public License for more details.
  53353. You should have received a copy of the GNU Lesser General Public
  53354. - License along with the GNU C Library; if not, write to the Free
  53355. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53356. - 02111-1307 USA. */
  53357. + License along with the GNU C Library; if not, see
  53358. + <http://www.gnu.org/licenses/>. */
  53359. #if !defined _SIGNAL_H && !defined __need_siginfo_t \
  53360. && !defined __need_sigevent_t
  53361. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/signum.h uClibc-git/libc/sysdeps/linux/common/bits/signum.h
  53362. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/signum.h 2012-05-15 09:20:09.000000000 +0200
  53363. +++ uClibc-git/libc/sysdeps/linux/common/bits/signum.h 2014-06-02 17:40:34.346713822 +0200
  53364. @@ -13,9 +13,8 @@
  53365. Lesser General Public License for more details.
  53366. You should have received a copy of the GNU Lesser General Public
  53367. - License along with the GNU C Library; if not, write to the Free
  53368. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53369. - 02111-1307 USA. */
  53370. + License along with the GNU C Library; if not, see
  53371. + <http://www.gnu.org/licenses/>. */
  53372. #ifdef _SIGNAL_H
  53373. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigset.h uClibc-git/libc/sysdeps/linux/common/bits/sigset.h
  53374. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigset.h 2012-05-15 09:20:09.000000000 +0200
  53375. +++ uClibc-git/libc/sysdeps/linux/common/bits/sigset.h 2014-06-02 17:40:34.346713822 +0200
  53376. @@ -13,9 +13,8 @@
  53377. Lesser General Public License for more details.
  53378. You should have received a copy of the GNU Lesser General Public
  53379. - License along with the GNU C Library; if not, write to the Free
  53380. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53381. - 02111-1307 USA. */
  53382. + License along with the GNU C Library; if not, see
  53383. + <http://www.gnu.org/licenses/>. */
  53384. #ifndef _SIGSET_H_types
  53385. # define _SIGSET_H_types 1
  53386. @@ -153,7 +152,7 @@
  53387. checking is done in the non __ versions. */
  53388. # if !defined __USE_EXTERN_INLINES || defined __PROVIDE_OUT_OF_LINE_SIGSETFN
  53389. -extern int __sigismember (__const __sigset_t *, int);
  53390. +extern int __sigismember (const __sigset_t *, int);
  53391. libc_hidden_proto(__sigismember)
  53392. extern int __sigaddset (__sigset_t *, int);
  53393. libc_hidden_proto(__sigaddset)
  53394. @@ -179,7 +178,7 @@
  53395. return BODY; \
  53396. }
  53397. -__SIGSETFN (__sigismember, (__set->__val[__word] & __mask) ? 1 : 0, __const)
  53398. +__SIGSETFN (__sigismember, (__set->__val[__word] & __mask) ? 1 : 0, const)
  53399. __SIGSETFN (__sigaddset, ((__set->__val[__word] |= __mask), 0), )
  53400. __SIGSETFN (__sigdelset, ((__set->__val[__word] &= ~__mask), 0), )
  53401. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigstack.h uClibc-git/libc/sysdeps/linux/common/bits/sigstack.h
  53402. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigstack.h 2012-05-15 09:20:09.000000000 +0200
  53403. +++ uClibc-git/libc/sysdeps/linux/common/bits/sigstack.h 2014-06-02 17:40:34.346713822 +0200
  53404. @@ -13,9 +13,8 @@
  53405. Lesser General Public License for more details.
  53406. You should have received a copy of the GNU Lesser General Public
  53407. - License along with the GNU C Library; if not, write to the Free
  53408. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53409. - 02111-1307 USA. */
  53410. + License along with the GNU C Library; if not, see
  53411. + <http://www.gnu.org/licenses/>. */
  53412. #ifndef _SIGNAL_H
  53413. # error "Never include this file directly. Use <signal.h> instead"
  53414. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigthread.h uClibc-git/libc/sysdeps/linux/common/bits/sigthread.h
  53415. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigthread.h 2012-05-15 09:20:09.000000000 +0200
  53416. +++ uClibc-git/libc/sysdeps/linux/common/bits/sigthread.h 2014-06-02 17:40:34.346713822 +0200
  53417. @@ -13,9 +13,8 @@
  53418. Lesser General Public License for more details.
  53419. You should have received a copy of the GNU Lesser General Public
  53420. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  53421. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  53422. - Boston, MA 02111-1307, USA. */
  53423. + License along with the GNU C Library; see the file COPYING.LIB. If
  53424. + not, see <http://www.gnu.org/licenses/>. */
  53425. #ifndef _BITS_SIGTHREAD_H
  53426. #define _BITS_SIGTHREAD_H 1
  53427. @@ -29,7 +28,7 @@
  53428. /* Modify the signal mask for the calling thread. The arguments have
  53429. the same meaning as for sigprocmask(2). */
  53430. extern int pthread_sigmask (int __how,
  53431. - __const __sigset_t *__restrict __newmask,
  53432. + const __sigset_t *__restrict __newmask,
  53433. __sigset_t *__restrict __oldmask)__THROW;
  53434. /* Send signal SIGNO to the given thread. */
  53435. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sockaddr.h uClibc-git/libc/sysdeps/linux/common/bits/sockaddr.h
  53436. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sockaddr.h 2012-05-15 09:20:09.000000000 +0200
  53437. +++ uClibc-git/libc/sysdeps/linux/common/bits/sockaddr.h 2014-06-02 17:40:34.346713822 +0200
  53438. @@ -13,9 +13,8 @@
  53439. Lesser General Public License for more details.
  53440. You should have received a copy of the GNU Lesser General Public
  53441. - License along with the GNU C Library; if not, write to the Free
  53442. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53443. - 02111-1307 USA. */
  53444. + License along with the GNU C Library; if not, see
  53445. + <http://www.gnu.org/licenses/>. */
  53446. /*
  53447. * Never include this file directly; use <sys/socket.h> instead.
  53448. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/socket.h uClibc-git/libc/sysdeps/linux/common/bits/socket.h
  53449. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/socket.h 2012-05-15 09:20:09.000000000 +0200
  53450. +++ uClibc-git/libc/sysdeps/linux/common/bits/socket.h 2014-06-02 17:40:34.346713822 +0200
  53451. @@ -1,5 +1,6 @@
  53452. /* System-specific socket constants and types. Linux version.
  53453. - Copyright (C) 1991,1992,1994-2001,2004,2006 Free Software Foundation, Inc.
  53454. + Copyright (C) 1991,1992,1994-2001,2004,2006-2012
  53455. + Free Software Foundation, Inc.
  53456. This file is part of the GNU C Library.
  53457. The GNU C Library is free software; you can redistribute it and/or
  53458. @@ -13,19 +14,17 @@
  53459. Lesser General Public License for more details.
  53460. You should have received a copy of the GNU Lesser General Public
  53461. - License along with the GNU C Library; if not, write to the Free
  53462. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53463. - 02111-1307 USA. */
  53464. + License along with the GNU C Library; if not, see
  53465. + <http://www.gnu.org/licenses/>. */
  53466. #ifndef __BITS_SOCKET_H
  53467. #define __BITS_SOCKET_H
  53468. -#if !defined _SYS_SOCKET_H && !defined _NETINET_IN_H
  53469. +#ifndef _SYS_SOCKET_H
  53470. # error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
  53471. #endif
  53472. #define __need_size_t
  53473. -#define __need_NULL
  53474. #include <stddef.h>
  53475. #include <limits.h>
  53476. @@ -37,37 +36,8 @@
  53477. # define __socklen_t_defined
  53478. #endif
  53479. -/* Types of sockets. */
  53480. -enum __socket_type
  53481. -{
  53482. - SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
  53483. - byte streams. */
  53484. -#define SOCK_STREAM SOCK_STREAM
  53485. - SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
  53486. - of fixed maximum length. */
  53487. -#define SOCK_DGRAM SOCK_DGRAM
  53488. - SOCK_RAW = 3, /* Raw protocol interface. */
  53489. -#define SOCK_RAW SOCK_RAW
  53490. - SOCK_RDM = 4, /* Reliably-delivered messages. */
  53491. -#define SOCK_RDM SOCK_RDM
  53492. - SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
  53493. - datagrams of fixed maximum length. */
  53494. -#define SOCK_SEQPACKET SOCK_SEQPACKET
  53495. - SOCK_PACKET = 10, /* Linux specific way of getting packets
  53496. - at the dev level. For writing rarp and
  53497. - other similar things on the user level. */
  53498. -#define SOCK_PACKET SOCK_PACKET
  53499. -
  53500. - /* Flags to be ORed into the type parameter of socket and socketpair and
  53501. - used for the flags parameter of paccept. */
  53502. -
  53503. - SOCK_CLOEXEC = 02000000, /* Atomically set close-on-exec flag for the
  53504. - new descriptor(s). */
  53505. -#define SOCK_CLOEXEC SOCK_CLOEXEC
  53506. - SOCK_NONBLOCK = 04000 /* Atomically mark descriptor(s) as
  53507. - non-blocking. */
  53508. -#define SOCK_NONBLOCK SOCK_NONBLOCK
  53509. -};
  53510. +/* Get the architecture-dependent definition of enum __socket_type. */
  53511. +#include <bits/socket_type.h>
  53512. /* Protocol families. */
  53513. #define PF_UNSPEC 0 /* Unspecified. */
  53514. @@ -94,22 +64,24 @@
  53515. #define PF_ASH 18 /* Ash. */
  53516. #define PF_ECONET 19 /* Acorn Econet. */
  53517. #define PF_ATMSVC 20 /* ATM SVCs. */
  53518. +#define PF_RDS 21 /* RDS sockets. */
  53519. #define PF_SNA 22 /* Linux SNA Project */
  53520. #define PF_IRDA 23 /* IRDA sockets. */
  53521. #define PF_PPPOX 24 /* PPPoX sockets. */
  53522. #define PF_WANPIPE 25 /* Wanpipe API sockets. */
  53523. -#define PF_LLC 26 /* Linux LLC. */
  53524. -#define PF_CAN 29 /* Controller Area Network. */
  53525. -#define PF_TIPC 30 /* TIPC sockets. */
  53526. +#define PF_LLC 26 /* Linux LLC. */
  53527. +#define PF_CAN 29 /* Controller Area Network. */
  53528. +#define PF_TIPC 30 /* TIPC sockets. */
  53529. #define PF_BLUETOOTH 31 /* Bluetooth sockets. */
  53530. #define PF_IUCV 32 /* IUCV sockets. */
  53531. -#define PF_RXRPC 33 /* RxRPC sockets. */
  53532. -#define PF_ISDN 34 /* mISDN sockets. */
  53533. -#define PF_PHONET 35 /* Phonet sockets. */
  53534. -#define PF_IEEE802154 36 /* IEEE 802.15.4 sockets. */
  53535. -#define PF_CAIF 37 /* CAIF sockets. */
  53536. -#define PF_ALG 38 /* Algorithm sockets. */
  53537. -#define PF_MAX 39 /* For now.. */
  53538. +#define PF_RXRPC 33 /* RxRPC sockets. */
  53539. +#define PF_ISDN 34 /* mISDN sockets. */
  53540. +#define PF_PHONET 35 /* Phonet sockets. */
  53541. +#define PF_IEEE802154 36 /* IEEE 802.15.4 sockets. */
  53542. +#define PF_CAIF 37 /* CAIF sockets. */
  53543. +#define PF_ALG 38 /* Algorithm sockets. */
  53544. +#define PF_NFC 39 /* NFC sockets. */
  53545. +#define PF_MAX 40 /* For now.. */
  53546. /* Address families. */
  53547. #define AF_UNSPEC PF_UNSPEC
  53548. @@ -136,21 +108,23 @@
  53549. #define AF_ASH PF_ASH
  53550. #define AF_ECONET PF_ECONET
  53551. #define AF_ATMSVC PF_ATMSVC
  53552. +#define AF_RDS PF_RDS
  53553. #define AF_SNA PF_SNA
  53554. #define AF_IRDA PF_IRDA
  53555. #define AF_PPPOX PF_PPPOX
  53556. #define AF_WANPIPE PF_WANPIPE
  53557. -#define AF_LLC PF_LLC
  53558. -#define AF_CAN PF_CAN
  53559. -#define AF_TIPC PF_TIPC
  53560. +#define AF_LLC PF_LLC
  53561. +#define AF_CAN PF_CAN
  53562. +#define AF_TIPC PF_TIPC
  53563. #define AF_BLUETOOTH PF_BLUETOOTH
  53564. -#define AF_IUCV PF_IUCV
  53565. -#define AF_RXRPC PF_RXRPC
  53566. -#define AF_ISDN PF_ISDN
  53567. -#define AF_PHONET PF_PHONET
  53568. -#define AF_IEEE802154 PF_IEEE802154
  53569. -#define AF_CAIF PF_CAIF
  53570. -#define AF_ALG PF_ALG
  53571. +#define AF_IUCV PF_IUCV
  53572. +#define AF_RXRPC PF_RXRPC
  53573. +#define AF_ISDN PF_ISDN
  53574. +#define AF_PHONET PF_PHONET
  53575. +#define AF_IEEE802154 PF_IEEE802154
  53576. +#define AF_CAIF PF_CAIF
  53577. +#define AF_ALG PF_ALG
  53578. +#define AF_NFC PF_NFC
  53579. #define AF_MAX PF_MAX
  53580. /* Socket level values. Others are defined in the appropriate headers.
  53581. @@ -235,8 +209,14 @@
  53582. #define MSG_ERRQUEUE MSG_ERRQUEUE
  53583. MSG_NOSIGNAL = 0x4000, /* Do not generate SIGPIPE. */
  53584. #define MSG_NOSIGNAL MSG_NOSIGNAL
  53585. - MSG_MORE = 0x8000 /* Sender will send more. */
  53586. + MSG_MORE = 0x8000, /* Sender will send more. */
  53587. #define MSG_MORE MSG_MORE
  53588. + MSG_WAITFORONE = 0x10000, /* Wait for at least one packet to return.*/
  53589. +#define MSG_WAITFORONE MSG_WAITFORONE
  53590. + MSG_CMSG_CLOEXEC = 0x40000000 /* Set close_on_exit for file
  53591. + descriptor received through
  53592. + SCM_RIGHTS. */
  53593. +#define MSG_CMSG_CLOEXEC MSG_CMSG_CLOEXEC
  53594. };
  53595. @@ -290,7 +270,7 @@
  53596. #define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
  53597. #define CMSG_FIRSTHDR(mhdr) \
  53598. ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \
  53599. - ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL)
  53600. + ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0)
  53601. #define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
  53602. & (size_t) ~(sizeof (size_t) - 1))
  53603. #define CMSG_SPACE(len) (CMSG_ALIGN (len) \
  53604. @@ -302,14 +282,14 @@
  53605. libc_hidden_proto(__cmsg_nxthdr)
  53606. #ifdef __USE_EXTERN_INLINES
  53607. # ifndef _EXTERN_INLINE
  53608. -# define _EXTERN_INLINE extern __inline
  53609. +# define _EXTERN_INLINE __extern_inline
  53610. # endif
  53611. _EXTERN_INLINE struct cmsghdr *
  53612. __NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg))
  53613. {
  53614. if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
  53615. /* The kernel header does this so there may be a reason. */
  53616. - return 0;
  53617. + return (struct cmsghdr *) 0;
  53618. __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
  53619. + CMSG_ALIGN (__cmsg->cmsg_len));
  53620. @@ -318,7 +298,7 @@
  53621. || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)
  53622. > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
  53623. /* No more entries. */
  53624. - return 0;
  53625. + return (struct cmsghdr *) 0;
  53626. return __cmsg;
  53627. }
  53628. #endif /* Use `extern inline'. */
  53629. @@ -329,20 +309,21 @@
  53630. {
  53631. SCM_RIGHTS = 0x01 /* Transfer file descriptors. */
  53632. #define SCM_RIGHTS SCM_RIGHTS
  53633. -#ifdef __USE_BSD
  53634. +#ifdef __USE_GNU
  53635. , SCM_CREDENTIALS = 0x02 /* Credentials passing. */
  53636. # define SCM_CREDENTIALS SCM_CREDENTIALS
  53637. #endif
  53638. };
  53639. +#ifdef __USE_GNU
  53640. /* User visible structure for SCM_CREDENTIALS message */
  53641. -
  53642. struct ucred
  53643. {
  53644. pid_t pid; /* PID of sending process. */
  53645. uid_t uid; /* UID of sending process. */
  53646. gid_t gid; /* GID of sending process. */
  53647. };
  53648. +#endif
  53649. /* Get socket manipulation related informations from kernel headers. */
  53650. #ifndef __GLIBC__
  53651. 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
  53652. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/socket_type.h 1970-01-01 01:00:00.000000000 +0100
  53653. +++ uClibc-git/libc/sysdeps/linux/common/bits/socket_type.h 2014-06-02 17:40:34.346713822 +0200
  53654. @@ -0,0 +1,54 @@
  53655. +/* Define enum __socket_type for generic Linux.
  53656. + Copyright (C) 1991-2012 Free Software Foundation, Inc.
  53657. + This file is part of the GNU C Library.
  53658. +
  53659. + The GNU C Library is free software; you can redistribute it and/or
  53660. + modify it under the terms of the GNU Lesser General Public
  53661. + License as published by the Free Software Foundation; either
  53662. + version 2.1 of the License, or (at your option) any later version.
  53663. +
  53664. + The GNU C Library is distributed in the hope that it will be useful,
  53665. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  53666. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  53667. + Lesser General Public License for more details.
  53668. +
  53669. + You should have received a copy of the GNU Lesser General Public
  53670. + License along with the GNU C Library; if not, see
  53671. + <http://www.gnu.org/licenses/>. */
  53672. +
  53673. +#ifndef _SYS_SOCKET_H
  53674. +# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
  53675. +#endif
  53676. +
  53677. +/* Types of sockets. */
  53678. +enum __socket_type
  53679. +{
  53680. + SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
  53681. + byte streams. */
  53682. +#define SOCK_STREAM SOCK_STREAM
  53683. + SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
  53684. + of fixed maximum length. */
  53685. +#define SOCK_DGRAM SOCK_DGRAM
  53686. + SOCK_RAW = 3, /* Raw protocol interface. */
  53687. +#define SOCK_RAW SOCK_RAW
  53688. + SOCK_RDM = 4, /* Reliably-delivered messages. */
  53689. +#define SOCK_RDM SOCK_RDM
  53690. + SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
  53691. + datagrams of fixed maximum length. */
  53692. +#define SOCK_SEQPACKET SOCK_SEQPACKET
  53693. + SOCK_DCCP = 6, /* Datagram Congestion Control Protocol. */
  53694. +#define SOCK_DCCP SOCK_DCCP
  53695. + SOCK_PACKET = 10, /* Linux specific way of getting packets
  53696. + at the dev level. For writing rarp and
  53697. + other similar things on the user level. */
  53698. +#define SOCK_PACKET SOCK_PACKET
  53699. +
  53700. + /* Flags to be ORed into the type parameter of socket and socketpair. */
  53701. +
  53702. + SOCK_CLOEXEC = 02000000, /* Atomically set close-on-exec flag for the
  53703. + new descriptor(s). */
  53704. +#define SOCK_CLOEXEC SOCK_CLOEXEC
  53705. + SOCK_NONBLOCK = 00004000 /* Atomically mark descriptor(s) as
  53706. + non-blocking. */
  53707. +#define SOCK_NONBLOCK SOCK_NONBLOCK
  53708. +};
  53709. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stab.def uClibc-git/libc/sysdeps/linux/common/bits/stab.def
  53710. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stab.def 2012-05-15 09:20:09.000000000 +0200
  53711. +++ uClibc-git/libc/sysdeps/linux/common/bits/stab.def 2014-06-02 17:40:34.346713822 +0200
  53712. @@ -13,9 +13,8 @@
  53713. Lesser General Public License for more details.
  53714. You should have received a copy of the GNU Lesser General Public
  53715. - License along with the GNU C Library; if not, write to the Free
  53716. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53717. - 02111-1307 USA. */
  53718. + License along with the GNU C Library; if not, see
  53719. + <http://www.gnu.org/licenses/>. */
  53720. /* This contains contribution from Cygnus Support. */
  53721. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/common/bits/stackinfo.h
  53722. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  53723. +++ uClibc-git/libc/sysdeps/linux/common/bits/stackinfo.h 2014-06-02 17:40:34.346713822 +0200
  53724. @@ -12,9 +12,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. /* This file contains a bit of information about the stack allocation
  53733. of the processor. Since there is no general truth we can't say
  53734. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/statfs.h uClibc-git/libc/sysdeps/linux/common/bits/statfs.h
  53735. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/statfs.h 2012-05-15 09:20:09.000000000 +0200
  53736. +++ uClibc-git/libc/sysdeps/linux/common/bits/statfs.h 2014-06-02 17:40:34.346713822 +0200
  53737. @@ -12,9 +12,8 @@
  53738. Lesser General Public License for more details.
  53739. You should have received a copy of the GNU Lesser General Public
  53740. - License along with the GNU C Library; if not, write to the Free
  53741. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53742. - 02111-1307 USA. */
  53743. + License along with the GNU C Library; if not, see
  53744. + <http://www.gnu.org/licenses/>. */
  53745. #ifndef _SYS_STATFS_H
  53746. # error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
  53747. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stat.h uClibc-git/libc/sysdeps/linux/common/bits/stat.h
  53748. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  53749. +++ uClibc-git/libc/sysdeps/linux/common/bits/stat.h 2014-06-02 17:40:34.346713822 +0200
  53750. @@ -12,9 +12,8 @@
  53751. Lesser General Public License for more details.
  53752. You should have received a copy of the GNU Lesser General Public
  53753. - License along with the GNU C Library; if not, write to the Free
  53754. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53755. - 02111-1307 USA. */
  53756. + License along with the GNU C Library; if not, see
  53757. + <http://www.gnu.org/licenses/>. */
  53758. #ifndef _SYS_STAT_H
  53759. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  53760. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/statvfs.h uClibc-git/libc/sysdeps/linux/common/bits/statvfs.h
  53761. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/statvfs.h 2012-05-15 09:20:09.000000000 +0200
  53762. +++ uClibc-git/libc/sysdeps/linux/common/bits/statvfs.h 2014-06-02 17:40:34.346713822 +0200
  53763. @@ -12,9 +12,8 @@
  53764. Lesser General Public License for more details.
  53765. You should have received a copy of the GNU Lesser General Public
  53766. - License along with the GNU C Library; if not, write to the Free
  53767. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53768. - 02111-1307 USA. */
  53769. + License along with the GNU C Library; if not, see
  53770. + <http://www.gnu.org/licenses/>. */
  53771. #ifndef _SYS_STATVFS_H
  53772. # error "Never include <bits/statvfs.h> directly; use <sys/statvfs.h> instead."
  53773. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stdio.h uClibc-git/libc/sysdeps/linux/common/bits/stdio.h
  53774. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stdio.h 2012-05-15 09:20:09.000000000 +0200
  53775. +++ uClibc-git/libc/sysdeps/linux/common/bits/stdio.h 2014-06-02 17:40:34.346713822 +0200
  53776. @@ -13,9 +13,8 @@
  53777. Lesser General Public License for more details.
  53778. You should have received a copy of the GNU Lesser General Public
  53779. - License along with the GNU C Library; if not, write to the Free
  53780. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53781. - 02111-1307 USA. */
  53782. + License along with the GNU C Library; if not, see
  53783. + <http://www.gnu.org/licenses/>. */
  53784. #ifndef _STDIO_H
  53785. # error "Never include <bits/stdio.h> directly; use <stdio.h> instead."
  53786. 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
  53787. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stdio_lim.h 2012-05-15 09:20:09.000000000 +0200
  53788. +++ uClibc-git/libc/sysdeps/linux/common/bits/stdio_lim.h 2014-06-02 17:40:34.346713822 +0200
  53789. @@ -12,9 +12,8 @@
  53790. Lesser General Public License for more details.
  53791. You should have received a copy of the GNU Lesser General Public
  53792. - License along with the GNU C Library; if not, write to the Free
  53793. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53794. - 02111-1307 USA. */
  53795. + License along with the GNU C Library; if not, see
  53796. + <http://www.gnu.org/licenses/>. */
  53797. #if !defined _STDIO_H && !defined __need_FOPEN_MAX && !defined __need_IOV_MAX
  53798. # error "Never include <bits/stdio_lim.h> directly; use <stdio.h> instead."
  53799. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/termios.h uClibc-git/libc/sysdeps/linux/common/bits/termios.h
  53800. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/termios.h 2012-05-15 09:20:09.000000000 +0200
  53801. +++ uClibc-git/libc/sysdeps/linux/common/bits/termios.h 2014-06-02 17:40:34.346713822 +0200
  53802. @@ -14,9 +14,8 @@
  53803. Lesser General Public License for more details.
  53804. You should have received a copy of the GNU Lesser General Public
  53805. - License along with the GNU C Library; if not, write to the Free
  53806. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53807. - 02111-1307 USA. */
  53808. + License along with the GNU C Library; if not, see
  53809. + <http://www.gnu.org/licenses/>. */
  53810. #ifndef _TERMIOS_H
  53811. # error "Never include <bits/termios.h> directly; use <termios.h> instead."
  53812. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/time.h uClibc-git/libc/sysdeps/linux/common/bits/time.h
  53813. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/time.h 2012-05-15 09:20:09.000000000 +0200
  53814. +++ uClibc-git/libc/sysdeps/linux/common/bits/time.h 2014-06-02 17:40:34.346713822 +0200
  53815. @@ -13,9 +13,8 @@
  53816. Lesser General Public License for more details.
  53817. You should have received a copy of the GNU Lesser General Public
  53818. - License along with the GNU C Library; if not, write to the Free
  53819. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53820. - 02111-1307 USA. */
  53821. + License along with the GNU C Library; if not, see
  53822. + <http://www.gnu.org/licenses/>. */
  53823. /*
  53824. * Never include this file directly; use <time.h> instead.
  53825. @@ -54,6 +53,12 @@
  53826. # define CLOCK_PROCESS_CPUTIME_ID 2
  53827. /* Thread-specific CPU-time clock. */
  53828. # define CLOCK_THREAD_CPUTIME_ID 3
  53829. +/* Monotonic system-wide clock, not adjusted for frequency scaling. */
  53830. +# define CLOCK_MONOTONIC_RAW 4
  53831. +/* Identifier for system-wide realtime clock, updated only on ticks. */
  53832. +# define CLOCK_REALTIME_COARSE 5
  53833. +/* Monotonic system-wide clock, updated only on ticks. */
  53834. +# define CLOCK_MONOTONIC_COARSE 6
  53835. /* Flag to indicate time is absolute. */
  53836. # define TIMER_ABSTIME 1
  53837. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/types.h uClibc-git/libc/sysdeps/linux/common/bits/types.h
  53838. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/types.h 2012-05-15 09:20:09.000000000 +0200
  53839. +++ uClibc-git/libc/sysdeps/linux/common/bits/types.h 2014-06-02 17:40:34.346713822 +0200
  53840. @@ -1,5 +1,5 @@
  53841. /* bits/types.h -- definitions of __*_t types underlying *_t types.
  53842. - Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
  53843. + Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
  53844. This file is part of the GNU C Library.
  53845. The GNU C Library is free software; you can redistribute it and/or
  53846. @@ -13,9 +13,8 @@
  53847. Lesser General Public License for more details.
  53848. You should have received a copy of the GNU Lesser General Public
  53849. - License along with the GNU C Library; if not, write to the Free
  53850. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53851. - 02111-1307 USA. */
  53852. + License along with the GNU C Library; if not, see
  53853. + <http://www.gnu.org/licenses/>. */
  53854. /*
  53855. * Never include this file directly; use <sys/types.h> instead.
  53856. @@ -27,8 +26,6 @@
  53857. #include <features.h>
  53858. #include <bits/wordsize.h>
  53859. -#define __need_size_t
  53860. -#include <stddef.h>
  53861. #ifdef _LIBC
  53862. #include <bits/kernel_types.h>
  53863. #endif
  53864. @@ -49,7 +46,7 @@
  53865. #if __WORDSIZE == 64
  53866. typedef signed long int __int64_t;
  53867. typedef unsigned long int __uint64_t;
  53868. -#elif defined(__GNUC__)
  53869. +#elif defined(__GNUC__) || defined __ICC || defined __TenDRA__
  53870. __extension__ typedef signed long long int __int64_t;
  53871. __extension__ typedef unsigned long long int __uint64_t;
  53872. #endif
  53873. @@ -58,7 +55,7 @@
  53874. #if __WORDSIZE == 64
  53875. typedef long int __quad_t;
  53876. typedef unsigned long int __u_quad_t;
  53877. -#elif defined(__GNUC__)
  53878. +#elif defined(__GNUC__) || defined __ICC || defined __TenDRA__
  53879. __extension__ typedef long long int __quad_t;
  53880. __extension__ typedef unsigned long long int __u_quad_t;
  53881. #else
  53882. @@ -200,9 +197,4 @@
  53883. #undef __STD_TYPE
  53884. -/* Now add the thread types. */
  53885. -#if defined __UCLIBC_HAS_THREADS__ && (defined __USE_POSIX199506 || defined __USE_UNIX98)
  53886. -# include <bits/pthreadtypes.h>
  53887. -#endif
  53888. -
  53889. #endif /* bits/types.h */
  53890. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/typesizes.h uClibc-git/libc/sysdeps/linux/common/bits/typesizes.h
  53891. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
  53892. +++ uClibc-git/libc/sysdeps/linux/common/bits/typesizes.h 2014-06-02 17:40:34.346713822 +0200
  53893. @@ -13,9 +13,8 @@
  53894. Lesser General Public License for more details.
  53895. You should have received a copy of the GNU Lesser General Public
  53896. - License along with the GNU C Library; if not, write to the Free
  53897. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53898. - 02111-1307 USA. */
  53899. + License along with the GNU C Library; if not, see
  53900. + <http://www.gnu.org/licenses/>. */
  53901. #ifndef _BITS_TYPES_H
  53902. # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
  53903. 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
  53904. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  53905. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_arch_features.h 2014-06-02 17:40:34.346713822 +0200
  53906. @@ -14,8 +14,8 @@
  53907. /* can your target use syscall6() for mmap ? */
  53908. #undef __UCLIBC_MMAP_HAS_6_ARGS__
  53909. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  53910. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  53911. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  53912. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  53913. /* does your target have a broken create_module() ? */
  53914. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  53915. 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
  53916. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_ctype.h 2012-05-15 09:20:09.000000000 +0200
  53917. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_ctype.h 2014-06-02 17:40:34.346713822 +0200
  53918. @@ -11,9 +11,8 @@
  53919. * Lesser General Public License for more details.
  53920. *
  53921. * You should have received a copy of the GNU Lesser General Public
  53922. - * License along with the GNU C Library; if not, write to the Free
  53923. - * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53924. - * 02111-1307 USA.
  53925. + * License along with the GNU C Library; see the file COPYING.LIB. If
  53926. + * not, see <http://www.gnu.org/licenses/>.
  53927. */
  53928. /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
  53929. 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
  53930. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_fpmax.h 2012-05-15 09:20:09.000000000 +0200
  53931. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_fpmax.h 2014-06-02 17:40:34.346713822 +0200
  53932. @@ -12,10 +12,6 @@
  53933. #ifndef _UCLIBC_FPMAX_H
  53934. #define _UCLIBC_FPMAX_H
  53935. -#ifndef _ISOC99_SOURCE
  53936. -#define _ISOC99_SOURCE 1
  53937. -#endif
  53938. -
  53939. #include <features.h>
  53940. #include <float.h>
  53941. 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
  53942. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_locale.h 2012-05-15 09:20:09.000000000 +0200
  53943. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_locale.h 2014-06-02 17:40:34.346713822 +0200
  53944. @@ -11,9 +11,8 @@
  53945. * Lesser General Public License for more details.
  53946. *
  53947. * You should have received a copy of the GNU Lesser General Public
  53948. - * License along with the GNU C Library; if not, write to the Free
  53949. - * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53950. - * 02111-1307 USA.
  53951. + * License along with the GNU C Library; see the file COPYING.LIB. If
  53952. + * not, see <http://www.gnu.org/licenses/>.
  53953. */
  53954. /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
  53955. @@ -93,7 +92,7 @@
  53956. #ifdef _LIBC
  53957. /* extern void _locale_set(const unsigned char *p); */
  53958. -/* extern void _locale_init(void); */
  53959. +extern void weak_function _locale_init(void) attribute_hidden;
  53960. #include <stddef.h>
  53961. #include <stdint.h>
  53962. @@ -338,7 +337,9 @@
  53963. extern __locale_t __curlocale_var;
  53964. # ifdef __UCLIBC_HAS_THREADS__
  53965. extern __locale_t __curlocale(void) __THROW __attribute__ ((__const__));
  53966. +libc_hidden_proto(__curlocale)
  53967. extern __locale_t __curlocale_set(__locale_t newloc);
  53968. +libc_hidden_proto(__curlocale_set)
  53969. # define __UCLIBC_CURLOCALE (__curlocale())
  53970. # else
  53971. # define __UCLIBC_CURLOCALE (__curlocale_var)
  53972. 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
  53973. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_local_lim.h 2012-05-15 09:20:09.000000000 +0200
  53974. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_local_lim.h 2014-06-02 17:40:34.346713822 +0200
  53975. @@ -11,14 +11,22 @@
  53976. #define _BITS_UCLIBC_LOCAL_LIM_H 1
  53977. /* This file works correctly only if local_lim.h is the NPTL version */
  53978. -#if !defined PTHREAD_KEYS_MAX || defined TIMER_MAX
  53979. +#if !defined PTHREAD_KEYS_MAX || defined TIMER_MAX || !defined SEM_VALUE_MAX
  53980. # error local_lim.h was incorrectly updated, use the NPTL version from glibc
  53981. #endif
  53982. /* This should really be moved to thread specific directories */
  53983. #if defined __UCLIBC_HAS_THREADS__ && !defined __UCLIBC_HAS_THREADS_NATIVE__
  53984. +/* glibc uses 16384 */
  53985. # define PTHREAD_THREADS_MAX 1024
  53986. # define TIMER_MAX 256
  53987. +# ifdef __LINUXTHREADS_OLD__
  53988. +# undef SEM_VALUE_MAX
  53989. +# define SEM_VALUE_MAX ((int) ((~0u) >> 1))
  53990. +# endif
  53991. +# undef PTHREAD_STACK_MIN
  53992. +/* glibc uses at least 16364 */
  53993. +# define PTHREAD_STACK_MIN 1024
  53994. #endif
  53995. #ifndef __UCLIBC_HAS_THREADS__
  53996. @@ -28,6 +36,7 @@
  53997. # undef PTHREAD_DESTRUCTOR_ITERATIONS
  53998. # undef PTHREAD_STACK_MIN
  53999. # undef DELAYTIMER_MAX
  54000. +# undef SEM_VALUE_MAX
  54001. #endif
  54002. #endif /* bits/uClibc_local_lim.h */
  54003. 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
  54004. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_mutex.h 2012-05-15 09:20:09.000000000 +0200
  54005. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_mutex.h 2014-06-02 17:40:34.346713822 +0200
  54006. @@ -13,7 +13,9 @@
  54007. #ifdef __UCLIBC_HAS_THREADS__
  54008. #include <pthread.h>
  54009. +#ifdef _LIBC
  54010. #include <bits/uClibc_pthread.h>
  54011. +#endif
  54012. #define __UCLIBC_MUTEX_TYPE pthread_mutex_t
  54013. @@ -108,8 +110,8 @@
  54014. #define __UCLIBC_IO_MUTEX_AUTO_UNLOCK(M,A) __UCLIBC_MUTEX_AUTO_UNLOCK(M,A)
  54015. #define __UCLIBC_IO_MUTEX_LOCK_CANCEL_UNSAFE(M) __UCLIBC_MUTEX_LOCK_CANCEL_UNSAFE(M)
  54016. #define __UCLIBC_IO_MUTEX_UNLOCK_CANCEL_UNSAFE(M) __UCLIBC_MUTEX_UNLOCK_CANCEL_UNSAFE(M)
  54017. -#define __UCLIBC_IO_MUTEX_CONDITIONAL_LOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_LOCK(M, 1)
  54018. -#define __UCLIBC_IO_MUTEX_CONDITIONAL_UNLOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_UNLOCK(M, 1)
  54019. +#define __UCLIBC_IO_MUTEX_CONDITIONAL_LOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_LOCK(M,C)
  54020. +#define __UCLIBC_IO_MUTEX_CONDITIONAL_UNLOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_UNLOCK(M,C)
  54021. #endif /* of __USE_STDIO_FUTEXES__ */
  54022. @@ -146,8 +148,8 @@
  54023. #define __UCLIBC_IO_MUTEX_AUTO_UNLOCK(M,A) __UCLIBC_MUTEX_AUTO_UNLOCK(M,A)
  54024. #define __UCLIBC_IO_MUTEX_LOCK_CANCEL_UNSAFE(M) __UCLIBC_MUTEX_LOCK_CANCEL_UNSAFE(M)
  54025. #define __UCLIBC_IO_MUTEX_UNLOCK_CANCEL_UNSAFE(M) __UCLIBC_MUTEX_UNLOCK_CANCEL_UNSAFE(M)
  54026. -#define __UCLIBC_IO_MUTEX_CONDITIONAL_LOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_LOCK(M, 1)
  54027. -#define __UCLIBC_IO_MUTEX_CONDITIONAL_UNLOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_UNLOCK(M, 1)
  54028. +#define __UCLIBC_IO_MUTEX_CONDITIONAL_LOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_LOCK(M,C)
  54029. +#define __UCLIBC_IO_MUTEX_CONDITIONAL_UNLOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_UNLOCK(M,C)
  54030. #endif /* of __UCLIBC_HAS_THREADS__ */
  54031. 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
  54032. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
  54033. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_page.h 2014-06-02 17:40:34.346713822 +0200
  54034. @@ -11,9 +11,8 @@
  54035. * Lesser General Public License for more details.
  54036. *
  54037. * You should have received a copy of the GNU Lesser General Public
  54038. - * License along with the GNU C Library; if not, write to the Free
  54039. - * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54040. - * 02111-1307 USA.
  54041. + * License along with the GNU C Library; see the file COPYING.LIB. If
  54042. + * not, see <http://www.gnu.org/licenses/>.
  54043. */
  54044. /* Supply an architecture specific value for PAGE_SIZE and friends. */
  54045. 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
  54046. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_posix_opt.h 1970-01-01 01:00:00.000000000 +0100
  54047. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_posix_opt.h 2014-06-02 17:40:34.346713822 +0200
  54048. @@ -0,0 +1,136 @@
  54049. +/*
  54050. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  54051. + *
  54052. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  54053. + */
  54054. +/*
  54055. + * Never include this file directly; use <unistd.h> instead.
  54056. + */
  54057. +
  54058. +#ifndef _BITS_UCLIBC_POSIX_OPT_H
  54059. +#define _BITS_UCLIBC_POSIX_OPT_H 1
  54060. +
  54061. +/* This file works correctly only if posix_opt.h is the NPTL version */
  54062. +#ifndef _POSIX_THREADS
  54063. +# error posix_opt.h was incorrectly updated, use the NPTL version from glibc
  54064. +#endif
  54065. +
  54066. +/* change first options based on what glibc does */
  54067. +
  54068. +#ifndef __UCLIBC_HAS_THREADS_NATIVE__
  54069. +# undef _POSIX_THREAD_PROCESS_SHARED
  54070. +# define _POSIX_THREAD_PROCESS_SHARED -1
  54071. +# undef _POSIX_CLOCK_SELECTION
  54072. +# define _POSIX_CLOCK_SELECTION -1
  54073. +# undef _POSIX_THREAD_PRIO_INHERIT
  54074. +# define _POSIX_THREAD_PRIO_INHERIT -1
  54075. +# undef _POSIX_THREAD_PRIO_PROTECT
  54076. +# define _POSIX_THREAD_PRIO_PROTECT -1
  54077. +# undef _POSIX_THREAD_ROBUST_PRIO_INHERIT
  54078. +# undef _POSIX_THREAD_ROBUST_PRIO_PROTECT
  54079. +#endif
  54080. +
  54081. +/* this has to be adapted to uClibc, not all are thread related */
  54082. +#ifndef __UCLIBC_HAS_THREADS__
  54083. +# undef _XOPEN_REALTIME_THREADS
  54084. +# undef _POSIX_THREADS
  54085. +# undef _POSIX_REENTRANT_FUNCTIONS
  54086. +# undef _POSIX_THREAD_SAFE_FUNCTIONS
  54087. +# undef _POSIX_THREAD_PRIORITY_SCHEDULING
  54088. +# undef _POSIX_THREAD_ATTR_STACKSIZE
  54089. +# undef _POSIX_THREAD_ATTR_STACKADDR
  54090. +# undef _POSIX_THREAD_PRIO_INHERIT
  54091. +# undef _POSIX_THREAD_PRIO_PROTECT
  54092. +# undef _POSIX_SEMAPHORES
  54093. +# undef _POSIX_ASYNCHRONOUS_IO
  54094. +# undef _POSIX_ASYNC_IO
  54095. +# undef _LFS_ASYNCHRONOUS_IO
  54096. +# undef _POSIX_PRIORITIZED_IO
  54097. +# undef _LFS64_ASYNCHRONOUS_IO
  54098. +# undef _POSIX_CPUTIME
  54099. +# undef _POSIX_THREAD_CPUTIME
  54100. +# undef _POSIX_READER_WRITER_LOCKS
  54101. +# undef _POSIX_TIMEOUTS
  54102. +# undef _POSIX_SPIN_LOCKS
  54103. +# undef _POSIX_BARRIERS
  54104. +# undef _POSIX_MESSAGE_PASSING
  54105. +# undef _POSIX_THREAD_PROCESS_SHARED
  54106. +# undef _POSIX_CLOCK_SELECTION
  54107. +# undef _POSIX_ADVISORY_INFO
  54108. +/*# undef _POSIX_RAW_SOCKETS*/
  54109. +/*# undef _POSIX2_CHAR_TERM*/
  54110. +# undef _POSIX_SPORADIC_SERVER
  54111. +# undef _POSIX_THREAD_SPORADIC_SERVER
  54112. +/*# undef _POSIX_TRACE
  54113. +# undef _POSIX_TRACE_EVENT_FILTER
  54114. +# undef _POSIX_TRACE_INHERIT
  54115. +# undef _POSIX_TRACE_LOG
  54116. +# undef _POSIX_TYPED_MEMORY_OBJECTS*/
  54117. +#endif
  54118. +
  54119. +/* were in earlier version, used by sysconf */
  54120. +#define _POSIX_POLL 1
  54121. +#define _POSIX_SELECT 1
  54122. +
  54123. +/* disable independently unsupported features */
  54124. +#undef _POSIX_TRACE
  54125. +#undef _POSIX_TRACE_EVENT_FILTER
  54126. +#undef _POSIX_TRACE_INHERIT
  54127. +#undef _POSIX_TRACE_LOG
  54128. +#undef _POSIX_TYPED_MEMORY_OBJECTS
  54129. +#undef _POSIX_SPAWN
  54130. +
  54131. +#if 0 /* does uClibc support these? */
  54132. +# undef _POSIX_ASYNCHRONOUS_IO
  54133. +# undef _POSIX_ASYNC_IO
  54134. +# undef _LFS_ASYNCHRONOUS_IO
  54135. +# undef _POSIX_PRIORITIZED_IO
  54136. +# undef _LFS64_ASYNCHRONOUS_IO
  54137. +# undef _POSIX_MESSAGE_PASSING
  54138. +#endif
  54139. +
  54140. +/* change options based on uClibc config options */
  54141. +
  54142. +#if 0 /*ndef __UCLIBC_HAS_POSIX_TIMERS__*/
  54143. +# undef _POSIX_TIMERS
  54144. +# undef _POSIX_THREAD_CPUTIME
  54145. +#endif
  54146. +
  54147. +#if 0 /*ndef __UCLIBC_HAS_POSIX_BARRIERS__*/
  54148. +# undef _POSIX_BARRIERS
  54149. +#endif
  54150. +
  54151. +#if 0 /*ndef __UCLIBC_HAS_POSIX_SPINLOCKS__*/
  54152. +# undef _POSIX_SPIN_LOCKS
  54153. +#endif
  54154. +
  54155. +#ifndef __ARCH_USE_MMU__
  54156. +# undef _POSIX_MEMLOCK
  54157. +# undef _POSIX_MEMLOCK_RANGE
  54158. +# undef _POSIX_MEMORY_PROTECTION
  54159. +#endif
  54160. +
  54161. +#ifndef __UCLIBC_HAS_LFS__
  54162. +# undef _LFS64_ASYNCHRONOUS_IO
  54163. +# undef _LFS_LARGEFILE
  54164. +# undef _LFS64_LARGEFILE
  54165. +# undef _LFS64_STDIO
  54166. +#endif
  54167. +
  54168. +#ifndef __UCLIBC_HAS_REALTIME__
  54169. +# undef _POSIX_SEMAPHORES
  54170. +#endif
  54171. +
  54172. +#ifndef __UCLIBC_HAS_REGEX__
  54173. +# undef _POSIX_REGEXP
  54174. +#endif
  54175. +
  54176. +#ifndef __UCLIBC_HAS_IPV6__
  54177. +# undef _POSIX_IPV6
  54178. +#endif
  54179. +
  54180. +#ifndef __UCLIBC_HAS_SOCKET__
  54181. +# undef _POSIX_RAW_SOCKETS
  54182. +#endif
  54183. +
  54184. +#endif /* bits/uClibc_posix_opt.h */
  54185. 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
  54186. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_pthread.h 2012-05-15 09:20:09.000000000 +0200
  54187. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_pthread.h 2014-06-02 17:40:34.346713822 +0200
  54188. @@ -11,9 +11,8 @@
  54189. * Lesser General Public License for more details.
  54190. *
  54191. * You should have received a copy of the GNU Lesser General Public
  54192. - * License along with the GNU C Library; if not, write to the Free
  54193. - * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54194. - * 02111-1307 USA.
  54195. + * License along with the GNU C Library; see the file COPYING.LIB. If
  54196. + * not, see <http://www.gnu.org/licenses/>.
  54197. */
  54198. /* Supply prototypes for the internal thread functions used by the
  54199. @@ -27,15 +26,12 @@
  54200. # error "Always include <pthread.h> rather than <bits/uClibc_pthread.h>"
  54201. #endif
  54202. -#if defined _LIBC && (defined IS_IN_libc || defined NOT_IN_libc)
  54203. -
  54204. struct _pthread_cleanup_buffer;
  54205. /* Threading functions internal to uClibc. Make these thread functions
  54206. * weak so that we can elide them from single-threaded processes. */
  54207. extern int weak_function __pthread_mutex_init (pthread_mutex_t *__mutex,
  54208. - __const pthread_mutexattr_t *__mutex_attr);
  54209. -extern int weak_function __pthread_mutex_destroy (pthread_mutex_t *__mutex);
  54210. + const pthread_mutexattr_t *__mutex_attr);
  54211. extern int weak_function __pthread_mutex_lock (pthread_mutex_t *__mutex);
  54212. extern int weak_function __pthread_mutex_unlock (pthread_mutex_t *__mutex);
  54213. extern int weak_function __pthread_mutex_trylock (pthread_mutex_t *__mutex);
  54214. @@ -47,5 +43,3 @@
  54215. int __execute);
  54216. #endif
  54217. -
  54218. -#endif
  54219. 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
  54220. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_stdio.h 2012-05-15 09:20:09.000000000 +0200
  54221. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_stdio.h 2014-06-02 17:40:34.346713822 +0200
  54222. @@ -54,27 +54,6 @@
  54223. #endif
  54224. /**********************************************************************/
  54225. -/* Make sure defines related to large files are consistent. */
  54226. -#ifdef _LIBC
  54227. -
  54228. -#ifdef __UCLIBC_HAS_LFS__
  54229. -#undef __USE_LARGEFILE
  54230. -#undef __USE_LARGEFILE64
  54231. -#undef __USE_FILE_OFFSET64
  54232. -/* If we're actually building uClibc with large file support, only define... */
  54233. -#define __USE_LARGEFILE64 1
  54234. -#endif /* __UCLIBC_HAS_LFS__ */
  54235. -
  54236. -#else /* not _LIBC */
  54237. -
  54238. -#ifndef __UCLIBC_HAS_LFS__
  54239. -#if defined(__LARGEFILE64_SOURCE) || defined(__USE_LARGEFILE64) || defined(__USE_FILE_OFFSET64)
  54240. -#error Sorry... uClibc was built without large file support!
  54241. -#endif
  54242. -#endif /* __UCLIBC_HAS_LFS__ */
  54243. -
  54244. -#endif /* _LIBC */
  54245. -/**********************************************************************/
  54246. #ifdef __UCLIBC_HAS_WCHAR__
  54247. #define __need_wchar_t
  54248. @@ -99,22 +78,7 @@
  54249. #define __STDIO_PUTC_MACRO
  54250. #endif
  54251. -
  54252. -/* These are consistency checks on the different options */
  54253. -
  54254. -#ifndef __STDIO_BUFFERS
  54255. -#undef __STDIO_GETC_MACRO
  54256. -#undef __STDIO_PUTC_MACRO
  54257. -#endif
  54258. -
  54259. -#ifdef __BCC__
  54260. -#undef __UCLIBC_HAS_LFS__
  54261. -#endif
  54262. -
  54263. -#ifndef __UCLIBC_HAS_LFS__
  54264. -#undef __UCLIBC_HAS_FOPEN_LARGEFILE_MODE__
  54265. -#endif
  54266. -
  54267. +#ifdef _LIBC
  54268. /**********************************************************************/
  54269. #include <bits/uClibc_mutex.h>
  54270. @@ -169,6 +133,8 @@
  54271. #endif
  54272. #endif
  54273. +#endif /* _LIBC */
  54274. +
  54275. /**********************************************************************/
  54276. #define __STDIO_IOFBF 0 /* Fully buffered. */
  54277. @@ -209,7 +175,7 @@
  54278. typedef __ssize_t __io_read_fn(void *__cookie, char *__buf, size_t __bufsize);
  54279. typedef __ssize_t __io_write_fn(void *__cookie,
  54280. - __const char *__buf, size_t __bufsize);
  54281. + const char *__buf, size_t __bufsize);
  54282. /* NOTE: GLIBC difference!!! -- fopencookie seek function
  54283. * For glibc, the type of pos is always (__off64_t *) but in our case
  54284. * it is type (__off_t *) when the lib is built without large file support.
  54285. @@ -224,7 +190,7 @@
  54286. __io_close_fn *close;
  54287. } _IO_cookie_io_functions_t;
  54288. -#if defined(_LIBC) || defined(_GNU_SOURCE)
  54289. +#ifdef __USE_GNU
  54290. typedef __io_read_fn cookie_read_function_t;
  54291. typedef __io_write_fn cookie_write_function_t;
  54292. @@ -238,6 +204,17 @@
  54293. #endif
  54294. /**********************************************************************/
  54295. +#if defined __UCLIBC_HAS_THREADS__ && !defined __UCLIBC_IO_MUTEX
  54296. +/* keep this in sync with uClibc_mutex.h */
  54297. +# ifdef __USE_STDIO_FUTEXES__
  54298. +# include <bits/stdio-lock.h>
  54299. +# define __UCLIBC_IO_MUTEX(M) _IO_lock_t M
  54300. +# else
  54301. +# include <bits/pthreadtypes.h>
  54302. +# define __UCLIBC_IO_MUTEX(M) pthread_mutex_t M
  54303. +# endif /* __UCLIBC_HAS_THREADS_NATIVE__ */
  54304. +#endif
  54305. +
  54306. struct __STDIO_FILE_STRUCT {
  54307. unsigned short __modeflags;
  54308. /* There could be a hole here, but modeflags is used most.*/
  54309. @@ -351,22 +328,27 @@
  54310. **********************************************************************/
  54311. #if defined _LIBC && (defined IS_IN_libc || defined NOT_IN_libc)
  54312. -extern void _stdio_init(void) attribute_hidden;
  54313. -extern void _stdio_term(void) attribute_hidden;
  54314. +extern void weak_function _stdio_init(void) attribute_hidden;
  54315. +extern void weak_function _stdio_term(void) attribute_hidden;
  54316. #ifdef __STDIO_HAS_OPENLIST
  54317. extern struct __STDIO_FILE_STRUCT *_stdio_openlist;
  54318. #ifdef __UCLIBC_HAS_THREADS__
  54319. -__UCLIBC_IO_MUTEX_EXTERN(_stdio_openlist_add_lock);
  54320. +__UCLIBC_IO_MUTEX_EXTERN(_stdio_openlist_add_lock)
  54321. +# ifndef __UCLIBC_HAS_THREADS_NATIVE__
  54322. + attribute_hidden
  54323. +# endif
  54324. + ;
  54325. #ifdef __STDIO_BUFFERS
  54326. -__UCLIBC_IO_MUTEX_EXTERN(_stdio_openlist_del_lock);
  54327. -extern volatile int _stdio_openlist_use_count; /* _stdio_openlist_del_lock */
  54328. -extern int _stdio_openlist_del_count; /* _stdio_openlist_del_lock */
  54329. +__UCLIBC_IO_MUTEX_EXTERN(_stdio_openlist_del_lock)
  54330. +# ifndef __UCLIBC_HAS_THREADS_NATIVE__
  54331. + attribute_hidden
  54332. +# endif
  54333. + ;
  54334. #endif
  54335. extern int _stdio_user_locking;
  54336. -extern void __stdio_init_mutex(__UCLIBC_MUTEX_TYPE *m) attribute_hidden;
  54337. #endif
  54338. #endif
  54339. @@ -465,6 +447,8 @@
  54340. #else
  54341. +# define __stdin stdin
  54342. +
  54343. #endif /* __STDIO_GETC_MACRO */
  54344. @@ -524,4 +508,8 @@
  54345. # endif
  54346. # endif
  54347. +#else
  54348. +
  54349. +# define __stdout stdout
  54350. +
  54351. #endif /* __STDIO_PUTC_MACRO */
  54352. 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
  54353. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_touplow.h 2012-05-15 09:20:09.000000000 +0200
  54354. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_touplow.h 2014-06-02 17:40:34.346713822 +0200
  54355. @@ -11,9 +11,8 @@
  54356. * Lesser General Public License for more details.
  54357. *
  54358. * You should have received a copy of the GNU Lesser General Public
  54359. - * License along with the GNU C Library; if not, write to the Free
  54360. - * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54361. - * 02111-1307 USA.
  54362. + * License along with the GNU C Library; see the file COPYING.LIB. If
  54363. + * not, see <http://www.gnu.org/licenses/>.
  54364. */
  54365. /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
  54366. 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
  54367. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_uintmaxtostr.h 2012-05-15 09:20:09.000000000 +0200
  54368. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_uintmaxtostr.h 2014-06-02 17:40:34.346713822 +0200
  54369. @@ -11,9 +11,8 @@
  54370. * Lesser General Public License for more details.
  54371. *
  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; see the file COPYING.LIB. If
  54377. + * not, see <http://www.gnu.org/licenses/>.
  54378. */
  54379. /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
  54380. @@ -28,16 +27,6 @@
  54381. #ifndef _UINTMAXTOSTR_H
  54382. #define _UINTMAXTOSTR_H 1
  54383. -#ifdef _FEATURES_H
  54384. -# ifndef __USE_ISOC99
  54385. -# error features was included without defining _ISOC99_SOURCE!
  54386. -# endif
  54387. -#else
  54388. -# ifndef _ISOC99_SOURCE
  54389. -# define _ISOC99_SOURCE
  54390. -# endif
  54391. -#endif
  54392. -
  54393. #include <features.h>
  54394. #include <limits.h>
  54395. #include <stdint.h>
  54396. 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
  54397. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_uwchar.h 2012-05-15 09:20:09.000000000 +0200
  54398. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_uwchar.h 2014-06-02 17:40:34.346713822 +0200
  54399. @@ -11,9 +11,8 @@
  54400. * Lesser General Public License for more details.
  54401. *
  54402. * You should have received a copy of the GNU Lesser General Public
  54403. - * License along with the GNU C Library; if not, write to the Free
  54404. - * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54405. - * 02111-1307 USA.
  54406. + * License along with the GNU C Library; see the file COPYING.LIB. If
  54407. + * not, see <http://www.gnu.org/licenses/>.
  54408. */
  54409. /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
  54410. 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
  54411. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_va_copy.h 2012-05-15 09:20:09.000000000 +0200
  54412. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_va_copy.h 2014-06-02 17:40:34.346713822 +0200
  54413. @@ -13,9 +13,8 @@
  54414. * Lesser General Public License for more details.
  54415. *
  54416. * You should have received a copy of the GNU Lesser General Public
  54417. - * License along with the GNU C Library; if not, write to the Free
  54418. - * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54419. - * 02111-1307 USA.
  54420. + * License along with the GNU C Library; see the file COPYING.LIB. If
  54421. + * not, see <http://www.gnu.org/licenses/>.
  54422. */
  54423. #ifndef _UCLIBC_VA_COPY_H
  54424. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uio.h uClibc-git/libc/sysdeps/linux/common/bits/uio.h
  54425. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uio.h 2012-05-15 09:20:09.000000000 +0200
  54426. +++ uClibc-git/libc/sysdeps/linux/common/bits/uio.h 2014-06-02 17:40:34.346713822 +0200
  54427. @@ -12,9 +12,8 @@
  54428. Lesser General Public License for more details.
  54429. You should have received a copy of the GNU Lesser General Public
  54430. - License along with the GNU C Library; if not, write to the Free
  54431. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54432. - 02111-1307 USA. */
  54433. + License along with the GNU C Library; if not, see
  54434. + <http://www.gnu.org/licenses/>. */
  54435. #if !defined _SYS_UIO_H && !defined _FCNTL_H
  54436. # error "Never include <bits/uio.h> directly; use <sys/uio.h> instead."
  54437. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/ustat.h uClibc-git/libc/sysdeps/linux/common/bits/ustat.h
  54438. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/ustat.h 2012-05-15 09:20:09.000000000 +0200
  54439. +++ uClibc-git/libc/sysdeps/linux/common/bits/ustat.h 2014-06-02 17:40:34.346713822 +0200
  54440. @@ -12,9 +12,8 @@
  54441. Lesser General Public License for more details.
  54442. You should have received a copy of the GNU Lesser General Public
  54443. - License along with the GNU C Library; if not, write to the Free
  54444. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54445. - 02111-1307 USA. */
  54446. + License along with the GNU C Library; if not, see
  54447. + <http://www.gnu.org/licenses/>. */
  54448. #ifndef _SYS_USTAT_H
  54449. # error "Never include <bits/ustat.h> directly; use <sys/ustat.h> instead."
  54450. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/utmp.h uClibc-git/libc/sysdeps/linux/common/bits/utmp.h
  54451. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/utmp.h 2012-05-15 09:20:09.000000000 +0200
  54452. +++ uClibc-git/libc/sysdeps/linux/common/bits/utmp.h 2014-06-02 17:40:34.346713822 +0200
  54453. @@ -14,9 +14,8 @@
  54454. Lesser General Public License for more details.
  54455. You should have received a copy of the GNU Lesser General Public
  54456. - License along with the GNU C Library; if not, write to the Free
  54457. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54458. - 02111-1307 USA. */
  54459. + License along with the GNU C Library; if not, see
  54460. + <http://www.gnu.org/licenses/>. */
  54461. #ifndef _UTMP_H
  54462. # error "Never include <bits/utmp.h> directly; use <utmp.h> instead."
  54463. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/utmpx.h uClibc-git/libc/sysdeps/linux/common/bits/utmpx.h
  54464. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/utmpx.h 2012-05-15 09:20:09.000000000 +0200
  54465. +++ uClibc-git/libc/sysdeps/linux/common/bits/utmpx.h 2014-06-02 17:40:34.346713822 +0200
  54466. @@ -13,9 +13,8 @@
  54467. Lesser General Public License for more details.
  54468. You should have received a copy of the GNU Lesser General Public
  54469. - License along with the GNU C Library; if not, write to the Free
  54470. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54471. - 02111-1307 USA. */
  54472. + License along with the GNU C Library; if not, see
  54473. + <http://www.gnu.org/licenses/>. */
  54474. #ifndef _UTMPX_H
  54475. # error "Never include <bits/utmpx.h> directly; use <utmpx.h> instead."
  54476. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/utsname.h uClibc-git/libc/sysdeps/linux/common/bits/utsname.h
  54477. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/utsname.h 2012-05-15 09:20:09.000000000 +0200
  54478. +++ uClibc-git/libc/sysdeps/linux/common/bits/utsname.h 2014-06-02 17:40:34.346713822 +0200
  54479. @@ -12,9 +12,8 @@
  54480. Lesser General Public License for more details.
  54481. You should have received a copy of the GNU Lesser General Public
  54482. - License along with the GNU C Library; if not, write to the Free
  54483. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54484. - 02111-1307 USA. */
  54485. + License along with the GNU C Library; if not, see
  54486. + <http://www.gnu.org/licenses/>. */
  54487. #ifndef _SYS_UTSNAME_H
  54488. # error "Never include <bits/utsname.h> directly; use <sys/utsname.h> instead."
  54489. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/waitflags.h uClibc-git/libc/sysdeps/linux/common/bits/waitflags.h
  54490. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/waitflags.h 2012-05-15 09:20:09.000000000 +0200
  54491. +++ uClibc-git/libc/sysdeps/linux/common/bits/waitflags.h 2014-06-02 17:40:34.346713822 +0200
  54492. @@ -13,9 +13,8 @@
  54493. Lesser General Public License for more details.
  54494. You should have received a copy of the GNU Lesser General Public
  54495. - License along with the GNU C Library; if not, write to the Free
  54496. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54497. - 02111-1307 USA. */
  54498. + License along with the GNU C Library; if not, see
  54499. + <http://www.gnu.org/licenses/>. */
  54500. #if !defined _SYS_WAIT_H && !defined _STDLIB_H
  54501. # error "Never include <bits/waitflags.h> directly; use <sys/wait.h> instead."
  54502. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/waitstatus.h uClibc-git/libc/sysdeps/linux/common/bits/waitstatus.h
  54503. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/waitstatus.h 2012-05-15 09:20:09.000000000 +0200
  54504. +++ uClibc-git/libc/sysdeps/linux/common/bits/waitstatus.h 2014-06-02 17:40:34.346713822 +0200
  54505. @@ -13,9 +13,8 @@
  54506. Lesser General Public License for more details.
  54507. You should have received a copy of the GNU Lesser General Public
  54508. - License along with the GNU C Library; if not, write to the Free
  54509. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54510. - 02111-1307 USA. */
  54511. + License along with the GNU C Library; if not, see
  54512. + <http://www.gnu.org/licenses/>. */
  54513. #if !defined _SYS_WAIT_H && !defined _STDLIB_H
  54514. # error "Never include <bits/waitstatus.h> directly; use <sys/wait.h> instead."
  54515. @@ -25,7 +24,7 @@
  54516. /* Everything extant so far uses these same bits. */
  54517. -/* If WIFEXITED(STATUS), the low-order 8 bits of the status. */
  54518. +/* If WIFEXITED(STATUS), the low-order 8 bits of exit(N). */
  54519. #define __WEXITSTATUS(status) (((status) & 0xff00) >> 8)
  54520. /* If WIFSIGNALED(STATUS), the terminating signal. */
  54521. @@ -37,12 +36,20 @@
  54522. /* Nonzero if STATUS indicates normal termination. */
  54523. #define __WIFEXITED(status) (__WTERMSIG(status) == 0)
  54524. -/* Nonzero if STATUS indicates termination by a signal. */
  54525. -#define __WIFSIGNALED(status) \
  54526. - (((signed char) (((status) & 0x7f) + 1) >> 1) > 0)
  54527. +/* Nonzero if STATUS indicates termination by a signal.
  54528. + * Note that status 0x007f is "died from signal 127", not "stopped by signal 0".
  54529. + * This does happen on MIPS.
  54530. + * The comparison is "< 0xff", not "< 0x7f", because WCOREDUMP bit (0x80)
  54531. + * can be set too.
  54532. + */
  54533. +#define __WIFSIGNALED(status) (((unsigned)((status) & 0xffff) - 1U) < 0xffU)
  54534. /* Nonzero if STATUS indicates the child is stopped. */
  54535. +#if !defined(__mips__)
  54536. #define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f)
  54537. +#else
  54538. +#define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f && ((status) & 0xff00))
  54539. +#endif
  54540. /* Nonzero if STATUS indicates the child continued after a stop. We only
  54541. define this if <bits/waitflags.h> provides the WCONTINUED flag bit. */
  54542. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/wchar.h uClibc-git/libc/sysdeps/linux/common/bits/wchar.h
  54543. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/wchar.h 2012-05-15 09:20:09.000000000 +0200
  54544. +++ uClibc-git/libc/sysdeps/linux/common/bits/wchar.h 2014-06-02 17:40:34.346713822 +0200
  54545. @@ -13,9 +13,8 @@
  54546. Lesser General Public License for more details.
  54547. You should have received a copy of the GNU Lesser General Public
  54548. - License along with the GNU C Library; if not, write to the Free
  54549. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54550. - 02111-1307 USA. */
  54551. + License along with the GNU C Library; if not, see
  54552. + <http://www.gnu.org/licenses/>. */
  54553. #ifndef _BITS_WCHAR_H
  54554. #define _BITS_WCHAR_H 1
  54555. 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
  54556. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/xopen_lim.h 2012-05-15 09:20:09.000000000 +0200
  54557. +++ uClibc-git/libc/sysdeps/linux/common/bits/xopen_lim.h 2014-06-02 17:40:34.350713844 +0200
  54558. @@ -12,9 +12,8 @@
  54559. Lesser General Public License for more details.
  54560. You should have received a copy of the GNU Lesser General Public
  54561. - License along with the GNU C Library; if not, write to the Free
  54562. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54563. - 02111-1307 USA. */
  54564. + License along with the GNU C Library; if not, see
  54565. + <http://www.gnu.org/licenses/>. */
  54566. /*
  54567. * Never include this file directly; use <limits.h> instead.
  54568. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/brk.c uClibc-git/libc/sysdeps/linux/common/brk.c
  54569. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/brk.c 2012-05-15 09:20:09.000000000 +0200
  54570. +++ uClibc-git/libc/sysdeps/linux/common/brk.c 2014-06-02 17:40:34.350713844 +0200
  54571. @@ -8,10 +8,8 @@
  54572. #include <unistd.h>
  54573. #include <sys/syscall.h>
  54574. -libc_hidden_proto(brk)
  54575. -
  54576. #define __NR___syscall_brk __NR_brk
  54577. -static inline _syscall1(void *, __syscall_brk, void *, end)
  54578. +static __always_inline _syscall1(void *, __syscall_brk, void *, end)
  54579. /* This must be initialized data because commons can't have aliases. */
  54580. void * __curbrk attribute_hidden = 0;
  54581. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/capget.c uClibc-git/libc/sysdeps/linux/common/capget.c
  54582. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/capget.c 2012-05-15 09:20:09.000000000 +0200
  54583. +++ uClibc-git/libc/sysdeps/linux/common/capget.c 2014-06-02 17:40:34.350713844 +0200
  54584. @@ -8,7 +8,8 @@
  54585. */
  54586. #include <sys/syscall.h>
  54587. -int capget(void *header, void *data);
  54588. +
  54589. #ifdef __NR_capget
  54590. +int capget(void *header, void *data);
  54591. _syscall2(int, capget, void *, header, void *, data)
  54592. #endif
  54593. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/capset.c uClibc-git/libc/sysdeps/linux/common/capset.c
  54594. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/capset.c 2012-05-15 09:20:09.000000000 +0200
  54595. +++ uClibc-git/libc/sysdeps/linux/common/capset.c 2014-06-02 17:40:34.350713844 +0200
  54596. @@ -9,7 +9,7 @@
  54597. #include <sys/syscall.h>
  54598. -int capset(void *header, const void *data);
  54599. #ifdef __NR_capset
  54600. +int capset(void *header, const void *data);
  54601. _syscall2(int, capset, void *, header, const void *, data)
  54602. #endif
  54603. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/chdir.c uClibc-git/libc/sysdeps/linux/common/chdir.c
  54604. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/chdir.c 2012-05-15 09:20:09.000000000 +0200
  54605. +++ uClibc-git/libc/sysdeps/linux/common/chdir.c 2014-06-02 17:40:34.350713844 +0200
  54606. @@ -8,15 +8,7 @@
  54607. */
  54608. #include <sys/syscall.h>
  54609. -#include <string.h>
  54610. #include <unistd.h>
  54611. -#include <sys/param.h>
  54612. -
  54613. -#define __NR___syscall_chdir __NR_chdir
  54614. -static __inline__ _syscall1(int, __syscall_chdir, const char *, path)
  54615. -int chdir(const char *path)
  54616. -{
  54617. - return __syscall_chdir(path);
  54618. -}
  54619. +_syscall1(int, chdir, const char *, path)
  54620. libc_hidden_def(chdir)
  54621. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/chmod.c uClibc-git/libc/sysdeps/linux/common/chmod.c
  54622. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/chmod.c 2012-05-15 09:20:09.000000000 +0200
  54623. +++ uClibc-git/libc/sysdeps/linux/common/chmod.c 2014-06-02 17:40:34.350713844 +0200
  54624. @@ -9,13 +9,22 @@
  54625. #include <sys/syscall.h>
  54626. #include <sys/stat.h>
  54627. +#include <unistd.h>
  54628. +#if defined __NR_fchmodat && !defined __NR_chmod
  54629. +# include <fcntl.h>
  54630. +int chmod(const char *path, mode_t mode)
  54631. +{
  54632. + return fchmodat(AT_FDCWD, path, mode, 0);
  54633. +}
  54634. -#define __NR___syscall_chmod __NR_chmod
  54635. +#else
  54636. +# define __NR___syscall_chmod __NR_chmod
  54637. static __inline__ _syscall2(int, __syscall_chmod, const char *, path, __kernel_mode_t, mode)
  54638. int chmod(const char *path, mode_t mode)
  54639. {
  54640. return __syscall_chmod(path, mode);
  54641. }
  54642. +#endif
  54643. libc_hidden_def(chmod)
  54644. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/chown.c uClibc-git/libc/sysdeps/linux/common/chown.c
  54645. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/chown.c 2012-05-15 09:20:09.000000000 +0200
  54646. +++ uClibc-git/libc/sysdeps/linux/common/chown.c 2014-06-02 17:40:34.350713844 +0200
  54647. @@ -11,18 +11,26 @@
  54648. #include <unistd.h>
  54649. #include <bits/wordsize.h>
  54650. +#if defined __NR_fchownat && !defined __NR_chown
  54651. +# include <fcntl.h>
  54652. +int chown(const char *path, uid_t owner, gid_t group)
  54653. +{
  54654. + return fchownat(AT_FDCWD, path, owner, group, 0);
  54655. +}
  54656. -#if (__WORDSIZE == 32 && defined(__NR_chown32)) || __WORDSIZE == 64
  54657. -# ifdef __NR_chown32
  54658. -# undef __NR_chown
  54659. -# define __NR_chown __NR_chown32
  54660. -# endif
  54661. +#else
  54662. +
  54663. +# if (__WORDSIZE == 32 && defined(__NR_chown32)) || __WORDSIZE == 64
  54664. +# ifdef __NR_chown32
  54665. +# undef __NR_chown
  54666. +# define __NR_chown __NR_chown32
  54667. +# endif
  54668. _syscall3(int, chown, const char *, path, uid_t, owner, gid_t, group)
  54669. -#else
  54670. +# else
  54671. -# define __NR___syscall_chown __NR_chown
  54672. +# define __NR___syscall_chown __NR_chown
  54673. static __inline__ _syscall3(int, __syscall_chown, const char *, path,
  54674. __kernel_uid_t, owner, __kernel_gid_t, group)
  54675. @@ -35,6 +43,7 @@
  54676. }
  54677. return (__syscall_chown(path, owner, group));
  54678. }
  54679. -#endif
  54680. +# endif
  54681. +#endif
  54682. libc_hidden_def(chown)
  54683. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/clock_getres.c uClibc-git/libc/sysdeps/linux/common/clock_getres.c
  54684. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/clock_getres.c 2012-05-15 09:20:09.000000000 +0200
  54685. +++ uClibc-git/libc/sysdeps/linux/common/clock_getres.c 2014-06-02 17:40:34.350713844 +0200
  54686. @@ -9,11 +9,11 @@
  54687. #include <sys/syscall.h>
  54688. #include <time.h>
  54689. -#include <unistd.h>
  54690. #ifdef __NR_clock_getres
  54691. _syscall2(int, clock_getres, clockid_t, clock_id, struct timespec*, res)
  54692. #else
  54693. +# include <unistd.h>
  54694. int clock_getres(clockid_t clock_id, struct timespec* res)
  54695. {
  54696. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/clock_gettime.c uClibc-git/libc/sysdeps/linux/common/clock_gettime.c
  54697. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/clock_gettime.c 2012-05-15 09:20:09.000000000 +0200
  54698. +++ uClibc-git/libc/sysdeps/linux/common/clock_gettime.c 2014-06-02 17:40:34.350713844 +0200
  54699. @@ -10,11 +10,11 @@
  54700. #include <sys/syscall.h>
  54701. #include <time.h>
  54702. -#include <sys/time.h>
  54703. #ifdef __NR_clock_gettime
  54704. _syscall2(int, clock_gettime, clockid_t, clock_id, struct timespec*, tp)
  54705. #else
  54706. +# include <sys/time.h>
  54707. int clock_gettime(clockid_t clock_id, struct timespec* tp)
  54708. {
  54709. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/clock_settime.c uClibc-git/libc/sysdeps/linux/common/clock_settime.c
  54710. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/clock_settime.c 2012-05-15 09:20:09.000000000 +0200
  54711. +++ uClibc-git/libc/sysdeps/linux/common/clock_settime.c 2014-06-02 17:40:34.350713844 +0200
  54712. @@ -9,11 +9,11 @@
  54713. #include <sys/syscall.h>
  54714. #include <time.h>
  54715. -#include <sys/time.h>
  54716. #ifdef __NR_clock_settime
  54717. _syscall2(int, clock_settime, clockid_t, clock_id, const struct timespec*, tp)
  54718. #else
  54719. +# include <sys/time.h>
  54720. int clock_settime(clockid_t clock_id, const struct timespec* tp)
  54721. {
  54722. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/close.c uClibc-git/libc/sysdeps/linux/common/close.c
  54723. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/close.c 2012-05-15 09:20:09.000000000 +0200
  54724. +++ uClibc-git/libc/sysdeps/linux/common/close.c 2014-06-02 17:40:34.350713844 +0200
  54725. @@ -9,12 +9,13 @@
  54726. #include <sys/syscall.h>
  54727. #include <unistd.h>
  54728. +#include <cancel.h>
  54729. -_syscall1(int, close, int, fd)
  54730. +#define __NR___close_nocancel __NR_close
  54731. +_syscall1(int, __NC(close), int, fd)
  54732. -#ifndef __LINUXTHREADS_OLD__
  54733. -libc_hidden_def(close)
  54734. -#else
  54735. -libc_hidden_weak(close)
  54736. -strong_alias(close,__libc_close)
  54737. -#endif
  54738. +#define __NR___close_nocancel_no_status __NR_close
  54739. +_syscall_noerr1(void, __close_nocancel_no_status, int, fd)
  54740. +
  54741. +CANCELLABLE_SYSCALL(int, close, (int fd), (fd))
  54742. +lt_libc_hidden(close)
  54743. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/cmsg_nxthdr.c uClibc-git/libc/sysdeps/linux/common/cmsg_nxthdr.c
  54744. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/cmsg_nxthdr.c 2012-05-15 09:20:09.000000000 +0200
  54745. +++ uClibc-git/libc/sysdeps/linux/common/cmsg_nxthdr.c 2014-06-02 17:40:34.350713844 +0200
  54746. @@ -13,12 +13,11 @@
  54747. Lesser General Public License for more details.
  54748. You should have received a copy of the GNU Lesser General Public
  54749. - License along with the GNU C Library; if not, write to the Free
  54750. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54751. - 02111-1307 USA. */
  54752. + License along with the GNU C Library; if not, see
  54753. + <http://www.gnu.org/licenses/>. */
  54754. -#define __FORCE_GLIBC
  54755. #include <features.h>
  54756. +#include <stddef.h>
  54757. /* Prevent math.h from defining a colliding inline */
  54758. #undef __USE_EXTERN_INLINES
  54759. #include <sys/socket.h>
  54760. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/creat64.c uClibc-git/libc/sysdeps/linux/common/creat64.c
  54761. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/creat64.c 2012-05-15 09:20:09.000000000 +0200
  54762. +++ uClibc-git/libc/sysdeps/linux/common/creat64.c 2014-06-02 17:40:34.350713844 +0200
  54763. @@ -12,19 +12,17 @@
  54764. Lesser General Public License for more details.
  54765. You should have received a copy of the GNU Lesser General Public
  54766. - License along with the GNU C Library; if not, write to the Free
  54767. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54768. - 02111-1307 USA. */
  54769. + License along with the GNU C Library; if not, see
  54770. + <http://www.gnu.org/licenses/>. */
  54771. #include <_lfs_64.h>
  54772. -
  54773. -#ifdef __UCLIBC_HAS_LFS__
  54774. #include <fcntl.h>
  54775. -#include <sys/types.h>
  54776. +#include <cancel.h>
  54777. /* Create FILE with protections MODE. */
  54778. int creat64(const char *file, mode_t mode)
  54779. {
  54780. - return open64(file, O_WRONLY|O_CREAT|O_TRUNC, mode);
  54781. + return open64(file, O_WRONLY | O_CREAT | O_TRUNC, mode);
  54782. }
  54783. -#endif /* __UCLIBC_HAS_LFS__ */
  54784. +/* open handled cancellation, noop on uClibc */
  54785. +LIBC_CANCEL_HANDLED();
  54786. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/creat.c uClibc-git/libc/sysdeps/linux/common/creat.c
  54787. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/creat.c 2012-05-15 09:20:09.000000000 +0200
  54788. +++ uClibc-git/libc/sysdeps/linux/common/creat.c 2014-06-02 17:40:34.350713844 +0200
  54789. @@ -8,8 +8,11 @@
  54790. */
  54791. #include <fcntl.h>
  54792. +#include <cancel.h>
  54793. int creat(const char *file, mode_t mode)
  54794. {
  54795. return open(file, O_WRONLY | O_CREAT | O_TRUNC, mode);
  54796. }
  54797. +/* open handled cancellation, noop on uClibc */
  54798. +LIBC_CANCEL_HANDLED();
  54799. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/create_module.c uClibc-git/libc/sysdeps/linux/common/create_module.c
  54800. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/create_module.c 2012-05-15 09:20:09.000000000 +0200
  54801. +++ uClibc-git/libc/sysdeps/linux/common/create_module.c 2014-06-02 17:40:34.350713844 +0200
  54802. @@ -7,10 +7,10 @@
  54803. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  54804. */
  54805. -#include <errno.h>
  54806. -#include <unistd.h>
  54807. #include <features.h>
  54808. -#include <sys/types.h>
  54809. +#define __need_size_t
  54810. +#include <stddef.h>
  54811. +#include <errno.h>
  54812. #include <sys/syscall.h>
  54813. #ifdef __NR_create_module
  54814. @@ -22,7 +22,7 @@
  54815. static __inline__ _syscall2(long, __create_module, const char *, name, size_t, size)
  54816. /* By checking the value of errno, we know if we have been fooled
  54817. * by the syscall2 macro making a very high address look like a
  54818. - * negative, so we we fix it up here. */
  54819. + * negative, so we fix it up here. */
  54820. unsigned long create_module(const char *name, size_t size)
  54821. {
  54822. long ret = __create_module(name, size);
  54823. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/delete_module.c uClibc-git/libc/sysdeps/linux/common/delete_module.c
  54824. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/delete_module.c 2012-05-15 09:20:09.000000000 +0200
  54825. +++ uClibc-git/libc/sysdeps/linux/common/delete_module.c 2014-06-02 17:40:34.350713844 +0200
  54826. @@ -7,7 +7,7 @@
  54827. */
  54828. #include <sys/syscall.h>
  54829. -int delete_module(const char *name, unsigned int flags);
  54830. #ifdef __NR_delete_module
  54831. +int delete_module(const char *name, unsigned int flags);
  54832. _syscall2(int, delete_module, const char *, name, unsigned int, flags)
  54833. #endif
  54834. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/dl-osinfo.h uClibc-git/libc/sysdeps/linux/common/dl-osinfo.h
  54835. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/dl-osinfo.h 2012-05-15 09:20:09.000000000 +0200
  54836. +++ uClibc-git/libc/sysdeps/linux/common/dl-osinfo.h 2014-06-02 17:40:34.350713844 +0200
  54837. @@ -17,10 +17,11 @@
  54838. # endif
  54839. # include <stdint.h>
  54840. -# include <sys/time.h>
  54841. # ifdef IS_IN_libc
  54842. -#include <fcntl.h>
  54843. +# include <fcntl.h>
  54844. +# include <unistd.h>
  54845. +# include <sys/time.h>
  54846. # define OPEN open
  54847. # define READ read
  54848. # define CLOSE close
  54849. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/dup2.c uClibc-git/libc/sysdeps/linux/common/dup2.c
  54850. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/dup2.c 2012-05-15 09:20:09.000000000 +0200
  54851. +++ uClibc-git/libc/sysdeps/linux/common/dup2.c 2014-06-02 17:40:34.350713844 +0200
  54852. @@ -9,7 +9,24 @@
  54853. #include <sys/syscall.h>
  54854. #include <unistd.h>
  54855. +#if defined __NR_dup3 && !defined __NR_dup2
  54856. +# include <fcntl.h>
  54857. +extern int __libc_fcntl (int fd, int cmd, ...);
  54858. +libc_hidden_proto(__libc_fcntl);
  54859. +int dup2(int old, int newfd)
  54860. +{
  54861. + /*
  54862. + * Check if old fd is valid before we try
  54863. + * to ducplicate it. Return it if valid
  54864. + * or EBADF otherwise
  54865. + */
  54866. + if (old == newfd)
  54867. + return fcntl(old, F_GETFL, 0) < 0 ? -1 : newfd;
  54868. + return dup3(old, newfd, 0);
  54869. +}
  54870. +#else
  54871. _syscall2(int, dup2, int, oldfd, int, newfd)
  54872. +#endif
  54873. libc_hidden_def(dup2)
  54874. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/dup3.c uClibc-git/libc/sysdeps/linux/common/dup3.c
  54875. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/dup3.c 1970-01-01 01:00:00.000000000 +0100
  54876. +++ uClibc-git/libc/sysdeps/linux/common/dup3.c 2014-06-02 17:40:34.350713844 +0200
  54877. @@ -0,0 +1,16 @@
  54878. +/* vi: set sw=4 ts=4: */
  54879. +/*
  54880. + * dup3() for uClibc
  54881. + *
  54882. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  54883. + *
  54884. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  54885. + */
  54886. +
  54887. +#include <sys/syscall.h>
  54888. +#include <unistd.h>
  54889. +
  54890. +#if defined(__NR_dup3)
  54891. +_syscall3(int, dup3, int, oldfd, int, newfd, int, flags)
  54892. +libc_hidden_def(dup3)
  54893. +#endif
  54894. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/epoll.c uClibc-git/libc/sysdeps/linux/common/epoll.c
  54895. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/epoll.c 2012-05-15 09:20:09.000000000 +0200
  54896. +++ uClibc-git/libc/sysdeps/linux/common/epoll.c 2014-06-02 17:40:34.350713844 +0200
  54897. @@ -1,6 +1,6 @@
  54898. /* vi: set sw=4 ts=4: */
  54899. /*
  54900. - * epoll_create() / epoll_ctl() / epoll_wait() for uClibc
  54901. + * epoll_create() / epoll_ctl() / epoll_wait() / epoll_pwait() for uClibc
  54902. *
  54903. * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  54904. *
  54905. @@ -9,75 +9,61 @@
  54906. #include <sys/syscall.h>
  54907. #include <sys/epoll.h>
  54908. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  54909. -# include <sysdep-cancel.h>
  54910. -#else
  54911. -# define SINGLE_THREAD_P 1
  54912. -#endif
  54913. +#include <cancel.h>
  54914. -/*
  54915. - * epoll_create()
  54916. - */
  54917. #ifdef __NR_epoll_create
  54918. _syscall1(int, epoll_create, int, size)
  54919. #endif
  54920. -/*
  54921. - * epoll_create1()
  54922. - */
  54923. #ifdef __NR_epoll_create1
  54924. _syscall1(int, epoll_create1, int, flags)
  54925. #endif
  54926. -/*
  54927. - * epoll_ctl()
  54928. - */
  54929. +#if defined __NR_epoll_create1 && !defined __NR_epoll_create
  54930. +int epoll_create(int size)
  54931. +{
  54932. + return INLINE_SYSCALL(epoll_create1, 1, 0);
  54933. +}
  54934. +
  54935. +#endif
  54936. +
  54937. #ifdef __NR_epoll_ctl
  54938. -_syscall4(int,epoll_ctl, int, epfd, int, op, int, fd, struct epoll_event *, event)
  54939. +_syscall4(int, epoll_ctl, int, epfd, int, op, int, fd, struct epoll_event *, event)
  54940. #endif
  54941. -/*
  54942. - * epoll_wait()
  54943. - */
  54944. #ifdef __NR_epoll_wait
  54945. -extern __typeof(epoll_wait) __libc_epoll_wait;
  54946. -int __libc_epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout)
  54947. +static int __NC(epoll_wait)(int epfd, struct epoll_event *events, int maxevents, int timeout)
  54948. {
  54949. - if (SINGLE_THREAD_P)
  54950. - return INLINE_SYSCALL(epoll_wait, 4, epfd, events, maxevents, timeout);
  54951. -# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  54952. - else {
  54953. - int oldtype = LIBC_CANCEL_ASYNC ();
  54954. - int result = INLINE_SYSCALL(epoll_wait, 4, epfd, events, maxevents, timeout);
  54955. - LIBC_CANCEL_RESET (oldtype);
  54956. - return result;
  54957. - }
  54958. -# endif
  54959. + return INLINE_SYSCALL(epoll_wait, 4, epfd, events, maxevents, timeout);
  54960. }
  54961. -weak_alias(__libc_epoll_wait, epoll_wait)
  54962. +CANCELLABLE_SYSCALL(int, epoll_wait, (int epfd, struct epoll_event *events, int maxevents, int timeout),
  54963. + (epfd, events, maxevents, timeout))
  54964. #endif
  54965. -/*
  54966. - * epoll_pwait()
  54967. - */
  54968. #ifdef __NR_epoll_pwait
  54969. # include <signal.h>
  54970. -extern __typeof(epoll_pwait) __libc_epoll_pwait;
  54971. -int __libc_epoll_pwait(int epfd, struct epoll_event *events, int maxevents,
  54972. - int timeout, const sigset_t *set)
  54973. +# define __NR___syscall_epoll_pwait __NR_epoll_pwait
  54974. +static __always_inline _syscall6(int, __syscall_epoll_pwait, int, epfd, struct epoll_event *, events,
  54975. + int, maxevents, int, timeout, const sigset_t *, sigmask, size_t, sigsetsize)
  54976. +
  54977. +static int __NC(epoll_pwait)(int epfd, struct epoll_event *events, int maxevents, int timeout,
  54978. + const sigset_t *set)
  54979. {
  54980. - int nsig = _NSIG / 8;
  54981. - if (SINGLE_THREAD_P)
  54982. - return INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, nsig);
  54983. -# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  54984. - else {
  54985. - int oldtype = LIBC_CANCEL_ASYNC ();
  54986. - int result = INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, nsig);
  54987. - LIBC_CANCEL_RESET (oldtype);
  54988. - return result;
  54989. - }
  54990. -# endif
  54991. + return __syscall_epoll_pwait(epfd, events, maxevents, timeout, set, __SYSCALL_SIGSET_T_SIZE);
  54992. }
  54993. -weak_alias(__libc_epoll_pwait, epoll_pwait)
  54994. +CANCELLABLE_SYSCALL(int, epoll_pwait, (int epfd, struct epoll_event *events, int maxevents, int timeout,
  54995. + const sigset_t *set),
  54996. + (epfd, events, maxevents, timeout, set))
  54997. +/*
  54998. + * If epoll_wait is not defined, then call epoll_pwait instead using NULL
  54999. + * for sigmask argument
  55000. + */
  55001. +# ifndef __NR_epoll_wait
  55002. +# include <stddef.h>
  55003. +int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout)
  55004. +{
  55005. + return INLINE_SYSCALL(epoll_pwait, 5, epfd, events, maxevents, timeout, NULL);
  55006. +}
  55007. +# endif
  55008. #endif
  55009. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/eventfd.c uClibc-git/libc/sysdeps/linux/common/eventfd.c
  55010. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/eventfd.c 2012-05-15 09:20:09.000000000 +0200
  55011. +++ uClibc-git/libc/sysdeps/linux/common/eventfd.c 2014-06-02 17:40:34.350713844 +0200
  55012. @@ -7,12 +7,24 @@
  55013. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  55014. */
  55015. +#include <errno.h>
  55016. #include <sys/syscall.h>
  55017. #include <sys/eventfd.h>
  55018. /*
  55019. * eventfd()
  55020. */
  55021. -#ifdef __NR_eventfd
  55022. -_syscall2(int, eventfd, int, count, int, flags)
  55023. +#if defined __NR_eventfd || defined __NR_eventfd2
  55024. +int eventfd (int count, int flags)
  55025. +{
  55026. +#if defined __NR_eventfd2
  55027. + return INLINE_SYSCALL (eventfd2, 2, count, flags);
  55028. +#elif defined __NR_eventfd
  55029. + if (flags != 0) {
  55030. + __set_errno (EINVAL);
  55031. + return -1;
  55032. + }
  55033. + return INLINE_SYSCALL (eventfd, 1, count);
  55034. +#endif
  55035. +}
  55036. #endif
  55037. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/_exit.c uClibc-git/libc/sysdeps/linux/common/_exit.c
  55038. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/_exit.c 2012-05-15 09:20:09.000000000 +0200
  55039. +++ uClibc-git/libc/sysdeps/linux/common/_exit.c 2014-06-02 17:40:34.338713778 +0200
  55040. @@ -7,28 +7,36 @@
  55041. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  55042. */
  55043. -#include <features.h>
  55044. -#include <errno.h>
  55045. #include <unistd.h>
  55046. -#include <sys/types.h>
  55047. +#include <stdlib.h>
  55048. #include <sys/syscall.h>
  55049. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  55050. -#include <sysdep.h>
  55051. +#include <bits/kernel-features.h>
  55052. +
  55053. +#ifdef __UCLIBC_ABORT_INSTRUCTION__
  55054. +# define ABORT_INSTRUCTION __asm__(__UCLIBC_ABORT_INSTRUCTION__)
  55055. +#else
  55056. +# warning "no abort instruction defined for this arch"
  55057. #endif
  55058. +/* have to check for kernel 2.5.35 too, since NR was earlier present */
  55059. +#if defined __NR_exit_group && __LINUX_KERNEL_VERSION >= 0x020600 \
  55060. + && defined __UCLIBC_HAS_THREADS__
  55061. +# undef __NR_exit
  55062. +# define __NR_exit __NR_exit_group
  55063. +#endif
  55064. -void attribute_noreturn _exit(int status)
  55065. +void _exit(int status)
  55066. {
  55067. /* The loop is added only to keep gcc happy. */
  55068. while(1)
  55069. {
  55070. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  55071. -# ifdef __NR_exit_group
  55072. - INLINE_SYSCALL(exit_group, 1, status);
  55073. -# endif
  55074. -#endif
  55075. INLINE_SYSCALL(exit, 1, status);
  55076. +#ifdef ABORT_INSTRUCTION
  55077. + ABORT_INSTRUCTION;
  55078. +#endif
  55079. }
  55080. }
  55081. libc_hidden_def(_exit)
  55082. +#ifdef __USE_ISOC99
  55083. weak_alias(_exit,_Exit)
  55084. +#endif
  55085. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/faccessat.c uClibc-git/libc/sysdeps/linux/common/faccessat.c
  55086. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/faccessat.c 2012-05-15 09:20:09.000000000 +0200
  55087. +++ uClibc-git/libc/sysdeps/linux/common/faccessat.c 2014-06-02 17:40:34.350713844 +0200
  55088. @@ -11,6 +11,7 @@
  55089. #ifdef __NR_faccessat
  55090. _syscall4(int, faccessat, int, fd, const char *, file, int, type, int, flag)
  55091. +libc_hidden_def(faccessat)
  55092. #else
  55093. /* should add emulation with faccess() and /proc/self/fd/ ... */
  55094. #endif
  55095. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fchdir.c uClibc-git/libc/sysdeps/linux/common/fchdir.c
  55096. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fchdir.c 2012-05-15 09:20:09.000000000 +0200
  55097. +++ uClibc-git/libc/sysdeps/linux/common/fchdir.c 2014-06-02 17:40:34.350713844 +0200
  55098. @@ -10,6 +10,7 @@
  55099. #include <sys/syscall.h>
  55100. #include <unistd.h>
  55101. -
  55102. +#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
  55103. _syscall1(int, fchdir, int, fd)
  55104. libc_hidden_def(fchdir)
  55105. +#endif
  55106. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fchmodat.c uClibc-git/libc/sysdeps/linux/common/fchmodat.c
  55107. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fchmodat.c 2012-05-15 09:20:09.000000000 +0200
  55108. +++ uClibc-git/libc/sysdeps/linux/common/fchmodat.c 2014-06-02 17:40:34.350713844 +0200
  55109. @@ -32,6 +32,7 @@
  55110. return INLINE_SYSCALL(fchmodat, 3, fd, file, mode);
  55111. }
  55112. +libc_hidden_def(fchmodat)
  55113. #else
  55114. /* should add emulation with fchmod() and /proc/self/fd/ ... */
  55115. #endif
  55116. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fchownat.c uClibc-git/libc/sysdeps/linux/common/fchownat.c
  55117. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fchownat.c 2012-05-15 09:20:09.000000000 +0200
  55118. +++ uClibc-git/libc/sysdeps/linux/common/fchownat.c 2014-06-02 17:40:34.350713844 +0200
  55119. @@ -11,6 +11,7 @@
  55120. #ifdef __NR_fchownat
  55121. _syscall5(int, fchownat, int, fd, const char *, file, uid_t, owner, gid_t, group, int, flag)
  55122. +libc_hidden_def(fchownat)
  55123. #else
  55124. /* should add emulation with fchown() and /proc/self/fd/ ... */
  55125. #endif
  55126. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fdatasync.c uClibc-git/libc/sysdeps/linux/common/fdatasync.c
  55127. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fdatasync.c 2012-05-15 09:20:09.000000000 +0200
  55128. +++ uClibc-git/libc/sysdeps/linux/common/fdatasync.c 2014-06-02 17:40:34.350713844 +0200
  55129. @@ -8,36 +8,17 @@
  55130. */
  55131. #include <sys/syscall.h>
  55132. -#include <unistd.h>
  55133. #if !defined __NR_fdatasync && defined __NR_osf_fdatasync
  55134. # define __NR_fdatasync __NR_osf_fdatasync
  55135. #endif
  55136. #ifdef __NR_fdatasync
  55137. +# include <unistd.h>
  55138. +# include <cancel.h>
  55139. -# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  55140. -# include <sysdep-cancel.h>
  55141. -# else
  55142. -# define SINGLE_THREAD_P 1
  55143. -# endif
  55144. -
  55145. -#define __NR___syscall_fdatasync __NR_fdatasync
  55146. -
  55147. -static __always_inline
  55148. -_syscall1(int, __syscall_fdatasync, int, fd)
  55149. -
  55150. -int fdatasync(int fd)
  55151. -{
  55152. - if (SINGLE_THREAD_P)
  55153. - return __syscall_fdatasync(fd);
  55154. -
  55155. -# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  55156. - int oldtype = LIBC_CANCEL_ASYNC ();
  55157. - int result = __syscall_fdatasync(fd);
  55158. - LIBC_CANCEL_RESET (oldtype);
  55159. - return result;
  55160. -# endif
  55161. -}
  55162. +# define __NR___fdatasync_nocancel __NR_fdatasync
  55163. +static _syscall1(int, __NC(fdatasync), int, fd)
  55164. +CANCELLABLE_SYSCALL(int, fdatasync, (int fd), (fd))
  55165. #endif
  55166. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fork.c uClibc-git/libc/sysdeps/linux/common/fork.c
  55167. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fork.c 2012-05-15 09:20:09.000000000 +0200
  55168. +++ uClibc-git/libc/sysdeps/linux/common/fork.c 2014-06-02 17:40:34.350713844 +0200
  55169. @@ -8,16 +8,35 @@
  55170. */
  55171. #include <sys/syscall.h>
  55172. -#include <unistd.h>
  55173. -#ifdef __ARCH_USE_MMU__
  55174. -
  55175. -#ifdef __NR_fork
  55176. -#define __NR___libc_fork __NR_fork
  55177. +#if defined __ARCH_USE_MMU__
  55178. +# include <unistd.h>
  55179. extern __typeof(fork) __libc_fork;
  55180. -_syscall0(pid_t, __libc_fork)
  55181. -weak_alias(__libc_fork,fork)
  55182. +# if defined __NR_fork
  55183. +# include <cancel.h>
  55184. +# define __NR___libc_fork __NR_fork
  55185. +_syscall0(pid_t, fork)
  55186. +
  55187. +# elif defined __NR_clone && !defined __NR_fork
  55188. +# include <sys/types.h>
  55189. +# include <signal.h>
  55190. +# include <stddef.h>
  55191. +pid_t fork(void)
  55192. +{
  55193. + pid_t pid = INLINE_SYSCALL(clone, 4, SIGCHLD, NULL, NULL, NULL);
  55194. +
  55195. + if (pid < 0)
  55196. + return -1;
  55197. +
  55198. + return pid;
  55199. +}
  55200. +
  55201. +# endif
  55202. +# ifdef __UCLIBC_HAS_THREADS__
  55203. +strong_alias(fork,__libc_fork)
  55204. libc_hidden_weak(fork)
  55205. -#endif
  55206. +# else
  55207. +libc_hidden_def(fork)
  55208. +# endif
  55209. #endif
  55210. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fpu_control.h uClibc-git/libc/sysdeps/linux/common/fpu_control.h
  55211. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  55212. +++ uClibc-git/libc/sysdeps/linux/common/fpu_control.h 2014-06-02 17:40:34.354713866 +0200
  55213. @@ -13,9 +13,8 @@
  55214. Lesser General Public License for more details.
  55215. You should have received a copy of the GNU Lesser General Public
  55216. - License along with the GNU C Library; if not, write to the Free
  55217. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  55218. - 02111-1307 USA. */
  55219. + License along with the GNU C Library; if not, see
  55220. + <http://www.gnu.org/licenses/>. */
  55221. #ifndef _FPU_CONTROL_H
  55222. #define _FPU_CONTROL_H
  55223. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fstat64.c uClibc-git/libc/sysdeps/linux/common/fstat64.c
  55224. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fstat64.c 2012-05-15 09:20:09.000000000 +0200
  55225. +++ uClibc-git/libc/sysdeps/linux/common/fstat64.c 2014-06-02 17:40:34.354713866 +0200
  55226. @@ -7,20 +7,20 @@
  55227. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  55228. */
  55229. +#include <_lfs_64.h>
  55230. #include <sys/syscall.h>
  55231. -#if defined __UCLIBC_HAS_LFS__ && defined __NR_fstat64
  55232. -#include <unistd.h>
  55233. -#include <sys/stat.h>
  55234. -#include "xstatconv.h"
  55235. -
  55236. -
  55237. -#define __NR___syscall_fstat64 __NR_fstat64
  55238. -static __inline__ _syscall2(int, __syscall_fstat64,
  55239. - int, filedes, struct kernel_stat64 *, buf)
  55240. +#ifdef __NR_fstat64
  55241. +# include <unistd.h>
  55242. +# include <sys/stat.h>
  55243. +# include "xstatconv.h"
  55244. +# define __NR___syscall_fstat64 __NR_fstat64
  55245. +static __always_inline _syscall2(int, __syscall_fstat64,
  55246. + int, filedes, struct kernel_stat64 *, buf)
  55247. int fstat64(int fd, struct stat64 *buf)
  55248. {
  55249. +#ifdef __ARCH_HAS_DEPRECATED_SYSCALLS__
  55250. int result;
  55251. struct kernel_stat64 kbuf;
  55252. @@ -29,6 +29,9 @@
  55253. __xstat64_conv(&kbuf, buf);
  55254. }
  55255. return result;
  55256. +#else
  55257. + return __syscall_fstat64(fd, buf);
  55258. +#endif
  55259. }
  55260. libc_hidden_def(fstat64)
  55261. #endif
  55262. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fstatat64.c uClibc-git/libc/sysdeps/linux/common/fstatat64.c
  55263. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fstatat64.c 2012-05-15 09:20:09.000000000 +0200
  55264. +++ uClibc-git/libc/sysdeps/linux/common/fstatat64.c 2014-06-02 17:40:34.354713866 +0200
  55265. @@ -6,20 +6,21 @@
  55266. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  55267. */
  55268. +#include <_lfs_64.h>
  55269. +#include <bits/wordsize.h>
  55270. #include <sys/syscall.h>
  55271. -#include <sys/stat.h>
  55272. -#include "xstatconv.h"
  55273. -
  55274. -#ifdef __UCLIBC_HAS_LFS__
  55275. /* 64bit ports tend to favor newfstatat() */
  55276. -#ifdef __NR_newfstatat
  55277. +#if __WORDSIZE == 64 && defined __NR_newfstatat
  55278. # define __NR_fstatat64 __NR_newfstatat
  55279. #endif
  55280. #ifdef __NR_fstatat64
  55281. +# include <sys/stat.h>
  55282. +# include "xstatconv.h"
  55283. int fstatat64(int fd, const char *file, struct stat64 *buf, int flag)
  55284. {
  55285. +# ifdef __ARCH_HAS_DEPRECATED_SYSCALLS__
  55286. int ret;
  55287. struct kernel_stat64 kbuf;
  55288. @@ -28,9 +29,11 @@
  55289. __xstat64_conv(&kbuf, buf);
  55290. return ret;
  55291. +# else
  55292. + return INLINE_SYSCALL(fstatat64, 4, fd, file, buf, flag);
  55293. +# endif
  55294. }
  55295. +libc_hidden_def(fstatat64)
  55296. #else
  55297. /* should add emulation with fstat64() and /proc/self/fd/ ... */
  55298. #endif
  55299. -
  55300. -#endif
  55301. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fstatat.c uClibc-git/libc/sysdeps/linux/common/fstatat.c
  55302. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fstatat.c 2012-05-15 09:20:09.000000000 +0200
  55303. +++ uClibc-git/libc/sysdeps/linux/common/fstatat.c 2014-06-02 17:40:34.354713866 +0200
  55304. @@ -11,7 +11,7 @@
  55305. #include "xstatconv.h"
  55306. /* 64bit ports tend to favor newfstatat() */
  55307. -#ifdef __NR_newfstatat
  55308. +#if __WORDSIZE == 64 && defined __NR_newfstatat
  55309. # define __NR_fstatat64 __NR_newfstatat
  55310. #endif
  55311. @@ -19,14 +19,26 @@
  55312. int fstatat(int fd, const char *file, struct stat *buf, int flag)
  55313. {
  55314. int ret;
  55315. +# ifdef __ARCH_HAS_DEPRECATED_SYSCALLS__
  55316. struct kernel_stat64 kbuf;
  55317. -
  55318. ret = INLINE_SYSCALL(fstatat64, 4, fd, file, &kbuf, flag);
  55319. if (ret == 0)
  55320. __xstat32_conv(&kbuf, buf);
  55321. -
  55322. +# else
  55323. + ret = INLINE_SYSCALL(fstatat64, 4, fd, file, buf, flag);
  55324. + if (ret == 0) {
  55325. + /* Did we overflow */
  55326. + if (buf->__pad1 || buf->__pad2 || buf->__pad3
  55327. + || buf->__pad4 || buf->__pad5 || buf->__pad6
  55328. + || buf->__pad7) {
  55329. + __set_errno(EOVERFLOW);
  55330. + return -1;
  55331. + }
  55332. + }
  55333. +# endif /* __ARCH_HAS_DEPRECATED_SYSCALLS__ */
  55334. return ret;
  55335. }
  55336. +libc_hidden_def(fstatat)
  55337. #else
  55338. /* should add emulation with fstat() and /proc/self/fd/ ... */
  55339. #endif
  55340. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fstat.c uClibc-git/libc/sysdeps/linux/common/fstat.c
  55341. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fstat.c 2012-05-15 09:20:09.000000000 +0200
  55342. +++ uClibc-git/libc/sysdeps/linux/common/fstat.c 2014-06-02 17:40:34.354713866 +0200
  55343. @@ -12,10 +12,28 @@
  55344. #include <sys/stat.h>
  55345. #include "xstatconv.h"
  55346. +#if defined __NR_fstat64 && !defined __NR_fstat
  55347. +int fstat(int fd, struct stat *buf)
  55348. +{
  55349. + int result = INLINE_SYSCALL(fstat64, 2, fd, buf);
  55350. + if (result == 0) {
  55351. + /* Did we overflow? */
  55352. + if (buf->__pad1 || buf->__pad2 || buf->__pad3
  55353. + || buf->__pad4 || buf->__pad5
  55354. + || buf->__pad6 || buf->__pad7) {
  55355. + __set_errno(EOVERFLOW);
  55356. + return -1;
  55357. + }
  55358. + }
  55359. + return result;
  55360. +}
  55361. +libc_hidden_def(fstat)
  55362. +
  55363. +#elif defined __NR_fstat
  55364. int fstat(int fd, struct stat *buf)
  55365. {
  55366. int result;
  55367. -#ifdef __NR_fstat64
  55368. +# ifdef __NR_fstat64
  55369. /* normal stat call has limited values for various stat elements
  55370. * e.g. uid device major/minor etc.
  55371. * so we use 64 variant if available
  55372. @@ -26,19 +44,21 @@
  55373. if (result == 0) {
  55374. __xstat32_conv(&kbuf, buf);
  55375. }
  55376. -#else
  55377. +# else
  55378. struct kernel_stat kbuf;
  55379. result = INLINE_SYSCALL(fstat, 2, fd, &kbuf);
  55380. if (result == 0) {
  55381. __xstat_conv(&kbuf, buf);
  55382. }
  55383. -#endif
  55384. +# endif
  55385. return result;
  55386. }
  55387. libc_hidden_def(fstat)
  55388. -#if ! defined __NR_fstat64 && defined __UCLIBC_HAS_LFS__
  55389. +# if ! defined __NR_fstat64 && defined __UCLIBC_HAS_LFS__
  55390. strong_alias_untyped(fstat,fstat64)
  55391. libc_hidden_def(fstat64)
  55392. +# endif
  55393. +
  55394. #endif
  55395. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fstatfs.c uClibc-git/libc/sysdeps/linux/common/fstatfs.c
  55396. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fstatfs.c 2012-05-15 09:20:09.000000000 +0200
  55397. +++ uClibc-git/libc/sysdeps/linux/common/fstatfs.c 2014-06-02 17:40:34.354713866 +0200
  55398. @@ -9,8 +9,9 @@
  55399. #include <sys/syscall.h>
  55400. #include <sys/vfs.h>
  55401. +#include <string.h>
  55402. -#ifndef __USE_FILE_OFFSET64
  55403. +#ifndef __USE_FILE_OFFSET64__
  55404. extern int fstatfs (int __fildes, struct statfs *__buf)
  55405. __THROW __nonnull ((2));
  55406. #else
  55407. @@ -23,8 +24,26 @@
  55408. #endif
  55409. extern __typeof(fstatfs) __libc_fstatfs attribute_hidden;
  55410. -#define __NR___libc_fstatfs __NR_fstatfs
  55411. +#ifdef __NR_fstatfs
  55412. +# define __NR___libc_fstatfs __NR_fstatfs
  55413. _syscall2(int, __libc_fstatfs, int, fd, struct statfs *, buf)
  55414. +#else
  55415. +int __libc_fstatfs (int __fildes, struct statfs *__buf)
  55416. +{
  55417. + int err = INLINE_SYSCALL(fstatfs64, 3, __fildes, sizeof(*__buf), __buf);
  55418. +
  55419. + if (err == 0) {
  55420. + /* Did we overflow? */
  55421. + if (__buf->__pad1 || __buf->__pad2 || __buf->__pad3 ||
  55422. + __buf->__pad4 || __buf->__pad5) {
  55423. + __set_errno(EOVERFLOW);
  55424. + return -1;
  55425. + }
  55426. + }
  55427. + return err;
  55428. +};
  55429. +/* Redefined fstatfs because we need it for backwards compatibility */
  55430. +#endif /* __NR_fstatfs */
  55431. #if defined __UCLIBC_LINUX_SPECIFIC__
  55432. weak_alias(__libc_fstatfs,fstatfs)
  55433. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fsync.c uClibc-git/libc/sysdeps/linux/common/fsync.c
  55434. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fsync.c 2012-05-15 09:20:09.000000000 +0200
  55435. +++ uClibc-git/libc/sysdeps/linux/common/fsync.c 2014-06-02 17:40:34.354713866 +0200
  55436. @@ -9,29 +9,9 @@
  55437. #include <sys/syscall.h>
  55438. #include <unistd.h>
  55439. +#include <cancel.h>
  55440. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  55441. -#include "sysdep-cancel.h"
  55442. -#else
  55443. -#define SINGLE_THREAD_P 1
  55444. -#endif
  55445. +#define __NR___fsync_nocancel __NR_fsync
  55446. +static _syscall1(int, __NC(fsync), int, fd)
  55447. -#define __NR___syscall_fsync __NR_fsync
  55448. -static inline _syscall1(int, __syscall_fsync, int, fd)
  55449. -
  55450. -extern __typeof(fsync) __libc_fsync;
  55451. -
  55452. -int __libc_fsync(int fd)
  55453. -{
  55454. - if (SINGLE_THREAD_P)
  55455. - return __syscall_fsync(fd);
  55456. -
  55457. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  55458. - int oldtype = LIBC_CANCEL_ASYNC ();
  55459. - int result = __syscall_fsync(fd);
  55460. - LIBC_CANCEL_RESET (oldtype);
  55461. - return result;
  55462. -#endif
  55463. -}
  55464. -
  55465. -weak_alias(__libc_fsync, fsync)
  55466. +CANCELLABLE_SYSCALL(int, fsync, (int fd), (fd))
  55467. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ftruncate64.c uClibc-git/libc/sysdeps/linux/common/ftruncate64.c
  55468. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/ftruncate64.c 2012-05-15 09:20:09.000000000 +0200
  55469. +++ uClibc-git/libc/sysdeps/linux/common/ftruncate64.c 2014-06-02 17:40:34.354713866 +0200
  55470. @@ -7,50 +7,41 @@
  55471. * and on 32 bit machines this sends things into the kernel as
  55472. * two 32-bit arguments (high and low 32 bits of length) that
  55473. * are ordered based on endianess. It turns out endian.h has
  55474. - * just the macro we need to order things, __LONG_LONG_PAIR.
  55475. + * just the macro we need to order things, OFF64_HI_LO.
  55476. */
  55477. -#include <features.h>
  55478. +#include <_lfs_64.h>
  55479. +#include <sys/syscall.h>
  55480. +#include <unistd.h>
  55481. -#ifdef __UCLIBC_HAS_LFS__
  55482. +#ifdef __NR_ftruncate64
  55483. +# include <bits/wordsize.h>
  55484. -# include <unistd.h>
  55485. -# include <errno.h>
  55486. -# include <endian.h>
  55487. -# include <stdint.h>
  55488. -# include <sys/types.h>
  55489. -# include <sys/syscall.h>
  55490. -
  55491. -
  55492. -# ifdef __NR_ftruncate64
  55493. -
  55494. -# if __WORDSIZE == 64
  55495. +# if __WORDSIZE == 64
  55496. /* For a 64 bit machine, life is simple... */
  55497. _syscall2(int, ftruncate64, int, fd, __off64_t, length)
  55498. -# elif __WORDSIZE == 32
  55499. +# elif __WORDSIZE == 32
  55500. +# include <endian.h>
  55501. +# include <stdint.h>
  55502. /* The exported ftruncate64 function. */
  55503. int ftruncate64 (int fd, __off64_t length)
  55504. {
  55505. - uint32_t low = length & 0xffffffff;
  55506. - uint32_t high = length >> 32;
  55507. -# if defined(__UCLIBC_TRUNCATE64_HAS_4_ARGS__)
  55508. - return INLINE_SYSCALL(ftruncate64,
  55509. - 4, fd, 0, __LONG_LONG_PAIR (high, low));
  55510. -# else
  55511. - return INLINE_SYSCALL(ftruncate64, 3, fd,
  55512. - __LONG_LONG_PAIR (high, low));
  55513. -# endif
  55514. +# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__)
  55515. + return INLINE_SYSCALL(ftruncate64, 4, fd, 0, OFF64_HI_LO(length));
  55516. +# else
  55517. + return INLINE_SYSCALL(ftruncate64, 3, fd, OFF64_HI_LO(length));
  55518. +# endif
  55519. }
  55520. -# else /* __WORDSIZE */
  55521. -# error Your machine is not 64 bit or 32 bit, I am dazed and confused.
  55522. -# endif /* __WORDSIZE */
  55523. -
  55524. -# else /* __NR_ftruncate64 */
  55525. +# else /* __WORDSIZE */
  55526. +# error Your machine is not 64 bit or 32 bit, I am dazed and confused.
  55527. +# endif /* __WORDSIZE */
  55528. +#else /* __NR_ftruncate64 */
  55529. +# include <errno.h>
  55530. int ftruncate64 (int fd, __off64_t length)
  55531. {
  55532. @@ -65,7 +56,5 @@
  55533. return -1;
  55534. }
  55535. -# endif /* __NR_ftruncate64 */
  55536. +#endif /* __NR_ftruncate64 */
  55537. libc_hidden_def(ftruncate64)
  55538. -
  55539. -#endif /* __UCLIBC_HAS_LFS__ */
  55540. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ftruncate.c uClibc-git/libc/sysdeps/linux/common/ftruncate.c
  55541. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/ftruncate.c 2012-05-15 09:20:09.000000000 +0200
  55542. +++ uClibc-git/libc/sysdeps/linux/common/ftruncate.c 2014-06-02 17:40:34.354713866 +0200
  55543. @@ -10,6 +10,20 @@
  55544. #include <sys/syscall.h>
  55545. #include <unistd.h>
  55546. +#if defined __NR_ftruncate64 && !defined __NR_ftruncate
  55547. +# include <endian.h>
  55548. +# include <stdint.h>
  55549. +int ftruncate(int fd, __off_t length)
  55550. +{
  55551. +# if defined __UCLIBC_HAS_LFS__
  55552. + return ftruncate64(fd, length);
  55553. +# elif __WORDSIZE == 32
  55554. + return INLINE_SYSCALL(ftruncate64, 3, fd, OFF_HI_LO(length));
  55555. +# endif
  55556. +}
  55557. +libc_hidden_def(ftruncate);
  55558. +#else
  55559. _syscall2(int, ftruncate, int, fd, __off_t, length)
  55560. libc_hidden_def(ftruncate)
  55561. +#endif
  55562. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/futimens.c uClibc-git/libc/sysdeps/linux/common/futimens.c
  55563. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/futimens.c 2012-05-15 09:20:09.000000000 +0200
  55564. +++ uClibc-git/libc/sysdeps/linux/common/futimens.c 2014-06-02 17:40:34.354713866 +0200
  55565. @@ -16,13 +16,13 @@
  55566. * Note that due to not including the header, we have to alias the call
  55567. * manually.
  55568. */
  55569. -extern int utimensat (int __fd, __const char *__path,
  55570. - __const struct timespec __times[2],
  55571. +extern int utimensat (int __fd, const char *__path,
  55572. + const struct timespec __times[2],
  55573. int __flags) __THROW;
  55574. libc_hidden_proto(utimensat)
  55575. -int futimens (int __fd, __const struct timespec __times[2]) __THROW;
  55576. -int futimens (int fd, __const struct timespec ts[2])
  55577. +int futimens (int __fd, const struct timespec __times[2]) __THROW;
  55578. +int futimens (int fd, const struct timespec ts[2])
  55579. {
  55580. return utimensat(fd, 0, ts, 0);
  55581. }
  55582. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/getdents64.c uClibc-git/libc/sysdeps/linux/common/getdents64.c
  55583. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/getdents64.c 2012-05-15 09:20:09.000000000 +0200
  55584. +++ uClibc-git/libc/sysdeps/linux/common/getdents64.c 2014-06-02 17:40:34.354713866 +0200
  55585. @@ -4,7 +4,11 @@
  55586. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  55587. */
  55588. -#include <features.h>
  55589. +#include <_lfs_64.h>
  55590. +#include <sys/syscall.h>
  55591. +
  55592. +#ifdef __NR_getdents64
  55593. +
  55594. #include <assert.h>
  55595. #include <errno.h>
  55596. #include <dirent.h>
  55597. @@ -13,17 +17,9 @@
  55598. #include <string.h>
  55599. #include <unistd.h>
  55600. #include <sys/param.h>
  55601. -#include <sys/types.h>
  55602. -#include <sys/syscall.h>
  55603. -#include <bits/kernel_types.h>
  55604. +#include <bits/wordsize.h>
  55605. #include <bits/uClibc_alloc.h>
  55606. -#if defined __UCLIBC_HAS_LFS__ && defined __NR_getdents64
  55607. -
  55608. -# ifndef offsetof
  55609. -# define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
  55610. -# endif
  55611. -
  55612. struct kernel_dirent64
  55613. {
  55614. uint64_t d_ino;
  55615. @@ -36,7 +32,6 @@
  55616. # define __NR___syscall_getdents64 __NR_getdents64
  55617. static __inline__ _syscall3(int, __syscall_getdents64, int, fd, unsigned char *, dirp, size_t, count)
  55618. -ssize_t __getdents64 (int fd, char *buf, size_t nbytes) attribute_hidden;
  55619. ssize_t __getdents64 (int fd, char *buf, size_t nbytes)
  55620. {
  55621. struct dirent64 *dp;
  55622. @@ -96,10 +91,10 @@
  55623. return (char *) dp - buf;
  55624. }
  55625. -#if __WORDSIZE == 64
  55626. +#if __WORDSIZE == 64 || (defined __UCLIBC_HAS_LFS__ && !defined __NR_getdents)
  55627. /* since getdents doesnt give us d_type but getdents64 does, try and
  55628. * use getdents64 as much as possible */
  55629. -attribute_hidden strong_alias(__getdents64,__getdents)
  55630. +strong_alias(__getdents64,__getdents)
  55631. #endif
  55632. #endif
  55633. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/getdents.c uClibc-git/libc/sysdeps/linux/common/getdents.c
  55634. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/getdents.c 2012-05-15 09:20:09.000000000 +0200
  55635. +++ uClibc-git/libc/sysdeps/linux/common/getdents.c 2014-06-02 17:40:34.354713866 +0200
  55636. @@ -4,21 +4,17 @@
  55637. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  55638. */
  55639. -#include <assert.h>
  55640. -#include <errno.h>
  55641. +#include <sys/syscall.h>
  55642. +#include <bits/wordsize.h>
  55643. +
  55644. +#if !(defined __UCLIBC_HAS_LFS__ && defined __NR_getdents64 && __WORDSIZE == 64)
  55645. +
  55646. #include <dirent.h>
  55647. -#include <stddef.h>
  55648. -#include <stdint.h>
  55649. #include <string.h>
  55650. -#include <unistd.h>
  55651. -#include <sys/param.h>
  55652. #include <sys/types.h>
  55653. -#include <sys/syscall.h>
  55654. #include <bits/kernel_types.h>
  55655. #include <bits/kernel-features.h>
  55656. -#include <bits/uClibc_alloc.h>
  55657. -#if !(defined __UCLIBC_HAS_LFS__ && defined __NR_getdents64 && __WORDSIZE == 64)
  55658. /* If the condition above is met, __getdents is defined as an alias
  55659. * for __getdents64 (see getdents64.c). Otherwise...
  55660. */
  55661. @@ -30,10 +26,7 @@
  55662. * version / arch details.
  55663. */
  55664. -#ifndef offsetof
  55665. -# define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
  55666. -#endif
  55667. -
  55668. +# ifdef __ARCH_HAS_DEPRECATED_SYSCALLS__
  55669. struct kernel_dirent
  55670. {
  55671. long int d_ino;
  55672. @@ -41,13 +34,16 @@
  55673. unsigned short int d_reclen;
  55674. char d_name[256];
  55675. };
  55676. +# else
  55677. +# define kernel_dirent dirent
  55678. +# endif
  55679. -ssize_t __getdents (int fd, char *buf, size_t nbytes) attribute_hidden;
  55680. -
  55681. -#define __NR___syscall_getdents __NR_getdents
  55682. +# if defined __NR_getdents
  55683. +# define __NR___syscall_getdents __NR_getdents
  55684. static __always_inline _syscall3(int, __syscall_getdents, int, fd, unsigned char *, kdirp, size_t, count)
  55685. +# endif
  55686. -#if defined __ASSUME_GETDENTS32_D_TYPE
  55687. +# if defined __ASSUME_GETDENTS32_D_TYPE && defined __NR_getdents
  55688. ssize_t __getdents (int fd, char *buf, size_t nbytes)
  55689. {
  55690. @@ -76,7 +72,14 @@
  55691. return retval;
  55692. }
  55693. -#elif ! defined __UCLIBC_HAS_LFS__ || ! defined __NR_getdents64
  55694. +# elif ! defined __UCLIBC_HAS_LFS__ || !defined __NR_getdents64
  55695. +
  55696. +# include <assert.h>
  55697. +# include <stddef.h>
  55698. +# include <errno.h>
  55699. +# include <unistd.h>
  55700. +# include <sys/param.h>
  55701. +# include <bits/uClibc_alloc.h>
  55702. ssize_t __getdents (int fd, char *buf, size_t nbytes)
  55703. {
  55704. @@ -88,6 +91,7 @@
  55705. const size_t size_diff = (offsetof (struct dirent, d_name)
  55706. - offsetof (struct kernel_dirent, d_name));
  55707. +# ifdef __ARCH_HAS_DEPRECATED_SYSCALLS__
  55708. red_nbytes = MIN (nbytes - ((nbytes /
  55709. (offsetof (struct dirent, d_name) + 14)) * size_diff),
  55710. nbytes - size_diff);
  55711. @@ -96,6 +100,21 @@
  55712. skdp = kdp = stack_heap_alloc(red_nbytes);
  55713. retval = __syscall_getdents(fd, (unsigned char *)kdp, red_nbytes);
  55714. +# else
  55715. +
  55716. + dp = (struct dirent *) buf;
  55717. + skdp = kdp = stack_heap_alloc(nbytes);
  55718. +
  55719. + retval = INLINE_SYSCALL(getdents64, 3, fd, (unsigned char *)kdp, nbytes);
  55720. + if (retval > 0) {
  55721. + /* Did we overflow? */
  55722. + if (kdp->__pad1 || kdp->__pad2) {
  55723. + __set_errno(EINVAL);
  55724. + return -1;
  55725. + }
  55726. + }
  55727. +# endif
  55728. +
  55729. if (retval == -1) {
  55730. stack_heap_free(skdp);
  55731. return -1;
  55732. @@ -137,9 +156,10 @@
  55733. return (char *) dp - buf;
  55734. }
  55735. -#elif __WORDSIZE == 32
  55736. +# elif __WORDSIZE == 32 && !defined __NR_getdents64
  55737. +
  55738. +# include <stddef.h>
  55739. -extern __typeof(__getdents) __getdents64 attribute_hidden;
  55740. ssize_t __getdents (int fd, char *buf, size_t nbytes)
  55741. {
  55742. struct dirent *dp;
  55743. @@ -165,10 +185,10 @@
  55744. return ret;
  55745. }
  55746. -#endif
  55747. +# endif
  55748. -#if defined __UCLIBC_HAS_LFS__ && ! defined __NR_getdents64
  55749. -attribute_hidden strong_alias(__getdents,__getdents64)
  55750. -#endif
  55751. +# if defined __UCLIBC_HAS_LFS__ && ! defined __NR_getdents64
  55752. +strong_alias(__getdents,__getdents64)
  55753. +# endif
  55754. #endif
  55755. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/getdirname.c uClibc-git/libc/sysdeps/linux/common/getdirname.c
  55756. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/getdirname.c 2012-05-15 09:20:09.000000000 +0200
  55757. +++ uClibc-git/libc/sysdeps/linux/common/getdirname.c 2014-06-02 17:40:34.354713866 +0200
  55758. @@ -13,9 +13,8 @@
  55759. Lesser General Public License for more details.
  55760. You should have received a copy of the GNU Lesser General Public
  55761. - License along with the GNU C Library; if not, write to the Free
  55762. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  55763. - 02111-1307 USA. */
  55764. + License along with the GNU C Library; if not, see
  55765. + <http://www.gnu.org/licenses/>. */
  55766. #include <features.h>
  55767. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/getgroups.c uClibc-git/libc/sysdeps/linux/common/getgroups.c
  55768. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/getgroups.c 2012-05-15 09:20:09.000000000 +0200
  55769. +++ uClibc-git/libc/sysdeps/linux/common/getgroups.c 2014-06-02 17:40:34.354713866 +0200
  55770. @@ -8,10 +8,7 @@
  55771. */
  55772. #include <sys/syscall.h>
  55773. -#include <stdlib.h>
  55774. #include <unistd.h>
  55775. -#include <grp.h>
  55776. -
  55777. #if defined(__NR_getgroups32)
  55778. # undef __NR_getgroups
  55779. @@ -22,12 +19,14 @@
  55780. _syscall2(int, getgroups, int, size, gid_t *, list)
  55781. #else
  55782. -
  55783. -#define MIN(a,b) (((a)<(b))?(a):(b))
  55784. -
  55785. -#define __NR___syscall_getgroups __NR_getgroups
  55786. -static __inline__ _syscall2(int, __syscall_getgroups,
  55787. - int, size, __kernel_gid_t *, list)
  55788. +# include <errno.h>
  55789. +# include <stdlib.h>
  55790. +# include <sys/types.h>
  55791. +# include <sys/param.h>
  55792. +
  55793. +# define __NR___syscall_getgroups __NR_getgroups
  55794. +static __always_inline
  55795. +_syscall2(int, __syscall_getgroups, int, size, __kernel_gid_t *, list)
  55796. int getgroups(int size, gid_t groups[])
  55797. {
  55798. @@ -56,5 +55,4 @@
  55799. }
  55800. }
  55801. #endif
  55802. -
  55803. libc_hidden_def(getgroups)
  55804. 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
  55805. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/get_kernel_syms.c 2012-05-15 09:20:09.000000000 +0200
  55806. +++ uClibc-git/libc/sysdeps/linux/common/get_kernel_syms.c 2014-06-02 17:40:34.354713866 +0200
  55807. @@ -9,8 +9,8 @@
  55808. #include <sys/syscall.h>
  55809. -struct kernel_sym;
  55810. -int get_kernel_syms(struct kernel_sym *table attribute_unused);
  55811. #ifdef __NR_get_kernel_syms
  55812. +struct kernel_sym;
  55813. +int get_kernel_syms(struct kernel_sym *table);
  55814. _syscall1(int, get_kernel_syms, struct kernel_sym *, table)
  55815. #endif
  55816. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/getpagesize.c uClibc-git/libc/sysdeps/linux/common/getpagesize.c
  55817. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/getpagesize.c 2012-05-15 09:20:09.000000000 +0200
  55818. +++ uClibc-git/libc/sysdeps/linux/common/getpagesize.c 2014-06-02 17:40:34.354713866 +0200
  55819. @@ -12,16 +12,13 @@
  55820. Lesser General Public License for more details.
  55821. You should have received a copy of the GNU Lesser General Public
  55822. - License along with the GNU C Library; if not, write to the Free
  55823. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  55824. - 02111-1307 USA. */
  55825. + License along with the GNU C Library; if not, see
  55826. + <http://www.gnu.org/licenses/>. */
  55827. #include <unistd.h>
  55828. #include <features.h>
  55829. #include <sys/param.h>
  55830. -extern size_t __pagesize;
  55831. -
  55832. /* Return the system page size. */
  55833. /* couldn't make __getpagesize hidden, because shm.h uses it in a macro */
  55834. extern __typeof(getpagesize) __getpagesize;
  55835. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/getrlimit64.c uClibc-git/libc/sysdeps/linux/common/getrlimit64.c
  55836. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/getrlimit64.c 2012-05-15 09:20:09.000000000 +0200
  55837. +++ uClibc-git/libc/sysdeps/linux/common/getrlimit64.c 2014-06-02 17:40:34.354713866 +0200
  55838. @@ -12,20 +12,16 @@
  55839. Lesser General Public License for more details.
  55840. You should have received a copy of the GNU Lesser General Public
  55841. - License along with the GNU C Library; if not, write to the Free
  55842. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  55843. - 02111-1307 USA. */
  55844. + License along with the GNU C Library; if not, see
  55845. + <http://www.gnu.org/licenses/>. */
  55846. #include <_lfs_64.h>
  55847. -
  55848. -#include <sys/types.h>
  55849. -#include <sys/resource.h>
  55850. #include <bits/wordsize.h>
  55851. /* the regular getrlimit will work just fine for 64bit users */
  55852. +#if __WORDSIZE == 32
  55853. -#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 32
  55854. -
  55855. +# include <sys/resource.h>
  55856. /* Put the soft and hard limits for RESOURCE in *RLIMITS.
  55857. Returns 0 if successful, -1 if not (and sets errno). */
  55858. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/getrlimit.c uClibc-git/libc/sysdeps/linux/common/getrlimit.c
  55859. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/getrlimit.c 2012-05-15 09:20:09.000000000 +0200
  55860. +++ uClibc-git/libc/sysdeps/linux/common/getrlimit.c 2014-06-02 17:40:34.354713866 +0200
  55861. @@ -7,12 +7,9 @@
  55862. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  55863. */
  55864. -#define getrlimit64 __hide_getrlimit64
  55865. #include <sys/syscall.h>
  55866. -#include <unistd.h>
  55867. #include <sys/resource.h>
  55868. -#undef getrlimit64
  55869. -
  55870. +#include <bits/wordsize.h>
  55871. /* Only wrap getrlimit if the new ugetrlimit is not present and getrlimit sucks */
  55872. @@ -25,14 +22,14 @@
  55873. struct rlimit *, rlim)
  55874. int getrlimit(__rlimit_resource_t resource, struct rlimit *rlimits)
  55875. {
  55876. - return (__syscall_ugetrlimit(resource, rlimits));
  55877. + return __syscall_ugetrlimit(resource, rlimits);
  55878. }
  55879. #elif !defined(__UCLIBC_HANDLE_OLDER_RLIMIT__)
  55880. /* We don't need to wrap getrlimit() */
  55881. _syscall2(int, getrlimit, __rlimit_resource_t, resource,
  55882. - struct rlimit *, rlim)
  55883. + struct rlimit *, rlim)
  55884. #else
  55885. @@ -59,9 +56,8 @@
  55886. return result;
  55887. }
  55888. #endif
  55889. -
  55890. libc_hidden_def(getrlimit)
  55891. #if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
  55892. -strong_alias(getrlimit, getrlimit64)
  55893. +strong_alias_untyped(getrlimit, getrlimit64)
  55894. #endif
  55895. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/gettimeofday.c uClibc-git/libc/sysdeps/linux/common/gettimeofday.c
  55896. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/gettimeofday.c 2012-05-15 09:20:09.000000000 +0200
  55897. +++ uClibc-git/libc/sysdeps/linux/common/gettimeofday.c 2014-06-02 17:40:34.354713866 +0200
  55898. @@ -10,9 +10,5 @@
  55899. #include <sys/syscall.h>
  55900. #include <sys/time.h>
  55901. -#ifdef __USE_BSD
  55902. -_syscall2(int, gettimeofday, struct timeval *, tv, struct timezone *, tz)
  55903. -#else
  55904. -_syscall2(int, gettimeofday, struct timeval *, tv, void *, tz)
  55905. -#endif
  55906. +_syscall2(int, gettimeofday, struct timeval *, tv, __timezone_ptr_t, tz)
  55907. libc_hidden_def(gettimeofday)
  55908. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/hp-timing.h uClibc-git/libc/sysdeps/linux/common/hp-timing.h
  55909. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/hp-timing.h 2012-05-15 09:20:09.000000000 +0200
  55910. +++ uClibc-git/libc/sysdeps/linux/common/hp-timing.h 2014-06-02 17:40:34.354713866 +0200
  55911. @@ -14,9 +14,8 @@
  55912. Lesser General Public License for more details.
  55913. You should have received a copy of the GNU Lesser General Public
  55914. - License along with the GNU C Library; if not, write to the Free
  55915. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  55916. - 02111-1307 USA. */
  55917. + License along with the GNU C Library; if not, see
  55918. + <http://www.gnu.org/licenses/>. */
  55919. #ifndef _HP_TIMING_H
  55920. #define _HP_TIMING_H 1
  55921. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/init_module.c uClibc-git/libc/sysdeps/linux/common/init_module.c
  55922. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/init_module.c 2012-05-15 09:20:09.000000000 +0200
  55923. +++ uClibc-git/libc/sysdeps/linux/common/init_module.c 2014-06-02 17:40:34.354713866 +0200
  55924. @@ -8,12 +8,13 @@
  55925. */
  55926. #include <sys/syscall.h>
  55927. -int init_module(void *first, void *second, void *third, void *fourth, void *fifth);
  55928. +
  55929. #ifdef __NR_init_module
  55930. +int init_module(void *first, void *second, void *third, void *fourth, void *fifth);
  55931. /* This may have 5 arguments (for old 2.0 kernels) or 2 arguments
  55932. * (for 2.2 and 2.4 kernels). Use the greatest common denominator,
  55933. * and let the kernel cope with whatever it gets. It's good at that. */
  55934. _syscall5(int, init_module, void *, first, void *, second, void *, third,
  55935. - void *, fourth, void *, fifth)
  55936. + void *, fourth, void *, fifth)
  55937. #endif
  55938. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/inotify.c uClibc-git/libc/sysdeps/linux/common/inotify.c
  55939. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/inotify.c 2012-05-15 09:20:09.000000000 +0200
  55940. +++ uClibc-git/libc/sysdeps/linux/common/inotify.c 2014-06-02 17:40:34.354713866 +0200
  55941. @@ -19,6 +19,13 @@
  55942. _syscall1(int, inotify_init1, int, flags)
  55943. #endif
  55944. +#if defined __NR_inotify_init1 && !defined __NR_inotify_init
  55945. +int inotify_init(void)
  55946. +{
  55947. + return INLINE_SYSCALL(inotify_init1, 1, 0);
  55948. +}
  55949. +#endif
  55950. +
  55951. #ifdef __NR_inotify_add_watch
  55952. _syscall3(int, inotify_add_watch, int, fd, const char *, path, uint32_t, mask)
  55953. #endif
  55954. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ioctl.c uClibc-git/libc/sysdeps/linux/common/ioctl.c
  55955. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/ioctl.c 2012-05-15 09:20:09.000000000 +0200
  55956. +++ uClibc-git/libc/sysdeps/linux/common/ioctl.c 2014-06-02 17:40:34.354713866 +0200
  55957. @@ -10,14 +10,7 @@
  55958. #include <sys/syscall.h>
  55959. #include <stdarg.h>
  55960. #include <sys/ioctl.h>
  55961. -
  55962. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  55963. -#include <sysdep-cancel.h>
  55964. -#else
  55965. -#define SINGLE_THREAD_P 1
  55966. -#endif
  55967. -
  55968. -libc_hidden_proto(ioctl)
  55969. +#include <cancel.h>
  55970. #define __NR___syscall_ioctl __NR_ioctl
  55971. static __always_inline
  55972. @@ -30,17 +23,16 @@
  55973. va_start(list, request);
  55974. arg = va_arg(list, void *);
  55975. -
  55976. va_end(list);
  55977. if (SINGLE_THREAD_P)
  55978. return __syscall_ioctl(fd, request, arg);
  55979. -
  55980. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  55981. +#ifdef __NEW_THREADS
  55982. int oldtype = LIBC_CANCEL_ASYNC ();
  55983. int result = __syscall_ioctl(fd, request, arg);
  55984. LIBC_CANCEL_RESET (oldtype);
  55985. return result;
  55986. #endif
  55987. }
  55988. -libc_hidden_def(ioctl)
  55989. +lt_strong_alias(ioctl)
  55990. +lt_libc_hidden(ioctl)
  55991. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ioperm.c uClibc-git/libc/sysdeps/linux/common/ioperm.c
  55992. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/ioperm.c 2012-05-15 09:20:09.000000000 +0200
  55993. +++ uClibc-git/libc/sysdeps/linux/common/ioperm.c 2014-06-02 17:40:34.354713866 +0200
  55994. @@ -13,10 +13,6 @@
  55995. /* psm: can't #include <sys/io.h>, some archs miss it */
  55996. extern int ioperm(unsigned long __from, unsigned long __num, int __turn_on) __THROW;
  55997. -/* Not needed internally;
  55998. -libc_hidden_proto(ioperm)
  55999. -*/
  56000. _syscall3(int, ioperm, unsigned long, from, unsigned long, num, int, turn_on)
  56001. -/*libc_hidden_def(ioperm)*/
  56002. #endif
  56003. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/common/jmpbuf-offsets.h
  56004. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  56005. +++ uClibc-git/libc/sysdeps/linux/common/jmpbuf-offsets.h 2014-06-02 17:40:34.354713866 +0200
  56006. @@ -0,0 +1,6 @@
  56007. +/* Private macros for accessing __jmp_buf contents. dummy version. */
  56008. +/*
  56009. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  56010. + *
  56011. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  56012. + */
  56013. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/lchown.c uClibc-git/libc/sysdeps/linux/common/lchown.c
  56014. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/lchown.c 2012-05-15 09:20:09.000000000 +0200
  56015. +++ uClibc-git/libc/sysdeps/linux/common/lchown.c 2014-06-02 17:40:34.354713866 +0200
  56016. @@ -11,17 +11,26 @@
  56017. #include <unistd.h>
  56018. #include <bits/wordsize.h>
  56019. -#if (__WORDSIZE == 32 && defined(__NR_lchown32)) || __WORDSIZE == 64
  56020. -# ifdef __NR_lchown32
  56021. -# undef __NR_lchown
  56022. -# define __NR_lchown __NR_lchown32
  56023. -# endif
  56024. +#if defined __NR_fchownat && !defined __NR_lchown
  56025. +# include <fcntl.h>
  56026. +int lchown(const char *path, uid_t owner, gid_t group)
  56027. +{
  56028. + return fchownat(AT_FDCWD, path, owner, group, AT_SYMLINK_NOFOLLOW);
  56029. +}
  56030. +
  56031. +#else
  56032. +
  56033. +# if (__WORDSIZE == 32 && defined(__NR_lchown32)) || __WORDSIZE == 64
  56034. +# ifdef __NR_lchown32
  56035. +# undef __NR_lchown
  56036. +# define __NR_lchown __NR_lchown32
  56037. +# endif
  56038. _syscall3(int, lchown, const char *, path, uid_t, owner, gid_t, group)
  56039. -#else
  56040. +# else
  56041. -# define __NR___syscall_lchown __NR_lchown
  56042. +# define __NR___syscall_lchown __NR_lchown
  56043. static __inline__ _syscall3(int, __syscall_lchown, const char *, path,
  56044. __kernel_uid_t, owner, __kernel_gid_t, group)
  56045. @@ -35,4 +44,6 @@
  56046. return __syscall_lchown(path, owner, group);
  56047. }
  56048. +# endif
  56049. +
  56050. #endif
  56051. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/linkat.c uClibc-git/libc/sysdeps/linux/common/linkat.c
  56052. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/linkat.c 2012-05-15 09:20:09.000000000 +0200
  56053. +++ uClibc-git/libc/sysdeps/linux/common/linkat.c 2014-06-02 17:40:34.354713866 +0200
  56054. @@ -11,6 +11,7 @@
  56055. #ifdef __NR_linkat
  56056. _syscall5(int, linkat, int, fromfd, const char *, from, int, tofd, const char *, to, int, flags)
  56057. +libc_hidden_def(linkat)
  56058. #else
  56059. /* should add emulation with link() and /proc/self/fd/ ... */
  56060. #endif
  56061. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/link.c uClibc-git/libc/sysdeps/linux/common/link.c
  56062. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/link.c 2012-05-15 09:20:09.000000000 +0200
  56063. +++ uClibc-git/libc/sysdeps/linux/common/link.c 2014-06-02 17:40:34.354713866 +0200
  56064. @@ -9,4 +9,13 @@
  56065. #include <sys/syscall.h>
  56066. #include <unistd.h>
  56067. +
  56068. +#if defined __NR_linkat && !defined __NR_link
  56069. +# include <fcntl.h>
  56070. +int link(const char *oldpath, const char *newpath)
  56071. +{
  56072. + return linkat(AT_FDCWD, oldpath, AT_FDCWD, newpath, 0);
  56073. +}
  56074. +#else
  56075. _syscall2(int, link, const char *, oldpath, const char *, newpath)
  56076. +#endif
  56077. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/llseek.c uClibc-git/libc/sysdeps/linux/common/llseek.c
  56078. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/llseek.c 2012-05-15 09:20:09.000000000 +0200
  56079. +++ uClibc-git/libc/sysdeps/linux/common/llseek.c 2014-06-02 17:40:34.354713866 +0200
  56080. @@ -7,36 +7,26 @@
  56081. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  56082. */
  56083. -#include <unistd.h>
  56084. -#include <sys/types.h>
  56085. +#include <_lfs_64.h>
  56086. #include <sys/syscall.h>
  56087. +#include <bits/wordsize.h>
  56088. /* Newer kernel ports have llseek() instead of _llseek() */
  56089. #if !defined __NR__llseek && defined __NR_llseek
  56090. # define __NR__llseek __NR_llseek
  56091. #endif
  56092. -#if defined __NR__llseek && defined __UCLIBC_HAS_LFS__
  56093. -
  56094. -loff_t lseek64(int fd, loff_t offset, int whence)
  56095. -{
  56096. - loff_t result;
  56097. - return (loff_t)(INLINE_SYSCALL(_llseek, 5, fd, (off_t) (offset >> 32),
  56098. - (off_t) (offset & 0xffffffff), &result, whence) ?: result);
  56099. -}
  56100. -
  56101. -#else
  56102. -
  56103. -loff_t lseek64(int fd, loff_t offset, int whence)
  56104. +#if defined __NR__llseek && __WORDSIZE == 32
  56105. +# include <unistd.h>
  56106. +# include <endian.h>
  56107. +# include <cancel.h>
  56108. +off64_t __NC(lseek64)(int fd, off64_t offset, int whence)
  56109. {
  56110. - return (loff_t)(lseek(fd, (off_t) (offset), whence));
  56111. + off64_t result;
  56112. + /* do we not need to handle the offset with __LONG_LONG_PAIR depending on endianness? */
  56113. + return (off64_t)INLINE_SYSCALL(_llseek, 5, fd, (off_t) OFF64_HI(offset),
  56114. + (off_t) OFF64_LO(offset), &result, whence) ?: result;
  56115. }
  56116. -
  56117. -#endif
  56118. -
  56119. -#ifndef __LINUXTHREADS_OLD__
  56120. -libc_hidden_def(lseek64)
  56121. -#else
  56122. -libc_hidden_weak(lseek64)
  56123. -strong_alias(lseek64,__libc_lseek64)
  56124. +CANCELLABLE_SYSCALL(off64_t, lseek64, (int fd, off64_t offset, int whence), (fd, offset, whence))
  56125. +lt_libc_hidden(lseek64)
  56126. #endif
  56127. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/longjmp.c uClibc-git/libc/sysdeps/linux/common/longjmp.c
  56128. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/longjmp.c 2012-05-15 09:20:09.000000000 +0200
  56129. +++ uClibc-git/libc/sysdeps/linux/common/longjmp.c 2014-06-02 17:40:34.354713866 +0200
  56130. @@ -12,23 +12,13 @@
  56131. Lesser General Public License for more details.
  56132. You should have received a copy of the GNU Lesser General Public
  56133. - License along with the GNU C Library; if not, write to the Free
  56134. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  56135. - 02111-1307 USA. */
  56136. + License along with the GNU C Library; if not, see
  56137. + <http://www.gnu.org/licenses/>. */
  56138. #include <stddef.h>
  56139. #include <setjmp.h>
  56140. #include <signal.h>
  56141. -
  56142. -extern void __longjmp (__jmp_buf __env, int __val) attribute_noreturn;
  56143. -libc_hidden_proto(__longjmp)
  56144. -
  56145. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  56146. -extern void _longjmp_unwind (jmp_buf env, int val);
  56147. -#endif
  56148. -
  56149. -extern __typeof(longjmp) __libc_longjmp attribute_noreturn;
  56150. /* Set the signal mask to the one specified in ENV, and jump
  56151. to the position specified in ENV, causing the setjmp
  56152. call there to return VAL, or 1 if VAL is 0. */
  56153. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/lseek.c uClibc-git/libc/sysdeps/linux/common/lseek.c
  56154. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/lseek.c 2012-05-15 09:20:09.000000000 +0200
  56155. +++ uClibc-git/libc/sysdeps/linux/common/lseek.c 2014-06-02 17:40:34.354713866 +0200
  56156. @@ -9,19 +9,55 @@
  56157. #include <sys/syscall.h>
  56158. #include <unistd.h>
  56159. +#include <cancel.h>
  56160. #ifdef __NR_lseek
  56161. -_syscall3(__off_t, lseek, int, fildes, __off_t, offset, int, whence)
  56162. +# define __NR___lseek_nocancel __NR_lseek
  56163. +_syscall3(off_t, __NC(lseek), int, fd, off_t, offset, int, whence)
  56164. +/* Use lseek64 if __NR_lseek is not defined but UCLIBC_HAS_LFS is enabled */
  56165. +#elif !defined __NR_lseek && defined __NR_llseek
  56166. +#include <endian.h>
  56167. +off_t __NC(lseek)(int fd, off_t offset, int whence)
  56168. +{
  56169. +#if defined __UCLIBC_HAS_LFS__
  56170. + return lseek64(fd, offset, whence);
  56171. +#elif __WORDSIZE == 32
  56172. + __off64_t result;
  56173. + __off_t high = 0;
  56174. + return INLINE_SYSCALL(llseek, 5, fd,
  56175. + __LONG_LONG_PAIR(high, offset),
  56176. + &result, whence) ?: result;
  56177. +#endif
  56178. +/* No need to handle __WORDSIZE == 64 as such a kernel won't define __NR_llseek */
  56179. +}
  56180. #else
  56181. -
  56182. -__off_t lseek(int fildes, __off_t offset, int whence)
  56183. +# include <errno.h>
  56184. +off_t __NC(lseek)(int fd, off_t offset attribute_unused, int whence)
  56185. {
  56186. - return lseek64(fildes, offset, whence);
  56187. + if (fd < 0) {
  56188. + __set_errno(EBADF);
  56189. + return -1;
  56190. + }
  56191. +
  56192. + switch(whence) {
  56193. + case SEEK_SET:
  56194. + case SEEK_CUR:
  56195. + case SEEK_END:
  56196. + break;
  56197. + default:
  56198. + __set_errno(EINVAL);
  56199. + return -1;
  56200. + }
  56201. +
  56202. + __set_errno(ENOSYS);
  56203. + return -1;
  56204. }
  56205. #endif
  56206. -#ifndef __LINUXTHREADS_OLD__
  56207. -libc_hidden_def(lseek)
  56208. -#else
  56209. -libc_hidden_weak(lseek)
  56210. -strong_alias(lseek,__libc_lseek)
  56211. +CANCELLABLE_SYSCALL(off_t, lseek, (int fd, off_t offset, int whence), (fd, offset, whence))
  56212. +lt_libc_hidden(lseek)
  56213. +#if defined __UCLIBC_HAS_LFS__ && (__WORDSIZE == 64 || (!defined __NR__llseek && !defined __NR_llseek))
  56214. +strong_alias_untyped(__NC(lseek),__NC(lseek64))
  56215. +strong_alias_untyped(lseek,lseek64)
  56216. +lt_strong_alias(lseek64)
  56217. +lt_libc_hidden(lseek64)
  56218. #endif
  56219. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/lstat64.c uClibc-git/libc/sysdeps/linux/common/lstat64.c
  56220. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/lstat64.c 2012-05-15 09:20:09.000000000 +0200
  56221. +++ uClibc-git/libc/sysdeps/linux/common/lstat64.c 2014-06-02 17:40:34.354713866 +0200
  56222. @@ -7,17 +7,27 @@
  56223. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  56224. */
  56225. +#include <_lfs_64.h>
  56226. #include <sys/syscall.h>
  56227. -#if defined __UCLIBC_HAS_LFS__ && defined __NR_lstat64
  56228. # include <unistd.h>
  56229. # include <sys/stat.h>
  56230. -# include "xstatconv.h"
  56231. +#if defined __NR_fstatat64 && !defined __NR_lstat64
  56232. +# include <fcntl.h>
  56233. +
  56234. +int lstat64(const char *file_name, struct stat64 *buf)
  56235. +{
  56236. + return fstatat64(AT_FDCWD, file_name, buf, AT_SYMLINK_NOFOLLOW);
  56237. +}
  56238. +libc_hidden_def(lstat64)
  56239. +/* For systems which have both, prefer the old one */
  56240. +#elif defined __NR_lstat64
  56241. +# include "xstatconv.h"
  56242. # define __NR___syscall_lstat64 __NR_lstat64
  56243. -static __inline__ _syscall2(int, __syscall_lstat64, const char *, file_name,
  56244. - struct kernel_stat64 *, buf)
  56245. +static __always_inline _syscall2(int, __syscall_lstat64, const char *, file_name,
  56246. + struct kernel_stat64 *, buf)
  56247. int lstat64(const char *file_name, struct stat64 *buf)
  56248. {
  56249. @@ -31,5 +41,4 @@
  56250. return result;
  56251. }
  56252. libc_hidden_def(lstat64)
  56253. -
  56254. #endif
  56255. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/lstat.c uClibc-git/libc/sysdeps/linux/common/lstat.c
  56256. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/lstat.c 2012-05-15 09:20:09.000000000 +0200
  56257. +++ uClibc-git/libc/sysdeps/linux/common/lstat.c 2014-06-02 17:40:34.354713866 +0200
  56258. @@ -10,12 +10,23 @@
  56259. #include <sys/syscall.h>
  56260. #include <unistd.h>
  56261. #include <sys/stat.h>
  56262. -#include "xstatconv.h"
  56263. +
  56264. +#if defined __NR_fstatat64 && !defined __NR_lstat
  56265. +# include <fcntl.h>
  56266. int lstat(const char *file_name, struct stat *buf)
  56267. {
  56268. + return fstatat(AT_FDCWD, file_name, buf, AT_SYMLINK_NOFOLLOW);
  56269. +}
  56270. +libc_hidden_def(lstat)
  56271. +
  56272. +/* For systems which have both, prefer the old one */
  56273. +#else
  56274. +# include "xstatconv.h"
  56275. +int lstat(const char *file_name, struct stat *buf)
  56276. +{
  56277. int result;
  56278. -#ifdef __NR_lstat64
  56279. +# ifdef __NR_lstat64
  56280. /* normal stat call has limited values for various stat elements
  56281. * e.g. uid device major/minor etc.
  56282. * so we use 64 variant if available
  56283. @@ -26,19 +37,22 @@
  56284. if (result == 0) {
  56285. __xstat32_conv(&kbuf, buf);
  56286. }
  56287. -#else
  56288. +# else
  56289. struct kernel_stat kbuf;
  56290. result = INLINE_SYSCALL(lstat, 2, file_name, &kbuf);
  56291. if (result == 0) {
  56292. __xstat_conv(&kbuf, buf);
  56293. }
  56294. -#endif
  56295. +# endif /* __NR_lstat64 */
  56296. return result;
  56297. }
  56298. libc_hidden_def(lstat)
  56299. -#if ! defined __NR_lstat64 && defined __UCLIBC_HAS_LFS__
  56300. +# if ! defined __NR_fstatat64 && ! defined __NR_lstat64 \
  56301. + && defined __UCLIBC_HAS_LFS__
  56302. strong_alias_untyped(lstat,lstat64)
  56303. libc_hidden_def(lstat64)
  56304. -#endif
  56305. +# endif
  56306. +
  56307. +#endif /* __NR_fstatat64 */
  56308. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/Makefile.in uClibc-git/libc/sysdeps/linux/common/Makefile.in
  56309. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  56310. +++ uClibc-git/libc/sysdeps/linux/common/Makefile.in 2014-06-02 17:40:34.338713778 +0200
  56311. @@ -23,6 +23,7 @@
  56312. bdflush.c \
  56313. capget.c \
  56314. capset.c \
  56315. + dup3.c \
  56316. eventfd.c \
  56317. inotify.c \
  56318. ioperm.c \
  56319. @@ -64,24 +65,30 @@
  56320. # NPTL needs these internally: madvise.c
  56321. CSRC-$(findstring y,$(UCLIBC_LINUX_SPECIFIC)$(UCLIBC_HAS_THREADS_NATIVE)) += madvise.c
  56322. ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
  56323. -CSRC- += fork.c getpid.c raise.c open.c close.c read.c write.c
  56324. +CSRC- += fork.c getpid.c raise.c #open.c close.c read.c write.c
  56325. CSRC- += $(if $(findstring =arm=,=$(TARGET_ARCH)=),vfork.c)
  56326. CSRC- += $(if $(findstring =x86_64=,=$(TARGET_ARCH)=),vfork.c)
  56327. -CSRC- += $(if $(findstring =mips=y=,=$(TARGET_ARCH)=$(CONFIG_MIPS_O32_ABI)=),waitpid.c)
  56328. +#CSRC- += $(if $(findstring =mips=y=,=$(TARGET_ARCH)=$(CONFIG_MIPS_O32_ABI)=),waitpid.c)
  56329. +CSRC- += $(if $(findstring =metag=,=$(TARGET_ARCH)=),vfork.c)
  56330. +endif
  56331. +ifneq ($(ARCH_HAS_DEPRECATED_SYSCALLS),y)
  56332. +# No conversion is needed for new architectures
  56333. +CSRC- += xstatconv.c
  56334. endif
  56335. # stubbed out in mman.h
  56336. CSRC-$(ARCH_USE_MMU) += msync.c
  56337. # we need these internally: getdomainname.c
  56338. CSRC-$(UCLIBC_BSD_SPECIFIC) += mincore.c setdomainname.c
  56339. CSRC-$(UCLIBC_NTP_LEGACY) += ntp_gettime.c
  56340. -# 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
  56341. +# 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
  56342. CSRC-$(UCLIBC_HAS_REALTIME) += clock_getres.c clock_gettime.c clock_settime.c \
  56343. fdatasync.c mlockall.c mlock.c munlockall.c munlock.c \
  56344. nanosleep.c __rt_sigtimedwait.c __rt_sigwaitinfo.c sched_getparam.c \
  56345. sched_get_priority_max.c sched_get_priority_min.c sched_getscheduler.c \
  56346. sched_rr_get_interval.c sched_setparam.c sched_setscheduler.c sigqueue.c
  56347. # 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
  56348. -CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_fadvise64.c posix_fadvise.c
  56349. +CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_fadvise64.c posix_fadvise.c posix_madvise.c \
  56350. + posix_fallocate.c posix_fallocate64.c
  56351. CSRC-$(UCLIBC_SUSV4_LEGACY) += utime.c
  56352. CSRC-$(UCLIBC_HAS_EPOLL) += epoll.c
  56353. CSRC-$(UCLIBC_HAS_XATTR) += xattr.c
  56354. @@ -96,11 +103,11 @@
  56355. # provided via pthreads builddir
  56356. CSRC-y := $(filter-out $(libc_a_CSRC) $(notdir $(libpthread_libc_OBJS:.o=.c)),$(CSRC-y))
  56357. -SSRC := $(filter-out $(libc_a_SSRC) $(notdir $(libpthread_libc_OBJS:.o=.S)),$(SSRC))
  56358. +SSRC-y := $(filter-out $(libc_a_SSRC) $(notdir $(libpthread_libc_OBJS:.o=.S)),$(SSRC-y))
  56359. # fails for some reason
  56360. -ifneq ($(strip $(ARCH_OBJS)),)
  56361. -CSRC-y := $(filter-out $(notdir $(ARCH_OBJS:.o=.c)) $(ARCH_OBJ_FILTEROUT),$(CSRC-y))
  56362. +ifneq ($(strip $(ARCH_OBJS-y)),)
  56363. +CSRC-y := $(filter-out $(notdir $(ARCH_OBJS-y:.o=.c)) $(ARCH_OBJ_FILTEROUT-y),$(CSRC-y))
  56364. endif
  56365. CFLAGS-ssp.c := $(SSP_DISABLE_FLAGS)
  56366. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/mkdirat.c uClibc-git/libc/sysdeps/linux/common/mkdirat.c
  56367. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/mkdirat.c 2012-05-15 09:20:09.000000000 +0200
  56368. +++ uClibc-git/libc/sysdeps/linux/common/mkdirat.c 2014-06-02 17:40:34.354713866 +0200
  56369. @@ -11,6 +11,7 @@
  56370. #ifdef __NR_mkdirat
  56371. _syscall3(int, mkdirat, int, fd, const char *, path, mode_t, mode)
  56372. +libc_hidden_def(mkdirat)
  56373. #else
  56374. /* should add emulation with mkdir() and /proc/self/fd/ ... */
  56375. #endif
  56376. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/mkdir.c uClibc-git/libc/sysdeps/linux/common/mkdir.c
  56377. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/mkdir.c 2012-05-15 09:20:09.000000000 +0200
  56378. +++ uClibc-git/libc/sysdeps/linux/common/mkdir.c 2014-06-02 17:40:34.354713866 +0200
  56379. @@ -10,8 +10,15 @@
  56380. #include <sys/syscall.h>
  56381. #include <sys/stat.h>
  56382. +#if defined __NR_mkdirat && !defined __NR_mkdir
  56383. +# include <fcntl.h>
  56384. +int mkdir(const char *pathname, mode_t mode)
  56385. +{
  56386. + return mkdirat(AT_FDCWD, pathname, mode);
  56387. +}
  56388. -#define __NR___syscall_mkdir __NR_mkdir
  56389. +#else
  56390. +# define __NR___syscall_mkdir __NR_mkdir
  56391. static __inline__ _syscall2(int, __syscall_mkdir, const char *, pathname,
  56392. __kernel_mode_t, mode)
  56393. @@ -19,4 +26,5 @@
  56394. {
  56395. return (__syscall_mkdir(pathname, mode));
  56396. }
  56397. +#endif
  56398. libc_hidden_def(mkdir)
  56399. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/mkfifo.c uClibc-git/libc/sysdeps/linux/common/mkfifo.c
  56400. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/mkfifo.c 2012-05-15 09:20:09.000000000 +0200
  56401. +++ uClibc-git/libc/sysdeps/linux/common/mkfifo.c 2014-06-02 17:40:34.354713866 +0200
  56402. @@ -12,9 +12,8 @@
  56403. Lesser General Public License for more details.
  56404. You should have received a copy of the GNU Lesser General Public
  56405. - License along with the GNU C Library; if not, write to the Free
  56406. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  56407. - 02111-1307 USA. */
  56408. + License along with the GNU C Library; if not, see
  56409. + <http://www.gnu.org/licenses/>. */
  56410. #include <errno.h>
  56411. #include <stddef.h>
  56412. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/mknod.c uClibc-git/libc/sysdeps/linux/common/mknod.c
  56413. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/mknod.c 2012-05-15 09:20:09.000000000 +0200
  56414. +++ uClibc-git/libc/sysdeps/linux/common/mknod.c 2014-06-02 17:40:34.354713866 +0200
  56415. @@ -10,6 +10,13 @@
  56416. #include <sys/syscall.h>
  56417. #include <sys/stat.h>
  56418. +#if defined __NR_mknodat && !defined __NR_mknod
  56419. +# include <fcntl.h>
  56420. +int mknod(const char *path, mode_t mode, dev_t dev)
  56421. +{
  56422. + return mknodat(AT_FDCWD, path, mode, dev);
  56423. +}
  56424. +#else
  56425. int mknod(const char *path, mode_t mode, dev_t dev)
  56426. {
  56427. unsigned long long int k_dev;
  56428. @@ -19,4 +26,5 @@
  56429. return INLINE_SYSCALL(mknod, 3, path, mode, (unsigned int)k_dev);
  56430. }
  56431. +#endif
  56432. libc_hidden_def(mknod)
  56433. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/mmap64.c uClibc-git/libc/sysdeps/linux/common/mmap64.c
  56434. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/mmap64.c 2012-05-15 09:20:09.000000000 +0200
  56435. +++ uClibc-git/libc/sysdeps/linux/common/mmap64.c 2014-06-02 17:40:34.358713889 +0200
  56436. @@ -6,18 +6,12 @@
  56437. /* Massivly hacked up for uClibc by Erik Andersen */
  56438. #include <_lfs_64.h>
  56439. -
  56440. -#ifdef __UCLIBC_HAS_LFS__
  56441. -
  56442. -#include <errno.h>
  56443. #include <stdint.h>
  56444. -#include <unistd.h>
  56445. -#include <sys/mman.h>
  56446. #include <sys/syscall.h>
  56447. -#include <bits/uClibc_page.h>
  56448. -
  56449. +#include <errno.h>
  56450. +#include <sys/mman.h>
  56451. -# if !defined __NR_mmap2
  56452. +#ifndef __NR_mmap2
  56453. /*
  56454. * This version is a stub that just chops off everything at the mmap 32 bit
  56455. @@ -27,7 +21,7 @@
  56456. *
  56457. */
  56458. -__ptr_t mmap64(__ptr_t addr, size_t len, int prot, int flags, int fd, __off64_t offset)
  56459. +void *mmap64(void *addr, size_t len, int prot, int flags, int fd, __off64_t offset)
  56460. {
  56461. if (offset != (off_t) offset ||
  56462. (offset + len) != (off_t) (offset + len)) {
  56463. @@ -38,17 +32,18 @@
  56464. return mmap(addr, len, prot, flags, fd, (off_t) offset);
  56465. }
  56466. -# else
  56467. +#else
  56468. +# include <bits/uClibc_page.h>
  56469. -/* Some architectures always use 12 as page shift for mmap2() eventhough the
  56470. +/* Some architectures always use 12 as page shift for mmap2() even though the
  56471. * real PAGE_SHIFT != 12. Other architectures use the same value as
  56472. * PAGE_SHIFT...
  56473. */
  56474. -# ifndef MMAP2_PAGE_SHIFT
  56475. -# define MMAP2_PAGE_SHIFT 12
  56476. -# endif
  56477. +# ifndef MMAP2_PAGE_SHIFT
  56478. +# define MMAP2_PAGE_SHIFT 12
  56479. +# endif
  56480. -__ptr_t mmap64(__ptr_t addr, size_t len, int prot, int flags, int fd, __off64_t offset)
  56481. +void *mmap64(void *addr, size_t len, int prot, int flags, int fd, __off64_t offset)
  56482. {
  56483. /*
  56484. * Some arches check the size in INLINE_SYSCALL() and barf if it's
  56485. @@ -73,8 +68,7 @@
  56486. */
  56487. sysoff = (uint64_t)offset >> MMAP2_PAGE_SHIFT;
  56488. - return (__ptr_t) INLINE_SYSCALL(mmap2, 6, addr, len, prot, flags, fd, sysoff);
  56489. + return (void*) INLINE_SYSCALL(mmap2, 6, addr, len, prot, flags, fd, sysoff);
  56490. }
  56491. -# endif
  56492. -#endif /* __UCLIBC_HAS_LFS__ */
  56493. +#endif
  56494. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/mmap.c uClibc-git/libc/sysdeps/linux/common/mmap.c
  56495. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/mmap.c 2012-05-15 09:20:09.000000000 +0200
  56496. +++ uClibc-git/libc/sysdeps/linux/common/mmap.c 2014-06-02 17:40:34.358713889 +0200
  56497. @@ -7,25 +7,57 @@
  56498. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  56499. */
  56500. -#include <sys/syscall.h>
  56501. -#include <unistd.h>
  56502. #include <sys/mman.h>
  56503. -#include <bits/uClibc_page.h>
  56504. +#include <sys/syscall.h>
  56505. -#ifdef __NR_mmap
  56506. +#if defined __UCLIBC_MMAP_HAS_6_ARGS__ && defined __NR_mmap
  56507. +# ifndef _syscall6
  56508. +# error disable __UCLIBC_MMAP_HAS_6_ARGS__ for this arch
  56509. +# endif
  56510. -#ifdef __UCLIBC_MMAP_HAS_6_ARGS__
  56511. +# define __NR__mmap __NR_mmap
  56512. +static _syscall6(void *, _mmap, void *, addr, size_t, len,
  56513. + int, prot, int, flags, int, fd, __off_t, offset)
  56514. -_syscall6(void *, mmap, void *, start, size_t, length,
  56515. - int, prot, int, flags, int, fd, off_t, offset)
  56516. +#elif defined __NR_mmap2 && defined _syscall6
  56517. -#else
  56518. +# include <errno.h>
  56519. +# include <bits/uClibc_page.h>
  56520. +# ifndef MMAP2_PAGE_SHIFT
  56521. +# define MMAP2_PAGE_SHIFT 12
  56522. +# endif
  56523. -# define __NR__mmap __NR_mmap
  56524. -static __inline__ _syscall1(__ptr_t, _mmap, unsigned long *, buffer)
  56525. -__ptr_t mmap(__ptr_t addr, size_t len, int prot,
  56526. - int flags, int fd, __off_t offset)
  56527. +# define __NR___syscall_mmap2 __NR_mmap2
  56528. +static __inline__ _syscall6(void *, __syscall_mmap2, void *, addr, size_t, len,
  56529. + int, prot, int, flags, int, fd, __off_t, offset)
  56530. +
  56531. +static void *_mmap(void *addr, size_t len, int prot, int flags,
  56532. + int fd, __off_t offset)
  56533. +{
  56534. + const int mmap2_shift = MMAP2_PAGE_SHIFT;
  56535. + const __off_t mmap2_mask = ((__off_t) 1 << MMAP2_PAGE_SHIFT) - 1;
  56536. + /* check if offset is page aligned */
  56537. + if (offset & mmap2_mask) {
  56538. + __set_errno(EINVAL);
  56539. + return MAP_FAILED;
  56540. + }
  56541. +# ifdef __USE_FILE_OFFSET64
  56542. + return __syscall_mmap2(addr, len, prot, flags, fd,
  56543. + ((__u_quad_t) offset >> mmap2_shift));
  56544. +# else
  56545. + return __syscall_mmap2(addr, len, prot, flags, fd,
  56546. + ((__u_long) offset >> mmap2_shift));
  56547. +# endif
  56548. +}
  56549. +
  56550. +#elif defined __NR_mmap
  56551. +
  56552. +# define __NR___syscall_mmap __NR_mmap
  56553. +static __inline__ _syscall1(void *, __syscall_mmap, unsigned long *, buffer)
  56554. +
  56555. +static void *_mmap(void *addr, size_t len, int prot, int flags,
  56556. + int fd, __off_t offset)
  56557. {
  56558. unsigned long buffer[6];
  56559. @@ -35,37 +67,14 @@
  56560. buffer[3] = (unsigned long) flags;
  56561. buffer[4] = (unsigned long) fd;
  56562. buffer[5] = (unsigned long) offset;
  56563. - return (__ptr_t) _mmap(buffer);
  56564. + return __syscall_mmap(buffer);
  56565. }
  56566. -#endif
  56567. -
  56568. -libc_hidden_def(mmap)
  56569. -
  56570. -#elif defined(__NR_mmap2)
  56571. -
  56572. +#else
  56573. -#define __NR___syscall_mmap2 __NR_mmap2
  56574. -static __inline__ _syscall6(__ptr_t, __syscall_mmap2, __ptr_t, addr,
  56575. - size_t, len, int, prot, int, flags, int, fd, off_t, offset)
  56576. +# error "Your architecture doesn't seem to provide mmap() !?"
  56577. -/* Some architectures always use 12 as page shift for mmap2() eventhough the
  56578. - * real PAGE_SHIFT != 12. Other architectures use the same value as
  56579. - * PAGE_SHIFT...
  56580. - */
  56581. -# ifndef MMAP2_PAGE_SHIFT
  56582. -# define MMAP2_PAGE_SHIFT 12
  56583. -# endif
  56584. -
  56585. -__ptr_t mmap(__ptr_t addr, size_t len, int prot, int flags, int fd, __off_t offset)
  56586. -{
  56587. - if (offset & ((1 << MMAP2_PAGE_SHIFT) - 1)) {
  56588. - __set_errno(EINVAL);
  56589. - return MAP_FAILED;
  56590. - }
  56591. - return __syscall_mmap2(addr, len, prot, flags, fd, offset >> MMAP2_PAGE_SHIFT);
  56592. -}
  56593. +#endif
  56594. +strong_alias(_mmap,mmap)
  56595. libc_hidden_def(mmap)
  56596. -
  56597. -#endif
  56598. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/mount.c uClibc-git/libc/sysdeps/linux/common/mount.c
  56599. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/mount.c 2012-05-15 09:20:09.000000000 +0200
  56600. +++ uClibc-git/libc/sysdeps/linux/common/mount.c 2014-06-02 17:40:34.358713889 +0200
  56601. @@ -10,5 +10,5 @@
  56602. #include <sys/syscall.h>
  56603. #include <sys/mount.h>
  56604. _syscall5(int, mount, const char *, specialfile, const char *, dir,
  56605. - const char *, filesystemtype, unsigned long, rwflag,
  56606. - const void *, data)
  56607. + const char *, filesystemtype, unsigned long, rwflag,
  56608. + const void *, data)
  56609. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/msync.c uClibc-git/libc/sysdeps/linux/common/msync.c
  56610. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/msync.c 2012-05-15 09:20:09.000000000 +0200
  56611. +++ uClibc-git/libc/sysdeps/linux/common/msync.c 2014-06-02 17:40:34.358713889 +0200
  56612. @@ -8,38 +8,14 @@
  56613. */
  56614. #include <sys/syscall.h>
  56615. -#include <unistd.h>
  56616. -#include <sys/mman.h>
  56617. -#ifdef __NR_msync
  56618. +#if defined __NR_msync && defined __ARCH_USE_MMU__
  56619. +# include <sys/mman.h>
  56620. +# include <cancel.h>
  56621. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  56622. -#include <sysdep-cancel.h>
  56623. -#else
  56624. -#define SINGLE_THREAD_P 1
  56625. -#endif
  56626. -
  56627. -#define __NR___syscall_msync __NR_msync
  56628. -static __always_inline _syscall3(int, __syscall_msync, void *, addr, size_t, length,
  56629. - int, flags)
  56630. -
  56631. -extern __typeof(msync) __libc_msync;
  56632. -int __libc_msync(void * addr, size_t length, int flags)
  56633. -{
  56634. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  56635. - int oldtype, result;
  56636. -#endif
  56637. -
  56638. - if (SINGLE_THREAD_P)
  56639. - return __syscall_msync(addr, length, flags);
  56640. -
  56641. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  56642. - oldtype = LIBC_CANCEL_ASYNC ();
  56643. - result = __syscall_msync(addr, length, flags);
  56644. - LIBC_CANCEL_RESET (oldtype);
  56645. - return result;
  56646. -#endif
  56647. -}
  56648. -weak_alias(__libc_msync,msync)
  56649. +# define __NR___msync_nocancel __NR_msync
  56650. +static _syscall3(int, __NC(msync), void *, addr, size_t, length, int, flags)
  56651. +CANCELLABLE_SYSCALL(int, msync, (void *addr, size_t length, int flags),
  56652. + (addr, length, flags))
  56653. #endif
  56654. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/munmap.c uClibc-git/libc/sysdeps/linux/common/munmap.c
  56655. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/munmap.c 2012-05-15 09:20:09.000000000 +0200
  56656. +++ uClibc-git/libc/sysdeps/linux/common/munmap.c 2014-06-02 17:40:34.358713889 +0200
  56657. @@ -8,9 +8,7 @@
  56658. */
  56659. #include <sys/syscall.h>
  56660. -#include <unistd.h>
  56661. #include <sys/mman.h>
  56662. -
  56663. _syscall2(int, munmap, void *, start, size_t, length)
  56664. libc_hidden_def(munmap)
  56665. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/nanosleep.c uClibc-git/libc/sysdeps/linux/common/nanosleep.c
  56666. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/nanosleep.c 2012-05-15 09:20:09.000000000 +0200
  56667. +++ uClibc-git/libc/sysdeps/linux/common/nanosleep.c 2014-06-02 17:40:34.358713889 +0200
  56668. @@ -9,32 +9,13 @@
  56669. #include <sys/syscall.h>
  56670. #include <time.h>
  56671. +#include <cancel.h>
  56672. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  56673. -#include <sysdep-cancel.h>
  56674. -#include <pthreadP.h>
  56675. -#else
  56676. -#define SINGLE_THREAD_P 1
  56677. -#endif
  56678. -
  56679. -#define __NR___syscall_nanosleep __NR_nanosleep
  56680. -static inline _syscall2(int, __syscall_nanosleep, const struct timespec *, req,
  56681. - struct timespec *, rem);
  56682. -
  56683. -extern __typeof(nanosleep) __libc_nanosleep;
  56684. -
  56685. -int __libc_nanosleep(const struct timespec *req, struct timespec *rem)
  56686. -{
  56687. - if (SINGLE_THREAD_P)
  56688. - return __syscall_nanosleep(req, rem);
  56689. -
  56690. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  56691. - int oldtype = LIBC_CANCEL_ASYNC ();
  56692. - int result = __syscall_nanosleep(req, rem);
  56693. - LIBC_CANCEL_RESET (oldtype);
  56694. - return result;
  56695. -#endif
  56696. -}
  56697. -
  56698. -weak_alias(__libc_nanosleep,nanosleep)
  56699. -libc_hidden_weak(nanosleep)
  56700. +#define __NR___nanosleep_nocancel __NR_nanosleep
  56701. +static _syscall2(int, __NC(nanosleep), const struct timespec *, req,
  56702. + struct timespec *, rem);
  56703. +
  56704. +CANCELLABLE_SYSCALL(int, nanosleep,
  56705. + (const struct timespec *req, struct timespec *rem),
  56706. + (req, rem))
  56707. +lt_libc_hidden(nanosleep)
  56708. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/nice.c uClibc-git/libc/sysdeps/linux/common/nice.c
  56709. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/nice.c 2012-05-15 09:20:09.000000000 +0200
  56710. +++ uClibc-git/libc/sysdeps/linux/common/nice.c 2014-06-02 17:40:34.358713889 +0200
  56711. @@ -25,15 +25,15 @@
  56712. static __inline__ int int_add_no_wrap(int a, int b)
  56713. {
  56714. - int s = a + b;
  56715. -
  56716. if (b < 0) {
  56717. - if (s > a) s = INT_MIN;
  56718. + if (a < INT_MIN - b)
  56719. + return INT_MIN;
  56720. } else {
  56721. - if (s < a) s = INT_MAX;
  56722. + if (a > INT_MAX - b)
  56723. + return INT_MAX;
  56724. }
  56725. - return s;
  56726. + return a + b;
  56727. }
  56728. static __inline__ int __syscall_nice(int incr)
  56729. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/noophooks.c uClibc-git/libc/sysdeps/linux/common/noophooks.c
  56730. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/noophooks.c 2012-05-15 09:20:09.000000000 +0200
  56731. +++ uClibc-git/libc/sysdeps/linux/common/noophooks.c 2014-06-02 17:40:34.358713889 +0200
  56732. @@ -14,11 +14,8 @@
  56733. Lesser General Public License for more details.
  56734. You should have received a copy of the GNU Lesser General Public
  56735. - License along with the GNU C Library; if not, write to the Free
  56736. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  56737. - 02111-1307 USA. */
  56738. -
  56739. -#include <libc-internal.h>
  56740. + License along with the GNU C Library; if not, see
  56741. + <http://www.gnu.org/licenses/>. */
  56742. void
  56743. __cyg_profile_func_enter (attribute_unused void *this_fn, attribute_unused void *call_site);
  56744. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/not-cancel.h uClibc-git/libc/sysdeps/linux/common/not-cancel.h
  56745. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/not-cancel.h 2012-05-15 09:20:09.000000000 +0200
  56746. +++ uClibc-git/libc/sysdeps/linux/common/not-cancel.h 2014-06-02 17:40:34.358713889 +0200
  56747. @@ -1,5 +1,5 @@
  56748. /* Uncancelable versions of cancelable interfaces. Linux version.
  56749. - Copyright (C) 2003 Free Software Foundation, Inc.
  56750. + Copyright (C) 2003, 2006 Free Software Foundation, Inc.
  56751. This file is part of the GNU C Library.
  56752. Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
  56753. @@ -14,17 +14,50 @@
  56754. Lesser General Public License for more details.
  56755. You should have received a copy of the GNU Lesser General Public
  56756. - License along with the GNU C Library; if not, write to the Free
  56757. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  56758. - 02111-1307 USA. */
  56759. + License along with the GNU C Library; if not, see
  56760. + <http://www.gnu.org/licenses/>. */
  56761. +#include <sys/types.h>
  56762. #include <sysdep.h>
  56763. +#ifdef NOT_IN_libc
  56764. +
  56765. /* Uncancelable open. */
  56766. +#if defined __NR_openat && !defined __NR_open
  56767. +#define open_not_cancel(name, flags, mode) \
  56768. + INLINE_SYSCALL (openat, 4, AT_FDCWD, (const char *) (name), (flags), (mode))
  56769. +#define open_not_cancel_2(name, flags) \
  56770. + INLINE_SYSCALL (openat, 3, AT_FDCWD, (const char *) (name), (flags))
  56771. +#else
  56772. #define open_not_cancel(name, flags, mode) \
  56773. INLINE_SYSCALL (open, 3, (const char *) (name), (flags), (mode))
  56774. #define open_not_cancel_2(name, flags) \
  56775. INLINE_SYSCALL (open, 2, (const char *) (name), (flags))
  56776. +#endif
  56777. +
  56778. +#if 0
  56779. +/* Uncancelable openat. */
  56780. +#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
  56781. +extern int __openat_nocancel (int fd, const char *fname, int oflag,
  56782. + mode_t mode) attribute_hidden;
  56783. +extern int __openat64_nocancel (int fd, const char *fname, int oflag,
  56784. + mode_t mode) attribute_hidden;
  56785. +#else
  56786. +# define __openat_nocancel(fd, fname, oflag, mode) \
  56787. + openat (fd, fname, oflag, mode)
  56788. +# define __openat64_nocancel(fd, fname, oflag, mode) \
  56789. + openat64 (fd, fname, oflag, mode)
  56790. +#endif
  56791. +
  56792. +#define openat_not_cancel(fd, fname, oflag, mode) \
  56793. + __openat_nocancel (fd, fname, oflag, mode)
  56794. +#define openat_not_cancel_3(fd, fname, oflag) \
  56795. + __openat_nocancel (fd, fname, oflag, 0)
  56796. +#define openat64_not_cancel(fd, fname, oflag, mode) \
  56797. + __openat64_nocancel (fd, fname, oflag, mode)
  56798. +#define openat64_not_cancel_3(fd, fname, oflag) \
  56799. + __openat64_nocancel (fd, fname, oflag, 0)
  56800. +#endif
  56801. /* Uncancelable close. */
  56802. #define close_not_cancel(fd) \
  56803. @@ -37,10 +70,13 @@
  56804. #define read_not_cancel(fd, buf, n) \
  56805. INLINE_SYSCALL (read, 3, (fd), (buf), (n))
  56806. +#ifdef __LINUXTHREADS_NEW__
  56807. /* Uncancelable write. */
  56808. #define write_not_cancel(fd, buf, n) \
  56809. INLINE_SYSCALL (write, 3, (fd), (buf), (n))
  56810. +#endif
  56811. +#if 0
  56812. /* Uncancelable writev. */
  56813. #define writev_not_cancel_no_status(fd, iov, n) \
  56814. (void) ({ INTERNAL_SYSCALL_DECL (err); \
  56815. @@ -49,12 +85,68 @@
  56816. /* Uncancelable fcntl. */
  56817. #define fcntl_not_cancel(fd, cmd, val) \
  56818. __fcntl_nocancel (fd, cmd, val)
  56819. +#endif
  56820. +#ifdef __LINUXTHREADS_NEW__
  56821. /* Uncancelable waitpid. */
  56822. -#ifdef __NR_waitpid
  56823. +#if 0 /*def __NR_waitpid*/
  56824. # define waitpid_not_cancel(pid, stat_loc, options) \
  56825. INLINE_SYSCALL (waitpid, 3, pid, stat_loc, options)
  56826. #else
  56827. # define waitpid_not_cancel(pid, stat_loc, options) \
  56828. INLINE_SYSCALL (wait4, 4, pid, stat_loc, options, NULL)
  56829. #endif
  56830. +#endif
  56831. +
  56832. +/* Uncancelable pause. */
  56833. +#ifdef __NR_pause
  56834. +# define pause_not_cancel() \
  56835. + INLINE_SYSCALL (pause, 0)
  56836. +#else
  56837. +# include <unistd.h>
  56838. +extern __typeof(pause) __pause_nocancel;
  56839. +# define pause_not_cancel() \
  56840. + __pause_nocancel ()
  56841. +#endif
  56842. +
  56843. +/* Uncancelable nanosleep. */
  56844. +#ifdef __NR_nanosleep
  56845. +# define nanosleep_not_cancel(requested_time, remaining) \
  56846. + INLINE_SYSCALL (nanosleep, 2, requested_time, remaining)
  56847. +/*#else
  56848. +# define nanosleep_not_cancel(requested_time, remaining) \
  56849. + __nanosleep_nocancel (requested_time, remaining)*/
  56850. +#endif
  56851. +
  56852. +#if 0
  56853. +/* Uncancelable sigsuspend. */
  56854. +#define sigsuspend_not_cancel(set) \
  56855. + __sigsuspend_nocancel (set)
  56856. +#endif
  56857. +
  56858. +#elif !defined NOT_IN_libc
  56859. +
  56860. +#include <cancel.h>
  56861. +#include <fcntl.h>
  56862. +#include <unistd.h>
  56863. +
  56864. +#define open_not_cancel(name, flags, mode) \
  56865. + __NC(open)(name, flags, mode)
  56866. +#define open_not_cancel_2(name, flags) \
  56867. + __NC(open2)(name, flags)
  56868. +
  56869. +#define close_not_cancel(fd) \
  56870. + __NC(close)(fd)
  56871. +#define close_not_cancel_no_status(fd) \
  56872. + __close_nocancel_no_status(fd)
  56873. +
  56874. +#define read_not_cancel(fd, buf, n) \
  56875. + __NC(read)(fd, buf, n)
  56876. +
  56877. +#define write_not_cancel(fd, buf, n) \
  56878. + __NC(write)(fd, buf, n)
  56879. +
  56880. +#define fcntl_not_cancel(fd, cmd, val) \
  56881. + __NC(fcntl)(fd, cmd, val)
  56882. +
  56883. +#endif
  56884. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ntp_gettime.c uClibc-git/libc/sysdeps/linux/common/ntp_gettime.c
  56885. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/ntp_gettime.c 2012-05-15 09:20:09.000000000 +0200
  56886. +++ uClibc-git/libc/sysdeps/linux/common/ntp_gettime.c 2014-06-02 17:40:34.358713889 +0200
  56887. @@ -12,9 +12,8 @@
  56888. Lesser General Public License for more details.
  56889. You should have received a copy of the GNU Lesser General Public
  56890. - License along with the GNU C Library; if not, write to the Free
  56891. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  56892. - 02111-1307 USA. */
  56893. + License along with the GNU C Library; if not, see
  56894. + <http://www.gnu.org/licenses/>. */
  56895. #include <sys/timex.h>
  56896. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/open64.c uClibc-git/libc/sysdeps/linux/common/open64.c
  56897. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/open64.c 2012-05-15 09:20:09.000000000 +0200
  56898. +++ uClibc-git/libc/sysdeps/linux/common/open64.c 2014-06-02 17:40:34.358713889 +0200
  56899. @@ -4,54 +4,30 @@
  56900. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  56901. */
  56902. -#include <features.h>
  56903. +#include <_lfs_64.h>
  56904. #include <fcntl.h>
  56905. #include <stdarg.h>
  56906. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  56907. -#include <errno.h>
  56908. -#include <sysdep-cancel.h>
  56909. -#endif
  56910. -
  56911. -#ifdef __UCLIBC_HAS_LFS__
  56912. -
  56913. -#ifndef O_LARGEFILE
  56914. -# define O_LARGEFILE 0100000
  56915. -#endif
  56916. +#include <cancel.h>
  56917. /* Open FILE with access OFLAG. If OFLAG includes O_CREAT,
  56918. a third argument is the file protection. */
  56919. -int open64 (const char *file, int oflag, ...)
  56920. +int open64(const char *file, int oflag, ...)
  56921. {
  56922. - mode_t mode = 0;
  56923. -
  56924. - if (oflag & O_CREAT)
  56925. - {
  56926. - va_list arg;
  56927. - va_start (arg, oflag);
  56928. - mode = va_arg (arg, mode_t);
  56929. - va_end (arg);
  56930. - }
  56931. -
  56932. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  56933. - if (SINGLE_THREAD_P)
  56934. - return INLINE_SYSCALL (open, 3, file, oflag | O_LARGEFILE, mode);
  56935. + mode_t mode = 0;
  56936. - int oldtype = LIBC_CANCEL_ASYNC ();
  56937. -
  56938. - int result = INLINE_SYSCALL (open, 3, file, oflag | O_LARGEFILE, mode);
  56939. -
  56940. - LIBC_CANCEL_RESET (oldtype);
  56941. -
  56942. - return result;
  56943. + if (oflag & O_CREAT) {
  56944. + va_list arg;
  56945. + va_start (arg, oflag);
  56946. + mode = va_arg (arg, mode_t);
  56947. + va_end (arg);
  56948. + }
  56949. +#if defined __NR_openat && !defined __NR_open
  56950. + return openat(AT_FDCWD, file, oflag | O_LARGEFILE, mode);
  56951. #else
  56952. - return open(file, oflag | O_LARGEFILE, mode);
  56953. + return open(file, oflag | O_LARGEFILE, mode);
  56954. #endif
  56955. }
  56956. -#ifndef __LINUXTHREADS_OLD__
  56957. -libc_hidden_def(open64)
  56958. -#else
  56959. -libc_hidden_weak(open64)
  56960. -strong_alias(open64,__libc_open64)
  56961. -#endif
  56962. -
  56963. -#endif /* __UCLIBC_HAS_LFS__ */
  56964. +lt_strong_alias(open64)
  56965. +lt_libc_hidden(open64)
  56966. +/* open handled cancellation, noop on uClibc */
  56967. +LIBC_CANCEL_HANDLED();
  56968. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/openat64.c uClibc-git/libc/sysdeps/linux/common/openat64.c
  56969. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/openat64.c 2012-05-15 09:20:09.000000000 +0200
  56970. +++ uClibc-git/libc/sysdeps/linux/common/openat64.c 2014-06-02 17:40:34.358713889 +0200
  56971. @@ -6,27 +6,16 @@
  56972. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  56973. */
  56974. -#define openat64 __xx_openat
  56975. +#include <_lfs_64.h>
  56976. #include <sys/syscall.h>
  56977. #include <fcntl.h>
  56978. -#undef openat64
  56979. -
  56980. -#ifdef __UCLIBC_HAS_LFS__
  56981. #ifdef __NR_openat
  56982. -/* The openat() prototype is varargs based, but we don't care about that
  56983. - * here, so need to provide our own dedicated signature.
  56984. - */
  56985. -extern int openat64(int fd, const char *file, int oflag, mode_t mode);
  56986. -libc_hidden_proto(openat64)
  56987. -
  56988. -int openat64(int fd, const char *file, int oflag, mode_t mode)
  56989. +static int __openat64(int fd, const char *file, int oflag, mode_t mode)
  56990. {
  56991. return openat(fd, file, oflag | O_LARGEFILE, mode);
  56992. }
  56993. -libc_hidden_def(openat64)
  56994. +strong_alias_untyped(__openat64,openat64)
  56995. #else
  56996. /* should add emulation with open() and /proc/self/fd/ ... */
  56997. #endif
  56998. -
  56999. -#endif
  57000. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/openat.c uClibc-git/libc/sysdeps/linux/common/openat.c
  57001. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/openat.c 2012-05-15 09:20:09.000000000 +0200
  57002. +++ uClibc-git/libc/sysdeps/linux/common/openat.c 2014-06-02 17:40:34.358713889 +0200
  57003. @@ -6,19 +6,13 @@
  57004. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  57005. */
  57006. -#define openat __xx_openat
  57007. #include <sys/syscall.h>
  57008. #include <fcntl.h>
  57009. -#undef openat
  57010. #ifdef __NR_openat
  57011. -/* The openat() prototype is varargs based, but we don't care about that
  57012. - * here, so need to provide our own dedicated signature.
  57013. - */
  57014. -extern int openat(int fd, const char *file, int oflag, mode_t mode);
  57015. -libc_hidden_proto(openat)
  57016. -
  57017. -_syscall4(int, openat, int, fd, const char *, file, int, oflag, mode_t, mode)
  57018. +# define __NR___syscall_openat __NR_openat
  57019. +static __inline__ _syscall4(int, __syscall_openat, int, fd, const char *, file, int, oflag, mode_t, mode)
  57020. +strong_alias_untyped(__syscall_openat,openat)
  57021. libc_hidden_def(openat)
  57022. #else
  57023. /* should add emulation with open() and /proc/self/fd/ ... */
  57024. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/open.c uClibc-git/libc/sysdeps/linux/common/open.c
  57025. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/open.c 2012-05-15 09:20:09.000000000 +0200
  57026. +++ uClibc-git/libc/sysdeps/linux/common/open.c 2014-06-02 17:40:34.358713889 +0200
  57027. @@ -8,15 +8,22 @@
  57028. */
  57029. #include <sys/syscall.h>
  57030. -#include <stdlib.h>
  57031. -#include <stdarg.h>
  57032. #include <fcntl.h>
  57033. -#include <string.h>
  57034. -#include <sys/param.h>
  57035. +#include <stdarg.h>
  57036. +#include <cancel.h>
  57037. +
  57038. +#if defined __NR_open
  57039. +# define __NR___syscall_open __NR_open
  57040. +static __always_inline _syscall3(int, __syscall_open, const char *, file,
  57041. + int, flags, __kernel_mode_t, mode)
  57042. +strong_alias_untyped(__syscall_open,__NC(open))
  57043. -#define __NR___syscall_open __NR_open
  57044. -static __inline__ _syscall3(int, __syscall_open, const char *, file,
  57045. - int, flags, __kernel_mode_t, mode)
  57046. +# define __NR___open2_nocancel __NR_open
  57047. +_syscall2(int, __NC(open2), const char *, file, int, flags)
  57048. +#else
  57049. +int __open2_nocancel(const char *, int) __nonnull ((1)) attribute_hidden;
  57050. +int __open_nocancel(const char *, int, mode_t) __nonnull ((1)) attribute_hidden;
  57051. +#endif
  57052. int open(const char *file, int oflag, ...)
  57053. {
  57054. @@ -29,11 +36,27 @@
  57055. va_end(arg);
  57056. }
  57057. - return __syscall_open(file, oflag, mode);
  57058. + if (SINGLE_THREAD_P)
  57059. +#if defined(__NR_open)
  57060. + return __NC(open)(file, oflag, mode);
  57061. +#elif defined(__NR_openat)
  57062. + return openat(AT_FDCWD, file, oflag, mode);
  57063. +#endif
  57064. +
  57065. +#ifdef __NEW_THREADS
  57066. + int oldtype = LIBC_CANCEL_ASYNC ();
  57067. +# if defined(__NR_open)
  57068. + int result = __NC(open)(file, oflag, mode);
  57069. +# else
  57070. + int result = openat(AT_FDCWD, file, oflag, mode);
  57071. +# endif
  57072. + LIBC_CANCEL_RESET (oldtype);
  57073. + return result;
  57074. +#endif
  57075. }
  57076. -#ifndef __LINUXTHREADS_OLD__
  57077. -libc_hidden_def(open)
  57078. -#else
  57079. -libc_hidden_weak(open)
  57080. -strong_alias(open,__libc_open)
  57081. +lt_strong_alias(open)
  57082. +lt_libc_hidden(open)
  57083. +#if !defined(__NR_open)
  57084. +strong_alias_untyped(open,__open2_nocancel)
  57085. +strong_alias_untyped(open,__open_nocancel)
  57086. #endif
  57087. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/pause.c uClibc-git/libc/sysdeps/linux/common/pause.c
  57088. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/pause.c 2012-05-15 09:20:09.000000000 +0200
  57089. +++ uClibc-git/libc/sysdeps/linux/common/pause.c 2014-06-02 17:40:34.358713889 +0200
  57090. @@ -7,35 +7,35 @@
  57091. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  57092. */
  57093. -#define __UCLIBC_HIDE_DEPRECATED__
  57094. #include <sys/syscall.h>
  57095. #include <unistd.h>
  57096. +#include <cancel.h>
  57097. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  57098. -#include <sysdep-cancel.h>
  57099. -#endif
  57100. -
  57101. -#include <signal.h>
  57102. +#ifdef __NR_pause
  57103. +/* even if it is not obvious, glibc uses the pause syscall, see syscalls.list */
  57104. +# define __NR___pause_nocancel __NR_pause
  57105. +static _syscall0(int, __NC(pause))
  57106. +CANCELLABLE_SYSCALL(int, pause, (void), ())
  57107. +#else
  57108. +# define __need_NULL
  57109. +# include <stddef.h>
  57110. +# include <signal.h>
  57111. -/* Suspend the process until a signal arrives.
  57112. - This always returns -1 and sets errno to EINTR. */
  57113. -extern __typeof(pause) __libc_pause;
  57114. int
  57115. -__libc_pause (void)
  57116. +# ifdef __LINUXTHREADS_OLD__
  57117. +weak_function
  57118. +# endif
  57119. +__NC(pause)(void)
  57120. {
  57121. - sigset_t set;
  57122. -
  57123. - /*__sigemptyset (&set); - why? */
  57124. - sigprocmask (SIG_BLOCK, NULL, &set);
  57125. + sigset_t set;
  57126. - /* pause is a cancellation point, but so is sigsuspend.
  57127. - So no need for anything special here. */
  57128. + /*__sigemptyset (&set); - why? */
  57129. + sigprocmask (SIG_BLOCK, NULL, &set);
  57130. - return sigsuspend (&set);
  57131. + /* pause is a cancellation point, but so is sigsuspend.
  57132. + So no need for anything special here. */
  57133. + return sigsuspend(&set);
  57134. }
  57135. -weak_alias (__libc_pause, pause)
  57136. -
  57137. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  57138. +CANCELLABLE_SYSCALL(int, pause, (void), ())
  57139. LIBC_CANCEL_HANDLED (); /* sigsuspend handles our cancellation. */
  57140. #endif
  57141. -
  57142. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/pipe.c uClibc-git/libc/sysdeps/linux/common/pipe.c
  57143. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/pipe.c 2012-05-15 09:20:09.000000000 +0200
  57144. +++ uClibc-git/libc/sysdeps/linux/common/pipe.c 2014-06-02 17:40:34.358713889 +0200
  57145. @@ -11,5 +11,13 @@
  57146. #include <unistd.h>
  57147. +#if defined __NR_pipe2 && !defined __NR_pipe
  57148. +int pipe(int filedes[2])
  57149. +{
  57150. + return pipe2(filedes, 0);
  57151. +}
  57152. +/* If both are defined then use the pipe syscall */
  57153. +#else
  57154. _syscall1(int, pipe, int *, filedes)
  57155. +#endif
  57156. libc_hidden_def(pipe)
  57157. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/pivot_root.c uClibc-git/libc/sysdeps/linux/common/pivot_root.c
  57158. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/pivot_root.c 2012-05-15 09:20:09.000000000 +0200
  57159. +++ uClibc-git/libc/sysdeps/linux/common/pivot_root.c 2014-06-02 17:40:34.358713889 +0200
  57160. @@ -9,7 +9,7 @@
  57161. #include <sys/syscall.h>
  57162. -int pivot_root(const char *new_root, const char *put_old);
  57163. #ifdef __NR_pivot_root
  57164. +int pivot_root(const char *new_root, const char *put_old);
  57165. _syscall2(int, pivot_root, const char *, new_root, const char *, put_old)
  57166. #endif
  57167. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/poll.c uClibc-git/libc/sysdeps/linux/common/poll.c
  57168. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/poll.c 2012-05-15 09:20:09.000000000 +0200
  57169. +++ uClibc-git/libc/sysdeps/linux/common/poll.c 2014-06-02 17:40:34.358713889 +0200
  57170. @@ -13,40 +13,20 @@
  57171. Lesser General Public License for more details.
  57172. You should have received a copy of the GNU Lesser General Public
  57173. - License along with the GNU C Library; if not, write to the Free
  57174. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  57175. - 02111-1307 USA. */
  57176. + License along with the GNU C Library; if not, see
  57177. + <http://www.gnu.org/licenses/>. */
  57178. #include <sys/syscall.h>
  57179. #include <sys/poll.h>
  57180. #include <bits/kernel-features.h>
  57181. -
  57182. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  57183. -#include <sysdep-cancel.h>
  57184. -#else
  57185. -#define SINGLE_THREAD_P 1
  57186. -#endif
  57187. -
  57188. -libc_hidden_proto(poll)
  57189. +#include <cancel.h>
  57190. #if defined __ASSUME_POLL_SYSCALL && defined __NR_poll
  57191. -#define __NR___syscall_poll __NR_poll
  57192. -static inline _syscall3(int, __syscall_poll, struct pollfd *, fds,
  57193. - unsigned long int, nfds, int, timeout);
  57194. -
  57195. -int poll(struct pollfd *fds, nfds_t nfds, int timeout)
  57196. -{
  57197. - if (SINGLE_THREAD_P)
  57198. - return __syscall_poll(fds, nfds, timeout);
  57199. +#define __NR___poll_nocancel __NR_poll
  57200. +static _syscall3(int, __NC(poll), struct pollfd *, fds,
  57201. + unsigned long int, nfds, int, timeout)
  57202. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  57203. - int oldtype = LIBC_CANCEL_ASYNC ();
  57204. - int result = __syscall_poll(fds, nfds, timeout);
  57205. - LIBC_CANCEL_RESET (oldtype);
  57206. - return result;
  57207. -#endif
  57208. -}
  57209. #else /* !__NR_poll */
  57210. #include <alloca.h>
  57211. @@ -56,9 +36,7 @@
  57212. #include <sys/time.h>
  57213. #include <sys/param.h>
  57214. #include <unistd.h>
  57215. -
  57216. -libc_hidden_proto(getdtablesize)
  57217. -libc_hidden_proto(select)
  57218. +#include <sys/select.h>
  57219. /* uClinux 2.0 doesn't have poll, emulate it using select */
  57220. @@ -68,7 +46,7 @@
  57221. Returns the number of file descriptors with events, zero if timed out,
  57222. or -1 for errors. */
  57223. -int poll(struct pollfd *fds, nfds_t nfds, int timeout)
  57224. +int __NC(poll)(struct pollfd *fds, nfds_t nfds, int timeout)
  57225. {
  57226. static int max_fd_size;
  57227. struct timeval tv;
  57228. @@ -139,7 +117,7 @@
  57229. while (1)
  57230. {
  57231. - ready = select (maxfd + 1, rset, wset, xset,
  57232. + ready = __NC(select) (maxfd + 1, rset, wset, xset,
  57233. timeout == -1 ? NULL : &tv);
  57234. /* It might be that one or more of the file descriptors is invalid.
  57235. @@ -182,7 +160,7 @@
  57236. if (f->events & POLLPRI)
  57237. FD_SET (f->fd, sngl_xset);
  57238. - n = select (f->fd + 1, sngl_rset, sngl_wset, sngl_xset,
  57239. + n = __NC(select) (f->fd + 1, sngl_rset, sngl_wset, sngl_xset,
  57240. &sngl_tv);
  57241. if (n != -1)
  57242. {
  57243. @@ -227,4 +205,6 @@
  57244. }
  57245. #endif
  57246. -libc_hidden_def(poll)
  57247. +CANCELLABLE_SYSCALL(int, poll, (struct pollfd *fds, nfds_t nfds, int timeout),
  57248. + (fds, nfds, timeout))
  57249. +lt_libc_hidden(poll)
  57250. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fadvise64.c uClibc-git/libc/sysdeps/linux/common/posix_fadvise64.c
  57251. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fadvise64.c 2012-05-15 09:20:09.000000000 +0200
  57252. +++ uClibc-git/libc/sysdeps/linux/common/posix_fadvise64.c 2014-06-02 17:40:34.358713889 +0200
  57253. @@ -8,63 +8,32 @@
  57254. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  57255. */
  57256. -#include <features.h>
  57257. -#include <unistd.h>
  57258. -#include <errno.h>
  57259. -#include <endian.h>
  57260. -#include <stdint.h>
  57261. -#include <sys/types.h>
  57262. +#include <_lfs_64.h>
  57263. #include <sys/syscall.h>
  57264. -#include <fcntl.h>
  57265. +#include <bits/wordsize.h>
  57266. -#ifdef __UCLIBC_HAS_LFS__
  57267. -#ifdef __NR_fadvise64_64
  57268. -
  57269. -/* 64 bit implementation is cake ... or more like pie ... */
  57270. -#if __WORDSIZE == 64
  57271. -
  57272. -#define __NR_posix_fadvise64 __NR_fadvise64_64
  57273. -
  57274. -int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advice)
  57275. -{
  57276. - if (len != (off_t) len)
  57277. - return EOVERFLOW;
  57278. - INTERNAL_SYSCALL_DECL (err);
  57279. - int ret = INTERNAL_SYSCALL (posix_fadvise64, err, 5, fd,
  57280. - __LONG_LONG_PAIR ((long) (offset >> 32),
  57281. - (long) offset),
  57282. - (off_t) len, advice);
  57283. - if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
  57284. - return 0;
  57285. - return INTERNAL_SYSCALL_ERRNO (ret, err);
  57286. -}
  57287. +#ifdef __NR_arm_fadvise64_64
  57288. +# define __NR_fadvise64_64 __NR_arm_fadvise64_64
  57289. +#endif
  57290. -/* 32 bit implementation is kind of a pita */
  57291. -#elif __WORDSIZE == 32
  57292. +#if defined __NR_fadvise64_64 && __WORDSIZE == 32
  57293. +# include <fcntl.h>
  57294. +# include <endian.h>
  57295. -int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advice)
  57296. +int posix_fadvise64(int fd, off64_t offset, off64_t len, int advice)
  57297. {
  57298. INTERNAL_SYSCALL_DECL (err);
  57299. + /* ARM has always been funky. */
  57300. +# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__) || defined(__arm__)
  57301. + int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd, advice,
  57302. + OFF64_HI_LO (offset), OFF64_HI_LO (len));
  57303. +# else
  57304. int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd,
  57305. - __LONG_LONG_PAIR(offset >> 32, offset & 0xffffffff),
  57306. - __LONG_LONG_PAIR(len >> 32, len & 0xffffffff),
  57307. - advice);
  57308. - if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
  57309. - return 0;
  57310. - return INTERNAL_SYSCALL_ERRNO (ret, err);
  57311. + OFF64_HI_LO (offset), OFF64_HI_LO (len),
  57312. + advice);
  57313. +# endif
  57314. + if (INTERNAL_SYSCALL_ERROR_P (ret, err))
  57315. + return INTERNAL_SYSCALL_ERRNO (ret, err);
  57316. + return 0;
  57317. }
  57318. -
  57319. -#else
  57320. -#error your machine is neither 32 bit or 64 bit ... it must be magical
  57321. #endif
  57322. -
  57323. -#elif !defined __NR_fadvise64 && defined __UCLIBC_HAS_STUBS__
  57324. -/* This is declared as a strong alias in posix_fadvise.c if __NR_fadvise64
  57325. - * is defined.
  57326. - */
  57327. -int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advice)
  57328. -{
  57329. - return ENOSYS;
  57330. -}
  57331. -#endif /* __NR_fadvise64_64 */
  57332. -#endif /* __UCLIBC_HAS_LFS__ */
  57333. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fadvise.c uClibc-git/libc/sysdeps/linux/common/posix_fadvise.c
  57334. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fadvise.c 2012-05-15 09:20:09.000000000 +0200
  57335. +++ uClibc-git/libc/sysdeps/linux/common/posix_fadvise.c 2014-06-02 17:40:34.358713889 +0200
  57336. @@ -9,27 +9,46 @@
  57337. */
  57338. #include <sys/syscall.h>
  57339. -#include <fcntl.h>
  57340. -#ifdef __NR_fadvise64
  57341. -#define __NR_posix_fadvise __NR_fadvise64
  57342. +#ifdef __NR_arm_fadvise64_64
  57343. +/* We handle the 64bit alignment issue which is why the arm guys renamed their
  57344. + * syscall in the first place. So rename it back.
  57345. + */
  57346. +# define __NR_fadvise64_64 __NR_arm_fadvise64_64
  57347. +#endif
  57348. +
  57349. +#if defined(__NR_fadvise64) || defined(__NR_fadvise64_64)
  57350. +# include <fcntl.h>
  57351. +# include <endian.h>
  57352. +# include <bits/wordsize.h>
  57353. +
  57354. +# ifdef __NR_fadvise64_64
  57355. +int posix_fadvise64(int fd, off64_t offset, off64_t len, int advice);
  57356. +# endif
  57357. +
  57358. int posix_fadvise(int fd, off_t offset, off_t len, int advice)
  57359. {
  57360. +# ifdef __NR_fadvise64_64
  57361. + return posix_fadvise64(fd, offset, len, advice);
  57362. +# else
  57363. + int ret;
  57364. INTERNAL_SYSCALL_DECL(err);
  57365. - int ret = (int) (INTERNAL_SYSCALL(posix_fadvise, err, 5, fd,
  57366. - __LONG_LONG_PAIR (offset >> 31, offset), len, advice));
  57367. - if (INTERNAL_SYSCALL_ERROR_P (ret, err))
  57368. - return INTERNAL_SYSCALL_ERRNO (ret, err);
  57369. - return 0;
  57370. +# if __WORDSIZE == 64
  57371. + ret = INTERNAL_SYSCALL(fadvise64, err, 4, fd, offset, len, advice);
  57372. +# else
  57373. +# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__)
  57374. + ret = INTERNAL_SYSCALL(fadvise64, err, 6, fd, /*unused*/0,
  57375. +# else
  57376. + ret = INTERNAL_SYSCALL(fadvise64, err, 5, fd,
  57377. +# endif
  57378. + OFF_HI_LO (offset), len, advice);
  57379. +# endif
  57380. + if (INTERNAL_SYSCALL_ERROR_P (ret, err))
  57381. + return INTERNAL_SYSCALL_ERRNO (ret, err);
  57382. + return 0;
  57383. +# endif
  57384. }
  57385. -
  57386. -#if defined __UCLIBC_HAS_LFS__ && !defined __NR_fadvise64_64
  57387. +# if defined __UCLIBC_HAS_LFS__ && (!defined __NR_fadvise64_64 || __WORDSIZE == 64)
  57388. strong_alias(posix_fadvise,posix_fadvise64)
  57389. -#endif
  57390. -
  57391. -#elif defined __UCLIBC_HAS_STUBS__
  57392. -int posix_fadvise(int fd attribute_unused, off_t offset attribute_unused, off_t len attribute_unused, int advice attribute_unused)
  57393. -{
  57394. - return ENOSYS;
  57395. -}
  57396. +# endif
  57397. #endif
  57398. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fallocate64.c uClibc-git/libc/sysdeps/linux/common/posix_fallocate64.c
  57399. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fallocate64.c 1970-01-01 01:00:00.000000000 +0100
  57400. +++ uClibc-git/libc/sysdeps/linux/common/posix_fallocate64.c 2014-06-02 17:40:34.358713889 +0200
  57401. @@ -0,0 +1,34 @@
  57402. +/* vi: set sw=4 ts=4: */
  57403. +/*
  57404. + * posix_fallocate() for uClibc
  57405. + * http://www.opengroup.org/onlinepubs/9699919799/functions/posix_fallocate.html
  57406. + *
  57407. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  57408. + *
  57409. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  57410. + */
  57411. +
  57412. +#include <sys/syscall.h>
  57413. +#include <fcntl.h>
  57414. +#include <bits/kernel-features.h>
  57415. +#include <stdint.h>
  57416. +
  57417. +#if defined __NR_fallocate
  57418. +
  57419. +# if __WORDSIZE == 64
  57420. +/* Can use normal posix_fallocate() */
  57421. +# elif __WORDSIZE == 32
  57422. +int posix_fallocate64(int fd, __off64_t offset, __off64_t len)
  57423. +{
  57424. + int ret;
  57425. + INTERNAL_SYSCALL_DECL(err);
  57426. + ret = (int) (INTERNAL_SYSCALL(fallocate, err, 6, fd, 0,
  57427. + OFF64_HI_LO (offset), OFF64_HI_LO (len)));
  57428. + if (unlikely(INTERNAL_SYSCALL_ERROR_P (ret, err)))
  57429. + return INTERNAL_SYSCALL_ERRNO (ret, err);
  57430. + return 0;
  57431. +}
  57432. +# else
  57433. +# error your machine is neither 32 bit or 64 bit ... it must be magical
  57434. +# endif
  57435. +#endif
  57436. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fallocate.c uClibc-git/libc/sysdeps/linux/common/posix_fallocate.c
  57437. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fallocate.c 1970-01-01 01:00:00.000000000 +0100
  57438. +++ uClibc-git/libc/sysdeps/linux/common/posix_fallocate.c 2014-06-02 17:40:34.358713889 +0200
  57439. @@ -0,0 +1,43 @@
  57440. +/* vi: set sw=4 ts=4: */
  57441. +/*
  57442. + * posix_fallocate() for uClibc
  57443. + * http://www.opengroup.org/onlinepubs/9699919799/functions/posix_fallocate.html
  57444. + *
  57445. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  57446. + *
  57447. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  57448. + */
  57449. +
  57450. +#include <sys/syscall.h>
  57451. +#include <fcntl.h>
  57452. +#include <bits/kernel-features.h>
  57453. +#include <stdint.h>
  57454. +
  57455. +#if defined __NR_fallocate
  57456. +int posix_fallocate(int fd, __off_t offset, __off_t len)
  57457. +{
  57458. + int ret;
  57459. +
  57460. +# if __WORDSIZE == 32
  57461. + uint32_t off_low = offset;
  57462. + uint32_t len_low = len;
  57463. + /* may assert that these >>31 are 0 */
  57464. + uint32_t zero = 0;
  57465. + INTERNAL_SYSCALL_DECL(err);
  57466. + ret = (int) (INTERNAL_SYSCALL(fallocate, err, 6, fd, 0,
  57467. + __LONG_LONG_PAIR (zero, off_low),
  57468. + __LONG_LONG_PAIR (zero, len_low)));
  57469. +# elif __WORDSIZE == 64
  57470. + INTERNAL_SYSCALL_DECL(err);
  57471. + ret = (int) (INTERNAL_SYSCALL(fallocate, err, 4, fd, 0, offset, len));
  57472. +# else
  57473. +# error your machine is neither 32 bit or 64 bit ... it must be magical
  57474. +#endif
  57475. + if (unlikely(INTERNAL_SYSCALL_ERROR_P (ret, err)))
  57476. + return INTERNAL_SYSCALL_ERRNO (ret, err);
  57477. + return 0;
  57478. +}
  57479. +# if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
  57480. +strong_alias(posix_fallocate,posix_fallocate64)
  57481. +# endif
  57482. +#endif
  57483. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_madvise.c uClibc-git/libc/sysdeps/linux/common/posix_madvise.c
  57484. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_madvise.c 1970-01-01 01:00:00.000000000 +0100
  57485. +++ uClibc-git/libc/sysdeps/linux/common/posix_madvise.c 2014-06-02 17:40:34.358713889 +0200
  57486. @@ -0,0 +1,25 @@
  57487. +/* vi: set sw=4 ts=4: */
  57488. +/* Licensed under the LGPL v2.1, see the file LICENSE in this tarball. */
  57489. +
  57490. +#include <sys/mman.h>
  57491. +#include <sys/syscall.h>
  57492. +
  57493. +#if defined __NR_madvise && defined __USE_XOPEN2K && defined __UCLIBC_HAS_ADVANCED_REALTIME__
  57494. +int posix_madvise(void *addr, size_t len, int advice)
  57495. +{
  57496. + int result;
  57497. + /* We have one problem: the kernel's MADV_DONTNEED does not
  57498. + * correspond to POSIX's POSIX_MADV_DONTNEED. The former simply
  57499. + * discards changes made to the memory without writing it back to
  57500. + * disk, if this would be necessary. The POSIX behaviour does not
  57501. + * allow this. There is no functionality mapping for the POSIX
  57502. + * behaviour so far so we ignore that advice for now. */
  57503. + if (advice == POSIX_MADV_DONTNEED)
  57504. + return 0;
  57505. +
  57506. + /* this part might use madvise function */
  57507. + INTERNAL_SYSCALL_DECL (err);
  57508. + result = INTERNAL_SYSCALL (madvise, err, 3, addr, len, advice);
  57509. + return INTERNAL_SYSCALL_ERRNO (result, err);
  57510. +}
  57511. +#endif
  57512. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ppoll.c uClibc-git/libc/sysdeps/linux/common/ppoll.c
  57513. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/ppoll.c 2012-05-15 09:20:09.000000000 +0200
  57514. +++ uClibc-git/libc/sysdeps/linux/common/ppoll.c 2014-06-02 17:40:34.358713889 +0200
  57515. @@ -13,26 +13,22 @@
  57516. Lesser General Public License for more details.
  57517. You should have received a copy of the GNU Lesser General Public
  57518. - License along with the GNU C Library; if not, write to the Free
  57519. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  57520. - 02111-1307 USA. */
  57521. + License along with the GNU C Library; if not, see
  57522. + <http://www.gnu.org/licenses/>. */
  57523. -#include <signal.h>
  57524. #include <sys/syscall.h>
  57525. -#include <sys/poll.h>
  57526. +
  57527. +#if defined __NR_ppoll && defined __UCLIBC_LINUX_SPECIFIC__ && defined __USE_GNU
  57528. +
  57529. #define __need_NULL
  57530. #include <stddef.h>
  57531. +#include <signal.h>
  57532. +#include <sys/poll.h>
  57533. +#include <cancel.h>
  57534. -#if defined __NR_ppoll && defined __UCLIBC_LINUX_SPECIFIC__
  57535. -# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  57536. -# include <sysdep-cancel.h>
  57537. -# else
  57538. -# define SINGLE_THREAD_P 1
  57539. -# endif
  57540. -
  57541. -int
  57542. -ppoll(struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
  57543. - const sigset_t *sigmask)
  57544. +static int
  57545. +__NC(ppoll)(struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
  57546. + const sigset_t *sigmask)
  57547. {
  57548. /* The Linux kernel can in some situations update the timeout value.
  57549. We do not want that so use a local variable. */
  57550. @@ -41,15 +37,11 @@
  57551. tval = *timeout;
  57552. timeout = &tval;
  57553. }
  57554. - if (SINGLE_THREAD_P)
  57555. - return INLINE_SYSCALL(ppoll, 5, fds, nfds, timeout, sigmask, _NSIG / 8);
  57556. -
  57557. -# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  57558. - int oldtype = LIBC_CANCEL_ASYNC ();
  57559. - int result = INLINE_SYSCALL(ppoll, 5, fds, nfds, timeout, sigmask, _NSIG / 8);
  57560. - LIBC_CANCEL_RESET (oldtype);
  57561. - return result;
  57562. -# endif
  57563. + return INLINE_SYSCALL(ppoll, 5, fds, nfds, timeout, sigmask, __SYSCALL_SIGSET_T_SIZE);
  57564. }
  57565. -libc_hidden_def(ppoll)
  57566. +
  57567. +CANCELLABLE_SYSCALL(int, ppoll, (struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
  57568. + const sigset_t *sigmask),
  57569. + (fds, nfds, timeout, sigmask))
  57570. +
  57571. #endif
  57572. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/prctl.c uClibc-git/libc/sysdeps/linux/common/prctl.c
  57573. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/prctl.c 2012-05-15 09:20:09.000000000 +0200
  57574. +++ uClibc-git/libc/sysdeps/linux/common/prctl.c 2014-06-02 17:40:34.358713889 +0200
  57575. @@ -8,10 +8,10 @@
  57576. */
  57577. #include <sys/syscall.h>
  57578. -#include <stdarg.h>
  57579. /* psm: including sys/prctl.h would depend on kernel headers */
  57580. #ifdef __NR_prctl
  57581. -extern int prctl (int, long, long, long, long);
  57582. -_syscall5(int, prctl, int, option, long, _a2, long, _a3, long, _a4, long, _a5)
  57583. +int prctl (int, long, long, long, long);
  57584. +_syscall5(int, prctl, int, option, long, _prctl_a2, long, _prctl_a3,
  57585. + long, _prctl_a4, long, _prctl_a5)
  57586. #endif
  57587. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/pread_write.c uClibc-git/libc/sysdeps/linux/common/pread_write.c
  57588. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/pread_write.c 2012-05-15 09:20:09.000000000 +0200
  57589. +++ uClibc-git/libc/sysdeps/linux/common/pread_write.c 2014-06-02 17:40:34.358713889 +0200
  57590. @@ -15,173 +15,101 @@
  57591. #include <sys/syscall.h>
  57592. #include <unistd.h>
  57593. -#include <stdint.h>
  57594. #include <endian.h>
  57595. +#include <bits/wordsize.h>
  57596. +#include <cancel.h>
  57597. -extern __typeof(pread) __libc_pread;
  57598. -extern __typeof(pwrite) __libc_pwrite;
  57599. -#ifdef __UCLIBC_HAS_LFS__
  57600. -extern __typeof(pread64) __libc_pread64;
  57601. -extern __typeof(pwrite64) __libc_pwrite64;
  57602. +#ifdef __NR_pread64
  57603. +# undef __NR_pread
  57604. +# define __NR_pread __NR_pread64
  57605. +#endif
  57606. +#ifdef __NR_pwrite64
  57607. +# undef __NR_pwrite
  57608. +# define __NR_pwrite __NR_pwrite64
  57609. #endif
  57610. -#include <bits/kernel_types.h>
  57611. -
  57612. -#ifdef __NR_pread
  57613. -
  57614. -# define __NR___syscall_pread __NR_pread
  57615. -static __inline__ _syscall5(ssize_t, __syscall_pread, int, fd, void *, buf,
  57616. - size_t, count, off_t, offset_hi, off_t, offset_lo)
  57617. -
  57618. -ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
  57619. -{
  57620. - return __syscall_pread(fd, buf, count, __LONG_LONG_PAIR(offset >> 31, offset));
  57621. -}
  57622. -weak_alias(__libc_pread,pread)
  57623. -
  57624. -# ifdef __UCLIBC_HAS_LFS__
  57625. -ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
  57626. -{
  57627. - uint32_t low = offset & 0xffffffff;
  57628. - uint32_t high = offset >> 32;
  57629. - return __syscall_pread(fd, buf, count, __LONG_LONG_PAIR(high, low));
  57630. -}
  57631. -weak_alias(__libc_pread64,pread64)
  57632. -# endif /* __UCLIBC_HAS_LFS__ */
  57633. -
  57634. -#endif /* __NR_pread */
  57635. -
  57636. -#ifdef __NR_pwrite
  57637. -
  57638. -# define __NR___syscall_pwrite __NR_pwrite
  57639. -static __inline__ _syscall5(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
  57640. - size_t, count, off_t, offset_hi, off_t, offset_lo)
  57641. -
  57642. -ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
  57643. -{
  57644. - return __syscall_pwrite(fd, buf, count, __LONG_LONG_PAIR(offset >> 31, offset));
  57645. -}
  57646. -weak_alias(__libc_pwrite,pwrite)
  57647. -
  57648. -# ifdef __UCLIBC_HAS_LFS__
  57649. -ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
  57650. -{
  57651. - uint32_t low = offset & 0xffffffff;
  57652. - uint32_t high = offset >> 32;
  57653. - return __syscall_pwrite(fd, buf, count, __LONG_LONG_PAIR(high, low));
  57654. -}
  57655. -weak_alias(__libc_pwrite64,pwrite64)
  57656. -# endif /* __UCLIBC_HAS_LFS__ */
  57657. -#endif /* __NR_pwrite */
  57658. -
  57659. -#if ! defined __NR_pread || ! defined __NR_pwrite
  57660. -
  57661. -static ssize_t __fake_pread_write(int fd, void *buf,
  57662. - size_t count, off_t offset, int do_pwrite)
  57663. -{
  57664. - int save_errno;
  57665. - ssize_t result;
  57666. - off_t old_offset;
  57667. -
  57668. - /* Since we must not change the file pointer preserve the
  57669. - * value so that we can restore it later. */
  57670. - if ((old_offset=lseek(fd, 0, SEEK_CUR)) == (off_t) -1)
  57671. - return -1;
  57672. -
  57673. - /* Set to wanted position. */
  57674. - if (lseek(fd, offset, SEEK_SET) == (off_t) -1)
  57675. - return -1;
  57676. -
  57677. - if (do_pwrite == 1) {
  57678. - /* Write the data. */
  57679. - result = write(fd, buf, count);
  57680. - } else {
  57681. - /* Read the data. */
  57682. - result = read(fd, buf, count);
  57683. - }
  57684. -
  57685. - /* Now we have to restore the position. If this fails we
  57686. - * have to return this as an error. */
  57687. - save_errno = errno;
  57688. - if (lseek(fd, old_offset, SEEK_SET) == (off_t) -1)
  57689. - {
  57690. - if (result == -1)
  57691. - __set_errno(save_errno);
  57692. - return -1;
  57693. - }
  57694. - __set_errno(save_errno);
  57695. - return(result);
  57696. -}
  57697. -
  57698. -# ifdef __UCLIBC_HAS_LFS__
  57699. +#ifndef MY_PREAD
  57700. +# ifdef __NR_pread
  57701. +# define __NR___syscall_pread __NR_pread
  57702. +# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__)
  57703. +static _syscall6(ssize_t, __syscall_pread, int, fd, void *, buf,
  57704. + size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
  57705. +# define MY_PREAD(fd, buf, count, offset) __syscall_pread(fd, buf, count, 0, OFF_HI_LO(offset))
  57706. +# define MY_PREAD64(fd, buf, count, offset) __syscall_pread(fd, buf, count, 0, OFF64_HI_LO(offset))
  57707. +# elif __WORDSIZE == 32
  57708. +static _syscall5(ssize_t, __syscall_pread, int, fd, void *, buf,
  57709. + size_t, count, off_t, offset_hi, off_t, offset_lo)
  57710. +# define MY_PREAD(fd, buf, count, offset) __syscall_pread(fd, buf, count, OFF_HI_LO(offset))
  57711. +# define MY_PREAD64(fd, buf, count, offset) __syscall_pread(fd, buf, count, OFF64_HI_LO(offset))
  57712. +# else
  57713. +static _syscall4(ssize_t, __syscall_pread, int, fd, void *, buf,
  57714. + size_t, count, off_t, offset)
  57715. +# define MY_PREAD(fd, buf, count, offset) __syscall_pread(fd, buf, count, offset)
  57716. +# define MY_PREAD64(fd, buf, count, offset) __syscall_pread(fd, buf, count, offset)
  57717. +# endif
  57718. +# endif
  57719. +#endif
  57720. -static ssize_t __fake_pread_write64(int fd, void *buf,
  57721. - size_t count, off64_t offset, int do_pwrite)
  57722. -{
  57723. - int save_errno;
  57724. - ssize_t result;
  57725. - off64_t old_offset;
  57726. -
  57727. - /* Since we must not change the file pointer preserve the
  57728. - * value so that we can restore it later. */
  57729. - if ((old_offset=lseek64(fd, 0, SEEK_CUR)) == (off64_t) -1)
  57730. - return -1;
  57731. -
  57732. - /* Set to wanted position. */
  57733. - if (lseek64(fd, offset, SEEK_SET) == (off64_t) -1)
  57734. - return -1;
  57735. -
  57736. - if (do_pwrite == 1) {
  57737. - /* Write the data. */
  57738. - result = write(fd, buf, count);
  57739. - } else {
  57740. - /* Read the data. */
  57741. - result = read(fd, buf, count);
  57742. - }
  57743. -
  57744. - /* Now we have to restore the position. */
  57745. - save_errno = errno;
  57746. - if (lseek64(fd, old_offset, SEEK_SET) == (off64_t) -1) {
  57747. - if (result == -1)
  57748. - __set_errno (save_errno);
  57749. - return -1;
  57750. - }
  57751. - __set_errno (save_errno);
  57752. - return result;
  57753. -}
  57754. -# endif /* __UCLIBC_HAS_LFS__ */
  57755. -#endif /* ! defined __NR_pread || ! defined __NR_pwrite */
  57756. +#ifndef MY_PWRITE
  57757. +# ifdef __NR_pwrite
  57758. +# define __NR___syscall_pwrite __NR_pwrite
  57759. +# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__)
  57760. +static _syscall6(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
  57761. + size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
  57762. +# define MY_PWRITE(fd, buf, count, offset) __syscall_pwrite(fd, buf, count, 0, OFF_HI_LO(offset))
  57763. +# define MY_PWRITE64(fd, buf, count, offset) __syscall_pwrite(fd, buf, count, 0, OFF64_HI_LO(offset))
  57764. +# elif __WORDSIZE == 32
  57765. +static _syscall5(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
  57766. + size_t, count, off_t, offset_hi, off_t, offset_lo)
  57767. +# define MY_PWRITE(fd, buf, count, offset) __syscall_pwrite(fd, buf, count, OFF_HI_LO(offset))
  57768. +# define MY_PWRITE64(fd, buf, count, offset) __syscall_pwrite(fd, buf, count, OFF64_HI_LO(offset))
  57769. +# else
  57770. +static _syscall4(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
  57771. + size_t, count, off_t, offset)
  57772. +# define MY_PWRITE(fd, buf, count, offset) __syscall_pwrite(fd, buf, count, offset)
  57773. +# define MY_PWRITE64(fd, buf, count, offset) __syscall_pwrite(fd, buf, count, offset)
  57774. +# endif
  57775. +# endif
  57776. +#endif
  57777. -#ifndef __NR_pread
  57778. -ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
  57779. +static ssize_t __NC(pread)(int fd, void *buf, size_t count, off_t offset)
  57780. {
  57781. - return __fake_pread_write(fd, buf, count, offset, 0);
  57782. + return MY_PREAD(fd, buf, count, offset);
  57783. }
  57784. -weak_alias(__libc_pread,pread)
  57785. +CANCELLABLE_SYSCALL(ssize_t, pread, (int fd, void *buf, size_t count, off_t offset),
  57786. + (fd, buf, count, offset))
  57787. -# ifdef __UCLIBC_HAS_LFS__
  57788. -ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
  57789. +static ssize_t __NC(pwrite)(int fd, const void *buf, size_t count, off_t offset)
  57790. {
  57791. - return __fake_pread_write64(fd, buf, count, offset, 0);
  57792. + return MY_PWRITE(fd, buf, count, offset);
  57793. }
  57794. -weak_alias(__libc_pread64,pread64)
  57795. -# endif /* __UCLIBC_HAS_LFS__ */
  57796. -#endif /* ! __NR_pread */
  57797. +CANCELLABLE_SYSCALL(ssize_t, pwrite, (int fd, const void *buf, size_t count, off_t offset),
  57798. + (fd, buf, count, offset))
  57799. -#ifndef __NR_pwrite
  57800. -ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
  57801. +#ifdef __UCLIBC_HAS_LFS__
  57802. +# if __WORDSIZE == 32
  57803. +static ssize_t __NC(pread64)(int fd, void *buf, size_t count, off64_t offset)
  57804. {
  57805. - /* we won't actually be modifying the buffer,
  57806. - *just cast it to get rid of warnings */
  57807. - return __fake_pread_write(fd, (void*)buf, count, offset, 1);
  57808. + return MY_PREAD64(fd, buf, count, offset);
  57809. }
  57810. -weak_alias(__libc_pwrite,pwrite)
  57811. +CANCELLABLE_SYSCALL(ssize_t, pread64, (int fd, void *buf, size_t count, off64_t offset),
  57812. + (fd, buf, count, offset))
  57813. -# ifdef __UCLIBC_HAS_LFS__
  57814. -ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
  57815. -{
  57816. - return __fake_pread_write64(fd, (void*)buf, count, offset, 1);
  57817. -}
  57818. -weak_alias(__libc_pwrite64,pwrite64)
  57819. -# endif /* __UCLIBC_HAS_LFS__ */
  57820. -#endif /* ! __NR_pwrite */
  57821. +static ssize_t __NC(pwrite64)(int fd, const void *buf, size_t count, off64_t offset)
  57822. +{
  57823. + return MY_PWRITE64(fd, buf, count, offset);
  57824. +}
  57825. +CANCELLABLE_SYSCALL(ssize_t, pwrite64, (int fd, const void *buf, size_t count, off64_t offset),
  57826. + (fd, buf, count, offset))
  57827. +# else
  57828. +# ifdef __LINUXTHREADS_OLD__
  57829. +weak_alias(pread,pread64)
  57830. +weak_alias(pwrite,pwrite64)
  57831. +lt_strong_alias(pread64)
  57832. +lt_strong_alias(pwrite64)
  57833. +# else
  57834. +strong_alias_untyped(pread,pread64)
  57835. +strong_alias_untyped(pwrite,pwrite64)
  57836. +# endif
  57837. +# endif
  57838. +#endif
  57839. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/pselect.c uClibc-git/libc/sysdeps/linux/common/pselect.c
  57840. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/pselect.c 2012-05-15 09:20:09.000000000 +0200
  57841. +++ uClibc-git/libc/sysdeps/linux/common/pselect.c 2014-06-02 17:40:34.358713889 +0200
  57842. @@ -13,82 +13,53 @@
  57843. Lesser General Public License for more details.
  57844. You should have received a copy of the GNU Lesser General Public
  57845. - License along with the GNU C Library; if not, write to the Free
  57846. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  57847. - 02111-1307 USA. */
  57848. + License along with the GNU C Library; if not, see
  57849. + <http://www.gnu.org/licenses/>. */
  57850. -#include <errno.h>
  57851. -#include <signal.h>
  57852. -#include <stddef.h> /* For NULL. */
  57853. -#include <sys/time.h>
  57854. -#include <sys/select.h>
  57855. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  57856. -#include <sysdep-cancel.h>
  57857. -#endif
  57858. +#include <features.h>
  57859. -libc_hidden_proto(sigprocmask)
  57860. -libc_hidden_proto(select)
  57861. +#ifdef __USE_XOPEN2K
  57862. +#include <sys/syscall.h>
  57863. +#include <sys/select.h>
  57864. +#include <sys/time.h>
  57865. +#include <signal.h>
  57866. +#include <cancel.h>
  57867. -/* Check the first NFDS descriptors each in READFDS (if not NULL) for read
  57868. - readiness, in WRITEFDS (if not NULL) for write readiness, and in EXCEPTFDS
  57869. - (if not NULL) for exceptional conditions. If TIMEOUT is not NULL, time out
  57870. - after waiting the interval specified therein. Additionally set the sigmask
  57871. - SIGMASK for this call. Returns the number of ready descriptors, or -1 for
  57872. - errors. */
  57873. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  57874. -static int
  57875. -__pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
  57876. -#else
  57877. -int
  57878. -pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
  57879. -#endif
  57880. - const struct timespec *timeout, const sigset_t *sigmask)
  57881. +static int __NC(pselect)(int nfds, fd_set *readfds, fd_set *writefds,
  57882. + fd_set *exceptfds, const struct timespec *timeout,
  57883. + const sigset_t *sigmask)
  57884. {
  57885. - struct timeval tval;
  57886. - int retval;
  57887. - sigset_t savemask;
  57888. -
  57889. - /* Change nanosecond number to microseconds. This might mean losing
  57890. - precision and therefore the `pselect` should be available. But
  57891. - for now it is hardly found. */
  57892. - if (timeout != NULL)
  57893. - TIMESPEC_TO_TIMEVAL (&tval, timeout);
  57894. -
  57895. - /* The setting and restoring of the signal mask and the select call
  57896. - should be an atomic operation. This can't be done without kernel
  57897. - help. */
  57898. - if (sigmask != NULL)
  57899. - sigprocmask (SIG_SETMASK, sigmask, &savemask);
  57900. -
  57901. - /* Note the pselect() is a cancellation point. But since we call
  57902. - select() which itself is a cancellation point we do not have
  57903. - to do anything here. */
  57904. - retval = select (nfds, readfds, writefds, exceptfds,
  57905. - timeout != NULL ? &tval : NULL);
  57906. + struct timeval tval;
  57907. + int retval;
  57908. + sigset_t savemask;
  57909. +
  57910. + /* Change nanosecond number to microseconds. This might mean losing
  57911. + precision and therefore the `pselect` should be available. But
  57912. + for now it is hardly found. */
  57913. + if (timeout != NULL)
  57914. + TIMESPEC_TO_TIMEVAL (&tval, timeout);
  57915. +
  57916. + /* The setting and restoring of the signal mask and the select call
  57917. + should be an atomic operation. This can't be done without kernel
  57918. + help. */
  57919. + if (sigmask != NULL)
  57920. + sigprocmask (SIG_SETMASK, sigmask, &savemask);
  57921. +
  57922. + /* The comment below does not apply on uClibc, since we use __select_nocancel */
  57923. + /* Note the pselect() is a cancellation point. But since we call
  57924. + select() which itself is a cancellation point we do not have
  57925. + to do anything here. */
  57926. + retval = __NC(select)(nfds, readfds, writefds, exceptfds,
  57927. + timeout != NULL ? &tval : NULL);
  57928. - if (sigmask != NULL)
  57929. - sigprocmask (SIG_SETMASK, &savemask, NULL);
  57930. + if (sigmask != NULL)
  57931. + sigprocmask (SIG_SETMASK, &savemask, NULL);
  57932. - return retval;
  57933. + return retval;
  57934. }
  57935. +CANCELLABLE_SYSCALL(int, pselect, (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
  57936. + const struct timespec *timeout, const sigset_t *sigmask),
  57937. + (nfds, readfds, writefds, exceptfds, timeout, sigmask))
  57938. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  57939. -int
  57940. -pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
  57941. - const struct timespec *timeout, const sigset_t *sigmask)
  57942. -{
  57943. - if (SINGLE_THREAD_P)
  57944. - return __pselect (nfds, readfds, writefds, exceptfds,
  57945. - timeout, sigmask);
  57946. -
  57947. - int oldtype = LIBC_CANCEL_ASYNC ();
  57948. -
  57949. - int result = __pselect (nfds, readfds, writefds, exceptfds,
  57950. - timeout, sigmask);
  57951. -
  57952. - LIBC_CANCEL_RESET (oldtype);
  57953. -
  57954. - return result;
  57955. -}
  57956. #endif
  57957. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/readahead.c uClibc-git/libc/sysdeps/linux/common/readahead.c
  57958. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/readahead.c 2012-05-15 09:20:09.000000000 +0200
  57959. +++ uClibc-git/libc/sysdeps/linux/common/readahead.c 2014-06-02 17:40:34.358713889 +0200
  57960. @@ -13,46 +13,33 @@
  57961. Lesser General Public License for more details.
  57962. You should have received a copy of the GNU Lesser General Public
  57963. - License along with the GNU C Library; if not, write to the Free
  57964. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  57965. - 02111-1307 USA. */
  57966. -
  57967. -#include <errno.h>
  57968. -#include <fcntl.h>
  57969. -#include <sys/types.h>
  57970. -#include <sys/syscall.h>
  57971. -#include <bits/wordsize.h>
  57972. -
  57973. -#ifdef __UCLIBC_HAS_LFS__
  57974. + License along with the GNU C Library; if not, see
  57975. + <http://www.gnu.org/licenses/>. */
  57976. -#include <_lfs_64.h>
  57977. +#include <sys/syscall.h>
  57978. -#ifdef __NR_readahead
  57979. +#if defined __NR_readahead && defined __UCLIBC_HAS_LFS__ && defined __USE_GNU
  57980. -# define __NR___readahead __NR_readahead
  57981. +# include <fcntl.h>
  57982. +# include <bits/wordsize.h>
  57983. # if __WORDSIZE == 64
  57984. -static __inline__ _syscall3(ssize_t, __readahead, int, fd,
  57985. - off_t, offset, size_t, count)
  57986. -
  57987. -ssize_t readahead(int fd, off_t offset, size_t count)
  57988. -{
  57989. - return __readahead(fd, offset, count);
  57990. -}
  57991. +_syscall3(ssize_t, readahead, int, fd, off_t, offset, size_t, count)
  57992. # else
  57993. -static __inline__ _syscall4(ssize_t, __readahead, int, fd,
  57994. - off_t, high_offset, off_t, low_offset, size_t, count)
  57995. -
  57996. ssize_t readahead(int fd, off64_t offset, size_t count)
  57997. {
  57998. - return __readahead(fd, (off_t) (offset >> 32), (off_t) (offset & 0xffffffff), count);
  57999. + return INLINE_SYSCALL(readahead,
  58000. +# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__)
  58001. + 5, fd, 0,
  58002. +# else
  58003. + 4, fd,
  58004. +# endif
  58005. + OFF64_HI_LO(offset), count);
  58006. }
  58007. # endif
  58008. #endif
  58009. -
  58010. -#endif /* __UCLIBC_HAS_LFS__ */
  58011. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/read.c uClibc-git/libc/sysdeps/linux/common/read.c
  58012. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/read.c 2012-05-15 09:20:09.000000000 +0200
  58013. +++ uClibc-git/libc/sysdeps/linux/common/read.c 2014-06-02 17:40:34.358713889 +0200
  58014. @@ -9,11 +9,11 @@
  58015. #include <sys/syscall.h>
  58016. #include <unistd.h>
  58017. +#include <cancel.h>
  58018. -_syscall3(ssize_t, read, int, fd, __ptr_t, buf, size_t, count)
  58019. -#ifndef __LINUXTHREADS_OLD__
  58020. -libc_hidden_def(read)
  58021. -#else
  58022. -libc_hidden_weak(read)
  58023. -strong_alias(read,__libc_read)
  58024. -#endif
  58025. +#define __NR___read_nocancel __NR_read
  58026. +_syscall3(ssize_t, __NC(read), int, fd, void *, buf, size_t, count)
  58027. +
  58028. +CANCELLABLE_SYSCALL(ssize_t, read, (int fd, void *buf, size_t count),
  58029. + (fd, buf, count))
  58030. +lt_libc_hidden(read)
  58031. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/readlinkat.c uClibc-git/libc/sysdeps/linux/common/readlinkat.c
  58032. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/readlinkat.c 2012-05-15 09:20:09.000000000 +0200
  58033. +++ uClibc-git/libc/sysdeps/linux/common/readlinkat.c 2014-06-02 17:40:34.358713889 +0200
  58034. @@ -11,6 +11,7 @@
  58035. #ifdef __NR_readlinkat
  58036. _syscall4(ssize_t, readlinkat, int, fd, const char *, path, char *, buf, size_t, len)
  58037. +libc_hidden_def(readlinkat)
  58038. #else
  58039. /* should add emulation with readlink() and /proc/self/fd/ ... */
  58040. #endif
  58041. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/readlink.c uClibc-git/libc/sysdeps/linux/common/readlink.c
  58042. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/readlink.c 2012-05-15 09:20:09.000000000 +0200
  58043. +++ uClibc-git/libc/sysdeps/linux/common/readlink.c 2014-06-02 17:40:34.358713889 +0200
  58044. @@ -10,5 +10,13 @@
  58045. #include <sys/syscall.h>
  58046. #include <unistd.h>
  58047. +#if defined(__NR_readlinkat) && !defined(__NR_readlink)
  58048. +# include <fcntl.h>
  58049. +ssize_t readlink (const char *path, char *buf, size_t len)
  58050. +{
  58051. + return readlinkat(AT_FDCWD, path, buf, len);
  58052. +}
  58053. +#else
  58054. _syscall3(ssize_t, readlink, const char *, path, char *, buf, size_t, bufsiz)
  58055. +#endif
  58056. libc_hidden_def(readlink)
  58057. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/readv.c uClibc-git/libc/sysdeps/linux/common/readv.c
  58058. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/readv.c 2012-05-15 09:20:09.000000000 +0200
  58059. +++ uClibc-git/libc/sysdeps/linux/common/readv.c 2014-06-02 17:40:34.358713889 +0200
  58060. @@ -10,41 +10,21 @@
  58061. #include <sys/syscall.h>
  58062. #include <sys/uio.h>
  58063. -
  58064. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  58065. -#include <sysdep-cancel.h>
  58066. +#include <cancel.h>
  58067. /* We should deal with kernel which have a smaller UIO_FASTIOV as well
  58068. as a very big count. */
  58069. -static ssize_t __readv (int fd, const struct iovec *vector, int count)
  58070. +static ssize_t __NC(readv)(int fd, const struct iovec *vector, int count)
  58071. {
  58072. - ssize_t bytes_read;
  58073. -
  58074. - bytes_read = INLINE_SYSCALL (readv, 3, fd, vector, count);
  58075. -
  58076. - if (bytes_read >= 0 || errno != EINVAL || count <= UIO_FASTIOV)
  58077. - return bytes_read;
  58078. -
  58079. - /* glibc tries again, but we do not. */
  58080. - //return __atomic_readv_replacement (fd, vector, count);
  58081. -
  58082. - return -1;
  58083. -}
  58084. -
  58085. -ssize_t readv (int fd, const struct iovec *vector, int count)
  58086. -{
  58087. - if (SINGLE_THREAD_P)
  58088. - return __readv (fd, vector, count);
  58089. -
  58090. - int oldtype = LIBC_CANCEL_ASYNC ();
  58091. + ssize_t bytes_read = INLINE_SYSCALL(readv, 3, fd, vector, count);
  58092. - int result = __readv (fd, vector, count);
  58093. + if (bytes_read >= 0 || errno != EINVAL || count <= UIO_FASTIOV)
  58094. + return bytes_read;
  58095. - LIBC_CANCEL_RESET (oldtype);
  58096. + /* glibc tries again, but we do not. */
  58097. + /* return __atomic_readv_replacement (fd, vector, count); */
  58098. - return result;
  58099. + return -1;
  58100. }
  58101. -#else
  58102. -_syscall3(ssize_t, readv, int, filedes, const struct iovec *, vector,
  58103. - int, count)
  58104. -#endif
  58105. +CANCELLABLE_SYSCALL(ssize_t, readv, (int fd, const struct iovec *vector, int count),
  58106. + (fd, vector, count))
  58107. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/renameat.c uClibc-git/libc/sysdeps/linux/common/renameat.c
  58108. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/renameat.c 2012-05-15 09:20:09.000000000 +0200
  58109. +++ uClibc-git/libc/sysdeps/linux/common/renameat.c 2014-06-02 17:40:34.358713889 +0200
  58110. @@ -11,6 +11,7 @@
  58111. #ifdef __NR_renameat
  58112. _syscall4(int, renameat, int, oldfd, const char *, old, int, newfd, const char *, new)
  58113. +libc_hidden_def(renameat)
  58114. #else
  58115. /* should add emulation with rename() and /proc/self/fd/ ... */
  58116. #endif
  58117. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/rename.c uClibc-git/libc/sysdeps/linux/common/rename.c
  58118. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/rename.c 2012-05-15 09:20:09.000000000 +0200
  58119. +++ uClibc-git/libc/sysdeps/linux/common/rename.c 2014-06-02 17:40:34.358713889 +0200
  58120. @@ -8,17 +8,15 @@
  58121. */
  58122. #include <sys/syscall.h>
  58123. -#include <unistd.h>
  58124. -#include <string.h>
  58125. -#include <sys/param.h>
  58126. #include <stdio.h>
  58127. +#include <unistd.h>
  58128. -#define __NR___syscall_rename __NR_rename
  58129. -static __inline__ _syscall2(int, __syscall_rename, const char *, oldpath,
  58130. - const char *, newpath)
  58131. -
  58132. -int rename(const char * oldpath, const char * newpath)
  58133. +#if defined __NR_renameat && !defined __NR_rename
  58134. +# include <fcntl.h>
  58135. +int rename(const char *oldpath, const char *newpath)
  58136. {
  58137. - return __syscall_rename(oldpath, newpath);
  58138. + return renameat(AT_FDCWD, oldpath, AT_FDCWD, newpath);
  58139. }
  58140. -
  58141. +#else
  58142. +_syscall2(int, rename, const char *, oldpath, const char *, newpath)
  58143. +#endif
  58144. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/rmdir.c uClibc-git/libc/sysdeps/linux/common/rmdir.c
  58145. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/rmdir.c 2012-05-15 09:20:09.000000000 +0200
  58146. +++ uClibc-git/libc/sysdeps/linux/common/rmdir.c 2014-06-02 17:40:34.358713889 +0200
  58147. @@ -11,5 +11,13 @@
  58148. #include <unistd.h>
  58149. +#if defined __NR_unlinkat && !defined __NR_rmdir
  58150. +# include <fcntl.h>
  58151. +int rmdir(const char *pathname)
  58152. +{
  58153. + return unlinkat(AT_FDCWD, pathname, AT_REMOVEDIR);
  58154. +}
  58155. +#else
  58156. _syscall1(int, rmdir, const char *, pathname)
  58157. +#endif
  58158. libc_hidden_def(rmdir)
  58159. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/__rt_sigtimedwait.c uClibc-git/libc/sysdeps/linux/common/__rt_sigtimedwait.c
  58160. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/__rt_sigtimedwait.c 2012-05-15 09:20:09.000000000 +0200
  58161. +++ uClibc-git/libc/sysdeps/linux/common/__rt_sigtimedwait.c 2014-06-02 17:40:34.338713778 +0200
  58162. @@ -9,42 +9,49 @@
  58163. */
  58164. #include <sys/syscall.h>
  58165. -#include <signal.h>
  58166. -#include <string.h>
  58167. #ifdef __NR_rt_sigtimedwait
  58168. -
  58169. +# include <signal.h>
  58170. +# include <cancel.h>
  58171. # ifdef __UCLIBC_HAS_THREADS_NATIVE__
  58172. -# include <sysdep-cancel.h>
  58173. # include <pthreadP.h> /* SIGCANCEL */
  58174. +# endif
  58175. +# ifdef SIGCANCEL
  58176. +# define __need_NULL
  58177. +# include <stddef.h>
  58178. +# include <string.h>
  58179. +# endif
  58180. -static int do_sigtimedwait(const sigset_t *set, siginfo_t *info,
  58181. - const struct timespec *timeout)
  58182. +int __NC(sigtimedwait)(const sigset_t *set, siginfo_t *info,
  58183. + const struct timespec *timeout)
  58184. {
  58185. -# ifdef SIGCANCEL
  58186. +# ifdef SIGCANCEL
  58187. sigset_t tmpset;
  58188. - if (set != NULL && (__builtin_expect (__sigismember (set, SIGCANCEL), 0)
  58189. -# ifdef SIGSETXID
  58190. - || __builtin_expect (__sigismember (set, SIGSETXID), 0)
  58191. -# endif
  58192. + if (set != NULL && (unlikely (__sigismember (set, SIGCANCEL))
  58193. +# ifdef SIGSETXID
  58194. + || unlikely (__sigismember (set, SIGSETXID))
  58195. +# endif
  58196. ))
  58197. {
  58198. /* Create a temporary mask without the bit for SIGCANCEL set. */
  58199. // We are not copying more than we have to.
  58200. memcpy (&tmpset, set, _NSIG / 8);
  58201. __sigdelset (&tmpset, SIGCANCEL);
  58202. -# ifdef SIGSETXID
  58203. +# ifdef SIGSETXID
  58204. __sigdelset (&tmpset, SIGSETXID);
  58205. -# endif
  58206. +# endif
  58207. set = &tmpset;
  58208. }
  58209. -# endif
  58210. +# endif
  58211. +/* if this is enabled, enable the disabled section in sigwait.c */
  58212. +# if defined SI_TKILL && defined SI_USER
  58213. /* XXX The size argument hopefully will have to be changed to the
  58214. real size of the user-level sigset_t. */
  58215. - int result = INLINE_SYSCALL (rt_sigtimedwait, 4, set, info,
  58216. - timeout, _NSIG / 8);
  58217. + /* on uClibc we use the kernel sigset_t size */
  58218. + int result = INLINE_SYSCALL(rt_sigtimedwait, 4, set, info,
  58219. + timeout, __SYSCALL_SIGSET_T_SIZE);
  58220. /* The kernel generates a SI_TKILL code in si_code in case tkill is
  58221. used. tkill is transparently used in raise(). Since having
  58222. @@ -54,39 +61,14 @@
  58223. info->si_code = SI_USER;
  58224. return result;
  58225. -}
  58226. -
  58227. -/* Return any pending signal or wait for one for the given time. */
  58228. -int attribute_hidden __sigtimedwait(const sigset_t *set, siginfo_t *info,
  58229. - const struct timespec *timeout)
  58230. -{
  58231. - if(SINGLE_THREAD_P)
  58232. - return do_sigtimedwait(set, info, timeout);
  58233. -
  58234. - int oldtype = LIBC_CANCEL_ASYNC();
  58235. -
  58236. - /* XXX The size argument hopefully will have to be changed to the
  58237. - real size of the user-level sigset_t. */
  58238. - int result = do_sigtimedwait(set, info, timeout);
  58239. -
  58240. - LIBC_CANCEL_RESET(oldtype);
  58241. -
  58242. - return result;
  58243. -}
  58244. # else
  58245. -# define __need_NULL
  58246. -# include <stddef.h>
  58247. -# define __NR___rt_sigtimedwait __NR_rt_sigtimedwait
  58248. -static _syscall4(int, __rt_sigtimedwait, const sigset_t *, set,
  58249. - siginfo_t *, info, const struct timespec *, timeout,
  58250. - size_t, setsize);
  58251. -
  58252. -int attribute_hidden __sigtimedwait(const sigset_t * set, siginfo_t * info,
  58253. - const struct timespec *timeout)
  58254. -{
  58255. - return __rt_sigtimedwait(set, info, timeout, _NSIG / 8);
  58256. + /* on uClibc we use the kernel sigset_t size */
  58257. + return INLINE_SYSCALL(rt_sigtimedwait, 4, set, info,
  58258. + timeout, __SYSCALL_SIGSET_T_SIZE);
  58259. +# endif
  58260. }
  58261. -# endif /* !__UCLIBC_HAS_THREADS_NATIVE__ */
  58262. -weak_alias(__sigtimedwait,sigtimedwait)
  58263. -libc_hidden_weak(sigtimedwait)
  58264. +CANCELLABLE_SYSCALL(int, sigtimedwait,
  58265. + (const sigset_t *set, siginfo_t *info, const struct timespec *timeout),
  58266. + (set, info, timeout))
  58267. +lt_libc_hidden(sigtimedwait)
  58268. #endif
  58269. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/__rt_sigwaitinfo.c uClibc-git/libc/sysdeps/linux/common/__rt_sigwaitinfo.c
  58270. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/__rt_sigwaitinfo.c 2012-05-15 09:20:09.000000000 +0200
  58271. +++ uClibc-git/libc/sysdeps/linux/common/__rt_sigwaitinfo.c 2014-06-02 17:40:34.338713778 +0200
  58272. @@ -9,81 +9,17 @@
  58273. */
  58274. #include <sys/syscall.h>
  58275. -#include <signal.h>
  58276. -#include <string.h>
  58277. #ifdef __NR_rt_sigtimedwait
  58278. +# define __need_NULL
  58279. +# include <stddef.h>
  58280. +# include <signal.h>
  58281. +# include <cancel.h>
  58282. -# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  58283. -# include <sysdep-cancel.h>
  58284. -
  58285. -static int do_sigwaitinfo(const sigset_t *set, siginfo_t *info)
  58286. -{
  58287. -# ifdef SIGCANCEL
  58288. - sigset_t tmpset;
  58289. -
  58290. - if (set != NULL && (__builtin_expect (__sigismember (set, SIGCANCEL), 0)
  58291. -# ifdef SIGSETXID
  58292. - || __builtin_expect (__sigismember (set, SIGSETXID), 0)
  58293. -# endif
  58294. - ))
  58295. - {
  58296. - /* Create a temporary mask without the bit for SIGCANCEL set. */
  58297. - // We are not copying more than we have to.
  58298. - memcpy (&tmpset, set, _NSIG / 8);
  58299. - __sigdelset (&tmpset, SIGCANCEL);
  58300. -# ifdef SIGSETXID
  58301. - __sigdelset (&tmpset, SIGSETXID);
  58302. -# endif
  58303. - set = &tmpset;
  58304. - }
  58305. -# endif
  58306. -
  58307. - /* XXX The size argument hopefully will have to be changed to the
  58308. - real size of the user-level sigset_t. */
  58309. - int result = INLINE_SYSCALL (rt_sigtimedwait, 4, set, info,
  58310. - NULL, _NSIG / 8);
  58311. -
  58312. - /* The kernel generates a SI_TKILL code in si_code in case tkill is
  58313. - used. tkill is transparently used in raise(). Since having
  58314. - SI_TKILL as a code is useful in general we fold the results
  58315. - here. */
  58316. - if (result != -1 && info != NULL && info->si_code == SI_TKILL)
  58317. - info->si_code = SI_USER;
  58318. -
  58319. - return result;
  58320. -}
  58321. -
  58322. -/* Return any pending signal or wait for one for the given time. */
  58323. -int __sigwaitinfo(const sigset_t *set, siginfo_t *info)
  58324. -{
  58325. - if(SINGLE_THREAD_P)
  58326. - return do_sigwaitinfo(set, info);
  58327. -
  58328. - int oldtype = LIBC_CANCEL_ASYNC();
  58329. -
  58330. - /* XXX The size argument hopefully will have to be changed to the
  58331. - real size of the user-level sigset_t. */
  58332. - int result = do_sigwaitinfo(set, info);
  58333. -
  58334. - LIBC_CANCEL_RESET(oldtype);
  58335. -
  58336. - return result;
  58337. -}
  58338. -# else
  58339. -# define __need_NULL
  58340. -# include <stddef.h>
  58341. -# define __NR___rt_sigwaitinfo __NR_rt_sigtimedwait
  58342. -static _syscall4(int, __rt_sigwaitinfo, const sigset_t *, set,
  58343. - siginfo_t *, info, const struct timespec *, timeout,
  58344. - size_t, setsize);
  58345. -
  58346. -int attribute_hidden __sigwaitinfo(const sigset_t * set, siginfo_t * info)
  58347. +int sigwaitinfo(const sigset_t *set, siginfo_t *info)
  58348. {
  58349. - return __rt_sigwaitinfo(set, info, NULL, _NSIG / 8);
  58350. + return sigtimedwait(set, info, NULL);
  58351. }
  58352. -# endif
  58353. -libc_hidden_proto(sigwaitinfo)
  58354. -weak_alias (__sigwaitinfo, sigwaitinfo)
  58355. -libc_hidden_weak(sigwaitinfo)
  58356. +/* cancellation handled by sigtimedwait, noop on uClibc */
  58357. +LIBC_CANCEL_HANDLED();
  58358. #endif
  58359. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sched_cpucount.c uClibc-git/libc/sysdeps/linux/common/sched_cpucount.c
  58360. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sched_cpucount.c 2012-05-15 09:20:09.000000000 +0200
  58361. +++ uClibc-git/libc/sysdeps/linux/common/sched_cpucount.c 2014-06-02 17:40:34.358713889 +0200
  58362. @@ -12,9 +12,8 @@
  58363. Lesser General Public License for more details.
  58364. You should have received a copy of the GNU Lesser General Public
  58365. - License along with the GNU C Library; if not, write to the Free
  58366. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  58367. - 02111-1307 USA. */
  58368. + License along with the GNU C Library; if not, see
  58369. + <http://www.gnu.org/licenses/>. */
  58370. #include <limits.h>
  58371. #include <sched.h>
  58372. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sched_getaffinity.c uClibc-git/libc/sysdeps/linux/common/sched_getaffinity.c
  58373. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sched_getaffinity.c 2012-05-15 09:20:09.000000000 +0200
  58374. +++ uClibc-git/libc/sysdeps/linux/common/sched_getaffinity.c 2014-06-02 17:40:34.358713889 +0200
  58375. @@ -12,24 +12,19 @@
  58376. Lesser General Public License for more details.
  58377. You should have received a copy of the GNU Lesser General Public
  58378. - License along with the GNU C Library; if not, write to the Free
  58379. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  58380. - 02111-1307 USA. */
  58381. + License along with the GNU C Library; if not, see
  58382. + <http://www.gnu.org/licenses/>. */
  58383. -#include <features.h>
  58384. -#ifdef __USE_GNU
  58385. -
  58386. -#include <sched.h>
  58387. -#include <sys/types.h>
  58388. #include <sys/syscall.h>
  58389. -#include <string.h>
  58390. -#include <sys/param.h>
  58391. -
  58392. -#if defined __NR_sched_getaffinity
  58393. -#define __NR___syscall_sched_getaffinity __NR_sched_getaffinity
  58394. -static __inline__ _syscall3(int, __syscall_sched_getaffinity, __kernel_pid_t, pid,
  58395. - size_t, cpusetsize, cpu_set_t *, cpuset)
  58396. +#if defined __NR_sched_getaffinity && defined __USE_GNU
  58397. +# include <sched.h>
  58398. +# include <string.h>
  58399. +# include <sys/types.h>
  58400. +# include <sys/param.h>
  58401. +# define __NR___syscall_sched_getaffinity __NR_sched_getaffinity
  58402. +static __always_inline _syscall3(int, __syscall_sched_getaffinity, __kernel_pid_t, pid,
  58403. + size_t, cpusetsize, cpu_set_t *, cpuset)
  58404. int sched_getaffinity(pid_t pid, size_t cpusetsize, cpu_set_t *cpuset)
  58405. {
  58406. @@ -45,4 +40,3 @@
  58407. return res;
  58408. }
  58409. #endif
  58410. -#endif
  58411. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sched_setaffinity.c uClibc-git/libc/sysdeps/linux/common/sched_setaffinity.c
  58412. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sched_setaffinity.c 2012-05-15 09:20:09.000000000 +0200
  58413. +++ uClibc-git/libc/sysdeps/linux/common/sched_setaffinity.c 2014-06-02 17:40:34.358713889 +0200
  58414. @@ -12,26 +12,20 @@
  58415. Lesser General Public License for more details.
  58416. You should have received a copy of the GNU Lesser General Public
  58417. - License along with the GNU C Library; if not, write to the Free
  58418. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  58419. - 02111-1307 USA. */
  58420. + License along with the GNU C Library; if not, see
  58421. + <http://www.gnu.org/licenses/>. */
  58422. -#include <features.h>
  58423. -#ifdef __USE_GNU
  58424. -
  58425. -#include <sched.h>
  58426. -#include <sys/types.h>
  58427. #include <sys/syscall.h>
  58428. -#include <string.h>
  58429. -#include <unistd.h>
  58430. -#include <sys/param.h>
  58431. -#include <alloca.h>
  58432. -
  58433. -#if defined __NR_sched_setaffinity
  58434. -
  58435. -#define __NR___syscall_sched_setaffinity __NR_sched_setaffinity
  58436. -static __inline__ _syscall3(int, __syscall_sched_setaffinity, __kernel_pid_t, pid,
  58437. - size_t, cpusetsize, cpu_set_t *, cpuset)
  58438. +
  58439. +#if defined __NR_sched_setaffinity && defined __USE_GNU
  58440. +# include <sched.h>
  58441. +# include <sys/types.h>
  58442. +# include <string.h>
  58443. +# include <unistd.h>
  58444. +# include <alloca.h>
  58445. +# define __NR___syscall_sched_setaffinity __NR_sched_setaffinity
  58446. +static __always_inline _syscall3(int, __syscall_sched_setaffinity, __kernel_pid_t, pid,
  58447. + size_t, cpusetsize, const cpu_set_t *, cpuset)
  58448. static size_t __kernel_cpumask_size;
  58449. @@ -68,7 +62,6 @@
  58450. return -1;
  58451. }
  58452. - return INLINE_SYSCALL (sched_setaffinity, 3, pid, cpusetsize, cpuset);
  58453. + return __syscall_sched_setaffinity(pid, cpusetsize, cpuset);
  58454. }
  58455. #endif
  58456. -#endif /* __USE_GNU */
  58457. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/select.c uClibc-git/libc/sysdeps/linux/common/select.c
  58458. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/select.c 2012-05-15 09:20:09.000000000 +0200
  58459. +++ uClibc-git/libc/sysdeps/linux/common/select.c 2014-06-02 17:40:34.362713911 +0200
  58460. @@ -9,27 +9,24 @@
  58461. #include <sys/syscall.h>
  58462. #include <sys/select.h>
  58463. -#include <stdint.h>
  58464. +#include <cancel.h>
  58465. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  58466. -#include <sysdep-cancel.h>
  58467. -#else
  58468. -#define SINGLE_THREAD_P 1
  58469. +#ifdef __NR__newselect
  58470. +# undef __NR_select
  58471. +# define __NR_select __NR__newselect
  58472. #endif
  58473. -#define USEC_PER_SEC 1000000L
  58474. -
  58475. -extern __typeof(select) __libc_select;
  58476. -
  58477. -#if !defined(__NR__newselect) && !defined(__NR_select) && defined __USE_XOPEN2K
  58478. -# define __NR___libc_pselect6 __NR_pselect6
  58479. -static _syscall6(int, __libc_pselect6, int, n, fd_set *, readfds, fd_set *, writefds,
  58480. - fd_set *, exceptfds, const struct timespec *, timeout,
  58481. - const sigset_t *, sigmask)
  58482. +#if !defined __NR_select && defined __NR_pselect6
  58483. +# include <stdint.h>
  58484. +# define USEC_PER_SEC 1000000L
  58485. +#endif
  58486. -int __libc_select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
  58487. - struct timeval *timeout)
  58488. +int __NC(select)(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
  58489. + struct timeval *timeout)
  58490. {
  58491. +#ifdef __NR_select
  58492. + return INLINE_SYSCALL(select, 5, n, readfds, writefds, exceptfds, timeout);
  58493. +#elif defined __NR_pselect6
  58494. struct timespec _ts, *ts = 0;
  58495. if (timeout) {
  58496. uint32_t usec;
  58497. @@ -51,44 +48,14 @@
  58498. ts = &_ts;
  58499. }
  58500. -
  58501. - if (SINGLE_THREAD_P)
  58502. - return __libc_pselect6(n, readfds, writefds, exceptfds, ts, 0);
  58503. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  58504. - int oldtype = LIBC_CANCEL_ASYNC ();
  58505. - int result = __libc_pselect6(n, readfds, writefds, exceptfds, ts, 0);
  58506. - LIBC_CANCEL_RESET (oldtype);
  58507. - return result;
  58508. -#endif
  58509. -
  58510. -}
  58511. -
  58512. -#else
  58513. -
  58514. -#ifdef __NR__newselect
  58515. -# define __NR___syscall_select __NR__newselect
  58516. -#else
  58517. -# define __NR___syscall_select __NR_select
  58518. -#endif
  58519. -
  58520. -static _syscall5(int, __syscall_select, int, n, fd_set *, readfds,
  58521. - fd_set *, writefds, fd_set *, exceptfds, struct timeval *, timeout);
  58522. -
  58523. -int __libc_select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
  58524. - struct timeval *timeout)
  58525. -{
  58526. - if (SINGLE_THREAD_P)
  58527. - return __syscall_select(n, readfds, writefds, exceptfds, timeout);
  58528. -
  58529. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  58530. - int oldtype = LIBC_CANCEL_ASYNC ();
  58531. - int result = __syscall_select(n, readfds, writefds, exceptfds, timeout);
  58532. - LIBC_CANCEL_RESET (oldtype);
  58533. - return result;
  58534. + return INLINE_SYSCALL(pselect6, 6, n, readfds, writefds, exceptfds, ts, 0);
  58535. #endif
  58536. }
  58537. -
  58538. +/* we should guard it, but we need it in other files, so let it fail
  58539. + * if we miss any of the syscalls */
  58540. +#if 1 /*defined __NR_select || defined __NR_pselect6*/
  58541. +CANCELLABLE_SYSCALL(int, select, (int n, fd_set *readfds, fd_set *writefds,
  58542. + fd_set *exceptfds, struct timeval *timeout),
  58543. + (n, readfds, writefds, exceptfds, timeout))
  58544. +lt_libc_hidden(select)
  58545. #endif
  58546. -
  58547. -weak_alias(__libc_select,select)
  58548. -libc_hidden_weak(select)
  58549. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sendfile64.c uClibc-git/libc/sysdeps/linux/common/sendfile64.c
  58550. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sendfile64.c 2012-05-15 09:20:09.000000000 +0200
  58551. +++ uClibc-git/libc/sysdeps/linux/common/sendfile64.c 2014-06-02 17:40:34.362713911 +0200
  58552. @@ -10,15 +10,12 @@
  58553. * just the macro we need to order things, __LONG_LONG_PAIR.
  58554. */
  58555. -#include <features.h>
  58556. -#include <unistd.h>
  58557. -#include <errno.h>
  58558. -#include <endian.h>
  58559. -#include <stdint.h>
  58560. -#include <sys/sendfile.h>
  58561. +#include <_lfs_64.h>
  58562. #include <sys/syscall.h>
  58563. #include <bits/wordsize.h>
  58564. -#if defined __UCLIBC_HAS_LFS__ && defined __NR_sendfile64
  58565. +#if defined __NR_sendfile64 && __WORDSIZE != 64
  58566. +# include <sys/sendfile.h>
  58567. _syscall4(ssize_t,sendfile64, int, out_fd, int, in_fd, __off64_t *, offset, size_t, count)
  58568. +libc_hidden_def(sendfile64)
  58569. #endif
  58570. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sendfile.c uClibc-git/libc/sysdeps/linux/common/sendfile.c
  58571. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sendfile.c 2012-05-15 09:20:09.000000000 +0200
  58572. +++ uClibc-git/libc/sysdeps/linux/common/sendfile.c 2014-06-02 17:40:34.362713911 +0200
  58573. @@ -8,16 +8,57 @@
  58574. */
  58575. #include <sys/syscall.h>
  58576. -#include <unistd.h>
  58577. -#include <sys/sendfile.h>
  58578. -#ifdef __NR_sendfile
  58579. +# include <sys/sendfile.h>
  58580. +# include <bits/wordsize.h>
  58581. +#if defined __NR_sendfile
  58582. _syscall4(ssize_t, sendfile, int, out_fd, int, in_fd, __off_t *, offset,
  58583. - size_t, count)
  58584. + size_t, count)
  58585. +# if defined __UCLIBC_HAS_LFS__ && (!defined __NR_sendfile64 || __WORDSIZE == 64)
  58586. +libc_hidden_def(sendfile64)
  58587. +strong_alias_untyped(sendfile,sendfile64)
  58588. +# endif
  58589. -#if ! defined __NR_sendfile64 && defined __UCLIBC_HAS_LFS__
  58590. -strong_alias(sendfile,sendfile64)
  58591. -#endif
  58592. +#elif defined __NR_sendfile64 && !defined __NR_sendfile
  58593. +# include <unistd.h>
  58594. +# include <stddef.h>
  58595. +
  58596. +ssize_t sendfile(int out_fd, int in_fd, __off_t *offset, size_t count)
  58597. +{
  58598. + __off64_t off64, *off;
  58599. + ssize_t res;
  58600. +
  58601. + /*
  58602. + * Check if valid fds and valid pointers were passed
  58603. + * This does not prevent the user from passing
  58604. + * an arbitrary pointer causing a segfault or
  58605. + * other security issues
  58606. + */
  58607. +
  58608. + if (in_fd < 0 || out_fd < 0) {
  58609. + __set_errno(EBADF);
  58610. + return -1;
  58611. + }
  58612. +
  58613. + if (offset == NULL || (int)offset < 0) {
  58614. + __set_errno(EFAULT);
  58615. + return -1;
  58616. + }
  58617. -#endif /* __NR_sendfile */
  58618. + if (offset) {
  58619. + off = &off64;
  58620. + off64 = *offset;
  58621. + } else {
  58622. + off = NULL;
  58623. + }
  58624. +
  58625. + res = INLINE_SYSCALL(sendfile64, 4, out_fd, in_fd, off, count);
  58626. +
  58627. + if (res >= 0)
  58628. + *offset = off64;
  58629. +
  58630. + return res;
  58631. +}
  58632. +
  58633. +#endif
  58634. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/setgroups.c uClibc-git/libc/sysdeps/linux/common/setgroups.c
  58635. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/setgroups.c 2012-05-15 09:20:09.000000000 +0200
  58636. +++ uClibc-git/libc/sysdeps/linux/common/setgroups.c 2014-06-02 17:40:34.362713911 +0200
  58637. @@ -8,12 +8,9 @@
  58638. */
  58639. #include <sys/syscall.h>
  58640. -#include <stdlib.h>
  58641. -#include <unistd.h>
  58642. -#include <grp.h>
  58643. #ifdef __USE_BSD
  58644. -
  58645. +#include <grp.h>
  58646. #if defined(__NR_setgroups32)
  58647. # undef __NR_setgroups
  58648. @@ -24,11 +21,14 @@
  58649. _syscall2(int, setgroups, size_t, size, const gid_t *, list)
  58650. #else
  58651. -
  58652. -
  58653. -#define __NR___syscall_setgroups __NR_setgroups
  58654. -static __inline__ _syscall2(int, __syscall_setgroups,
  58655. - size_t, size, const __kernel_gid_t *, list)
  58656. +# include <errno.h>
  58657. +# include <stdlib.h>
  58658. +# include <unistd.h>
  58659. +# include <sys/types.h>
  58660. +
  58661. +# define __NR___syscall_setgroups __NR_setgroups
  58662. +static __always_inline _syscall2(int, __syscall_setgroups,
  58663. + size_t, size, const __kernel_gid_t *, list)
  58664. int setgroups(size_t size, const gid_t *groups)
  58665. {
  58666. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/setpgrp.c uClibc-git/libc/sysdeps/linux/common/setpgrp.c
  58667. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/setpgrp.c 2012-05-15 09:20:09.000000000 +0200
  58668. +++ uClibc-git/libc/sysdeps/linux/common/setpgrp.c 2014-06-02 17:40:34.362713911 +0200
  58669. @@ -4,10 +4,8 @@
  58670. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  58671. */
  58672. -#include <syscall.h>
  58673. #include <unistd.h>
  58674. -
  58675. int setpgrp(void)
  58676. {
  58677. return setpgid(0,0);
  58678. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/setrlimit64.c uClibc-git/libc/sysdeps/linux/common/setrlimit64.c
  58679. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/setrlimit64.c 2012-05-15 09:20:09.000000000 +0200
  58680. +++ uClibc-git/libc/sysdeps/linux/common/setrlimit64.c 2014-06-02 17:40:34.362713911 +0200
  58681. @@ -12,20 +12,16 @@
  58682. Lesser General Public License for more details.
  58683. You should have received a copy of the GNU Lesser General Public
  58684. - License along with the GNU C Library; if not, write to the Free
  58685. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  58686. - 02111-1307 USA. */
  58687. + License along with the GNU C Library; if not, see
  58688. + <http://www.gnu.org/licenses/>. */
  58689. #include <_lfs_64.h>
  58690. -
  58691. -#include <sys/types.h>
  58692. -#include <sys/resource.h>
  58693. #include <bits/wordsize.h>
  58694. /* the regular setrlimit will work just fine for 64bit users */
  58695. +#if __WORDSIZE == 32
  58696. -#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 32
  58697. -
  58698. +# include <sys/resource.h>
  58699. /* Set the soft and hard limits for RESOURCE to *RLIMITS.
  58700. Only the super-user can increase hard limits.
  58701. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/setrlimit.c uClibc-git/libc/sysdeps/linux/common/setrlimit.c
  58702. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/setrlimit.c 2012-05-15 09:20:09.000000000 +0200
  58703. +++ uClibc-git/libc/sysdeps/linux/common/setrlimit.c 2014-06-02 17:40:34.362713911 +0200
  58704. @@ -7,12 +7,9 @@
  58705. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  58706. */
  58707. -#define setrlimit64 __hide_setrlimit64
  58708. #include <sys/syscall.h>
  58709. -#include <unistd.h>
  58710. #include <sys/resource.h>
  58711. -#undef setrlimit64
  58712. -
  58713. +#include <bits/wordsize.h>
  58714. /* Only wrap setrlimit if the new usetrlimit is not present and setrlimit sucks */
  58715. @@ -25,7 +22,7 @@
  58716. const struct rlimit *, rlim)
  58717. int setrlimit(__rlimit_resource_t resource, struct rlimit *rlimits)
  58718. {
  58719. - return (__syscall_usetrlimit(resource, rlimits));
  58720. + return __syscall_usetrlimit(resource, rlimits);
  58721. }
  58722. #elif !defined(__UCLIBC_HANDLE_OLDER_RLIMIT__)
  58723. @@ -36,6 +33,11 @@
  58724. #else
  58725. +# define __need_NULL
  58726. +# include <stddef.h>
  58727. +# include <errno.h>
  58728. +# include <sys/param.h>
  58729. +
  58730. /* we have to handle old style setrlimit() */
  58731. # define __NR___syscall_setrlimit __NR_setrlimit
  58732. static __always_inline
  58733. @@ -52,18 +54,15 @@
  58734. /* We might have to correct the limits values. Since the old values
  58735. * were signed the new values might be too large. */
  58736. -# define RMIN(x, y) ((x) < (y) ? (x) : (y))
  58737. - rlimits_small.rlim_cur = RMIN((unsigned long int) rlimits->rlim_cur,
  58738. + rlimits_small.rlim_cur = MIN((unsigned long int) rlimits->rlim_cur,
  58739. RLIM_INFINITY >> 1);
  58740. - rlimits_small.rlim_max = RMIN((unsigned long int) rlimits->rlim_max,
  58741. + rlimits_small.rlim_max = MIN((unsigned long int) rlimits->rlim_max,
  58742. RLIM_INFINITY >> 1);
  58743. -#undef RMIN
  58744. - return (__syscall_setrlimit(resource, &rlimits_small));
  58745. + return __syscall_setrlimit(resource, &rlimits_small);
  58746. }
  58747. #endif
  58748. -
  58749. libc_hidden_def(setrlimit)
  58750. #if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
  58751. -strong_alias(setrlimit, setrlimit64)
  58752. +strong_alias_untyped(setrlimit, setrlimit64)
  58753. #endif
  58754. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/setsid.c uClibc-git/libc/sysdeps/linux/common/setsid.c
  58755. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/setsid.c 2012-05-15 09:20:09.000000000 +0200
  58756. +++ uClibc-git/libc/sysdeps/linux/common/setsid.c 2014-06-02 17:40:34.362713911 +0200
  58757. @@ -10,6 +10,5 @@
  58758. #include <sys/syscall.h>
  58759. #include <unistd.h>
  58760. -
  58761. _syscall0(pid_t, setsid)
  58762. libc_hidden_def(setsid)
  58763. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/settimeofday.c uClibc-git/libc/sysdeps/linux/common/settimeofday.c
  58764. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/settimeofday.c 2012-05-15 09:20:09.000000000 +0200
  58765. +++ uClibc-git/libc/sysdeps/linux/common/settimeofday.c 2014-06-02 17:40:34.362713911 +0200
  58766. @@ -8,12 +8,36 @@
  58767. */
  58768. #include <sys/syscall.h>
  58769. -#include <sys/time.h>
  58770. #ifdef __USE_BSD
  58771. +# include <sys/time.h>
  58772. +# ifdef __NR_settimeofday
  58773. +_syscall2(int, settimeofday, const struct timeval *, tv,
  58774. + const struct timezone *, tz)
  58775. +# elif defined __USE_SVID && defined __NR_stime
  58776. +# define __need_NULL
  58777. +# include <stddef.h>
  58778. +# include <errno.h>
  58779. +# include <time.h>
  58780. +int settimeofday(const struct timeval *tv, const struct timezone *tz)
  58781. +{
  58782. + time_t when;
  58783. + if (tv == NULL) {
  58784. + __set_errno(EINVAL);
  58785. + return -1;
  58786. + }
  58787. -_syscall2(int, settimeofday, const struct timeval *, tv,
  58788. - const struct timezone *, tz)
  58789. + if (tz != NULL || tv->tv_usec % 1000000 != 0) {
  58790. + __set_errno(ENOSYS);
  58791. + return -1;
  58792. + }
  58793. +
  58794. + when = tv->tv_sec + (tv->tv_usec / 1000000);
  58795. + return stime(&when);
  58796. +}
  58797. +# endif
  58798. +# if defined __NR_settimeofday || (defined __USE_SVID && defined __NR_stime)
  58799. libc_hidden_def(settimeofday)
  58800. +# endif
  58801. #endif
  58802. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/setuid.c uClibc-git/libc/sysdeps/linux/common/setuid.c
  58803. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/setuid.c 2012-05-15 09:20:09.000000000 +0200
  58804. +++ uClibc-git/libc/sysdeps/linux/common/setuid.c 2014-06-02 17:40:34.362713911 +0200
  58805. @@ -22,7 +22,7 @@
  58806. #else
  58807. # define __NR___syscall_setuid __NR_setuid
  58808. -static __inline__ _syscall1(int, __syscall_setuid, __kernel_uid_t, uid)
  58809. +static __always_inline _syscall1(int, __syscall_setuid, __kernel_uid_t, uid)
  58810. int setuid(uid_t uid)
  58811. {
  58812. @@ -30,6 +30,6 @@
  58813. __set_errno(EINVAL);
  58814. return -1;
  58815. }
  58816. - return (__syscall_setuid(uid));
  58817. + return __syscall_setuid(uid);
  58818. }
  58819. #endif
  58820. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/signalfd.c uClibc-git/libc/sysdeps/linux/common/signalfd.c
  58821. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/signalfd.c 2012-05-15 09:20:09.000000000 +0200
  58822. +++ uClibc-git/libc/sysdeps/linux/common/signalfd.c 2014-06-02 17:40:34.362713911 +0200
  58823. @@ -25,13 +25,13 @@
  58824. int signalfd (int fd, const sigset_t *mask, int flags)
  58825. {
  58826. #if defined __NR___syscall_signalfd4
  58827. - return __syscall_signalfd4(fd, mask, _NSIG / 8, flags);
  58828. + return __syscall_signalfd4(fd, mask, __SYSCALL_SIGSET_T_SIZE, flags);
  58829. #elif defined __NR___syscall_signalfd
  58830. if (flags != 0) {
  58831. __set_errno(EINVAL);
  58832. return -1;
  58833. }
  58834. - return __syscall_signalfd(fd, mask, _NSIG / 8);
  58835. + return __syscall_signalfd(fd, mask, __SYSCALL_SIGSET_T_SIZE);
  58836. #endif
  58837. }
  58838. #endif
  58839. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sigpending.c uClibc-git/libc/sysdeps/linux/common/sigpending.c
  58840. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sigpending.c 2012-05-15 09:20:09.000000000 +0200
  58841. +++ uClibc-git/libc/sysdeps/linux/common/sigpending.c 2014-06-02 17:40:34.362713911 +0200
  58842. @@ -19,7 +19,7 @@
  58843. int sigpending(sigset_t * set)
  58844. {
  58845. - return __rt_sigpending(set, _NSIG / 8);
  58846. + return __rt_sigpending(set, __SYSCALL_SIGSET_T_SIZE);
  58847. }
  58848. #else
  58849. _syscall1(int, sigpending, sigset_t *, set)
  58850. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sigprocmask.c uClibc-git/libc/sysdeps/linux/common/sigprocmask.c
  58851. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sigprocmask.c 2012-05-15 09:20:09.000000000 +0200
  58852. +++ uClibc-git/libc/sysdeps/linux/common/sigprocmask.c 2014-06-02 17:40:34.362713911 +0200
  58853. @@ -35,9 +35,9 @@
  58854. * The only thing we have to make sure here is that SIGCANCEL and
  58855. * SIGSETXID are not blocked.
  58856. */
  58857. - if (set != NULL && (__builtin_expect (__sigismember (set, SIGCANCEL), 0)
  58858. + if (set != NULL && (unlikely (__sigismember (set, SIGCANCEL))
  58859. # ifdef SIGSETXID
  58860. - || __builtin_expect (__sigismember (set, SIGSETXID), 0)
  58861. + || unlikely (__sigismember (set, SIGSETXID))
  58862. # endif
  58863. ))
  58864. {
  58865. @@ -50,7 +50,7 @@
  58866. }
  58867. #endif
  58868. - return __rt_sigprocmask(how, set, oldset, _NSIG / 8);
  58869. + return __rt_sigprocmask(how, set, oldset, __SYSCALL_SIGSET_T_SIZE);
  58870. }
  58871. @@ -70,9 +70,9 @@
  58872. * The only thing we have to make sure here is that SIGCANCEL and
  58873. * SIGSETXID are not blocked.
  58874. */
  58875. - if (set != NULL && (__builtin_expect (__sigismember (set, SIGCANCEL), 0)
  58876. + if (set != NULL && (unlikely (__sigismember (set, SIGCANCEL))
  58877. # ifdef SIGSETXID
  58878. - || __builtin_expect (__sigismember (set, SIGSETXID), 0)
  58879. + || unlikely (__sigismember (set, SIGSETXID))
  58880. # endif
  58881. ))
  58882. {
  58883. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sigqueue.c uClibc-git/libc/sysdeps/linux/common/sigqueue.c
  58884. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sigqueue.c 2012-05-15 09:20:09.000000000 +0200
  58885. +++ uClibc-git/libc/sysdeps/linux/common/sigqueue.c 2014-06-02 17:40:34.362713911 +0200
  58886. @@ -12,41 +12,35 @@
  58887. Lesser General Public License for more details.
  58888. You should have received a copy of the GNU Lesser General Public
  58889. - License along with the GNU C Library; if not, write to the Free
  58890. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  58891. - 02111-1307 USA. */
  58892. -
  58893. -#include <errno.h>
  58894. -#include <signal.h>
  58895. -#include <unistd.h>
  58896. -#include <string.h>
  58897. + License along with the GNU C Library; if not, see
  58898. + <http://www.gnu.org/licenses/>. */
  58899. #include <sys/syscall.h>
  58900. -#if defined __USE_POSIX199309
  58901. +#if defined __NR_rt_sigqueueinfo && defined __USE_POSIX199309
  58902. +# include <signal.h>
  58903. +# include <unistd.h>
  58904. +# include <string.h>
  58905. -#ifdef __NR_rt_sigqueueinfo
  58906. -
  58907. -# define __NR___libc_rt_sigqueueinfo __NR_rt_sigqueueinfo
  58908. -static __inline__ _syscall3(int, __libc_rt_sigqueueinfo, pid_t, pid, int, sig, void*, value)
  58909. +# define __NR___syscall_rt_sigqueueinfo __NR_rt_sigqueueinfo
  58910. +static __always_inline _syscall3(int, __syscall_rt_sigqueueinfo, pid_t, pid, int, sig, void*, value)
  58911. /* Return any pending signal or wait for one for the given time. */
  58912. int sigqueue (pid_t pid, int sig, const union sigval val)
  58913. {
  58914. - siginfo_t info;
  58915. + siginfo_t info;
  58916. - /* First, clear the siginfo_t structure, so that we don't pass our
  58917. - stack content to other tasks. */
  58918. - memset (&info, 0, sizeof (siginfo_t));
  58919. - /* We must pass the information about the data in a siginfo_t value. */
  58920. - info.si_signo = sig;
  58921. - info.si_code = SI_QUEUE;
  58922. - info.si_pid = getpid ();
  58923. - info.si_uid = getuid ();
  58924. - info.si_value = val;
  58925. + /* First, clear the siginfo_t structure, so that we don't pass our
  58926. + stack content to other tasks. */
  58927. + memset(&info, 0, sizeof(info));
  58928. + /* We must pass the information about the data in a siginfo_t value. */
  58929. + info.si_signo = sig;
  58930. + info.si_code = SI_QUEUE;
  58931. + info.si_pid = getpid ();
  58932. + info.si_uid = getuid ();
  58933. + info.si_value = val;
  58934. - return __libc_rt_sigqueueinfo(pid, sig, &info);
  58935. + return __syscall_rt_sigqueueinfo(pid, sig, &info);
  58936. }
  58937. #endif
  58938. -#endif
  58939. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sigsuspend.c uClibc-git/libc/sysdeps/linux/common/sigsuspend.c
  58940. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sigsuspend.c 2012-05-15 09:20:09.000000000 +0200
  58941. +++ uClibc-git/libc/sysdeps/linux/common/sigsuspend.c 2014-06-02 17:40:34.362713911 +0200
  58942. @@ -9,51 +9,18 @@
  58943. #include <sys/syscall.h>
  58944. -#if defined __USE_POSIX
  58945. +#ifdef __USE_POSIX
  58946. #include <signal.h>
  58947. -#undef sigsuspend
  58948. +#include <cancel.h>
  58949. -libc_hidden_proto(sigsuspend)
  58950. -
  58951. -#ifdef __NR_rt_sigsuspend
  58952. -# define __NR___rt_sigsuspend __NR_rt_sigsuspend
  58953. -
  58954. -# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  58955. -# include <errno.h>
  58956. -# include <sysdep-cancel.h>
  58957. -
  58958. -/* Change the set of blocked signals to SET,
  58959. - wait until a signal arrives, and restore the set of blocked signals. */
  58960. -int sigsuspend (const sigset_t *set)
  58961. +int __NC(sigsuspend)(const sigset_t *set)
  58962. {
  58963. - if (SINGLE_THREAD_P)
  58964. - return INLINE_SYSCALL (rt_sigsuspend, 2, set, _NSIG / 8);
  58965. -
  58966. - int oldtype = LIBC_CANCEL_ASYNC ();
  58967. -
  58968. - int result = INLINE_SYSCALL (rt_sigsuspend, 2, set, _NSIG / 8);
  58969. -
  58970. - LIBC_CANCEL_RESET (oldtype);
  58971. -
  58972. - return result;
  58973. -}
  58974. -# else
  58975. -static inline _syscall2(int, __rt_sigsuspend, const sigset_t *, mask, size_t, size)
  58976. -
  58977. -int sigsuspend(const sigset_t * mask)
  58978. -{
  58979. - return __rt_sigsuspend(mask, _NSIG / 8);
  58980. -}
  58981. -# endif
  58982. +#ifdef __NR_rt_sigsuspend
  58983. + return INLINE_SYSCALL(rt_sigsuspend, 2, set, __SYSCALL_SIGSET_T_SIZE);
  58984. #else
  58985. -# define __NR___syscall_sigsuspend __NR_sigsuspend
  58986. -static __inline__ _syscall3(int, __syscall_sigsuspend, int, a, unsigned long int, b,
  58987. - unsigned long int, c)
  58988. -
  58989. -int sigsuspend(const sigset_t * set)
  58990. -{
  58991. - return __syscall_sigsuspend(0, 0, set->__val[0]);
  58992. -}
  58993. + return INLINE_SYSCALL(sigsuspend, 3, 0, 0, set->__val[0]);
  58994. #endif
  58995. -libc_hidden_def(sigsuspend)
  58996. +}
  58997. +CANCELLABLE_SYSCALL(int, sigsuspend, (const sigset_t *set), (set))
  58998. +lt_libc_hidden(sigsuspend)
  58999. #endif
  59000. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/__socketcall.c uClibc-git/libc/sysdeps/linux/common/__socketcall.c
  59001. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/__socketcall.c 2012-05-15 09:20:09.000000000 +0200
  59002. +++ uClibc-git/libc/sysdeps/linux/common/__socketcall.c 2014-06-02 17:40:34.338713778 +0200
  59003. @@ -8,8 +8,18 @@
  59004. */
  59005. #include <sys/syscall.h>
  59006. +
  59007. +/* At the time of this writing,
  59008. + * several arches provide the individual calls and do _not_ go through
  59009. + * this demuxer.
  59010. + *
  59011. + * Verify all arches supported by your kernel before you remove the
  59012. + * guard below!
  59013. + */
  59014. #ifdef __NR_socketcall
  59015. +#include <sys/socket.h>
  59016. +
  59017. #define __NR___socketcall __NR_socketcall
  59018. -int __socketcall(int __call, unsigned long *__args) attribute_hidden;
  59019. _syscall2(int, __socketcall, int, call, unsigned long *, args)
  59020. +
  59021. #endif
  59022. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/splice.c uClibc-git/libc/sysdeps/linux/common/splice.c
  59023. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/splice.c 2012-05-15 09:20:09.000000000 +0200
  59024. +++ uClibc-git/libc/sysdeps/linux/common/splice.c 2014-06-02 17:40:34.362713911 +0200
  59025. @@ -8,9 +8,10 @@
  59026. */
  59027. #include <sys/syscall.h>
  59028. -#include <fcntl.h>
  59029. -#ifdef __NR_splice
  59030. -_syscall6(ssize_t, splice, int, __fdin, __off64_t *, __offin, int, __fdout,
  59031. - __off64_t *, __offout, size_t, __len, unsigned int, __flags)
  59032. +#if defined __NR_splice && defined __UCLIBC_HAS_LFS__ && defined __USE_GNU
  59033. +# include <fcntl.h>
  59034. +
  59035. +_syscall6(ssize_t, splice, int, __fdin, off64_t *, __offin, int, __fdout,
  59036. + off64_t *, __offout, size_t, __len, unsigned int, __flags)
  59037. #endif
  59038. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ssp.c uClibc-git/libc/sysdeps/linux/common/ssp.c
  59039. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/ssp.c 2012-05-15 09:20:09.000000000 +0200
  59040. +++ uClibc-git/libc/sysdeps/linux/common/ssp.c 2014-06-02 17:40:34.362713911 +0200
  59041. @@ -20,103 +20,113 @@
  59042. #error "file must not be compiled with stack protection enabled on it. Use -fno-stack-protector"
  59043. #endif
  59044. +#include <string.h>
  59045. +#include <unistd.h>
  59046. +#include <signal.h>
  59047. +#ifdef __UCLIBC_HAS_SYSLOG__
  59048. +#include <sys/syslog.h>
  59049. +#endif
  59050. +
  59051. #ifdef __PROPOLICE_BLOCK_SEGV__
  59052. # define SSP_SIGTYPE SIGSEGV
  59053. #else
  59054. # define SSP_SIGTYPE SIGABRT
  59055. #endif
  59056. -#include <string.h>
  59057. -#include <unistd.h>
  59058. -#include <signal.h>
  59059. -#if defined __UCLIBC_HAS_SYSLOG__
  59060. -#include <sys/syslog.h>
  59061. +static void do_write(const char *msg)
  59062. +{
  59063. + /* could use inlined syscall here to be sure ... */
  59064. + return (void) write(STDERR_FILENO, msg, strlen(msg));
  59065. +}
  59066. +static void __cold do_msg(const char *msg1, const char *msg2, const char *msg3)
  59067. +{
  59068. + do_write(msg1);
  59069. + do_write(msg2);
  59070. + do_write(msg3);
  59071. + do_write("\n");
  59072. +#ifdef __UCLIBC_HAS_SYSLOG__
  59073. + syslog(LOG_INFO, "%s%s%s()", msg1, msg2, msg3);
  59074. #endif
  59075. +}
  59076. -
  59077. -static void block_signals(void)
  59078. +static void __cold attribute_noreturn
  59079. +#ifdef __UCLIBC_HAS_SSP_COMPAT__
  59080. +ssp_handler(char func[])
  59081. +#else
  59082. +ssp_handler(void)
  59083. +#endif
  59084. {
  59085. + pid_t pid;
  59086. + static const char msg_ssd[] = "*** stack smashing detected ***: ";
  59087. + static const char msg_terminated[] = " terminated";
  59088. +#ifdef __UCLIBC_HAS_SSP_COMPAT__
  59089. + static const char msg_ssa[] = ": stack smashing attack in function ";
  59090. +#endif
  59091. +
  59092. +#ifdef __DODEBUG__
  59093. struct sigaction sa;
  59094. sigset_t mask;
  59095. __sigfillset(&mask);
  59096. __sigdelset(&mask, SSP_SIGTYPE); /* Block all signal handlers */
  59097. sigprocmask(SIG_BLOCK, &mask, NULL); /* except SSP_SIGTYPE */
  59098. +#endif
  59099. +
  59100. +#ifdef __UCLIBC_HAS_SSP_COMPAT__
  59101. + if (func != NULL)
  59102. + do_msg(__uclibc_progname, msg_ssa, func);
  59103. + else
  59104. +#endif
  59105. + do_msg(msg_ssd, __uclibc_progname, msg_terminated);
  59106. + pid = getpid();
  59107. +#ifdef __DODEBUG__
  59108. /* Make the default handler associated with the signal handler */
  59109. memset(&sa, 0, sizeof(sa));
  59110. __sigfillset(&sa.sa_mask); /* Block all signals */
  59111. if (SIG_DFL) /* if it's constant zero, it's already done */
  59112. sa.sa_handler = SIG_DFL;
  59113. - sigaction(SSP_SIGTYPE, &sa, NULL);
  59114. -}
  59115. -
  59116. -static void __cold ssp_write(int fd, const char *msg1, const char *msg2, const char *msg3)
  59117. -{
  59118. - write(fd, msg1, strlen(msg1));
  59119. - write(fd, msg2, strlen(msg2));
  59120. - write(fd, msg3, strlen(msg3));
  59121. - write(fd, "()\n", 3);
  59122. -#if defined __UCLIBC_HAS_SYSLOG__
  59123. - openlog("ssp", LOG_CONS | LOG_PID, LOG_USER);
  59124. - syslog(LOG_INFO, "%s%s%s()", msg1, msg2, msg3);
  59125. - closelog();
  59126. + if (sigaction(SSP_SIGTYPE, &sa, NULL) == 0)
  59127. + (void)kill(pid, SSP_SIGTYPE);
  59128. #endif
  59129. -}
  59130. -
  59131. -static attribute_noreturn void terminate(void)
  59132. -{
  59133. - (void) kill(getpid(), SSP_SIGTYPE);
  59134. - _exit(127);
  59135. + (void)kill(pid, SIGKILL);
  59136. + /* The loop is added only to keep gcc happy. */
  59137. + while(1)
  59138. + _exit(127);
  59139. }
  59140. #ifdef __UCLIBC_HAS_SSP_COMPAT__
  59141. -void __stack_smash_handler(char func[], int damaged __attribute__ ((unused))) attribute_noreturn __cold;
  59142. -void __stack_smash_handler(char func[], int damaged)
  59143. +void __stack_smash_handler(char func[], int damaged) attribute_noreturn __cold;
  59144. +void __stack_smash_handler(char func[], int damaged attribute_unused)
  59145. {
  59146. - static const char message[] = ": stack smashing attack in function ";
  59147. -
  59148. - block_signals();
  59149. -
  59150. - ssp_write(STDERR_FILENO, __uclibc_progname, message, func);
  59151. -
  59152. - /* The loop is added only to keep gcc happy. */
  59153. - while(1)
  59154. - terminate();
  59155. + ssp_handler(func);
  59156. }
  59157. -#endif
  59158. -#ifdef __UCLIBC_HAS_SSP__
  59159. -void __stack_chk_fail(void) attribute_noreturn __cold;
  59160. void __stack_chk_fail(void)
  59161. {
  59162. - static const char msg1[] = "stack smashing detected: ";
  59163. - static const char msg3[] = " terminated";
  59164. -
  59165. - block_signals();
  59166. -
  59167. - ssp_write(STDERR_FILENO, msg1, __uclibc_progname, msg3);
  59168. -
  59169. - /* The loop is added only to keep gcc happy. */
  59170. - while(1)
  59171. - terminate();
  59172. + ssp_handler(NULL);
  59173. }
  59174. +#else
  59175. +strong_alias(ssp_handler,__stack_chk_fail)
  59176. #endif
  59177. #ifdef __UCLIBC_HAS_FORTIFY__
  59178. +/* should be redone when activated to use common code above.
  59179. + * for now, it works without debugging support */
  59180. void __chk_fail(void)
  59181. {
  59182. - static const char msg1[] = "buffer overflow detected: ";
  59183. - static const char msg3[] = " terminated";
  59184. -
  59185. - block_signals();
  59186. + static const char msg_fail[] = "*** buffer overflow detected ***: ";
  59187. + static const char msg_terminated[] = " terminated";
  59188. + pid_t pid;
  59189. - ssp_write(STDERR_FILENO, msg1, __uclibc_progname, msg3);
  59190. + do_msg(msg_fail, __uclibc_progname, msg_terminated);
  59191. + pid = getpid();
  59192. + (void)kill(pid, SIGKILL);
  59193. /* The loop is added only to keep gcc happy. */
  59194. while(1)
  59195. - terminate();
  59196. + _exit(127);
  59197. }
  59198. libc_hidden_def(__chk_fail)
  59199. #endif
  59200. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ssp-local.c uClibc-git/libc/sysdeps/linux/common/ssp-local.c
  59201. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/ssp-local.c 2012-05-15 09:20:09.000000000 +0200
  59202. +++ uClibc-git/libc/sysdeps/linux/common/ssp-local.c 2014-06-02 17:40:34.362713911 +0200
  59203. @@ -12,18 +12,19 @@
  59204. Lesser General Public License for more details.
  59205. You should have received a copy of the GNU Lesser General Public
  59206. - License along with the GNU C Library; if not, write to the Free
  59207. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  59208. - 02111-1307 USA. */
  59209. + License along with the GNU C Library; if not, see
  59210. + <http://www.gnu.org/licenses/>. */
  59211. /*
  59212. * Peter S. Mazinger ps.m[@]gmx.net
  59213. * copied stack_chk_fail_local.c from glibc and adapted for uClibc
  59214. */
  59215. -#include <features.h>
  59216. +#if defined __SSP__ || defined __SSP_ALL__
  59217. +# error "file must not be compiled with stack protection enabled on it. Use -fno-stack-protector"
  59218. +#endif
  59219. -extern void __stack_chk_fail (void) attribute_noreturn;
  59220. +#include <features.h>
  59221. /* On some architectures, this helps needless PIC pointer setup
  59222. that would be needed just for the __stack_chk_fail call. */
  59223. @@ -31,5 +32,5 @@
  59224. void __stack_chk_fail_local (void) attribute_noreturn attribute_hidden;
  59225. void __stack_chk_fail_local (void)
  59226. {
  59227. - __stack_chk_fail ();
  59228. + __stack_chk_fail ();
  59229. }
  59230. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/stat64.c uClibc-git/libc/sysdeps/linux/common/stat64.c
  59231. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/stat64.c 2012-05-15 09:20:09.000000000 +0200
  59232. +++ uClibc-git/libc/sysdeps/linux/common/stat64.c 2014-06-02 17:40:34.362713911 +0200
  59233. @@ -7,17 +7,28 @@
  59234. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  59235. */
  59236. +#include <_lfs_64.h>
  59237. #include <sys/syscall.h>
  59238. #include <sys/stat.h>
  59239. -#if defined __UCLIBC_HAS_LFS__ && defined __NR_stat64
  59240. +#if defined __UCLIBC_HAS_LFS__
  59241. -# define __NR___syscall_stat64 __NR_stat64
  59242. +# if defined __NR_fstatat64 && !defined __NR_stat64
  59243. +# include <fcntl.h>
  59244. # include <unistd.h>
  59245. -# include "xstatconv.h"
  59246. -static __inline__ _syscall2(int, __syscall_stat64,
  59247. - const char *, file_name, struct kernel_stat64 *, buf)
  59248. +int stat64(const char *file_name, struct stat64 *buf)
  59249. +{
  59250. + return fstatat64(AT_FDCWD, file_name, buf, 0);
  59251. +}
  59252. +libc_hidden_def(stat64)
  59253. +
  59254. +/* For systems which have both, prefer the old one */
  59255. +# elif defined __NR_stat64
  59256. +# define __NR___syscall_stat64 __NR_stat64
  59257. +# include "xstatconv.h"
  59258. +static __always_inline _syscall2(int, __syscall_stat64,
  59259. + const char *, file_name, struct kernel_stat64 *, buf)
  59260. int stat64(const char *file_name, struct stat64 *buf)
  59261. {
  59262. @@ -31,4 +42,6 @@
  59263. return result;
  59264. }
  59265. libc_hidden_def(stat64)
  59266. -#endif
  59267. +# endif
  59268. +
  59269. +#endif /* __UCLIBC_HAS_LFS__ */
  59270. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/stat.c uClibc-git/libc/sysdeps/linux/common/stat.c
  59271. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/stat.c 2012-05-15 09:20:09.000000000 +0200
  59272. +++ uClibc-git/libc/sysdeps/linux/common/stat.c 2014-06-02 17:40:34.362713911 +0200
  59273. @@ -10,14 +10,24 @@
  59274. #include <sys/syscall.h>
  59275. #include <unistd.h>
  59276. #include <sys/stat.h>
  59277. -#include "xstatconv.h"
  59278. #undef stat
  59279. +#if defined __NR_fstatat64 && !defined __NR_stat
  59280. +# include <fcntl.h>
  59281. +
  59282. +int stat(const char *file_name, struct stat *buf)
  59283. +{
  59284. + return fstatat(AT_FDCWD, file_name, buf, 0);
  59285. +}
  59286. +
  59287. +#else
  59288. +# include "xstatconv.h"
  59289. +
  59290. int stat(const char *file_name, struct stat *buf)
  59291. {
  59292. int result;
  59293. -#ifdef __NR_stat64
  59294. +# ifdef __NR_stat64
  59295. /* normal stat call has limited values for various stat elements
  59296. * e.g. uid device major/minor etc.
  59297. * so we use 64 variant if available
  59298. @@ -28,19 +38,21 @@
  59299. if (result == 0) {
  59300. __xstat32_conv(&kbuf, buf);
  59301. }
  59302. -#else
  59303. +# else
  59304. struct kernel_stat kbuf;
  59305. result = INLINE_SYSCALL(stat, 2, file_name, &kbuf);
  59306. if (result == 0) {
  59307. __xstat_conv(&kbuf, buf);
  59308. }
  59309. -#endif
  59310. +# endif /* __NR_stat64 */
  59311. return result;
  59312. }
  59313. +#endif /* __NR_fstat64 */
  59314. libc_hidden_def(stat)
  59315. -#if ! defined __NR_stat64 && defined __UCLIBC_HAS_LFS__
  59316. +#if ! defined __NR_stat64 && ! defined __NR_fstatat64 && \
  59317. + defined __UCLIBC_HAS_LFS__
  59318. strong_alias_untyped(stat,stat64)
  59319. libc_hidden_def(stat64)
  59320. #endif
  59321. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/statfs.c uClibc-git/libc/sysdeps/linux/common/statfs.c
  59322. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/statfs.c 2012-05-15 09:20:09.000000000 +0200
  59323. +++ uClibc-git/libc/sysdeps/linux/common/statfs.c 2014-06-02 17:40:34.362713911 +0200
  59324. @@ -13,10 +13,39 @@
  59325. #include <sys/vfs.h>
  59326. extern __typeof(statfs) __libc_statfs attribute_hidden;
  59327. -#define __NR___libc_statfs __NR_statfs
  59328. +
  59329. +#if defined __NR_statfs64 && !defined __NR_statfs
  59330. +
  59331. +int __libc_statfs(const char *path, struct statfs *buf)
  59332. +{
  59333. + int err = INLINE_SYSCALL(statfs64, 3, path, sizeof(*buf), buf);
  59334. +
  59335. + if (err == 0) {
  59336. + /* Did we overflow? */
  59337. + if (buf->__pad1 || buf->__pad2 || buf->__pad3 ||
  59338. + buf->__pad4 || buf->__pad5) {
  59339. + __set_errno(EOVERFLOW);
  59340. + return -1;
  59341. + }
  59342. + }
  59343. +
  59344. + return err;
  59345. +}
  59346. +# if defined __UCLIBC_LINUX_SPECIFIC__ || defined __UCLIBC_HAS_THREADS_NATIVE__
  59347. +/* statfs is used by NPTL, so it must exported in case */
  59348. +weak_alias(__libc_statfs, statfs)
  59349. +# endif
  59350. +
  59351. +/* For systems which have both, prefer the old one */
  59352. +#else
  59353. +
  59354. +# define __NR___libc_statfs __NR_statfs
  59355. _syscall2(int, __libc_statfs, const char *, path, struct statfs *, buf)
  59356. -#if defined __UCLIBC_LINUX_SPECIFIC__ || defined __UCLIBC_HAS_THREADS_NATIVE__
  59357. +# if defined __UCLIBC_LINUX_SPECIFIC__ || defined __UCLIBC_HAS_THREADS_NATIVE__
  59358. /* statfs is used by NPTL, so it must exported in case */
  59359. -weak_alias(__libc_statfs,statfs)
  59360. +weak_alias(__libc_statfs, statfs)
  59361. +# endif
  59362. +
  59363. #endif
  59364. +libc_hidden_def(statfs)
  59365. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/stime.c uClibc-git/libc/sysdeps/linux/common/stime.c
  59366. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/stime.c 2012-05-15 09:20:09.000000000 +0200
  59367. +++ uClibc-git/libc/sysdeps/linux/common/stime.c 2014-06-02 17:40:34.362713911 +0200
  59368. @@ -8,15 +8,17 @@
  59369. */
  59370. #include <sys/syscall.h>
  59371. -#include <time.h>
  59372. -#include <sys/time.h>
  59373. #ifdef __USE_SVID
  59374. -#ifdef __NR_stime
  59375. +# include <time.h>
  59376. +# ifdef __NR_stime
  59377. _syscall1(int, stime, const time_t *, t)
  59378. -#else
  59379. -
  59380. -int stime(const time_t * when)
  59381. +# elif defined __USE_BSD && defined __NR_settimeofday
  59382. +# define __need_NULL
  59383. +# include <stddef.h>
  59384. +# include <errno.h>
  59385. +# include <sys/time.h>
  59386. +int stime(const time_t *when)
  59387. {
  59388. struct timeval tv;
  59389. @@ -28,5 +30,8 @@
  59390. tv.tv_usec = 0;
  59391. return settimeofday(&tv, (struct timezone *) 0);
  59392. }
  59393. -#endif
  59394. +# endif
  59395. +# if defined __NR_stime || (defined __USE_BSD && defined __NR_settimeofday)
  59396. +libc_hidden_def(stime)
  59397. +# endif
  59398. #endif
  59399. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/stubs.c uClibc-git/libc/sysdeps/linux/common/stubs.c
  59400. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/stubs.c 2012-05-15 09:20:09.000000000 +0200
  59401. +++ uClibc-git/libc/sysdeps/linux/common/stubs.c 2014-06-02 17:40:34.362713911 +0200
  59402. @@ -6,31 +6,52 @@
  59403. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  59404. */
  59405. +/* Please keep the list sorted alphabetically, in ascending order
  59406. + * of the stub name! */
  59407. +
  59408. #include <errno.h>
  59409. #include <bits/wordsize.h>
  59410. #include <sys/syscall.h>
  59411. #ifdef __UCLIBC_HAS_STUBS__
  59412. -static int enosys_stub(void) __attribute_used__;
  59413. -static int enosys_stub(void)
  59414. +__attribute_used__ static int enosys_stub(void)
  59415. {
  59416. __set_errno(ENOSYS);
  59417. return -1;
  59418. }
  59419. +__attribute_used__ static int ret_enosys_stub(void)
  59420. +{
  59421. + return ENOSYS;
  59422. +}
  59423. +
  59424. #define make_stub(stub) \
  59425. link_warning(stub, #stub ": this function is not implemented") \
  59426. strong_alias(enosys_stub, stub)
  59427. +#define make_ret_stub(stub) \
  59428. + link_warning(stub, #stub ": this function is not implemented") \
  59429. + strong_alias(ret_enosys_stub, stub)
  59430. +
  59431. #ifndef __ARCH_USE_MMU__
  59432. # undef __NR_fork
  59433. #endif
  59434. -#ifndef __UCLIBC_HAS_LFS__
  59435. -# undef __NR_fadvise64
  59436. -# undef __NR_fadvise64_64
  59437. -# undef __NR_sync_file_range
  59438. +#ifdef __arm__
  59439. +# define __NR_fadvise64_64 __NR_arm_fadvise64_64
  59440. +# define __NR_fadvise64 __NR_arm_fadvise64_64
  59441. +/* ARM always provides funcs w/out syscalls; disable the stubs */
  59442. +# define __NR_ioperm 0
  59443. +# define __NR_iopl 0
  59444. +#endif
  59445. +
  59446. +#ifdef __mips__
  59447. +# define __NR_fadvise64_64 __NR_fadvise64
  59448. +#endif
  59449. +
  59450. +#ifdef __xtensa__
  59451. +# define __NR_fadvise64 __NR_fadvise64_64
  59452. #endif
  59453. #if !defined __NR_accept && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
  59454. @@ -45,14 +66,6 @@
  59455. make_stub(arch_prctl)
  59456. #endif
  59457. -#if !defined __NR_capget && defined __UCLIBC_LINUX_SPECIFIC__
  59458. -make_stub(capget)
  59459. -#endif
  59460. -
  59461. -#if !defined __NR_capset && defined __UCLIBC_LINUX_SPECIFIC__
  59462. -make_stub(capset)
  59463. -#endif
  59464. -
  59465. #if !defined __NR_bdflush && defined __UCLIBC_LINUX_SPECIFIC__
  59466. make_stub(bdflush)
  59467. #endif
  59468. @@ -61,11 +74,11 @@
  59469. make_stub(bind)
  59470. #endif
  59471. -#ifndef __NR_capget
  59472. +#if !defined __NR_capget && defined __UCLIBC_LINUX_SPECIFIC__
  59473. make_stub(capget)
  59474. #endif
  59475. -#ifndef __NR_capset
  59476. +#if !defined __NR_capset && defined __UCLIBC_LINUX_SPECIFIC__
  59477. make_stub(capset)
  59478. #endif
  59479. @@ -81,38 +94,44 @@
  59480. make_stub(delete_module)
  59481. #endif
  59482. -#ifndef __NR_epoll_create
  59483. +#if !defined __NR_epoll_create && defined __UCLIBC_HAS_EPOLL__ \
  59484. + && !defined __NR_epoll_create1
  59485. make_stub(epoll_create)
  59486. #endif
  59487. -#ifndef __NR_epoll_ctl
  59488. +#if !defined __NR_epoll_ctl && defined __UCLIBC_HAS_EPOLL__
  59489. make_stub(epoll_ctl)
  59490. #endif
  59491. -#ifndef __NR_epoll_wait
  59492. +#if !defined __NR_epoll_pwait && defined __UCLIBC_HAS_EPOLL__
  59493. +make_stub(epoll_pwait)
  59494. +#endif
  59495. +
  59496. +#if !defined __NR_epoll_wait && defined __UCLIBC_HAS_EPOLL__ \
  59497. + && !defined __NR_epoll_pwait
  59498. make_stub(epoll_wait)
  59499. #endif
  59500. -#if !defined __NR_eventfd && defined __UCLIBC_LINUX_SPECIFIC__
  59501. +#if !defined __NR_eventfd && !defined __NR_eventfd2 && defined __UCLIBC_LINUX_SPECIFIC__
  59502. make_stub(eventfd)
  59503. #endif
  59504. -#ifndef __NR_fdatasync
  59505. +#if !defined __NR_fdatasync && !defined __NR_osf_fdatasync
  59506. make_stub(fdatasync)
  59507. #endif
  59508. +#ifndef __NR_fgetxattr
  59509. +make_stub(fgetxattr)
  59510. +#endif
  59511. +
  59512. #ifndef __NR_flistxattr
  59513. make_stub(flistxattr)
  59514. #endif
  59515. -#ifndef __NR_fork
  59516. +#if !defined __NR_fork && !defined __NR_clone
  59517. make_stub(fork)
  59518. #endif
  59519. -#ifndef __NR_fgetxattr
  59520. -make_stub(fgetxattr)
  59521. -#endif
  59522. -
  59523. #ifndef __NR_fremovexattr
  59524. make_stub(fremovexattr)
  59525. #endif
  59526. @@ -121,7 +140,8 @@
  59527. make_stub(fsetxattr)
  59528. #endif
  59529. -#if !defined __NR_fstatfs && defined __UCLIBC_LINUX_SPECIFIC__
  59530. +#if !defined __NR_fstatfs && !defined __NR_fstatfs64 \
  59531. + && defined __UCLIBC_LINUX_SPECIFIC__
  59532. make_stub(fstatfs)
  59533. #endif
  59534. @@ -129,10 +149,6 @@
  59535. make_stub(get_kernel_syms)
  59536. #endif
  59537. -#if !defined __NR_getcpu && defined __UCLIBC_LINUX_SPECIFIC__ && ((defined __x86_64__ && !defined __UCLIBC_HAS_TLS__) || !defined __x86_64__)
  59538. -make_stub(sched_getcpu)
  59539. -#endif
  59540. -
  59541. #if !defined __NR_getpeername && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
  59542. make_stub(getpeername)
  59543. #endif
  59544. @@ -157,7 +173,12 @@
  59545. make_stub(init_module)
  59546. #endif
  59547. -#if !defined __NR_inotify_init && defined __UCLIBC_LINUX_SPECIFIC__
  59548. +#if !defined __NR_inotify_add_watch && defined __UCLIBC_LINUX_SPECIFIC__
  59549. +make_stub(inotify_add_watch)
  59550. +#endif
  59551. +
  59552. +#if !defined __NR_inotify_init && defined __UCLIBC_LINUX_SPECIFIC__ \
  59553. + && !defined __NR_inotify_init1
  59554. make_stub(inotify_init)
  59555. #endif
  59556. @@ -165,19 +186,15 @@
  59557. make_stub(inotify_init1)
  59558. #endif
  59559. -#if !defined __NR_inotify_add_watch && defined __UCLIBC_LINUX_SPECIFIC__
  59560. -make_stub(inotify_add_watch)
  59561. -#endif
  59562. -
  59563. #if !defined __NR_inotify_rm_watch && defined __UCLIBC_LINUX_SPECIFIC__
  59564. make_stub(inotify_rm_watch)
  59565. #endif
  59566. -#if !defined __NR_ioperm && defined __UCLIBC_LINUX_SPECIFIC__ && !defined __arm__
  59567. +#if !defined __NR_ioperm && defined __UCLIBC_LINUX_SPECIFIC__
  59568. make_stub(ioperm)
  59569. #endif
  59570. -#if !defined __NR_iopl && defined __UCLIBC_LINUX_SPECIFIC__ && !defined __arm__
  59571. +#if !defined __NR_iopl && defined __UCLIBC_LINUX_SPECIFIC__
  59572. make_stub(iopl)
  59573. #endif
  59574. @@ -213,6 +230,13 @@
  59575. make_stub(modify_ldt)
  59576. #endif
  59577. +#ifndef __NR_openat
  59578. +make_stub(openat)
  59579. +# ifdef __UCLIBC_HAS_LFS__
  59580. +make_stub(openat64)
  59581. +# endif
  59582. +#endif
  59583. +
  59584. #if !defined __NR_personality && defined __UCLIBC_LINUX_SPECIFIC__
  59585. make_stub(personality)
  59586. #endif
  59587. @@ -225,6 +249,18 @@
  59588. make_stub(pivot_root)
  59589. #endif
  59590. +#if !defined __NR_fadvise64 && defined __UCLIBC_HAS_LFS__
  59591. +make_ret_stub(posix_fadvise)
  59592. +#endif
  59593. +
  59594. +#if !defined __NR_fadvise64_64 && defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 32
  59595. +make_ret_stub(posix_fadvise64)
  59596. +#endif
  59597. +
  59598. +#ifndef __NR_madvise
  59599. +make_ret_stub(posix_madvise)
  59600. +#endif
  59601. +
  59602. #if !defined __NR_ppoll && defined __UCLIBC_LINUX_SPECIFIC__
  59603. make_stub(ppoll)
  59604. #endif
  59605. @@ -233,6 +269,10 @@
  59606. make_stub(prctl)
  59607. #endif
  59608. +#if !defined __NR_query_module && defined __UCLIBC_LINUX_MODULE_24__
  59609. +make_stub(query_module)
  59610. +#endif
  59611. +
  59612. #if !defined __NR_readahead && defined __UCLIBC_LINUX_SPECIFIC__
  59613. make_stub(readahead)
  59614. #endif
  59615. @@ -241,10 +281,6 @@
  59616. make_stub(reboot)
  59617. #endif
  59618. -#if !defined __NR_query_module && defined __UCLIBC_LINUX_MODULE_24__
  59619. -make_stub(query_module)
  59620. -#endif
  59621. -
  59622. #if !defined __NR_recv && !defined __NR_socketcall && !defined __NR_recvfrom && defined __UCLIBC_HAS_SOCKET__
  59623. make_stub(recv)
  59624. #endif
  59625. @@ -265,10 +301,18 @@
  59626. make_stub(removexattr)
  59627. #endif
  59628. +#ifndef __NR_renameat
  59629. +make_stub(renameat)
  59630. +#endif
  59631. +
  59632. #if !defined __NR_sched_getaffinity && defined __UCLIBC_LINUX_SPECIFIC__
  59633. make_stub(sched_getaffinity)
  59634. #endif
  59635. +#if !defined __NR_getcpu && defined __UCLIBC_LINUX_SPECIFIC__ && ((defined __x86_64__ && !defined __UCLIBC_HAS_TLS__) || !defined __x86_64__)
  59636. +make_stub(sched_getcpu)
  59637. +#endif
  59638. +
  59639. #if !defined __NR_sched_setaffinity && defined __UCLIBC_LINUX_SPECIFIC__
  59640. make_stub(sched_setaffinity)
  59641. #endif
  59642. @@ -277,7 +321,8 @@
  59643. make_stub(send)
  59644. #endif
  59645. -#if !defined __NR_sendfile && defined __UCLIBC_LINUX_SPECIFIC__
  59646. +#if !defined __NR_sendfile && !defined __NR_sendfile64 \
  59647. + && defined __UCLIBC_LINUX_SPECIFIC__
  59648. make_stub(sendfile)
  59649. #endif
  59650. @@ -325,6 +370,15 @@
  59651. make_stub(signalfd)
  59652. #endif
  59653. +#ifndef __NR_rt_sigtimedwait
  59654. +make_stub(sigtimedwait)
  59655. +make_stub(sigwaitinfo)
  59656. +#endif
  59657. +
  59658. +#ifndef __NR_rt_sigqueueinfo
  59659. +make_stub(sigqueue)
  59660. +#endif
  59661. +
  59662. #if !defined __NR_socket && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
  59663. make_stub(socket)
  59664. #endif
  59665. @@ -337,9 +391,9 @@
  59666. make_stub(socketpair)
  59667. #endif
  59668. -#ifndef __NR_rt_sigtimedwait
  59669. -make_stub(sigtimedwait)
  59670. -make_stub(sigwaitinfo)
  59671. +#if !defined __NR_stime && !defined __NR_settimeofday
  59672. +make_stub(stime)
  59673. +make_stub(settimeofday)
  59674. #endif
  59675. #if !defined __NR_splice && defined __UCLIBC_LINUX_SPECIFIC__
  59676. @@ -354,6 +408,10 @@
  59677. make_stub(swapon)
  59678. #endif
  59679. +#if !defined __NR_symlink && !defined __NR_symlinkat
  59680. +make_stub(symlink)
  59681. +#endif
  59682. +
  59683. #if !defined __NR_sync_file_range && defined __UCLIBC_LINUX_SPECIFIC__
  59684. make_stub(sync_file_range)
  59685. #endif
  59686. @@ -382,6 +440,21 @@
  59687. make_stub(timerfd_gettime)
  59688. #endif
  59689. +#ifndef __NR_utimensat
  59690. +make_stub(futimens)
  59691. +make_stub(utimensat)
  59692. +# ifndef __NR_lutimes
  59693. +make_stub(lutimes)
  59694. +# endif
  59695. +#endif
  59696. +
  59697. +#ifndef __NR_utimensat
  59698. +#if !defined __NR_utime && !defined __NR_utimes
  59699. +/*make_stub(utime) obsoleted */
  59700. +make_stub(utimes)
  59701. +#endif
  59702. +#endif
  59703. +
  59704. #if !defined __NR_umount && !defined __NR_umount2 && defined __UCLIBC_LINUX_SPECIFIC__
  59705. make_stub(umount)
  59706. #endif
  59707. @@ -394,19 +467,15 @@
  59708. make_stub(unshare)
  59709. #endif
  59710. -#ifndef __NR_utimensat
  59711. -make_stub(futimens)
  59712. -make_stub(utimensat)
  59713. -# ifndef __NR_lutimes
  59714. -make_stub(lutimes)
  59715. -# endif
  59716. +#if defined __UCLIBC_SV4_DEPRECATED__ && !defined __NR_ustat
  59717. +make_stub(ustat)
  59718. #endif
  59719. #if !defined __NR_vhangup && defined __UCLIBC_LINUX_SPECIFIC__
  59720. make_stub(vhangup)
  59721. #endif
  59722. -#ifndef __NR_vmsplice
  59723. +#if !defined __NR_vmsplice && defined __UCLIBC_LINUX_SPECIFIC__
  59724. make_stub(vmsplice)
  59725. #endif
  59726. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/symlinkat.c uClibc-git/libc/sysdeps/linux/common/symlinkat.c
  59727. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/symlinkat.c 2012-05-15 09:20:09.000000000 +0200
  59728. +++ uClibc-git/libc/sysdeps/linux/common/symlinkat.c 2014-06-02 17:40:34.362713911 +0200
  59729. @@ -11,6 +11,7 @@
  59730. #ifdef __NR_symlinkat
  59731. _syscall3(int, symlinkat, const char *, from, int, tofd, const char *, to)
  59732. +libc_hidden_def(symlinkat)
  59733. #else
  59734. /* should add emulation with symlink() and /proc/self/fd/ ... */
  59735. #endif
  59736. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/symlink.c uClibc-git/libc/sysdeps/linux/common/symlink.c
  59737. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/symlink.c 2012-05-15 09:20:09.000000000 +0200
  59738. +++ uClibc-git/libc/sysdeps/linux/common/symlink.c 2014-06-02 17:40:34.362713911 +0200
  59739. @@ -9,6 +9,19 @@
  59740. #include <sys/syscall.h>
  59741. #if defined __USE_BSD || defined __USE_UNIX98 || defined __USE_XOPEN2K
  59742. -#include <unistd.h>
  59743. +# include <unistd.h>
  59744. +
  59745. +# if defined __NR_symlinkat && !defined __NR_symlink
  59746. +# include <fcntl.h>
  59747. +int symlink(const char *oldpath, const char *newpath)
  59748. +{
  59749. + return symlinkat(oldpath, AT_FDCWD, newpath);
  59750. +}
  59751. +
  59752. +# elif defined(__NR_symlink)
  59753. +
  59754. _syscall2(int, symlink, const char *, oldpath, const char *, newpath)
  59755. +
  59756. +# endif
  59757. +
  59758. #endif
  59759. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sync.c uClibc-git/libc/sysdeps/linux/common/sync.c
  59760. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sync.c 2012-05-15 09:20:09.000000000 +0200
  59761. +++ uClibc-git/libc/sysdeps/linux/common/sync.c 2014-06-02 17:40:34.362713911 +0200
  59762. @@ -8,12 +8,8 @@
  59763. */
  59764. #include <sys/syscall.h>
  59765. -# if defined __USE_BSD || defined __USE_UNIX98
  59766. -#include <sys/types.h>
  59767. -#include <unistd.h>
  59768. -void sync(void)
  59769. -{
  59770. - INLINE_SYSCALL(sync, 0);
  59771. -}
  59772. +#if defined __USE_BSD || defined __USE_UNIX98
  59773. +# include <unistd.h>
  59774. +_syscall0(void, sync)
  59775. #endif
  59776. 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
  59777. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sync_file_range.c 2012-05-15 09:20:09.000000000 +0200
  59778. +++ uClibc-git/libc/sysdeps/linux/common/sync_file_range.c 2014-06-02 17:40:34.362713911 +0200
  59779. @@ -4,24 +4,34 @@
  59780. *
  59781. * Copyright (C) 2008 Bernhard Reutner-Fischer <uclibc@uclibc.org>
  59782. *
  59783. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  59784. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  59785. */
  59786. #include <sys/syscall.h>
  59787. -#if defined __USE_GNU
  59788. -#include <fcntl.h>
  59789. +#if defined __UCLIBC_HAS_LFS__ && defined __USE_GNU
  59790. +# include <bits/wordsize.h>
  59791. +# include <endian.h>
  59792. +# include <fcntl.h>
  59793. +# include <cancel.h>
  59794. -#if defined __NR_sync_file_range && defined __UCLIBC_HAS_LFS__
  59795. -#define __NR___syscall_sync_file_range __NR_sync_file_range
  59796. -static __inline__ _syscall6(int, __syscall_sync_file_range, int, fd,
  59797. - off_t, offset_hi, off_t, offset_lo,
  59798. - off_t, nbytes_hi, off_t, nbytes_lo, unsigned int, flags)
  59799. -int sync_file_range(int fd, off64_t offset, off64_t nbytes, unsigned int flags)
  59800. +# ifdef __NR_sync_file_range2
  59801. +# undef __NR_sync_file_range
  59802. +# define __NR_sync_file_range __NR_sync_file_range2
  59803. +# endif
  59804. +
  59805. +# ifdef __NR_sync_file_range
  59806. +static int __NC(sync_file_range)(int fd, off64_t offset, off64_t nbytes, unsigned int flags)
  59807. {
  59808. - return __syscall_sync_file_range(fd,
  59809. - __LONG_LONG_PAIR((long)(offset >> 32), (long)(offset & 0xffffffff)),
  59810. - __LONG_LONG_PAIR((long)(nbytes >> 32), (long)(nbytes & 0xffffffff)),
  59811. - flags);
  59812. +# if defined __powerpc__ && __WORDSIZE == 64
  59813. + return INLINE_SYSCALL(sync_file_range, 4, fd, offset, nbytes, flags);
  59814. +# elif defined __mips__ && _MIPS_SIM == _ABIO32
  59815. + return INLINE_SYSCALL(sync_file_range, 7, fd, 0,
  59816. + OFF64_HI_LO(offset), OFF64_HI_LO(nbytes), flags);
  59817. +# else
  59818. + return INLINE_SYSCALL(sync_file_range, 6, fd,
  59819. + OFF64_HI_LO(offset), OFF64_HI_LO(nbytes), flags);
  59820. +# endif
  59821. }
  59822. -#endif
  59823. +CANCELLABLE_SYSCALL(int, sync_file_range, (int fd, off64_t offset, off64_t nbytes, unsigned int flags), (fd, offset, nbytes, flags))
  59824. +# endif
  59825. #endif
  59826. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/acct.h uClibc-git/libc/sysdeps/linux/common/sys/acct.h
  59827. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/acct.h 2012-05-15 09:20:09.000000000 +0200
  59828. +++ uClibc-git/libc/sysdeps/linux/common/sys/acct.h 2014-06-02 17:40:34.362713911 +0200
  59829. @@ -1,4 +1,4 @@
  59830. -/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
  59831. +/* Copyright (C) 1996, 1997, 1998, 1999, 2007 Free Software Foundation, Inc.
  59832. This file is part of the GNU C Library.
  59833. The GNU C Library is free software; you can redistribute it and/or
  59834. @@ -12,15 +12,15 @@
  59835. Lesser General Public License for more details.
  59836. You should have received a copy of the GNU Lesser General Public
  59837. - License along with the GNU C Library; if not, write to the Free
  59838. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  59839. - 02111-1307 USA. */
  59840. + License along with the GNU C Library; if not, see
  59841. + <http://www.gnu.org/licenses/>. */
  59842. #ifndef _SYS_ACCT_H
  59843. #define _SYS_ACCT_H 1
  59844. #include <features.h>
  59845. +#include <endian.h>
  59846. #define __need_time_t
  59847. #include <time.h>
  59848. #include <sys/types.h>
  59849. @@ -38,25 +38,51 @@
  59850. typedef u_int16_t comp_t;
  59851. struct acct
  59852. - {
  59853. - char ac_flag; /* Accounting flags. */
  59854. - u_int16_t ac_uid; /* Accounting user ID. */
  59855. - u_int16_t ac_gid; /* Accounting group ID. */
  59856. - u_int16_t ac_tty; /* Controlling tty. */
  59857. - u_int32_t ac_btime; /* Beginning time. */
  59858. - comp_t ac_utime; /* Accounting user time. */
  59859. - comp_t ac_stime; /* Accounting system time. */
  59860. - comp_t ac_etime; /* Accounting elapsed time. */
  59861. - comp_t ac_mem; /* Accounting average memory usage. */
  59862. - comp_t ac_io; /* Accounting chars transferred. */
  59863. - comp_t ac_rw; /* Accounting blocks read or written. */
  59864. - comp_t ac_minflt; /* Accounting minor pagefaults. */
  59865. - comp_t ac_majflt; /* Accounting major pagefaults. */
  59866. - comp_t ac_swaps; /* Accounting number of swaps. */
  59867. - u_int32_t ac_exitcode; /* Accounting process exitcode. */
  59868. - char ac_comm[ACCT_COMM+1]; /* Accounting command name. */
  59869. - char ac_pad[10]; /* Accounting padding bytes. */
  59870. - };
  59871. +{
  59872. + char ac_flag; /* Flags. */
  59873. + u_int16_t ac_uid; /* Real user ID. */
  59874. + u_int16_t ac_gid; /* Real group ID. */
  59875. + u_int16_t ac_tty; /* Controlling terminal. */
  59876. + u_int32_t ac_btime; /* Beginning time. */
  59877. + comp_t ac_utime; /* User time. */
  59878. + comp_t ac_stime; /* System time. */
  59879. + comp_t ac_etime; /* Elapsed time. */
  59880. + comp_t ac_mem; /* Average memory usage. */
  59881. + comp_t ac_io; /* Chars transferred. */
  59882. + comp_t ac_rw; /* Blocks read or written. */
  59883. + comp_t ac_minflt; /* Minor pagefaults. */
  59884. + comp_t ac_majflt; /* Major pagefaults. */
  59885. + comp_t ac_swaps; /* Number of swaps. */
  59886. + u_int32_t ac_exitcode; /* Process exitcode. */
  59887. + char ac_comm[ACCT_COMM+1]; /* Command name. */
  59888. + char ac_pad[10]; /* Padding bytes. */
  59889. +};
  59890. +
  59891. +#if 0
  59892. +struct acct_v3
  59893. +{
  59894. + char ac_flag; /* Flags */
  59895. + char ac_version; /* Always set to ACCT_VERSION */
  59896. + u_int16_t ac_tty; /* Control Terminal */
  59897. + u_int32_t ac_exitcode; /* Exitcode */
  59898. + u_int32_t ac_uid; /* Real User ID */
  59899. + u_int32_t ac_gid; /* Real Group ID */
  59900. + u_int32_t ac_pid; /* Process ID */
  59901. + u_int32_t ac_ppid; /* Parent Process ID */
  59902. + u_int32_t ac_btime; /* Process Creation Time */
  59903. + float ac_etime; /* Elapsed Time */
  59904. + comp_t ac_utime; /* User Time */
  59905. + comp_t ac_stime; /* System Time */
  59906. + comp_t ac_mem; /* Average Memory Usage */
  59907. + comp_t ac_io; /* Chars Transferred */
  59908. + comp_t ac_rw; /* Blocks Read or Written */
  59909. + comp_t ac_minflt; /* Minor Pagefaults */
  59910. + comp_t ac_majflt; /* Major Pagefaults */
  59911. + comp_t ac_swaps; /* Number of Swaps */
  59912. + char ac_comm[ACCT_COMM]; /* Command Name */
  59913. +};
  59914. +#endif
  59915. +
  59916. enum
  59917. {
  59918. @@ -66,11 +92,17 @@
  59919. AXSIG = 0x10 /* Killed by a signal. */
  59920. };
  59921. +#if __BYTE_ORDER == __BIG_ENDIAN
  59922. +# define ACCT_BYTEORDER 0x80 /* Accounting file is big endian. */
  59923. +#else
  59924. +# define ACCT_BYTEORDER 0x00 /* Accounting file is little endian. */
  59925. +#endif
  59926. +
  59927. #define AHZ 100
  59928. /* Switch process accounting on and off. */
  59929. -extern int acct (__const char *__filename) __THROW;
  59930. +extern int acct (const char *__filename) __THROW;
  59931. __END_DECLS
  59932. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/epoll.h uClibc-git/libc/sysdeps/linux/common/sys/epoll.h
  59933. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/epoll.h 2012-05-15 09:20:09.000000000 +0200
  59934. +++ uClibc-git/libc/sysdeps/linux/common/sys/epoll.h 2014-06-02 17:40:34.362713911 +0200
  59935. @@ -36,7 +36,6 @@
  59936. # define __EPOLL_PACKED
  59937. #endif
  59938. -
  59939. enum EPOLL_EVENTS
  59940. {
  59941. EPOLLIN = 0x001,
  59942. @@ -97,7 +96,7 @@
  59943. returned by epoll_create() should be closed with close(). */
  59944. extern int epoll_create (int __size) __THROW;
  59945. -/* Same as epoll_create but with an FLAGS parameter. The unused SIZE
  59946. +/* Same as epoll_create but with a FLAGS parameter. The unused SIZE
  59947. parameter has been dropped. */
  59948. extern int epoll_create1 (int __flags) __THROW;
  59949. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/eventfd.h uClibc-git/libc/sysdeps/linux/common/sys/eventfd.h
  59950. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/eventfd.h 2012-05-15 09:20:09.000000000 +0200
  59951. +++ uClibc-git/libc/sysdeps/linux/common/sys/eventfd.h 2014-06-02 17:40:34.362713911 +0200
  59952. @@ -1,4 +1,4 @@
  59953. -/* Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
  59954. +/* Copyright (C) 2007-2013 Free Software Foundation, Inc.
  59955. This file is part of the GNU C Library.
  59956. The GNU C Library is free software; you can redistribute it and/or
  59957. @@ -12,30 +12,20 @@
  59958. Lesser General Public License for more details.
  59959. You should have received a copy of the GNU Lesser General Public
  59960. - License along with the GNU C Library; if not, write to the Free
  59961. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  59962. - 02111-1307 USA. */
  59963. + License along with the GNU C Library; if not, see
  59964. + <http://www.gnu.org/licenses/>. */
  59965. #ifndef _SYS_EVENTFD_H
  59966. #define _SYS_EVENTFD_H 1
  59967. #include <stdint.h>
  59968. +/* Get the platform-dependent flags. */
  59969. +#include <bits/eventfd.h>
  59970. /* Type for event counter. */
  59971. typedef uint64_t eventfd_t;
  59972. -/* Flags for signalfd. */
  59973. -enum
  59974. - {
  59975. - EFD_SEMAPHORE = 1,
  59976. -#define EFD_SEMAPHORE EFD_SEMAPHORE
  59977. - EFD_CLOEXEC = 02000000,
  59978. -#define EFD_CLOEXEC EFD_CLOEXEC
  59979. - EFD_NONBLOCK = 04000
  59980. -#define EFD_NONBLOCK EFD_NONBLOCK
  59981. - };
  59982. -
  59983. __BEGIN_DECLS
  59984. @@ -43,6 +33,16 @@
  59985. value to COUNT. */
  59986. extern int eventfd (int __count, int __flags) __THROW;
  59987. +#if 0 /* not (yet) implemented in uClibc */
  59988. +
  59989. +/* Read event counter and possibly wait for events. */
  59990. +extern int eventfd_read (int __fd, eventfd_t *__value);
  59991. +
  59992. +/* Increment event counter. */
  59993. +extern int eventfd_write (int __fd, eventfd_t __value);
  59994. +
  59995. +#endif
  59996. +
  59997. __END_DECLS
  59998. #endif /* sys/eventfd.h */
  59999. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/prctl.h uClibc-git/libc/sysdeps/linux/common/sys/prctl.h
  60000. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/prctl.h 2012-05-15 09:20:09.000000000 +0200
  60001. +++ uClibc-git/libc/sysdeps/linux/common/sys/prctl.h 2014-06-02 17:40:34.362713911 +0200
  60002. @@ -12,9 +12,8 @@
  60003. Lesser General Public License for more details.
  60004. You should have received a copy of the GNU Lesser General Public
  60005. - License along with the GNU C Library; if not, write to the Free
  60006. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  60007. - 02111-1307 USA. */
  60008. + License along with the GNU C Library; if not, see
  60009. + <http://www.gnu.org/licenses/>. */
  60010. #ifndef _SYS_PRCTL_H
  60011. #define _SYS_PRCTL_H 1
  60012. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/ptrace.h uClibc-git/libc/sysdeps/linux/common/sys/ptrace.h
  60013. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
  60014. +++ uClibc-git/libc/sysdeps/linux/common/sys/ptrace.h 2014-06-02 17:40:34.362713911 +0200
  60015. @@ -1,5 +1,5 @@
  60016. /* `ptrace' debugger support interface. Linux version.
  60017. - Copyright (C) 1996-1999,2000,2006,2007 Free Software Foundation, Inc.
  60018. + Copyright (C) 1996-2012 Free Software Foundation, Inc.
  60019. This file is part of the GNU C Library.
  60020. The GNU C Library is free software; you can redistribute it and/or
  60021. @@ -13,9 +13,8 @@
  60022. Lesser General Public License for more details.
  60023. You should have received a copy of the GNU Lesser General Public
  60024. - License along with the GNU C Library; if not, write to the Free
  60025. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  60026. - 02111-1307 USA. */
  60027. + License along with the GNU C Library; if not, see
  60028. + <http://www.gnu.org/licenses/>. */
  60029. #ifndef _SYS_PTRACE_H
  60030. #define _SYS_PTRACE_H 1
  60031. @@ -125,13 +124,40 @@
  60032. #define PT_GETSIGINFO PTRACE_GETSIGINFO
  60033. /* Set new siginfo for process. */
  60034. - PTRACE_SETSIGINFO = 0x4203
  60035. + PTRACE_SETSIGINFO = 0x4203,
  60036. #define PT_SETSIGINFO PTRACE_SETSIGINFO
  60037. +
  60038. + /* Get register content. */
  60039. + PTRACE_GETREGSET = 0x4204,
  60040. +#define PTRACE_GETREGSET PTRACE_GETREGSET
  60041. +
  60042. + /* Set register content. */
  60043. + PTRACE_SETREGSET = 0x4205,
  60044. +#define PTRACE_SETREGSET PTRACE_SETREGSET
  60045. +
  60046. + /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect
  60047. + signal or group stop state. */
  60048. + PTRACE_SEIZE = 0x4206,
  60049. +#define PTRACE_SEIZE PTRACE_SEIZE
  60050. +
  60051. + /* Trap seized tracee. */
  60052. + PTRACE_INTERRUPT = 0x4207,
  60053. +#define PTRACE_INTERRUPT PTRACE_INTERRUPT
  60054. +
  60055. + /* Wait for next group event. */
  60056. + PTRACE_LISTEN = 0x4208
  60057. };
  60058. +/* Flag for PTRACE_LISTEN. */
  60059. +enum __ptrace_flags
  60060. +{
  60061. + PTRACE_SEIZE_DEVEL = 0x80000000
  60062. +};
  60063. +
  60064. /* Options set using PTRACE_SETOPTIONS. */
  60065. -enum __ptrace_setoptions {
  60066. +enum __ptrace_setoptions
  60067. +{
  60068. PTRACE_O_TRACESYSGOOD = 0x00000001,
  60069. PTRACE_O_TRACEFORK = 0x00000002,
  60070. PTRACE_O_TRACEVFORK = 0x00000004,
  60071. @@ -139,17 +165,20 @@
  60072. PTRACE_O_TRACEEXEC = 0x00000010,
  60073. PTRACE_O_TRACEVFORKDONE = 0x00000020,
  60074. PTRACE_O_TRACEEXIT = 0x00000040,
  60075. - PTRACE_O_MASK = 0x0000007f
  60076. + PTRACE_O_TRACESECCOMP = 0x00000080,
  60077. + PTRACE_O_MASK = 0x000000ff
  60078. };
  60079. /* Wait extended result codes for the above trace options. */
  60080. -enum __ptrace_eventcodes {
  60081. +enum __ptrace_eventcodes
  60082. +{
  60083. PTRACE_EVENT_FORK = 1,
  60084. PTRACE_EVENT_VFORK = 2,
  60085. PTRACE_EVENT_CLONE = 3,
  60086. PTRACE_EVENT_EXEC = 4,
  60087. PTRACE_EVENT_VFORK_DONE = 5,
  60088. - PTRACE_EVENT_EXIT = 6
  60089. + PTRACE_EVENT_EXIT = 6,
  60090. + PTRAVE_EVENT_SECCOMP = 7
  60091. };
  60092. /* Perform process tracing functions. REQUEST is one of the values
  60093. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/__syscall_fcntl64.c uClibc-git/libc/sysdeps/linux/common/__syscall_fcntl64.c
  60094. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/__syscall_fcntl64.c 2012-05-15 09:20:09.000000000 +0200
  60095. +++ uClibc-git/libc/sysdeps/linux/common/__syscall_fcntl64.c 2014-06-02 17:40:34.338713778 +0200
  60096. @@ -7,14 +7,18 @@
  60097. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  60098. */
  60099. +#include <_lfs_64.h>
  60100. #include <sys/syscall.h>
  60101. -#include <stdarg.h>
  60102. -#include <fcntl.h>
  60103. +#include <bits/wordsize.h>
  60104. -#if defined __UCLIBC_HAS_LFS__ && defined __NR_fcntl64
  60105. +#if defined __NR_fcntl64 && __WORDSIZE == 32
  60106. +# include <stdarg.h>
  60107. +# include <cancel.h>
  60108. +# include <fcntl.h>
  60109. +
  60110. +# define __NR___fcntl64_nocancel __NR_fcntl64
  60111. +_syscall3(int, __NC(fcntl64), int, fd, int, cmd, long, arg)
  60112. -#define __NR___syscall_fcntl64 __NR_fcntl64
  60113. -static __inline__ _syscall3(int, __syscall_fcntl64, int, fd, int, cmd, long, arg)
  60114. int fcntl64(int fd, int cmd, ...)
  60115. {
  60116. long arg;
  60117. @@ -24,7 +28,15 @@
  60118. arg = va_arg(list, long);
  60119. va_end(list);
  60120. - return (__syscall_fcntl64(fd, cmd, arg));
  60121. + if (SINGLE_THREAD_P || (cmd != F_SETLKW64))
  60122. + return __NC(fcntl64)(fd, cmd, arg);
  60123. +# ifdef __NEW_THREADS
  60124. + int oldtype = LIBC_CANCEL_ASYNC();
  60125. + int result = __NC(fcntl64)(fd, cmd, arg);
  60126. + LIBC_CANCEL_RESET(oldtype);
  60127. + return result;
  60128. +# endif
  60129. }
  60130. -libc_hidden_def(fcntl64)
  60131. +lt_strong_alias(fcntl64)
  60132. +lt_libc_hidden(fcntl64)
  60133. #endif
  60134. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/__syscall_fcntl.c uClibc-git/libc/sysdeps/linux/common/__syscall_fcntl.c
  60135. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/__syscall_fcntl.c 2012-05-15 09:20:09.000000000 +0200
  60136. +++ uClibc-git/libc/sysdeps/linux/common/__syscall_fcntl.c 2014-06-02 17:40:34.338713778 +0200
  60137. @@ -10,82 +10,61 @@
  60138. #include <sys/syscall.h>
  60139. #include <stdarg.h>
  60140. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  60141. -#include <sysdep-cancel.h> /* Must come before <fcntl.h>. */
  60142. -#endif
  60143. +#include <cancel.h> /* Must come before <fcntl.h>. */
  60144. #include <fcntl.h>
  60145. #include <bits/wordsize.h>
  60146. -extern __typeof(fcntl) __libc_fcntl;
  60147. -libc_hidden_proto(__libc_fcntl)
  60148. -
  60149. -int __fcntl_nocancel (int fd, int cmd, ...)
  60150. +int __NC(fcntl)(int fd, int cmd, long arg)
  60151. {
  60152. - va_list ap;
  60153. - void *arg;
  60154. -
  60155. - va_start (ap, cmd);
  60156. - arg = va_arg (ap, void *);
  60157. - va_end (ap);
  60158. -
  60159. -# if __WORDSIZE == 32
  60160. +#if __WORDSIZE == 32
  60161. if (cmd == F_GETLK64 || cmd == F_SETLK64 || cmd == F_SETLKW64) {
  60162. -# if defined __UCLIBC_HAS_LFS__ && defined __NR_fcntl64
  60163. - return INLINE_SYSCALL (fcntl64, 3, fd, cmd, arg);
  60164. -# else
  60165. +# if (defined __UCLIBC_HAS_LFS__ && defined __NR_fcntl64) || !defined __NR_fcntl
  60166. + return INLINE_SYSCALL(fcntl64, 3, fd, cmd, arg);
  60167. +# else
  60168. __set_errno(ENOSYS);
  60169. return -1;
  60170. -# endif
  60171. - }
  60172. # endif
  60173. - return INLINE_SYSCALL (fcntl, 3, fd, cmd, arg);
  60174. + }
  60175. +#endif
  60176. +
  60177. +#if defined __NR_fcntl
  60178. + return INLINE_SYSCALL(fcntl, 3, fd, cmd, arg);
  60179. +#else
  60180. + __set_errno(ENOSYS);
  60181. + return -1;
  60182. +#endif
  60183. }
  60184. -libc_hidden_def(__fcntl_nocancel)
  60185. -int __libc_fcntl (int fd, int cmd, ...)
  60186. +int fcntl(int fd, int cmd, ...)
  60187. {
  60188. va_list ap;
  60189. - void *arg;
  60190. + long arg;
  60191. va_start (ap, cmd);
  60192. - arg = va_arg (ap, void *);
  60193. + arg = va_arg (ap, long);
  60194. va_end (ap);
  60195. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  60196. if (SINGLE_THREAD_P || (cmd != F_SETLKW && cmd != F_SETLKW64))
  60197. -# if defined __UCLIBC_HAS_LFS__ && defined __NR_fcntl64
  60198. - return INLINE_SYSCALL (fcntl64, 3, fd, cmd, arg);
  60199. -# else
  60200. - return INLINE_SYSCALL (fcntl, 3, fd, cmd, arg);
  60201. -# endif
  60202. -
  60203. +#if defined __NR_fcntl
  60204. + return __NC(fcntl)(fd, cmd, arg);
  60205. +#else
  60206. + return INLINE_SYSCALL(fcntl64, 3, fd, cmd, arg);
  60207. +#endif
  60208. +#ifdef __NEW_THREADS
  60209. int oldtype = LIBC_CANCEL_ASYNC ();
  60210. -
  60211. -# if defined __UCLIBC_HAS_LFS__ && defined __NR_fcntl64
  60212. - int result = INLINE_SYSCALL (fcntl64, 3, fd, cmd, arg);
  60213. -# else
  60214. - int result = INLINE_SYSCALL (fcntl, 3, fd, cmd, arg);
  60215. -# endif
  60216. -
  60217. +#if defined __NR_fcntl
  60218. + int result = __NC(fcntl)(fd, cmd, arg);
  60219. +#else
  60220. + int result = INLINE_SYSCALL(fcntl64, 3, fd, cmd, arg);
  60221. +#endif
  60222. LIBC_CANCEL_RESET (oldtype);
  60223. -
  60224. return result;
  60225. -#else
  60226. -# if __WORDSIZE == 32
  60227. - if (cmd == F_GETLK64 || cmd == F_SETLK64 || cmd == F_SETLKW64) {
  60228. -# if defined __UCLIBC_HAS_LFS__ && defined __NR_fcntl64
  60229. - return INLINE_SYSCALL (fcntl64, 3, fd, cmd, arg);
  60230. -# else
  60231. - __set_errno(ENOSYS);
  60232. - return -1;
  60233. -# endif
  60234. - }
  60235. -# endif
  60236. - return INLINE_SYSCALL (fcntl, 3, fd, cmd, arg);
  60237. #endif
  60238. }
  60239. -libc_hidden_def(__libc_fcntl)
  60240. -
  60241. -libc_hidden_proto(fcntl)
  60242. -weak_alias(__libc_fcntl,fcntl)
  60243. -libc_hidden_weak(fcntl)
  60244. +lt_strong_alias(fcntl)
  60245. +lt_libc_hidden(fcntl)
  60246. +#if defined __UCLIBC_HAS_LFS__ && !defined __NR_fcntl64 && __WORDSIZE == 32
  60247. +strong_alias_untyped(fcntl,fcntl64)
  60248. +lt_strong_alias(fcntl64)
  60249. +lt_libc_hidden(fcntl64)
  60250. +#endif
  60251. 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
  60252. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/__syscall_rt_sigaction.c 2012-05-15 09:20:09.000000000 +0200
  60253. +++ uClibc-git/libc/sysdeps/linux/common/__syscall_rt_sigaction.c 2014-06-02 17:40:34.338713778 +0200
  60254. @@ -12,11 +12,8 @@
  60255. #ifdef __NR_rt_sigaction
  60256. #include <signal.h>
  60257. -int __syscall_rt_sigaction (int __signum, const struct sigaction *__act,
  60258. - struct sigaction *__oldact, size_t __size);
  60259. -
  60260. #define __NR___syscall_rt_sigaction __NR_rt_sigaction
  60261. _syscall4(int, __syscall_rt_sigaction, int, signum,
  60262. - const struct sigaction *, act, struct sigaction *, oldact,
  60263. - size_t, size)
  60264. + const struct sigaction *, act, struct sigaction *, oldact,
  60265. + size_t, size)
  60266. #endif
  60267. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/syscalls.h uClibc-git/libc/sysdeps/linux/common/syscalls.h
  60268. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/syscalls.h 2012-05-15 09:20:09.000000000 +0200
  60269. +++ uClibc-git/libc/sysdeps/linux/common/syscalls.h 1970-01-01 01:00:00.000000000 +0100
  60270. @@ -1,24 +0,0 @@
  60271. -/* vi: set sw=4 ts=4: */
  60272. -/*
  60273. - * Common header file for uClibc syscalls
  60274. - *
  60275. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  60276. - *
  60277. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  60278. - */
  60279. -
  60280. -#define _LARGEFILE64_SOURCE
  60281. -#include <features.h>
  60282. -#include <errno.h>
  60283. -#include <sys/types.h>
  60284. -#include <sys/syscall.h>
  60285. -#include <endian.h>
  60286. -
  60287. -#undef __OPTIMIZE__
  60288. -/* We absolutely do _NOT_ want interfaces silently
  60289. - * being renamed under us or very bad things will happen... */
  60290. -#ifdef __USE_FILE_OFFSET64
  60291. -# undef __USE_FILE_OFFSET64
  60292. -#endif
  60293. -
  60294. -#include <bits/kernel_types.h>
  60295. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/__syscall_sigaction.c uClibc-git/libc/sysdeps/linux/common/__syscall_sigaction.c
  60296. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/__syscall_sigaction.c 2012-05-15 09:20:09.000000000 +0200
  60297. +++ uClibc-git/libc/sysdeps/linux/common/__syscall_sigaction.c 2014-06-02 17:40:34.338713778 +0200
  60298. @@ -12,8 +12,7 @@
  60299. #ifndef __NR_rt_sigaction
  60300. #define __NR___syscall_sigaction __NR_sigaction
  60301. #include <signal.h>
  60302. -int __syscall_sigaction (int __signum, const struct sigaction *__act, struct sigaction *__oldact) attribute_hidden;
  60303. _syscall3(int, __syscall_sigaction, int, signum, const struct sigaction *,
  60304. - act, struct sigaction *, oldact)
  60305. + act, struct sigaction *, oldact)
  60306. #endif
  60307. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sysdep.h uClibc-git/libc/sysdeps/linux/common/sysdep.h
  60308. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  60309. +++ uClibc-git/libc/sysdeps/linux/common/sysdep.h 2014-06-02 17:40:34.362713911 +0200
  60310. @@ -13,9 +13,8 @@
  60311. Lesser General Public License for more details.
  60312. You should have received a copy of the GNU Lesser General Public
  60313. - License along with the GNU C Library; if not, write to the Free
  60314. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  60315. - 02111-1307 USA. */
  60316. + License along with the GNU C Library; if not, see
  60317. + <http://www.gnu.org/licenses/>. */
  60318. #include <sys/syscall.h>
  60319. @@ -49,6 +48,8 @@
  60320. #define JUMPTARGET(sym) sym
  60321. #endif
  60322. +#define ret_ERRVAL ret
  60323. +
  60324. /* Macros to generate eh_frame unwind information. */
  60325. # ifdef HAVE_ASM_CFI_DIRECTIVES
  60326. # define cfi_sections(sect...) .cfi_sections sect
  60327. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sysinfo.c uClibc-git/libc/sysdeps/linux/common/sysinfo.c
  60328. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sysinfo.c 2012-05-15 09:20:09.000000000 +0200
  60329. +++ uClibc-git/libc/sysdeps/linux/common/sysinfo.c 2014-06-02 17:40:34.362713911 +0200
  60330. @@ -8,5 +8,8 @@
  60331. */
  60332. #include <sys/syscall.h>
  60333. -#include <sys/sysinfo.h>
  60334. +
  60335. +#ifdef __NR_sysinfo
  60336. +# include <sys/sysinfo.h>
  60337. _syscall1(int, sysinfo, struct sysinfo *, info)
  60338. +#endif
  60339. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/tee.c uClibc-git/libc/sysdeps/linux/common/tee.c
  60340. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/tee.c 2012-05-15 09:20:09.000000000 +0200
  60341. +++ uClibc-git/libc/sysdeps/linux/common/tee.c 2014-06-02 17:40:34.362713911 +0200
  60342. @@ -8,9 +8,10 @@
  60343. */
  60344. #include <sys/syscall.h>
  60345. -#include <fcntl.h>
  60346. -#ifdef __NR_tee
  60347. +#if defined __NR_tee && defined __USE_GNU
  60348. +# include <fcntl.h>
  60349. +
  60350. _syscall4(ssize_t, tee, int, __fdin, int, __fdout, size_t, __len,
  60351. - unsigned int, __flags)
  60352. + unsigned int, __flags)
  60353. #endif
  60354. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/time.c uClibc-git/libc/sysdeps/linux/common/time.c
  60355. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/time.c 2012-05-15 09:20:09.000000000 +0200
  60356. +++ uClibc-git/libc/sysdeps/linux/common/time.c 2014-06-02 17:40:34.362713911 +0200
  60357. @@ -9,12 +9,11 @@
  60358. #include <sys/syscall.h>
  60359. #include <time.h>
  60360. -#include <sys/time.h>
  60361. -
  60362. #ifdef __NR_time
  60363. _syscall_noerr1(time_t, time, time_t *, t)
  60364. #else
  60365. +# include <sys/time.h>
  60366. time_t time(time_t * t)
  60367. {
  60368. time_t result;
  60369. @@ -25,9 +24,8 @@
  60370. */
  60371. gettimeofday(&tv, NULL);
  60372. result = (time_t) tv.tv_sec;
  60373. - if (t != NULL) {
  60374. + if (t != NULL)
  60375. *t = result;
  60376. - }
  60377. return result;
  60378. }
  60379. #endif
  60380. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/times.c uClibc-git/libc/sysdeps/linux/common/times.c
  60381. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/times.c 2012-05-15 09:20:09.000000000 +0200
  60382. +++ uClibc-git/libc/sysdeps/linux/common/times.c 2014-06-02 17:40:34.366713933 +0200
  60383. @@ -10,6 +10,5 @@
  60384. #include <sys/syscall.h>
  60385. #include <sys/times.h>
  60386. -
  60387. _syscall_noerr1(clock_t, times, struct tms *, buf)
  60388. libc_hidden_def(times)
  60389. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/truncate64.c uClibc-git/libc/sysdeps/linux/common/truncate64.c
  60390. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/truncate64.c 2012-05-15 09:20:09.000000000 +0200
  60391. +++ uClibc-git/libc/sysdeps/linux/common/truncate64.c 2014-06-02 17:40:34.366713933 +0200
  60392. @@ -7,49 +7,35 @@
  60393. * and on 32 bit machines this sends things into the kernel as
  60394. * two 32-bit arguments (high and low 32 bits of length) that
  60395. * are ordered based on endianess. It turns out endian.h has
  60396. - * just the macro we need to order things, __LONG_LONG_PAIR.
  60397. + * just the macro we need to order things, OFF64_HI_LO.
  60398. */
  60399. -#include <features.h>
  60400. -#include <unistd.h>
  60401. -#include <errno.h>
  60402. -#include <endian.h>
  60403. -#include <stdint.h>
  60404. -#include <sys/types.h>
  60405. +#include <_lfs_64.h>
  60406. #include <sys/syscall.h>
  60407. +#include <unistd.h>
  60408. -#if defined __UCLIBC_HAS_LFS__
  60409. -
  60410. -#if defined __NR_truncate64
  60411. -
  60412. -#if __WORDSIZE == 64
  60413. +#ifdef __NR_truncate64
  60414. +# include <bits/wordsize.h>
  60415. -/* For a 64 bit machine, life is simple... */
  60416. +# if __WORDSIZE == 64
  60417. _syscall2(int, truncate64, const char *, path, __off64_t, length)
  60418. -
  60419. -#elif __WORDSIZE == 32
  60420. -
  60421. -/* The exported truncate64 function. */
  60422. +# elif __WORDSIZE == 32
  60423. +# include <endian.h>
  60424. +# include <stdint.h>
  60425. int truncate64(const char * path, __off64_t length)
  60426. {
  60427. - uint32_t low = length & 0xffffffff;
  60428. - uint32_t high = length >> 32;
  60429. -#if defined(__UCLIBC_TRUNCATE64_HAS_4_ARGS__)
  60430. - return INLINE_SYSCALL(truncate64, 4, path, 0,
  60431. - __LONG_LONG_PAIR(high, low));
  60432. -#else
  60433. - return INLINE_SYSCALL(truncate64, 3, path,
  60434. - __LONG_LONG_PAIR(high, low));
  60435. -#endif
  60436. +# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__)
  60437. + return INLINE_SYSCALL(truncate64, 4, path, 0, OFF64_HI_LO(length));
  60438. +# else
  60439. + return INLINE_SYSCALL(truncate64, 3, path, OFF64_HI_LO(length));
  60440. +# endif
  60441. }
  60442. +# else
  60443. +# error Your machine is not 64 bit nor 32 bit, I am dazed and confused.
  60444. +# endif
  60445. -#else /* __WORDSIZE */
  60446. -#error Your machine is not 64 bit nor 32 bit, I am dazed and confused.
  60447. -#endif /* __WORDSIZE */
  60448. -
  60449. -#else /* __NR_truncate64 */
  60450. -
  60451. -
  60452. +#else
  60453. +# include <errno.h>
  60454. int truncate64(const char * path, __off64_t length)
  60455. {
  60456. __off_t x = (__off_t) length;
  60457. @@ -64,5 +50,4 @@
  60458. }
  60459. #endif /* __NR_truncate64 */
  60460. -
  60461. -#endif /* __UCLIBC_HAS_LFS__ */
  60462. +libc_hidden_def(truncate64)
  60463. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/truncate.c uClibc-git/libc/sysdeps/linux/common/truncate.c
  60464. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/truncate.c 2012-05-15 09:20:09.000000000 +0200
  60465. +++ uClibc-git/libc/sysdeps/linux/common/truncate.c 2014-06-02 17:40:34.366713933 +0200
  60466. @@ -10,6 +10,25 @@
  60467. #include <sys/syscall.h>
  60468. #include <unistd.h>
  60469. +#if defined(__NR_truncate64) && !defined(__NR_truncate)
  60470. +# include <endian.h>
  60471. +# include <stdint.h>
  60472. +int truncate(const char *path, __off_t length)
  60473. +{
  60474. +# if defined __UCLIBC_HAS_LFS
  60475. + return truncate64(path, length);
  60476. +# elif __WORDSIZE == 32
  60477. +# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__)
  60478. + return INLINE_SYSCALL(truncate64, 4, path, 0, OFF_HI_LO(length));
  60479. +# else
  60480. + return INLINE_SYSCALL(truncate64, 3, path, OFF_HI_LO(length));
  60481. +# endif
  60482. +# endif
  60483. +}
  60484. +libc_hidden_def(truncate);
  60485. +
  60486. +#else
  60487. _syscall2(int, truncate, const char *, path, __off_t, length)
  60488. libc_hidden_def(truncate)
  60489. +#endif
  60490. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/umask.c uClibc-git/libc/sysdeps/linux/common/umask.c
  60491. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/umask.c 2012-05-15 09:20:09.000000000 +0200
  60492. +++ uClibc-git/libc/sysdeps/linux/common/umask.c 2014-06-02 17:40:34.366713933 +0200
  60493. @@ -10,10 +10,4 @@
  60494. #include <sys/syscall.h>
  60495. #include <sys/stat.h>
  60496. -#define __NR___syscall_umask __NR_umask
  60497. -static __inline__ _syscall1(__kernel_mode_t, __syscall_umask, __kernel_mode_t, mode)
  60498. -
  60499. -mode_t umask(mode_t mode)
  60500. -{
  60501. - return __syscall_umask(mode);
  60502. -}
  60503. +_syscall_noerr1(mode_t, umask, mode_t, mode)
  60504. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/umount2.c uClibc-git/libc/sysdeps/linux/common/umount2.c
  60505. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/umount2.c 2012-05-15 09:20:09.000000000 +0200
  60506. +++ uClibc-git/libc/sysdeps/linux/common/umount2.c 2014-06-02 17:40:34.366713933 +0200
  60507. @@ -9,9 +9,8 @@
  60508. #include <sys/syscall.h>
  60509. -#if defined __USE_GNU
  60510. -#include <sys/mount.h>
  60511. -#ifdef __NR_umount2 /* Old kernels don't have umount2 */
  60512. +#if defined __UCLIBC_LINUX_SPECIFIC__ && defined __NR_umount2
  60513. +# include <sys/mount.h>
  60514. _syscall2(int, umount2, const char *, special_file, int, flags)
  60515. -#endif
  60516. +libc_hidden_def(umount2)
  60517. #endif
  60518. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/umount.c uClibc-git/libc/sysdeps/linux/common/umount.c
  60519. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/umount.c 2012-05-15 09:20:09.000000000 +0200
  60520. +++ uClibc-git/libc/sysdeps/linux/common/umount.c 2014-06-02 17:40:34.366713933 +0200
  60521. @@ -9,24 +9,15 @@
  60522. #include <sys/syscall.h>
  60523. -#if defined __USE_GNU
  60524. #include <sys/mount.h>
  60525. -
  60526. -/* arch provides umount() syscall */
  60527. #ifdef __NR_umount
  60528. -
  60529. _syscall1(int, umount, const char *, specialfile)
  60530. -
  60531. -/* arch provides umount2() syscall */
  60532. #elif defined __NR_umount2
  60533. -
  60534. -# define __NR___syscall_umount2 __NR_umount2
  60535. -static __inline__ _syscall2(int, __syscall_umount2, const char *, special_file, int, flags)
  60536. -
  60537. +# ifndef __UCLIBC_LINUX_SPECIFIC__
  60538. +static __always_inline _syscall2(int, umount2, const char *, special_file, int, flags)
  60539. +# endif
  60540. int umount(const char *special_file)
  60541. {
  60542. - return (__syscall_umount2(special_file, 0));
  60543. + return umount2(special_file, 0);
  60544. }
  60545. -
  60546. -#endif
  60547. #endif
  60548. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/uname.c uClibc-git/libc/sysdeps/linux/common/uname.c
  60549. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/uname.c 2012-05-15 09:20:09.000000000 +0200
  60550. +++ uClibc-git/libc/sysdeps/linux/common/uname.c 2014-06-02 17:40:34.366713933 +0200
  60551. @@ -10,6 +10,5 @@
  60552. #include <sys/syscall.h>
  60553. #include <sys/utsname.h>
  60554. -
  60555. _syscall1(int, uname, struct utsname *, buf)
  60556. libc_hidden_def(uname)
  60557. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/unlinkat.c uClibc-git/libc/sysdeps/linux/common/unlinkat.c
  60558. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/unlinkat.c 2012-05-15 09:20:09.000000000 +0200
  60559. +++ uClibc-git/libc/sysdeps/linux/common/unlinkat.c 2014-06-02 17:40:34.366713933 +0200
  60560. @@ -11,6 +11,7 @@
  60561. #ifdef __NR_unlinkat
  60562. _syscall3(int, unlinkat, int, fd, const char *, file, int, flag)
  60563. +libc_hidden_def(unlinkat)
  60564. #else
  60565. /* should add emulation with unlink() and /proc/self/fd/ ... */
  60566. #endif
  60567. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/unlink.c uClibc-git/libc/sysdeps/linux/common/unlink.c
  60568. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/unlink.c 2012-05-15 09:20:09.000000000 +0200
  60569. +++ uClibc-git/libc/sysdeps/linux/common/unlink.c 2014-06-02 17:40:34.366713933 +0200
  60570. @@ -10,6 +10,13 @@
  60571. #include <sys/syscall.h>
  60572. #include <unistd.h>
  60573. -
  60574. +#if defined __NR_unlinkat && !defined __NR_unlink
  60575. +# include <fcntl.h>
  60576. +int unlink(const char *pathname)
  60577. +{
  60578. + return unlinkat(AT_FDCWD, pathname, 0);
  60579. +}
  60580. +#else
  60581. _syscall1(int, unlink, const char *, pathname)
  60582. +#endif
  60583. libc_hidden_def(unlink)
  60584. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/unwind.h uClibc-git/libc/sysdeps/linux/common/unwind.h
  60585. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/unwind.h 2012-05-15 09:20:09.000000000 +0200
  60586. +++ uClibc-git/libc/sysdeps/linux/common/unwind.h 2014-06-02 17:40:34.366713933 +0200
  60587. @@ -14,9 +14,8 @@
  60588. Lesser General Public License for more details.
  60589. You should have received a copy of the GNU Lesser General Public
  60590. - License along with the GNU C Library; if not, write to the Free
  60591. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  60592. - 02111-1307 USA. */
  60593. + License along with the GNU C Library; if not, see
  60594. + <http://www.gnu.org/licenses/>. */
  60595. /* This is derived from the C++ ABI for IA-64. Where we diverge
  60596. for cross-architecture compatibility are noted with "@@@". */
  60597. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ustat.c uClibc-git/libc/sysdeps/linux/common/ustat.c
  60598. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/ustat.c 2012-05-15 09:20:09.000000000 +0200
  60599. +++ uClibc-git/libc/sysdeps/linux/common/ustat.c 2014-06-02 17:40:34.366713933 +0200
  60600. @@ -11,16 +11,18 @@
  60601. #include <sys/ustat.h>
  60602. #include <sys/sysmacros.h>
  60603. -#define __NR___syscall_ustat __NR_ustat
  60604. +#ifdef __NR_ustat
  60605. +# define __NR___syscall_ustat __NR_ustat
  60606. /* Kernel's fs/super.c defines this:
  60607. * long sys_ustat(unsigned dev, struct ustat __user * ubuf),
  60608. * thus we use unsigned, not __kernel_dev_t.
  60609. */
  60610. -static __inline__ _syscall2(int, __syscall_ustat,
  60611. - unsigned, kdev_t,
  60612. - struct ustat *, ubuf)
  60613. +static __always_inline _syscall2(int, __syscall_ustat,
  60614. + unsigned, kdev_t,
  60615. + struct ustat *, ubuf)
  60616. int ustat(dev_t dev, struct ustat *ubuf)
  60617. {
  60618. return __syscall_ustat(dev, ubuf);
  60619. }
  60620. +#endif
  60621. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/utime.c uClibc-git/libc/sysdeps/linux/common/utime.c
  60622. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/utime.c 2012-05-15 09:20:09.000000000 +0200
  60623. +++ uClibc-git/libc/sysdeps/linux/common/utime.c 2014-06-02 17:40:34.366713933 +0200
  60624. @@ -10,13 +10,33 @@
  60625. #include <sys/syscall.h>
  60626. #include <utime.h>
  60627. +#if defined __NR_utimensat && !defined __NR_utime
  60628. +# include <fcntl.h>
  60629. +# include <stddef.h>
  60630. -#ifdef __NR_utime
  60631. -_syscall2(int, utime, const char *, file, const struct utimbuf *, times)
  60632. -#else
  60633. -#include <stdlib.h>
  60634. -#include <sys/time.h>
  60635. +int utime(const char *file, const struct utimbuf *times)
  60636. +{
  60637. + struct timespec tspecs[2], *ts;
  60638. +
  60639. + if (times) {
  60640. + ts = tspecs;
  60641. + ts[0].tv_sec = times->actime;
  60642. + ts[0].tv_nsec = 0;
  60643. + ts[1].tv_sec = times->modtime;
  60644. + ts[1].tv_nsec = 0;
  60645. + } else {
  60646. + ts = NULL;
  60647. + }
  60648. + return utimensat(AT_FDCWD, file, ts, 0);
  60649. +}
  60650. +
  60651. +#elif defined(__NR_utime)
  60652. +_syscall2(int, utime, const char *, file, const struct utimbuf *, times)
  60653. +#elif defined __NR_utimes /* alpha || ia64 */
  60654. +# define __need_NULL
  60655. +# include <stddef.h>
  60656. +# include <sys/time.h>
  60657. int utime(const char *file, const struct utimbuf *times)
  60658. {
  60659. @@ -25,11 +45,15 @@
  60660. if (times != NULL) {
  60661. timevals[0].tv_usec = 0L;
  60662. timevals[1].tv_usec = 0L;
  60663. - timevals[0].tv_sec = (long int) times->actime;
  60664. - timevals[1].tv_sec = (long int) times->modtime;
  60665. + timevals[0].tv_sec = (time_t) times->actime;
  60666. + timevals[1].tv_sec = (time_t) times->modtime;
  60667. }
  60668. return utimes(file, times ? timevals : NULL);
  60669. }
  60670. #endif
  60671. +
  60672. +#if (defined __NR_utimensat && !defined __NR_utime) || \
  60673. + defined __NR_utime || defined __NR_utimes
  60674. link_warning(utime, "the use of OBSOLESCENT `utime' is discouraged, use `utimes'")
  60675. libc_hidden_def(utime)
  60676. +#endif
  60677. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/utimes.c uClibc-git/libc/sysdeps/linux/common/utimes.c
  60678. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/utimes.c 2012-05-15 09:20:09.000000000 +0200
  60679. +++ uClibc-git/libc/sysdeps/linux/common/utimes.c 2014-06-02 17:40:34.366713933 +0200
  60680. @@ -8,15 +8,33 @@
  60681. */
  60682. #include <sys/syscall.h>
  60683. -#include <utime.h>
  60684. #include <sys/time.h>
  60685. +#if defined __NR_utimensat && !defined __NR_utimes
  60686. +# include <fcntl.h>
  60687. +# include <stddef.h>
  60688. +int utimes(const char *file, const struct timeval tvp[2])
  60689. +{
  60690. + struct timespec ts[2], *times;
  60691. + if (tvp) {
  60692. + times = ts;
  60693. + times[0].tv_sec = tvp[0].tv_sec;
  60694. + times[0].tv_nsec = tvp[0].tv_usec * 1000;
  60695. + times[1].tv_sec = tvp[1].tv_sec;
  60696. + times[1].tv_nsec = tvp[1].tv_usec * 1000;
  60697. + } else {
  60698. + times = NULL;
  60699. + }
  60700. -#ifdef __NR_utimes
  60701. -_syscall2(int, utimes, const char *, file, const struct timeval *, tvp)
  60702. -#else
  60703. -#include <stdlib.h>
  60704. + return utimensat(AT_FDCWD, file, times, 0);
  60705. +}
  60706. +#elif defined __NR_utimes
  60707. +_syscall2(int, utimes, const char *, file, const struct timeval *, tvp)
  60708. +#elif defined __NR_utime
  60709. +# define __need_NULL
  60710. +# include <stddef.h>
  60711. +# include <utime.h>
  60712. int utimes(const char *file, const struct timeval tvp[2])
  60713. {
  60714. @@ -32,4 +50,7 @@
  60715. return utime(file, times);
  60716. }
  60717. #endif
  60718. +
  60719. +#if defined __NR_utimensat || defined __NR_utimes || defined __NR_utime
  60720. libc_hidden_def(utimes)
  60721. +#endif
  60722. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/vfork.c uClibc-git/libc/sysdeps/linux/common/vfork.c
  60723. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/vfork.c 2012-05-15 09:20:09.000000000 +0200
  60724. +++ uClibc-git/libc/sysdeps/linux/common/vfork.c 2014-06-02 17:40:34.366713933 +0200
  60725. @@ -4,30 +4,37 @@
  60726. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  60727. */
  60728. -#include <unistd.h>
  60729. -#include <sys/types.h>
  60730. #include <sys/syscall.h>
  60731. +#if (defined __NR_vfork || defined __NR_clone || (defined __ARCH_USE_MMU__ && defined __NR_fork)) && (defined __USE_BSD || defined __USE_XOPEN_EXTENDED)
  60732. +# include <unistd.h>
  60733. extern __typeof(vfork) __vfork attribute_hidden;
  60734. -#ifdef __NR_vfork
  60735. +# if defined __NR_clone && !defined __NR_vfork
  60736. +# include <signal.h>
  60737. +# include <sys/types.h>
  60738. -# define __NR___vfork __NR_vfork
  60739. -_syscall0(pid_t, __vfork)
  60740. +pid_t __vfork(void)
  60741. +{
  60742. + pid_t pid = INLINE_SYSCALL(clone, 4, SIGCHLD,
  60743. + NULL, NULL, NULL);
  60744. -weak_alias(__vfork,vfork)
  60745. -libc_hidden_weak(vfork)
  60746. + if (pid < 0)
  60747. + return -1;
  60748. -#elif defined __ARCH_USE_MMU__ && defined __NR_fork
  60749. + return pid;
  60750. +}
  60751. +# elif defined __NR_vfork
  60752. +# define __NR___vfork __NR_vfork
  60753. +_syscall0(pid_t, __vfork)
  60754. +# else
  60755. /* Trivial implementation for arches that lack vfork */
  60756. -
  60757. pid_t __vfork(void)
  60758. {
  60759. return fork();
  60760. }
  60761. -
  60762. -weak_alias(__vfork,vfork)
  60763. +# endif
  60764. +strong_alias(__vfork,vfork)
  60765. libc_hidden_weak(vfork)
  60766. -
  60767. #endif
  60768. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/vmsplice.c uClibc-git/libc/sysdeps/linux/common/vmsplice.c
  60769. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/vmsplice.c 2012-05-15 09:20:09.000000000 +0200
  60770. +++ uClibc-git/libc/sysdeps/linux/common/vmsplice.c 2014-06-02 17:40:34.374713977 +0200
  60771. @@ -8,9 +8,10 @@
  60772. */
  60773. #include <sys/syscall.h>
  60774. -#include <fcntl.h>
  60775. -#ifdef __NR_vmsplice
  60776. +#if defined __NR_vmsplice && defined __USE_GNU
  60777. +# include <fcntl.h>
  60778. +
  60779. _syscall4(ssize_t, vmsplice, int, __fdout, const struct iovec *, __iov,
  60780. - size_t, __count, unsigned int, __flags)
  60781. + size_t, __count, unsigned int, __flags)
  60782. #endif
  60783. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/wait3.c uClibc-git/libc/sysdeps/linux/common/wait3.c
  60784. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/wait3.c 2012-05-15 09:20:09.000000000 +0200
  60785. +++ uClibc-git/libc/sysdeps/linux/common/wait3.c 2014-06-02 17:40:34.374713977 +0200
  60786. @@ -5,20 +5,12 @@
  60787. */
  60788. #include <sys/syscall.h>
  60789. -#include <sys/types.h>
  60790. -#include <sys/wait.h>
  60791. -#include <sys/resource.h>
  60792. -#if defined __USE_BSD
  60793. +#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
  60794. +# include <sys/wait.h>
  60795. -
  60796. -/* Wait for a child to exit. When one does, put its status in *STAT_LOC and
  60797. - * return its process ID. For errors return (pid_t) -1. If USAGE is not nil,
  60798. - * store information about the child's resource usage (as a `struct rusage')
  60799. - * there. If the WUNTRACED bit is set in OPTIONS, return status for stopped
  60800. - * children; otherwise don't. */
  60801. -pid_t wait3 (__WAIT_STATUS stat_loc, int options, struct rusage * usage)
  60802. +pid_t wait3(__WAIT_STATUS stat_loc, int options, struct rusage *usage)
  60803. {
  60804. - return wait4 (WAIT_ANY, stat_loc, options, usage);
  60805. + return __wait4_nocancel(WAIT_ANY, stat_loc, options, usage);
  60806. }
  60807. #endif
  60808. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/wait4.c uClibc-git/libc/sysdeps/linux/common/wait4.c
  60809. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/wait4.c 2012-05-15 09:20:09.000000000 +0200
  60810. +++ uClibc-git/libc/sysdeps/linux/common/wait4.c 2014-06-02 17:40:34.374713977 +0200
  60811. @@ -8,18 +8,16 @@
  60812. */
  60813. #include <sys/syscall.h>
  60814. -#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
  60815. #include <sys/wait.h>
  60816. -#include <sys/resource.h>
  60817. +# define __NR___syscall_wait4 __NR_wait4
  60818. +static __always_inline _syscall4(int, __syscall_wait4, __kernel_pid_t, pid,
  60819. + int *, status, int, opts, struct rusage *, rusage)
  60820. -#define __NR___syscall_wait4 __NR_wait4
  60821. -static __inline__ _syscall4(int, __syscall_wait4, __kernel_pid_t, pid,
  60822. - int *, status, int, opts, struct rusage *, rusage)
  60823. -
  60824. -pid_t wait4(pid_t pid, int *status, int opts, struct rusage *rusage)
  60825. +pid_t __wait4_nocancel(pid_t pid, int *status, int opts, struct rusage *rusage)
  60826. {
  60827. - return (__syscall_wait4(pid, status, opts, rusage));
  60828. + return __syscall_wait4(pid, status, opts, rusage);
  60829. }
  60830. -libc_hidden_def(wait4)
  60831. +#ifdef __USE_BSD
  60832. +strong_alias(__wait4_nocancel,wait4)
  60833. #endif
  60834. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/wait.c uClibc-git/libc/sysdeps/linux/common/wait.c
  60835. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/wait.c 2012-05-15 09:20:09.000000000 +0200
  60836. +++ uClibc-git/libc/sysdeps/linux/common/wait.c 2014-06-02 17:40:34.374713977 +0200
  60837. @@ -4,41 +4,11 @@
  60838. *
  60839. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  60840. */
  60841. -#include <stdlib.h>
  60842. -#include <syscall.h>
  60843. -#include <sys/types.h>
  60844. #include <sys/wait.h>
  60845. -#include <sys/resource.h>
  60846. +#include <cancel.h>
  60847. -extern __typeof(wait) __libc_wait;
  60848. -/* Wait for a child to die. When one does, put its status in *STAT_LOC
  60849. - * and return its process ID. For errors, return (pid_t) -1. */
  60850. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  60851. -#include <errno.h>
  60852. -#include <sysdep-cancel.h>
  60853. -
  60854. -pid_t attribute_hidden
  60855. -__libc_wait (__WAIT_STATUS_DEFN stat_loc)
  60856. -{
  60857. - if (SINGLE_THREAD_P)
  60858. - return INLINE_SYSCALL (wait4, 4, WAIT_ANY, stat_loc, 0,
  60859. - (struct rusage *) NULL);
  60860. -
  60861. - int oldtype = LIBC_CANCEL_ASYNC ();
  60862. -
  60863. - pid_t result = INLINE_SYSCALL (wait4, 4, WAIT_ANY, stat_loc, 0,
  60864. - (struct rusage *) NULL);
  60865. -
  60866. - LIBC_CANCEL_RESET (oldtype);
  60867. -
  60868. - return result;
  60869. -}
  60870. -#else
  60871. -/* Wait for a child to die. When one does, put its status in *STAT_LOC
  60872. - * and return its process ID. For errors, return (pid_t) -1. */
  60873. -__pid_t __libc_wait (__WAIT_STATUS_DEFN stat_loc)
  60874. +static pid_t __NC(wait)(__WAIT_STATUS_DEFN stat_loc)
  60875. {
  60876. - return wait4 (WAIT_ANY, stat_loc, 0, (struct rusage *) NULL);
  60877. + return __wait4_nocancel(WAIT_ANY, stat_loc, 0, (struct rusage *)NULL);
  60878. }
  60879. -#endif
  60880. -weak_alias(__libc_wait,wait)
  60881. +CANCELLABLE_SYSCALL(pid_t, wait, (__WAIT_STATUS_DEFN stat_loc), (stat_loc))
  60882. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/waitid.c uClibc-git/libc/sysdeps/linux/common/waitid.c
  60883. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/waitid.c 2012-05-15 09:20:09.000000000 +0200
  60884. +++ uClibc-git/libc/sysdeps/linux/common/waitid.c 2014-06-02 17:40:34.374713977 +0200
  60885. @@ -8,43 +8,19 @@
  60886. #include <features.h>
  60887. #if defined __USE_SVID || defined __USE_XOPEN
  60888. -# include <string.h>
  60889. -# include <sys/types.h>
  60890. -# include <sys/wait.h>
  60891. -# include <sys/syscall.h>
  60892. -
  60893. -# ifdef __NR_waitid
  60894. -
  60895. -# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  60896. -# include <sysdep-cancel.h>
  60897. -# else
  60898. -# define SINGLE_THREAD_P 1
  60899. -# endif
  60900. -/* The waitid() POSIX interface takes 4 arguments, but the kernel function
  60901. - * actually takes 5. The fifth is a pointer to struct rusage. Make sure
  60902. - * we pass NULL rather than letting whatever was in the register bleed up.
  60903. - */
  60904. -#define __NR_waitid5 __NR_waitid
  60905. -static __always_inline
  60906. -_syscall5(int, waitid5, idtype_t, idtype, id_t, id, siginfo_t*, infop,
  60907. - int, options, struct rusage*, ru)
  60908. -# endif
  60909. +#include <sys/syscall.h>
  60910. +#include <sys/wait.h>
  60911. +#include <cancel.h>
  60912. +#ifndef __NR_waitid
  60913. +# include <string.h>
  60914. +#endif
  60915. -int waitid(idtype_t idtype, id_t id, siginfo_t *infop, int options)
  60916. +static int __NC(waitid)(idtype_t idtype, id_t id, siginfo_t *infop, int options)
  60917. {
  60918. -# ifdef __NR_waitid
  60919. - if (SINGLE_THREAD_P)
  60920. - return waitid5(idtype, id, infop, options, NULL);
  60921. -
  60922. -# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  60923. - int oldtype = LIBC_CANCEL_ASYNC ();
  60924. - int result = waitid5(idtype, id, infop, options, NULL);
  60925. - LIBC_CANCEL_RESET (oldtype);
  60926. - return result;
  60927. -# endif
  60928. -
  60929. -# elif defined __NR_waitpid
  60930. +#ifdef __NR_waitid
  60931. + return INLINE_SYSCALL(waitid, 5, idtype, id, infop, options, NULL);
  60932. +#else
  60933. switch (idtype) {
  60934. case P_PID:
  60935. if (id <= 0)
  60936. @@ -65,17 +41,17 @@
  60937. }
  60938. memset(infop, 0, sizeof *infop);
  60939. - infop->si_pid = waitpid(id, &infop->si_status, options
  60940. -# ifdef WEXITED
  60941. + infop->si_pid = __NC(waitpid)(id, &infop->si_status, options
  60942. +# ifdef WEXITED
  60943. &~ WEXITED
  60944. -# endif
  60945. +# endif
  60946. );
  60947. if (infop->si_pid < 0)
  60948. return infop->si_pid;
  60949. return 0;
  60950. -# else
  60951. - __set_errno(ENOSYS);
  60952. - return -1;
  60953. -# endif
  60954. +#endif
  60955. }
  60956. +CANCELLABLE_SYSCALL(int, waitid, (idtype_t idtype, id_t id, siginfo_t *infop, int options),
  60957. + (idtype, id, infop, options))
  60958. +
  60959. #endif
  60960. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/waitpid.c uClibc-git/libc/sysdeps/linux/common/waitpid.c
  60961. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/waitpid.c 2012-05-15 09:20:09.000000000 +0200
  60962. +++ uClibc-git/libc/sysdeps/linux/common/waitpid.c 2014-06-02 17:40:34.374713977 +0200
  60963. @@ -6,32 +6,16 @@
  60964. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  60965. */
  60966. -#include <stdlib.h>
  60967. -#include <sys/types.h>
  60968. #include <sys/wait.h>
  60969. -#include <sys/resource.h>
  60970. +#include <cancel.h>
  60971. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  60972. -#include "sysdep-cancel.h"
  60973. -#else
  60974. -#define SINGLE_THREAD_P 1
  60975. -#endif
  60976. -
  60977. -libc_hidden_proto(wait4)
  60978. -
  60979. -extern __typeof(waitpid) __libc_waitpid;
  60980. -__pid_t __libc_waitpid(__pid_t pid, int *wait_stat, int options)
  60981. +pid_t __NC(waitpid)(pid_t pid, int *wait_stat, int options)
  60982. {
  60983. - if (SINGLE_THREAD_P)
  60984. - return wait4(pid, wait_stat, options, NULL);
  60985. -
  60986. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  60987. - int oldtype = LIBC_CANCEL_ASYNC ();
  60988. - int result = wait4(pid, wait_stat, options, NULL);
  60989. - LIBC_CANCEL_RESET (oldtype);
  60990. - return result;
  60991. +#if 1 /* kernel/exit.c says to avoid waitpid syscall */
  60992. + return __wait4_nocancel(pid, wait_stat, options, NULL);
  60993. +#else
  60994. + return INLINE_SYSCALL(waitpid, 3, pid, wait_stat, options);
  60995. #endif
  60996. }
  60997. -libc_hidden_proto(waitpid)
  60998. -weak_alias(__libc_waitpid,waitpid)
  60999. -libc_hidden_weak(waitpid)
  61000. +CANCELLABLE_SYSCALL(pid_t, waitpid, (pid_t pid, int *wait_stat, int options), (pid, wait_stat, options))
  61001. +lt_libc_hidden(waitpid)
  61002. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/write.c uClibc-git/libc/sysdeps/linux/common/write.c
  61003. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/write.c 2012-05-15 09:20:09.000000000 +0200
  61004. +++ uClibc-git/libc/sysdeps/linux/common/write.c 2014-06-02 17:40:34.374713977 +0200
  61005. @@ -9,17 +9,11 @@
  61006. #include <sys/syscall.h>
  61007. #include <unistd.h>
  61008. +#include <cancel.h>
  61009. -_syscall3(ssize_t, write, int, fd, const __ptr_t, buf, size_t, count)
  61010. -#ifndef __LINUXTHREADS_OLD__
  61011. -libc_hidden_def(write)
  61012. -#else
  61013. -libc_hidden_weak(write)
  61014. -strong_alias(write,__libc_write)
  61015. -#endif
  61016. +#define __NR___write_nocancel __NR_write
  61017. +_syscall3(ssize_t, __NC(write), int, fd, const void *, buf, size_t, count)
  61018. -#if 0
  61019. -/* Stupid libgcc.a from gcc 2.95.x uses __write in pure.o
  61020. - * which is a blatant GNU libc-ism... */
  61021. -strong_alias(write,__write)
  61022. -#endif
  61023. +CANCELLABLE_SYSCALL(ssize_t, write, (int fd, const void *buf, size_t count),
  61024. + (fd, buf, count))
  61025. +lt_libc_hidden(write)
  61026. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/writev.c uClibc-git/libc/sysdeps/linux/common/writev.c
  61027. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/writev.c 2012-05-15 09:20:09.000000000 +0200
  61028. +++ uClibc-git/libc/sysdeps/linux/common/writev.c 2014-06-02 17:40:34.374713977 +0200
  61029. @@ -9,42 +9,20 @@
  61030. #include <sys/syscall.h>
  61031. #include <sys/uio.h>
  61032. -
  61033. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  61034. -#include <errno.h>
  61035. -#include <sysdep-cancel.h>
  61036. +#include <cancel.h>
  61037. /* We should deal with kernel which have a smaller UIO_FASTIOV as well
  61038. as a very big count. */
  61039. -static ssize_t __writev (int fd, const struct iovec *vector, int count)
  61040. +static ssize_t __NC(writev)(int fd, const struct iovec *vector, int count)
  61041. {
  61042. - ssize_t bytes_written;
  61043. -
  61044. - bytes_written = INLINE_SYSCALL (writev, 3, fd, vector, count);
  61045. -
  61046. - if (bytes_written >= 0 || errno != EINVAL || count <= UIO_FASTIOV)
  61047. - return bytes_written;
  61048. -
  61049. - /* glibc tries again, but we do not. */
  61050. - /* return __atomic_writev_replacement (fd, vector, count); */
  61051. -
  61052. - return -1;
  61053. -}
  61054. -
  61055. -ssize_t writev (int fd, const struct iovec *vector, int count)
  61056. -{
  61057. - if (SINGLE_THREAD_P)
  61058. - return __writev (fd, vector, count);
  61059. -
  61060. - int oldtype = LIBC_CANCEL_ASYNC ();
  61061. + ssize_t bytes_written = INLINE_SYSCALL(writev, 3, fd, vector, count);
  61062. - ssize_t result = __writev (fd, vector, count);
  61063. + if (bytes_written >= 0 || errno != EINVAL || count <= UIO_FASTIOV)
  61064. + return bytes_written;
  61065. - LIBC_CANCEL_RESET (oldtype);
  61066. + /* glibc tries again, but we do not. */
  61067. + /* return __atomic_writev_replacement (fd, vector, count); */
  61068. - return result;
  61069. + return -1;
  61070. }
  61071. -#else
  61072. -_syscall3(ssize_t, writev, int, filedes, const struct iovec *, vector,
  61073. - int, count)
  61074. -#endif
  61075. +CANCELLABLE_SYSCALL(ssize_t, writev, (int fd, const struct iovec *vector, int count), (fd, vector, count))
  61076. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/xstatconv.c uClibc-git/libc/sysdeps/linux/common/xstatconv.c
  61077. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/xstatconv.c 2012-05-15 09:20:09.000000000 +0200
  61078. +++ uClibc-git/libc/sysdeps/linux/common/xstatconv.c 2014-06-02 17:40:34.374713977 +0200
  61079. @@ -13,14 +13,12 @@
  61080. Lesser General Public License for more details.
  61081. You should have received a copy of the GNU Lesser General Public
  61082. - License along with the GNU C Library; if not, write to the Free
  61083. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61084. - 02111-1307 USA.
  61085. + License along with the GNU C Library; if not, see
  61086. + <http://www.gnu.org/licenses/>.
  61087. Modified for uClibc by Erik Andersen <andersen@codepoet.org>
  61088. */
  61089. -#include <sys/syscall.h>
  61090. #include <sys/stat.h>
  61091. #include <string.h>
  61092. #include "xstatconv.h"
  61093. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/xstatconv.h uClibc-git/libc/sysdeps/linux/common/xstatconv.h
  61094. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/xstatconv.h 2012-05-15 09:20:09.000000000 +0200
  61095. +++ uClibc-git/libc/sysdeps/linux/common/xstatconv.h 2014-06-02 17:40:34.374713977 +0200
  61096. @@ -13,9 +13,8 @@
  61097. Lesser General Public License for more details.
  61098. You should have received a copy of the GNU Lesser General Public
  61099. - License along with the GNU C Library; if not, write to the Free
  61100. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61101. - 02111-1307 USA.
  61102. + License along with the GNU C Library; if not, see
  61103. + <http://www.gnu.org/licenses/>.
  61104. Modified for uClibc by Erik Andersen <andersen@codepoet.org>
  61105. */
  61106. @@ -23,11 +22,14 @@
  61107. /* Pull in whatever this particular arch's kernel thinks the kernel version of
  61108. * struct stat should look like. It turns out that each arch has a different
  61109. * opinion on the subject, and different kernel revs use different names... */
  61110. +#include <features.h>
  61111. #include <bits/kernel_stat.h>
  61112. +#ifdef __ARCH_HAS_DEPRECATED_SYSCALLS__
  61113. extern void __xstat_conv(struct kernel_stat *kbuf, struct stat *buf) attribute_hidden;
  61114. extern void __xstat32_conv(struct kernel_stat64 *kbuf, struct stat *buf) attribute_hidden;
  61115. #if defined __UCLIBC_HAS_LFS__
  61116. extern void __xstat64_conv(struct kernel_stat64 *kbuf, struct stat64 *buf) attribute_hidden;
  61117. #endif
  61118. +#endif
  61119. 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
  61120. --- uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/align64bit.h 1970-01-01 01:00:00.000000000 +0100
  61121. +++ uClibc-git/libc/sysdeps/linux/common-generic/bits/align64bit.h 2014-06-02 17:40:34.338713778 +0200
  61122. @@ -0,0 +1,17 @@
  61123. +/*
  61124. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  61125. + *
  61126. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  61127. + */
  61128. +
  61129. +#ifndef _ALIGN_64_BIT_H
  61130. +#define _ALIGN_64_BIT_H
  61131. +
  61132. +/* Simple macro for getting the 64-bit struct arch alignment */
  61133. +
  61134. +struct __longlong_aligned { long long x; };
  61135. +
  61136. +#define __ARCH_64BIT_ALIGNMENT__ \
  61137. + __attribute__((aligned(__alignof__(struct __longlong_aligned))))
  61138. +
  61139. +#endif /* bits/align64bit.h */
  61140. 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
  61141. --- uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/dirent.h 1970-01-01 01:00:00.000000000 +0100
  61142. +++ uClibc-git/libc/sysdeps/linux/common-generic/bits/dirent.h 2014-06-02 17:40:34.338713778 +0200
  61143. @@ -0,0 +1,53 @@
  61144. +/*
  61145. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  61146. + *
  61147. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  61148. + */
  61149. +
  61150. +#ifndef _DIRENT_H
  61151. +# error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
  61152. +#endif
  61153. +
  61154. +#include <bits/align64bit.h>
  61155. +#include <endian.h>
  61156. +
  61157. +struct dirent
  61158. + {
  61159. +#ifndef __USE_FILE_OFFSET64
  61160. +# if __BYTE_ORDER == __LITTLE_ENDIAN
  61161. + __U32_TYPE d_ino;
  61162. + __U32_TYPE __pad1;
  61163. + __S32_TYPE d_off;
  61164. + __S32_TYPE __pad2;
  61165. +# else
  61166. + __U32_TYPE __pad1;
  61167. + __U32_TYPE d_ino;
  61168. + __S32_TYPE __pad2;
  61169. + __S32_TYPE d_off;
  61170. +# endif /* __LITTLE_ENDIAN */
  61171. +#else
  61172. + __U64_TYPE d_ino;
  61173. + __S64_TYPE d_off;
  61174. +#endif
  61175. + unsigned short int d_reclen;
  61176. + unsigned char d_type;
  61177. + char d_name[256]; /* We must not include limits.h! */
  61178. + } __ARCH_64BIT_ALIGNMENT__;
  61179. +
  61180. +#ifdef __USE_LARGEFILE64
  61181. +struct dirent64
  61182. + {
  61183. + __U64_TYPE d_ino;
  61184. + __S64_TYPE d_off;
  61185. + unsigned short int d_reclen;
  61186. + unsigned char d_type;
  61187. + char d_name[256]; /* We must not include limits.h! */
  61188. + };
  61189. +#endif
  61190. +
  61191. +#define d_fileno d_ino /* Backwards compatibility. */
  61192. +
  61193. +#undef _DIRENT_HAVE_D_NAMLEN
  61194. +#define _DIRENT_HAVE_D_RECLEN
  61195. +#define _DIRENT_HAVE_D_OFF
  61196. +#define _DIRENT_HAVE_D_TYPE
  61197. 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
  61198. --- uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/kernel_stat.h 1970-01-01 01:00:00.000000000 +0100
  61199. +++ uClibc-git/libc/sysdeps/linux/common-generic/bits/kernel_stat.h 2014-06-02 17:40:34.338713778 +0200
  61200. @@ -0,0 +1,28 @@
  61201. +/*
  61202. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  61203. + *
  61204. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  61205. + */
  61206. +
  61207. +#ifndef _BITS_STAT_STRUCT_H
  61208. +#define _BITS_STAT_STRUCT_H
  61209. +
  61210. +#include <sys/stat.h>
  61211. +
  61212. +/*
  61213. + * The stat structure defined in
  61214. + * libc/sysdeps/linux/common-generic/bits/stat.h
  61215. + * is the same as the kernel one for new architectures
  61216. + *
  61217. + * For the common-generic ABI we really don't need this file at all
  61218. + * However that requires more #ifndef in relevant wrappers,
  61219. + * further uglifying them
  61220. + */
  61221. +#if defined __UCLIBC_HAS_LFS__
  61222. +#define kernel_stat64 stat64
  61223. +#else
  61224. +#define kernel_stat64 stat
  61225. +#endif
  61226. +
  61227. +#endif /* _BITS_STAT_STRUCT_H */
  61228. +
  61229. 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
  61230. --- uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/statfs.h 1970-01-01 01:00:00.000000000 +0100
  61231. +++ uClibc-git/libc/sysdeps/linux/common-generic/bits/statfs.h 2014-06-02 17:40:34.338713778 +0200
  61232. @@ -0,0 +1,78 @@
  61233. +/*
  61234. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  61235. + *
  61236. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  61237. + */
  61238. +
  61239. +#ifndef _SYS_STATFS_H
  61240. +# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
  61241. +#endif
  61242. +
  61243. +#include <endian.h>
  61244. +#include <bits/align64bit.h>
  61245. +#include <bits/types.h>
  61246. +
  61247. +
  61248. +struct statfs
  61249. + {
  61250. + __U32_TYPE f_type;
  61251. + __U32_TYPE f_bsize;
  61252. +#ifndef __USE_FILE_OFFSET64
  61253. +# if __BYTE_ORDER == __LITTLE_ENDIAN
  61254. + __U32_TYPE f_blocks;
  61255. + __U32_TYPE __pad1;
  61256. + __U32_TYPE f_bfree;
  61257. + __U32_TYPE __pad2;
  61258. + __U32_TYPE f_bavail;
  61259. + __U32_TYPE __pad3;
  61260. + __U32_TYPE f_files;
  61261. + __U32_TYPE __pad4;
  61262. + __U32_TYPE f_ffree;
  61263. + __U32_TYPE __pad5;
  61264. +# else
  61265. + __U32_TYPE __pad1;
  61266. + __U32_TYPE f_blocks;
  61267. + __U32_TYPE __pad2;
  61268. + __U32_TYPE f_bfree;
  61269. + __U32_TYPE __pad3;
  61270. + __U32_TYPE f_bavail;
  61271. + __U32_TYPE __pad4;
  61272. + __U32_TYPE f_files;
  61273. + __U32_TYPE __pad5;
  61274. + __U32_TYPE f_ffree;
  61275. +# endif /* __LITTLE_ENDIAN */
  61276. +#else
  61277. + __U64_TYPE f_blocks;
  61278. + __U64_TYPE f_bfree;
  61279. + __U64_TYPE f_bavail;
  61280. + __U64_TYPE f_files;
  61281. + __U64_TYPE f_ffree;
  61282. +#endif /* __USE_FILE_OFFSET64 */
  61283. + __fsid_t f_fsid;
  61284. + __U32_TYPE f_namelen;
  61285. + __U32_TYPE f_frsize;
  61286. + __U32_TYPE f_flags;
  61287. + __U32_TYPE f_spare[4];
  61288. + } __ARCH_64BIT_ALIGNMENT__;
  61289. +
  61290. +#ifdef __USE_LARGEFILE64
  61291. +struct statfs64
  61292. + {
  61293. + __U32_TYPE f_type;
  61294. + __U32_TYPE f_bsize;
  61295. + __U64_TYPE f_blocks;
  61296. + __U64_TYPE f_bfree;
  61297. + __U64_TYPE f_bavail;
  61298. + __U64_TYPE f_files;
  61299. + __U64_TYPE f_ffree;
  61300. + __fsid_t f_fsid;
  61301. + __U32_TYPE f_namelen;
  61302. + __U32_TYPE f_frsize;
  61303. + __U32_TYPE f_flags;
  61304. + __U32_TYPE f_spare[4];
  61305. + };
  61306. +#endif
  61307. +
  61308. +/* Tell code we have these members. */
  61309. +#define _STATFS_F_NAMELEN
  61310. +#define _STATFS_F_FRSIZE
  61311. 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
  61312. --- uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/stat.h 1970-01-01 01:00:00.000000000 +0100
  61313. +++ uClibc-git/libc/sysdeps/linux/common-generic/bits/stat.h 2014-06-02 17:40:34.338713778 +0200
  61314. @@ -0,0 +1,195 @@
  61315. +/*
  61316. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  61317. + *
  61318. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  61319. + */
  61320. +
  61321. +#ifndef _SYS_STAT_H
  61322. +# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  61323. +#endif
  61324. +
  61325. +#include <bits/align64bit.h>
  61326. +#include <endian.h>
  61327. +
  61328. +/* Versions of the `struct stat' data structure. */
  61329. +#define _STAT_VER_LINUX_OLD 1
  61330. +#define _STAT_VER_KERNEL 1
  61331. +#define _STAT_VER_SVR4 2
  61332. +#define _STAT_VER_LINUX 3
  61333. +#define _STAT_VER _STAT_VER_LINUX /* The one defined below. */
  61334. +
  61335. +/* Versions of the `xmknod' interface. */
  61336. +#define _MKNOD_VER_LINUX 1
  61337. +#define _MKNOD_VER_SVR4 2
  61338. +#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
  61339. +
  61340. +/*
  61341. + * For 32-bit architectures, this struct is similar to the stat64 but it
  61342. + * uses 32-bit members along with 32-bit padding. For 64-bit architectures
  61343. + * this struct is exactly the same with the stat64 one
  61344. + */
  61345. +struct stat
  61346. + {
  61347. +#ifndef __USE_FILE_OFFSET64
  61348. +# if __BYTE_ORDER == __LITTLE_ENDIAN
  61349. + unsigned long st_dev; /* Device. */
  61350. + unsigned long __pad1;
  61351. + unsigned long st_ino; /* 32bit file serial number. */
  61352. + unsigned long __pad2;
  61353. + unsigned int st_mode; /* File mode. */
  61354. + unsigned int st_nlink; /* Link count. */
  61355. + unsigned int st_uid; /* User ID of the file's owner. */
  61356. + unsigned int st_gid; /* Group ID of the file's group.*/
  61357. + unsigned long st_rdev; /* Device number, if device. */
  61358. + unsigned long __pad3;
  61359. + unsigned long long __pad4;
  61360. + long st_size; /* SIze of file, in bytes. */
  61361. + long __pad5;
  61362. + int st_blksize; /* Optimal block size for I/O. */
  61363. + int __pad6;
  61364. + long st_blocks; /* Number 512-byte blocks allocated */
  61365. + long __pad7;
  61366. +# else
  61367. + unsigned long __pad1;
  61368. + unsigned long st_dev; /* Device. */
  61369. + unsigned long __pad2;
  61370. + unsigned long st_ino; /* 32bit file serial number. */
  61371. + unsigned int st_mode; /* File mode. */
  61372. + unsigned int st_nlink; /* Link count. */
  61373. + unsigned int st_uid; /* User ID of the file's owner. */
  61374. + unsigned int st_gid; /* Group ID of the file's group.*/
  61375. + unsigned long __pad3;
  61376. + unsigned long st_rdev; /* Device number, if device. */
  61377. + unsigned long long __pad4;
  61378. + long __pad5;
  61379. + long st_size; /* Size of file, in bytes. */
  61380. + int st_blksize; /* Optimal block size for I/O. */
  61381. + int __pad6;
  61382. + long __pad7;
  61383. + long st_blocks; /* Number 512-byte blocks allocated */
  61384. +# endif /* __LITTLE_ENDIAN */
  61385. +#else
  61386. + unsigned long long st_dev; /* Device. */
  61387. + unsigned long long st_ino; /* 32bit file serial number. */
  61388. + unsigned int st_mode; /* File mode. */
  61389. + unsigned int st_nlink; /* Link count. */
  61390. + unsigned int st_uid; /* User ID of the file's owner. */
  61391. + unsigned int st_gid; /* Group ID of the file's group.*/
  61392. + unsigned long long st_rdev; /* Device number, if device. */
  61393. + unsigned long long _pad1;
  61394. + long long st_size; /* SIze of file, in bytes. */
  61395. + int st_blksize; /* Optimal block size for I/O. */
  61396. + int __pad2;
  61397. + long long st_blocks; /* Number 512-byte blocks allocated */
  61398. +#endif
  61399. +#ifdef __USE_MISC
  61400. + /* Nanosecond resolution timestamps are stored in a format
  61401. + equivalent to 'struct timespec'. This is the type used
  61402. + whenever possible but the Unix namespace rules do not allow the
  61403. + identifier 'timespec' to appear in the <sys/stat.h> header.
  61404. + Therefore we have to handle the use of this header in strictly
  61405. + standard-compliant sources special. */
  61406. + struct timespec st_atim; /* Time of last access. */
  61407. + struct timespec st_mtim; /* Time of last modification. */
  61408. + struct timespec st_ctim; /* Time of last status change. */
  61409. +# define st_atime st_atim.tv_sec /* Backward compatibility. */
  61410. +# define st_mtime st_mtim.tv_sec
  61411. +# define st_ctime st_ctim.tv_sec
  61412. +#else
  61413. +# ifndef __USE_FILE_OFFSET64
  61414. + long st_atime; /* Time of last access. */
  61415. + unsigned long st_atime_nsec;
  61416. + long st_mtime; /* Time of last modification. */
  61417. + unsigned long st_mtime_nsec;
  61418. + long st_ctime; /* Time of last status change. */
  61419. + unsigned long st_ctime_nsec;
  61420. +# else
  61421. + int st_atime; /* Time of last access. */
  61422. + unsigned int st_atime_nsec;
  61423. + int st_mtime; /* Time of last modification. */
  61424. + unsigned int st_mtime_nsec;
  61425. + int st_ctime; /* Time of last status change. */
  61426. + unsigned int st_ctime_nsec;
  61427. +# endif
  61428. +#endif
  61429. + unsigned int __unused4;
  61430. + unsigned int __unused5;
  61431. + } __ARCH_64BIT_ALIGNMENT__;
  61432. +
  61433. +
  61434. +#ifdef __USE_LARGEFILE64
  61435. +struct stat64
  61436. + {
  61437. + unsigned long long st_dev; /* Device. */
  61438. + unsigned long long st_ino; /* 32bit file serial number. */
  61439. + unsigned int st_mode; /* File mode. */
  61440. + unsigned int st_nlink; /* Link count. */
  61441. + unsigned int st_uid; /* User ID of the file's owner. */
  61442. + unsigned int st_gid; /* Group ID of the file's group.*/
  61443. + unsigned long long st_rdev; /* Device number, if device. */
  61444. + unsigned long long __pad3;
  61445. + long long st_size; /* Size of file, in bytes. */
  61446. + int st_blksize; /* Optimal block size for I/O. */
  61447. + int __pad4;
  61448. + long long st_blocks; /* Number 512-byte blocks allocated */
  61449. +# ifdef __USE_MISC
  61450. + /* Nanosecond resolution timestamps are stored in a format
  61451. + equivalent to 'struct timespec'. This is the type used
  61452. + whenever possible but the Unix namespace rules do not allow the
  61453. + identifier 'timespec' to appear in the <sys/stat.h> header.
  61454. + Therefore we have to handle the use of this header in strictly
  61455. + standard-compliant sources special. */
  61456. + struct timespec st_atim; /* Time of last access. */
  61457. + struct timespec st_mtim; /* Time of last modification. */
  61458. + struct timespec st_ctim; /* Time of last status change. */
  61459. +# else
  61460. + int st_atime; /* Time of last access. */
  61461. + unsigned int st_atime_nsec;
  61462. + int st_mtime; /* Time of last modification. */
  61463. + unsigned int st_mtime_nsec;
  61464. + int st_ctime; /* Time of last status change. */
  61465. + unsigned int st_ctime_nsec;
  61466. +# endif
  61467. + unsigned int __unused4;
  61468. + unsigned int __unused5;
  61469. +};
  61470. +#endif
  61471. +
  61472. +/* Tell code we have these members. */
  61473. +#define _STATBUF_ST_BLKSIZE
  61474. +#define _STATBUF_ST_RDEV
  61475. +/* Nanosecond resolution time values are supported. */
  61476. +#define _STATBUF_ST_NSEC
  61477. +
  61478. +/* Encoding of the file mode. */
  61479. +
  61480. +#define __S_IFMT 0170000 /* These bits determine file type. */
  61481. +
  61482. +/* File types. */
  61483. +#define __S_IFDIR 0040000 /* Directory. */
  61484. +#define __S_IFCHR 0020000 /* Character device. */
  61485. +#define __S_IFBLK 0060000 /* Block device. */
  61486. +#define __S_IFREG 0100000 /* Regular file. */
  61487. +#define __S_IFIFO 0010000 /* FIFO. */
  61488. +#define __S_IFLNK 0120000 /* Symbolic link. */
  61489. +#define __S_IFSOCK 0140000 /* Socket. */
  61490. +
  61491. +/* POSIX.1b objects. Note that these macros always evaluate to zero. But
  61492. + they do it by enforcing the correct use of the macros. */
  61493. +#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode)
  61494. +#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode)
  61495. +#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode)
  61496. +
  61497. +/* Protection bits. */
  61498. +
  61499. +#define __S_ISUID 04000 /* Set user ID on execution. */
  61500. +#define __S_ISGID 02000 /* Set group ID on execution. */
  61501. +#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */
  61502. +#define __S_IREAD 0400 /* Read by owner. */
  61503. +#define __S_IWRITE 0200 /* Write by owner. */
  61504. +#define __S_IEXEC 0100 /* Execute by owner. */
  61505. +
  61506. +#ifdef __USE_ATFILE
  61507. +# define UTIME_NOW ((1l << 30) - 1l)
  61508. +# define UTIME_OMIT ((1l << 30) - 2l)
  61509. +#endif
  61510. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/fcntl.h uClibc-git/libc/sysdeps/linux/cris/bits/fcntl.h
  61511. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  61512. +++ uClibc-git/libc/sysdeps/linux/cris/bits/fcntl.h 2014-06-02 17:40:34.386714044 +0200
  61513. @@ -14,9 +14,8 @@
  61514. Lesser General Public License for more details.
  61515. You should have received a copy of the GNU Lesser General Public
  61516. - License along with the GNU C Library; if not, write to the Free
  61517. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61518. - 02111-1307 USA. */
  61519. + License along with the GNU C Library; if not, see
  61520. + <http://www.gnu.org/licenses/>. */
  61521. #ifndef _FCNTL_H
  61522. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  61523. 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
  61524. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  61525. +++ uClibc-git/libc/sysdeps/linux/cris/bits/kernel_types.h 2014-06-02 17:40:34.386714044 +0200
  61526. @@ -28,6 +28,8 @@
  61527. typedef unsigned short __kernel_old_uid_t;
  61528. typedef unsigned short __kernel_old_gid_t;
  61529. typedef __kernel_dev_t __kernel_old_dev_t;
  61530. +typedef long __kernel_long_t;
  61531. +typedef unsigned long __kernel_ulong_t;
  61532. #ifdef __GNUC__
  61533. typedef long long __kernel_loff_t;
  61534. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/setjmp.h uClibc-git/libc/sysdeps/linux/cris/bits/setjmp.h
  61535. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  61536. +++ uClibc-git/libc/sysdeps/linux/cris/bits/setjmp.h 2014-06-02 17:40:34.386714044 +0200
  61537. @@ -1,4 +1,4 @@
  61538. -/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
  61539. +/* Copyright (C) 1997, 1998, 2005 Free Software Foundation, Inc.
  61540. This file is part of the GNU C Library.
  61541. The GNU C Library is free software; you can redistribute it and/or
  61542. @@ -12,11 +12,10 @@
  61543. Lesser General Public License for more details.
  61544. You should have received a copy of the GNU Lesser General Public
  61545. - License along with the GNU C Library; if not, write to the Free
  61546. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61547. - 02111-1307 USA. */
  61548. + License along with the GNU C Library; if not, see
  61549. + <http://www.gnu.org/licenses/>. */
  61550. -/* Define the machine-dependent type `jmp_buf'. CRIS version. */
  61551. +/* Define the machine-dependent type `jmp_buf', CRIS version. */
  61552. #ifndef _BITS_SETJMP_H
  61553. #define _BITS_SETJMP_H 1
  61554. @@ -24,10 +23,8 @@
  61555. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  61556. #endif
  61557. -/*
  61558. - Note that we save and restore CCR to be able to
  61559. - correctly handle DI/EI. Note also that the "move x,ccr" does NOT affect
  61560. - the DMA enable bits (E and D).
  61561. +/* Note that saving and restoring CCR has no meaning in user mode, so we
  61562. + don't actually do it; the slot is now reserved.
  61563. jmp_buf[0] - PC
  61564. jmp_buf[1] - SP (R14)
  61565. @@ -46,21 +43,8 @@
  61566. jmp_buf[14] - R1
  61567. jmp_buf[15] - R0
  61568. jmp_buf[16] - SRP
  61569. - jmp_buf[17] - CCR
  61570. - */
  61571. + jmp_buf[17] - CCR */
  61572. -#define _JBLEN 18
  61573. -#if defined (__USE_MISC) || defined (_ASM)
  61574. -#define JB_SP 1
  61575. -#endif
  61576. -
  61577. -#ifndef _ASM
  61578. -typedef int __jmp_buf[_JBLEN];
  61579. -#endif
  61580. -
  61581. -/* Test if longjmp to JMPBUF would unwind the frame
  61582. - containing a local variable at ADDRESS. */
  61583. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  61584. - ((void *) (address) < (void *) (jmpbuf)[JB_SP])
  61585. +typedef int __jmp_buf[18];
  61586. #endif /* bits/setjmp.h */
  61587. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/cris/bits/stackinfo.h
  61588. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  61589. +++ uClibc-git/libc/sysdeps/linux/cris/bits/stackinfo.h 2014-06-02 17:40:34.386714044 +0200
  61590. @@ -12,9 +12,8 @@
  61591. Lesser General Public License for more details.
  61592. You should have received a copy of the GNU Lesser General Public
  61593. - License along with the GNU C Library; if not, write to the Free
  61594. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61595. - 02111-1307 USA. */
  61596. + License along with the GNU C Library; if not, see
  61597. + <http://www.gnu.org/licenses/>. */
  61598. /* This file contains a bit of information about the stack allocation
  61599. of the processor. */
  61600. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/termios.h uClibc-git/libc/sysdeps/linux/cris/bits/termios.h
  61601. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/termios.h 2012-05-15 09:20:09.000000000 +0200
  61602. +++ uClibc-git/libc/sysdeps/linux/cris/bits/termios.h 2014-06-02 17:40:34.386714044 +0200
  61603. @@ -14,9 +14,8 @@
  61604. Lesser General Public License for more details.
  61605. You should have received a copy of the GNU Lesser General Public
  61606. - License along with the GNU C Library; if not, write to the Free
  61607. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61608. - 02111-1307 USA. */
  61609. + License along with the GNU C Library; if not, see
  61610. + <http://www.gnu.org/licenses/>. */
  61611. #ifndef _TERMIOS_H
  61612. # error "Never include <bits/termios.h> directly; use <termios.h> instead."
  61613. 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
  61614. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  61615. +++ uClibc-git/libc/sysdeps/linux/cris/bits/uClibc_arch_features.h 2014-06-02 17:40:34.386714044 +0200
  61616. @@ -12,8 +12,8 @@
  61617. /* can your target use syscall6() for mmap ? */
  61618. #undef __UCLIBC_MMAP_HAS_6_ARGS__
  61619. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  61620. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  61621. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  61622. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  61623. /* does your target have a broken create_module() ? */
  61624. #define __UCLIBC_BROKEN_CREATE_MODULE__
  61625. 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
  61626. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
  61627. +++ uClibc-git/libc/sysdeps/linux/cris/bits/uClibc_page.h 2014-06-02 17:40:34.386714044 +0200
  61628. @@ -11,8 +11,8 @@
  61629. * Library General Public License for more details.
  61630. *
  61631. * You should have received a copy of the GNU Library General Public
  61632. - * License along with this library; if not, write to the Free
  61633. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  61634. + * License along with this library; if not, see
  61635. + * <http://www.gnu.org/licenses/>.
  61636. */
  61637. /* Supply an architecture specific value for PAGE_SIZE and friends. */
  61638. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/wordsize.h uClibc-git/libc/sysdeps/linux/cris/bits/wordsize.h
  61639. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  61640. +++ uClibc-git/libc/sysdeps/linux/cris/bits/wordsize.h 2014-06-02 17:40:34.386714044 +0200
  61641. @@ -13,7 +13,6 @@
  61642. You should have received a copy of the GNU Library General Public
  61643. License along with the GNU C Library; see the file COPYING.LIB. If not,
  61644. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  61645. - Boston, MA 02111-1307, USA. */
  61646. + see <http://www.gnu.org/licenses/>. */
  61647. #define __WORDSIZE 32
  61648. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/clone.S uClibc-git/libc/sysdeps/linux/cris/clone.S
  61649. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/clone.S 2012-05-15 09:20:09.000000000 +0200
  61650. +++ uClibc-git/libc/sysdeps/linux/cris/clone.S 2014-06-02 17:40:34.386714044 +0200
  61651. @@ -13,8 +13,7 @@
  61652. You should have received a copy of the GNU Library General Public
  61653. License along with the GNU C Library; see the file COPYING.LIB. If not,
  61654. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  61655. - Boston, MA 02111-1307, USA. */
  61656. + see <http://www.gnu.org/licenses/>. */
  61657. #include <features.h>
  61658. #include <sys/syscall.h>
  61659. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/fork.c uClibc-git/libc/sysdeps/linux/cris/fork.c
  61660. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/fork.c 2012-05-15 09:20:09.000000000 +0200
  61661. +++ uClibc-git/libc/sysdeps/linux/cris/fork.c 1970-01-01 01:00:00.000000000 +0100
  61662. @@ -1,18 +0,0 @@
  61663. -/*
  61664. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  61665. - *
  61666. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  61667. - */
  61668. -
  61669. -#include "sysdep.h"
  61670. -
  61671. -#define __NR___libc_fork __NR_fork
  61672. -SYSCALL__ (__libc_fork, 0)
  61673. - /* R1 is now 0 for the parent and 1 for the child. Decrement it to
  61674. - make it -1 (all bits set) for the parent, and 0 (no bits set)
  61675. - for the child. Then AND it with R0, so the parent gets
  61676. - R0&-1==R0, and the child gets R0&0==0. */
  61677. - /* i dunno what the blurb above is useful for. we just return. */
  61678. -__asm__("ret\n\tnop");
  61679. -weak_alias(__libc_fork,fork)
  61680. -libc_hidden_weak(fork)
  61681. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/cris/jmpbuf-offsets.h
  61682. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  61683. +++ uClibc-git/libc/sysdeps/linux/cris/jmpbuf-offsets.h 2014-06-02 17:40:34.386714044 +0200
  61684. @@ -0,0 +1,8 @@
  61685. +/* Private macros for accessing __jmp_buf contents. BFIN version. */
  61686. +/*
  61687. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  61688. + *
  61689. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  61690. + */
  61691. +
  61692. +#define JB_SP 1
  61693. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/cris/jmpbuf-unwind.h
  61694. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  61695. +++ uClibc-git/libc/sysdeps/linux/cris/jmpbuf-unwind.h 2014-06-02 17:40:34.386714044 +0200
  61696. @@ -0,0 +1,12 @@
  61697. +/*
  61698. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  61699. + *
  61700. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  61701. + */
  61702. +#include <setjmp.h>
  61703. +#include <jmpbuf-offsets.h>
  61704. +
  61705. +/* Test if longjmp to JMPBUF would unwind the frame
  61706. + containing a local variable at ADDRESS. */
  61707. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  61708. + ((void *) (address) < (void *) (jmpbuf)[JB_SP])
  61709. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/__longjmp.S uClibc-git/libc/sysdeps/linux/cris/__longjmp.S
  61710. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  61711. +++ uClibc-git/libc/sysdeps/linux/cris/__longjmp.S 2014-06-02 17:40:34.374713977 +0200
  61712. @@ -14,14 +14,9 @@
  61713. You should have received a copy of the GNU Library General Public
  61714. License along with the GNU C Library; see the file COPYING.LIB. If not,
  61715. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  61716. - Boston, MA 02111-1307, USA. */
  61717. + see <http://www.gnu.org/licenses/>. */
  61718. -#include <features.h>
  61719. #include "sysdep.h"
  61720. -#define _SETJMP_H
  61721. -#define _ASM
  61722. -#include <bits/setjmp.h>
  61723. .syntax no_register_prefix
  61724. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/Makefile.arch uClibc-git/libc/sysdeps/linux/cris/Makefile.arch
  61725. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  61726. +++ uClibc-git/libc/sysdeps/linux/cris/Makefile.arch 2014-06-02 17:40:34.374713977 +0200
  61727. @@ -5,9 +5,7 @@
  61728. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  61729. #
  61730. -CSRC := __init_brk.c brk.c sbrk.c
  61731. +CSRC-y := __init_brk.c brk.c sbrk.c
  61732. -SSRC := setjmp.S __longjmp.S clone.S sysdep.S syscall.S vfork.S
  61733. -ifeq ($(UNIFIED_SYSCALL),y)
  61734. -SSRC += __uClibc_syscall.S
  61735. -endif
  61736. +SSRC-y := setjmp.S __longjmp.S clone.S sysdep.S syscall.S vfork.S
  61737. +SSRC-$(UNIFIED_SYSCALL) += __uClibc_syscall.S
  61738. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/setjmp.S uClibc-git/libc/sysdeps/linux/cris/setjmp.S
  61739. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  61740. +++ uClibc-git/libc/sysdeps/linux/cris/setjmp.S 2014-06-02 17:40:34.386714044 +0200
  61741. @@ -14,13 +14,9 @@
  61742. You should have received a copy of the GNU Library General Public
  61743. License along with the GNU C Library; see the file COPYING.LIB. If not,
  61744. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  61745. - Boston, MA 02111-1307, USA. */
  61746. + see <http://www.gnu.org/licenses/>. */
  61747. #include "sysdep.h"
  61748. -#define _SETJMP_H
  61749. -#define _ASM
  61750. -#include <bits/setjmp.h>
  61751. .syntax no_register_prefix
  61752. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/sys/procfs.h uClibc-git/libc/sysdeps/linux/cris/sys/procfs.h
  61753. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  61754. +++ uClibc-git/libc/sysdeps/linux/cris/sys/procfs.h 2014-06-02 17:40:34.386714044 +0200
  61755. @@ -13,8 +13,7 @@
  61756. You should have received a copy of the GNU Library General Public
  61757. License along with the GNU C Library; see the file COPYING.LIB. If not,
  61758. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  61759. - Boston, MA 02111-1307, USA. */
  61760. + see <http://www.gnu.org/licenses/>. */
  61761. #ifndef _SYS_PROCFS_H
  61762. #define _SYS_PROCFS_H 1
  61763. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/sys/ucontext.h uClibc-git/libc/sysdeps/linux/cris/sys/ucontext.h
  61764. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  61765. +++ uClibc-git/libc/sysdeps/linux/cris/sys/ucontext.h 2014-06-02 17:40:34.386714044 +0200
  61766. @@ -12,9 +12,8 @@
  61767. Lesser General Public License for more details.
  61768. You should have received a copy of the GNU Lesser General Public
  61769. - License along with the GNU C Library; if not, write to the Free
  61770. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61771. - 02111-1307 USA. */
  61772. + License along with the GNU C Library; if not, see
  61773. + <http://www.gnu.org/licenses/>. */
  61774. /* System V/cris ABI compliant context switching support. */
  61775. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/syscall.S uClibc-git/libc/sysdeps/linux/cris/syscall.S
  61776. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/syscall.S 2012-05-15 09:20:09.000000000 +0200
  61777. +++ uClibc-git/libc/sysdeps/linux/cris/syscall.S 2014-06-02 17:40:34.386714044 +0200
  61778. @@ -13,8 +13,7 @@
  61779. You should have received a copy of the GNU Library General Public
  61780. License along with the GNU C Library; see the file COPYING.LIB. If not,
  61781. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  61782. - Boston, MA 02111-1307, USA. */
  61783. + see <http://www.gnu.org/licenses/>. */
  61784. #include "sysdep.h"
  61785. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/sysdep.h uClibc-git/libc/sysdeps/linux/cris/sysdep.h
  61786. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  61787. +++ uClibc-git/libc/sysdeps/linux/cris/sysdep.h 2014-06-02 17:40:34.386714044 +0200
  61788. @@ -14,13 +14,12 @@
  61789. You should have received a copy of the GNU Library General Public
  61790. License along with the GNU C Library; see the file COPYING.LIB. If not,
  61791. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  61792. - Boston, MA 02111-1307, USA. */
  61793. + see <http://www.gnu.org/licenses/>. */
  61794. #ifndef _SYSDEP_H_
  61795. #define _SYSDEP_H_
  61796. -#include <sys/syscall.h>
  61797. +#include <common/sysdep.h>
  61798. #ifndef C_LABEL
  61799. @@ -126,6 +125,14 @@
  61800. ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME (name), function) @ \
  61801. .align ALIGNARG (2) @ \
  61802. C_LABEL(name)
  61803. +
  61804. +#define HIDDEN_ENTRY(name) \
  61805. + .text @ \
  61806. + ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (name) @ \
  61807. + .hidden C_SYMBOL_NAME (name) @ \
  61808. + ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME (name), function) @ \
  61809. + .align ALIGNARG (2) @ \
  61810. + C_LABEL(name)
  61811. #undef END
  61812. #define END(name) \
  61813. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/sysdep.S uClibc-git/libc/sysdeps/linux/cris/sysdep.S
  61814. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/sysdep.S 2012-05-15 09:20:09.000000000 +0200
  61815. +++ uClibc-git/libc/sysdeps/linux/cris/sysdep.S 2014-06-02 17:40:34.386714044 +0200
  61816. @@ -13,8 +13,7 @@
  61817. You should have received a copy of the GNU Library General Public
  61818. License along with the GNU C Library; see the file COPYING.LIB. If not,
  61819. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  61820. - Boston, MA 02111-1307, USA. */
  61821. + see <http://www.gnu.org/licenses/>. */
  61822. #include <features.h>
  61823. #include "sysdep.h"
  61824. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/vfork.S uClibc-git/libc/sysdeps/linux/cris/vfork.S
  61825. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/vfork.S 2012-05-15 09:20:09.000000000 +0200
  61826. +++ uClibc-git/libc/sysdeps/linux/cris/vfork.S 2014-06-02 17:40:34.386714044 +0200
  61827. @@ -16,7 +16,7 @@
  61828. * enclosing function
  61829. */
  61830. -ENTRY(__vfork)
  61831. +HIDDEN_ENTRY(__vfork)
  61832. movu.w __NR_vfork,$r9
  61833. break 13
  61834. cmps.w -4096,$r10
  61835. @@ -27,4 +27,4 @@
  61836. PSEUDO_END(__vfork)
  61837. weak_alias(__vfork,vfork)
  61838. -libc_hidden_weak(vfork)
  61839. +libc_hidden_def(vfork)
  61840. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/fcntl.h uClibc-git/libc/sysdeps/linux/e1/bits/fcntl.h
  61841. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  61842. +++ uClibc-git/libc/sysdeps/linux/e1/bits/fcntl.h 2014-06-02 17:40:34.410714177 +0200
  61843. @@ -13,9 +13,8 @@
  61844. Lesser General Public License for more details.
  61845. You should have received a copy of the GNU Lesser General Public
  61846. - License along with the GNU C Library; if not, write to the Free
  61847. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61848. - 02111-1307 USA. */
  61849. + License along with the GNU C Library; if not, see
  61850. + <http://www.gnu.org/licenses/>. */
  61851. #ifndef _FCNTL_H
  61852. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  61853. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/fenv.h uClibc-git/libc/sysdeps/linux/e1/bits/fenv.h
  61854. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  61855. +++ uClibc-git/libc/sysdeps/linux/e1/bits/fenv.h 2014-06-02 17:40:34.410714177 +0200
  61856. @@ -15,9 +15,8 @@
  61857. Lesser General Public License for more details.
  61858. You should have received a copy of the GNU Lesser General Public
  61859. - License along with the GNU C Library; if not, write to the Free
  61860. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61861. - 02111-1307 USA. */
  61862. + License along with the GNU C Library; if not, see
  61863. + <http://www.gnu.org/licenses/>. */
  61864. #ifndef _FENV_H
  61865. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  61866. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/fenvinline.h uClibc-git/libc/sysdeps/linux/e1/bits/fenvinline.h
  61867. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/fenvinline.h 2012-05-15 09:20:09.000000000 +0200
  61868. +++ uClibc-git/libc/sysdeps/linux/e1/bits/fenvinline.h 2014-06-02 17:40:34.410714177 +0200
  61869. @@ -16,9 +16,8 @@
  61870. Lesser General Public License for more details.
  61871. You should have received a copy of the GNU Lesser General Public
  61872. - License along with the GNU C Library; if not, write to the Free
  61873. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61874. - 02111-1307 USA. */
  61875. + License along with the GNU C Library; if not, see
  61876. + <http://www.gnu.org/licenses/>. */
  61877. #if defined __GNUC__ && !defined _SOFT_FLOAT && !defined __NO_MATH_INLINES
  61878. 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
  61879. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  61880. +++ uClibc-git/libc/sysdeps/linux/e1/bits/kernel_types.h 2014-06-02 17:40:34.410714177 +0200
  61881. @@ -31,6 +31,8 @@
  61882. typedef unsigned short __kernel_old_uid_t;
  61883. typedef unsigned short __kernel_old_gid_t;
  61884. typedef __kernel_dev_t __kernel_old_dev_t;
  61885. +typedef long __kernel_long_t;
  61886. +typedef unsigned long __kernel_ulong_t;
  61887. typedef long long __kernel_loff_t;
  61888. /*
  61889. 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
  61890. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  61891. +++ uClibc-git/libc/sysdeps/linux/e1/bits/uClibc_arch_features.h 2014-06-02 17:40:34.410714177 +0200
  61892. @@ -12,8 +12,8 @@
  61893. /* can your target use syscall6() for mmap ? */
  61894. #undef __UCLIBC_MMAP_HAS_6_ARGS__
  61895. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  61896. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  61897. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  61898. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  61899. /* does your target have a broken create_module() ? */
  61900. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  61901. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/unistd.h uClibc-git/libc/sysdeps/linux/e1/bits/unistd.h
  61902. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/unistd.h 2012-05-15 09:20:09.000000000 +0200
  61903. +++ uClibc-git/libc/sysdeps/linux/e1/bits/unistd.h 2014-06-02 17:40:34.410714177 +0200
  61904. @@ -378,13 +378,6 @@
  61905. return (type)(par1); \
  61906. }
  61907. -#include <sys/types.h>
  61908. -/* Taken from <bits/errno.h> */
  61909. -#ifndef _LIBC
  61910. -/* We don't support pthreads for the moment*/
  61911. -#define __set_errno(val) ((errno) = (val))
  61912. -#endif
  61913. -
  61914. #if 0
  61915. #define _syscall3(type, name,atype, a , btype, b, ctype, c) \
  61916. type name(atype a, btype b, ctype c,) \
  61917. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/wordsize.h uClibc-git/libc/sysdeps/linux/e1/bits/wordsize.h
  61918. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  61919. +++ uClibc-git/libc/sysdeps/linux/e1/bits/wordsize.h 2014-06-02 17:40:34.410714177 +0200
  61920. @@ -15,8 +15,7 @@
  61921. Lesser General Public License for more details.
  61922. You should have received a copy of the GNU Lesser General Public
  61923. - License along with the GNU C Library; if not, write to the Free
  61924. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61925. - 02111-1307 USA. */
  61926. + License along with the GNU C Library; if not, see
  61927. + <http://www.gnu.org/licenses/>. */
  61928. #define __WORDSIZE 32
  61929. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/crt1.c uClibc-git/libc/sysdeps/linux/e1/crt1.c
  61930. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/crt1.c 2012-05-15 09:20:09.000000000 +0200
  61931. +++ uClibc-git/libc/sysdeps/linux/e1/crt1.c 2014-06-02 17:40:34.410714177 +0200
  61932. @@ -18,8 +18,8 @@
  61933. * for more details.
  61934. *
  61935. * You should have received a copy of the GNU Library General Public License
  61936. - * along with this program; if not, write to the Free Software Foundation,
  61937. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  61938. + * along with this program; see the file COPYING.LIB. If not, see
  61939. + * <http://www.gnu.org/licenses/>.
  61940. */
  61941. /* Stick in a dummy reference to main(), so that if an application
  61942. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/Makefile uClibc-git/libc/sysdeps/linux/e1/Makefile
  61943. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/Makefile 2012-05-15 09:20:09.000000000 +0200
  61944. +++ uClibc-git/libc/sysdeps/linux/e1/Makefile 2014-06-02 17:40:34.390714065 +0200
  61945. @@ -17,7 +17,7 @@
  61946. CTOR_TARGETS := $(TOPDIR)lib/crti.o $(TOPDIR)lib/crtn.o
  61947. # why is crt1.c listed in CSRC ?
  61948. -CSRC := crt1.c syscalls.c longjmp.c setjmp.c vfork.c
  61949. +CSRC := crt1.c syscalls.c longjmp.c setjmp.c
  61950. OBJS := $(patsubst %.c,%.o, $(CSRC))
  61951. OBJ_LIST := ../../../obj.sysdeps.$(TARGET_ARCH)
  61952. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/sys/procfs.h uClibc-git/libc/sysdeps/linux/e1/sys/procfs.h
  61953. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  61954. +++ uClibc-git/libc/sysdeps/linux/e1/sys/procfs.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_PROCFS_H
  61964. #define _SYS_PROCFS_H 1
  61965. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/sys/reg.h uClibc-git/libc/sysdeps/linux/e1/sys/reg.h
  61966. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/sys/reg.h 2012-05-15 09:20:09.000000000 +0200
  61967. +++ uClibc-git/libc/sysdeps/linux/e1/sys/reg.h 2014-06-02 17:40:34.410714177 +0200
  61968. @@ -12,9 +12,8 @@
  61969. Lesser General Public License for more details.
  61970. You should have received a copy of the GNU Lesser General Public
  61971. - License along with the GNU C Library; if not, write to the Free
  61972. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61973. - 02111-1307 USA. */
  61974. + License along with the GNU C Library; if not, see
  61975. + <http://www.gnu.org/licenses/>. */
  61976. #ifndef _SYS_REG_H
  61977. #define _SYS_REG_H 1
  61978. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/sys/ucontext.h uClibc-git/libc/sysdeps/linux/e1/sys/ucontext.h
  61979. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  61980. +++ uClibc-git/libc/sysdeps/linux/e1/sys/ucontext.h 2014-06-02 17:40:34.410714177 +0200
  61981. @@ -12,9 +12,8 @@
  61982. Lesser General Public License for more details.
  61983. You should have received a copy of the GNU Lesser General Public
  61984. - License along with the GNU C Library; if not, write to the Free
  61985. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61986. - 02111-1307 USA. */
  61987. + License along with the GNU C Library; if not, see
  61988. + <http://www.gnu.org/licenses/>. */
  61989. /* System V/m68k ABI compliant context switching support. */
  61990. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/vfork.c uClibc-git/libc/sysdeps/linux/e1/vfork.c
  61991. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/vfork.c 2012-05-15 09:20:09.000000000 +0200
  61992. +++ uClibc-git/libc/sysdeps/linux/e1/vfork.c 1970-01-01 01:00:00.000000000 +0100
  61993. @@ -1,14 +0,0 @@
  61994. -/*
  61995. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  61996. - *
  61997. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  61998. - */
  61999. -
  62000. -#include <sys/types.h>
  62001. -#include <sys/syscall.h>
  62002. -#include <errno.h>
  62003. -
  62004. -#define __NR___vfork __NR_vfork
  62005. -attribute_hidden _syscall0(pid_t, __vfork)
  62006. -weak_alias(__vfork,vfork)
  62007. -libc_hidden_weak(vfork)
  62008. 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
  62009. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/elf-fdpic.h 2012-05-15 09:20:09.000000000 +0200
  62010. +++ uClibc-git/libc/sysdeps/linux/frv/bits/elf-fdpic.h 2014-06-02 17:40:34.410714177 +0200
  62011. @@ -22,8 +22,7 @@
  62012. You should have received a copy of the GNU Lesser General Public
  62013. License along with the GNU C Library; see the file COPYING.LIB. If
  62014. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  62015. -Cambridge, MA 02139, USA. */
  62016. +not, see <http://www.gnu.org/licenses/>. */
  62017. #ifndef _BITS_ELF_FDPIC_H
  62018. #define _BITS_ELF_FDPIC_H
  62019. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/fcntl.h uClibc-git/libc/sysdeps/linux/frv/bits/fcntl.h
  62020. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  62021. +++ uClibc-git/libc/sysdeps/linux/frv/bits/fcntl.h 2014-06-02 17:40:34.410714177 +0200
  62022. @@ -13,9 +13,8 @@
  62023. Lesser General Public License for more details.
  62024. You should have received a copy of the GNU Lesser General Public
  62025. - License along with the GNU C Library; if not, write to the Free
  62026. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62027. - 02111-1307 USA. */
  62028. + License along with the GNU C Library; if not, see
  62029. + <http://www.gnu.org/licenses/>. */
  62030. #ifndef _FCNTL_H
  62031. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  62032. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/setjmp.h uClibc-git/libc/sysdeps/linux/frv/bits/setjmp.h
  62033. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  62034. +++ uClibc-git/libc/sysdeps/linux/frv/bits/setjmp.h 2014-06-02 17:40:34.410714177 +0200
  62035. @@ -12,9 +12,8 @@
  62036. Lesser General Public License for more details.
  62037. You should have received a copy of the GNU Lesser General Public
  62038. - License along with the GNU C Library; if not, write to the Free
  62039. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62040. - 02111-1307 USA. */
  62041. + License along with the GNU C Library; if not, see
  62042. + <http://www.gnu.org/licenses/>. */
  62043. /* Define the machine-dependent type `jmp_buf'. FRV version. */
  62044. @@ -35,7 +34,6 @@
  62045. #define __SETJMP_FP (__SETJMP_SP+1)
  62046. -#ifndef _ASM
  62047. typedef struct
  62048. /* Demand 64-bit alignment such that we can use std/ldd in
  62049. setjmp/longjmp. */
  62050. @@ -48,11 +46,5 @@
  62051. unsigned long __sp; /* stack pointer */
  62052. unsigned long __fp; /* frame pointer */
  62053. } __jmp_buf[1];
  62054. -#endif
  62055. -
  62056. -/* Test if longjmp to JMPBUF would unwind the frame
  62057. - containing a local variable at ADDRESS. */
  62058. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  62059. - ((void *) (address) < (void *) (jmpbuf)->__sp)
  62060. #endif /* bits/setjmp.h */
  62061. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/frv/bits/stackinfo.h
  62062. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  62063. +++ uClibc-git/libc/sysdeps/linux/frv/bits/stackinfo.h 2014-06-02 17:40:34.410714177 +0200
  62064. @@ -12,9 +12,8 @@
  62065. Lesser General Public License for more details.
  62066. You should have received a copy of the GNU Lesser General Public
  62067. - License along with the GNU C Library; if not, write to the Free
  62068. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62069. - 02111-1307 USA. */
  62070. + License along with the GNU C Library; if not, see
  62071. + <http://www.gnu.org/licenses/>. */
  62072. /* This file contains a bit of information about the stack allocation
  62073. of the processor. */
  62074. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/stat.h uClibc-git/libc/sysdeps/linux/frv/bits/stat.h
  62075. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  62076. +++ uClibc-git/libc/sysdeps/linux/frv/bits/stat.h 2014-06-02 17:40:34.410714177 +0200
  62077. @@ -12,9 +12,8 @@
  62078. Lesser General Public License for more details.
  62079. You should have received a copy of the GNU Lesser General Public
  62080. - License along with the GNU C Library; if not, write to the Free
  62081. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62082. - 02111-1307 USA. */
  62083. + License along with the GNU C Library; if not, see
  62084. + <http://www.gnu.org/licenses/>. */
  62085. #ifndef _SYS_STAT_H
  62086. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  62087. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/syscalls.h uClibc-git/libc/sysdeps/linux/frv/bits/syscalls.h
  62088. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/syscalls.h 2012-05-15 09:20:09.000000000 +0200
  62089. +++ uClibc-git/libc/sysdeps/linux/frv/bits/syscalls.h 2014-06-02 17:40:34.410714177 +0200
  62090. @@ -15,8 +15,7 @@
  62091. # define __syscall_return(type, res) \
  62092. do { \
  62093. unsigned long __sr2 = (res); \
  62094. - if (__builtin_expect ((unsigned long)(__sr2) \
  62095. - >= (unsigned long)(-4095), 0)) { \
  62096. + if (unlikely ((unsigned long)(__sr2) >= (unsigned long)(-4095))) { \
  62097. extern int __syscall_error (int); \
  62098. return (type) __syscall_error (__sr2); \
  62099. } \
  62100. @@ -26,8 +25,7 @@
  62101. # define __syscall_return(type, res) \
  62102. do { \
  62103. unsigned long __sr2 = (res); \
  62104. - if (__builtin_expect ((unsigned long)(__sr2) \
  62105. - >= (unsigned long)(-4095), 0)) { \
  62106. + if (unlikely ((unsigned long)(__sr2) >= (unsigned long)(-4095))) { \
  62107. __set_errno (-__sr2); \
  62108. __sr2 = -1; \
  62109. } \
  62110. 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
  62111. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  62112. +++ uClibc-git/libc/sysdeps/linux/frv/bits/uClibc_arch_features.h 2014-06-02 17:40:34.430714287 +0200
  62113. @@ -12,8 +12,8 @@
  62114. /* can your target use syscall6() for mmap ? */
  62115. #undef __UCLIBC_MMAP_HAS_6_ARGS__
  62116. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  62117. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  62118. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  62119. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  62120. /* does your target have a broken create_module() ? */
  62121. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  62122. 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
  62123. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
  62124. +++ uClibc-git/libc/sysdeps/linux/frv/bits/uClibc_page.h 2014-06-02 17:40:34.430714287 +0200
  62125. @@ -11,8 +11,8 @@
  62126. * Library General Public License for more details.
  62127. *
  62128. * You should have received a copy of the GNU Library General Public
  62129. - * License along with this library; if not, write to the Free
  62130. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  62131. + * License along with this library; if not, see
  62132. + * <http://www.gnu.org/licenses/>.
  62133. */
  62134. /* Supply an architecture specific value for PAGE_SIZE and friends. */
  62135. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/wordsize.h uClibc-git/libc/sysdeps/linux/frv/bits/wordsize.h
  62136. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  62137. +++ uClibc-git/libc/sysdeps/linux/frv/bits/wordsize.h 2014-06-02 17:40:34.430714287 +0200
  62138. @@ -12,8 +12,7 @@
  62139. Lesser General Public License for more details.
  62140. You should have received a copy of the GNU Lesser General Public
  62141. - License along with the GNU C Library; if not, write to the Free
  62142. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62143. - 02111-1307 USA. */
  62144. + License along with the GNU C Library; if not, see
  62145. + <http://www.gnu.org/licenses/>. */
  62146. #define __WORDSIZE 32
  62147. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/clone.S uClibc-git/libc/sysdeps/linux/frv/clone.S
  62148. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/clone.S 2012-05-15 09:20:09.000000000 +0200
  62149. +++ uClibc-git/libc/sysdeps/linux/frv/clone.S 2014-06-02 17:40:34.430714287 +0200
  62150. @@ -13,9 +13,8 @@
  62151. Lesser General Public License for more details.
  62152. You should have received a copy of the GNU Lesser General Public
  62153. - License along with the GNU C Library; if not, write to the Free
  62154. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62155. - 02111-1307 USA. */
  62156. + License along with the GNU C Library; if not, see
  62157. + <http://www.gnu.org/licenses/>. */
  62158. /* clone() is even more special than fork() as it mucks with stacks
  62159. and invokes a function in the right context after its all over. */
  62160. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/crt0.S uClibc-git/libc/sysdeps/linux/frv/crt0.S
  62161. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/crt0.S 2012-05-15 09:20:09.000000000 +0200
  62162. +++ uClibc-git/libc/sysdeps/linux/frv/crt0.S 2014-06-02 17:40:34.430714287 +0200
  62163. @@ -22,8 +22,7 @@
  62164. You should have received a copy of the GNU Lesser General Public
  62165. License along with the GNU C Library; see the file COPYING.LIB. If
  62166. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  62167. -Cambridge, MA 02139, USA. */
  62168. +not, see <http://www.gnu.org/licenses/>. */
  62169. /* Based on ../i386/crt0.S and newlib's libgloss/frv/crt0.S */
  62170. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/crti.S uClibc-git/libc/sysdeps/linux/frv/crti.S
  62171. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/crti.S 2012-05-15 09:20:09.000000000 +0200
  62172. +++ uClibc-git/libc/sysdeps/linux/frv/crti.S 2014-06-02 17:40:34.434714309 +0200
  62173. @@ -22,8 +22,7 @@
  62174. You should have received a copy of the GNU Lesser General Public
  62175. License along with the GNU C Library; see the file COPYING.LIB. If
  62176. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  62177. -Cambridge, MA 02139, USA. */
  62178. +not, see <http://www.gnu.org/licenses/>. */
  62179. .section .init,"x"
  62180. .p2align 2
  62181. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/crtn.S uClibc-git/libc/sysdeps/linux/frv/crtn.S
  62182. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/crtn.S 2012-05-15 09:20:09.000000000 +0200
  62183. +++ uClibc-git/libc/sysdeps/linux/frv/crtn.S 2014-06-02 17:40:34.434714309 +0200
  62184. @@ -22,8 +22,7 @@
  62185. You should have received a copy of the GNU Lesser General Public
  62186. License along with the GNU C Library; see the file COPYING.LIB. If
  62187. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  62188. -Cambridge, MA 02139, USA. */
  62189. +not, see <http://www.gnu.org/licenses/>. */
  62190. .section .init,"x"
  62191. .globl _init
  62192. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/crtreloc.c uClibc-git/libc/sysdeps/linux/frv/crtreloc.c
  62193. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/crtreloc.c 2012-05-15 09:20:09.000000000 +0200
  62194. +++ uClibc-git/libc/sysdeps/linux/frv/crtreloc.c 2014-06-02 17:40:34.434714309 +0200
  62195. @@ -23,8 +23,7 @@
  62196. You should have received a copy of the GNU Lesser General Public
  62197. License along with the GNU C Library; see the file COPYING.LIB. If
  62198. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  62199. -Cambridge, MA 02139, USA. */
  62200. +not, see <http://www.gnu.org/licenses/>. */
  62201. #include <sys/types.h>
  62202. #include <link.h>
  62203. 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
  62204. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/dl-iterate-phdr.c 2012-05-15 09:20:09.000000000 +0200
  62205. +++ uClibc-git/libc/sysdeps/linux/frv/dl-iterate-phdr.c 2014-06-02 17:40:34.434714309 +0200
  62206. @@ -13,8 +13,7 @@
  62207. You should have received a copy of the GNU Lesser General Public
  62208. License along with the GNU C Library; see the file COPYING.LIB. If
  62209. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  62210. -Cambridge, MA 02139, USA. */
  62211. +not, see <http://www.gnu.org/licenses/>. */
  62212. #include <link.h>
  62213. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/fstat64.c uClibc-git/libc/sysdeps/linux/frv/fstat64.c
  62214. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/fstat64.c 2012-05-15 09:20:09.000000000 +0200
  62215. +++ uClibc-git/libc/sysdeps/linux/frv/fstat64.c 2014-06-02 17:40:34.434714309 +0200
  62216. @@ -9,11 +9,9 @@
  62217. * Adapted to FR-V by Alexandre Oliva <aoliva@redhat.com>
  62218. */
  62219. +#include <_lfs_64.h>
  62220. #include <sys/syscall.h>
  62221. -#include <unistd.h>
  62222. #include <sys/stat.h>
  62223. -#ifdef __UCLIBC_HAS_LFS__
  62224. _syscall2(int, fstat64, int, fd, struct stat64 *, buf)
  62225. libc_hidden_def(fstat64)
  62226. -#endif
  62227. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/frv/jmpbuf-unwind.h
  62228. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  62229. +++ uClibc-git/libc/sysdeps/linux/frv/jmpbuf-unwind.h 2014-06-02 17:40:34.434714309 +0200
  62230. @@ -0,0 +1,14 @@
  62231. +/*
  62232. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  62233. + *
  62234. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  62235. + */
  62236. +
  62237. +#include <setjmp.h>
  62238. +
  62239. +/* Test if longjmp to JMPBUF would unwind the frame
  62240. + containing a local variable at ADDRESS. */
  62241. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  62242. + ((void *) (address) < (void *) (jmpbuf)->__sp)
  62243. +
  62244. +#endif /* bits/setjmp.h */
  62245. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/__longjmp.S uClibc-git/libc/sysdeps/linux/frv/__longjmp.S
  62246. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  62247. +++ uClibc-git/libc/sysdeps/linux/frv/__longjmp.S 2014-06-02 17:40:34.410714177 +0200
  62248. @@ -4,10 +4,6 @@
  62249. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  62250. */
  62251. -#define _SETJMP_H
  62252. -#define _ASM
  62253. -#include <bits/setjmp.h>
  62254. -
  62255. # setjmp/longjmp for Frv. The jmpbuf looks like this:
  62256. #
  62257. # Register jmpbuf offset
  62258. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/lstat64.c uClibc-git/libc/sysdeps/linux/frv/lstat64.c
  62259. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/lstat64.c 2012-05-15 09:20:09.000000000 +0200
  62260. +++ uClibc-git/libc/sysdeps/linux/frv/lstat64.c 2014-06-02 17:40:34.434714309 +0200
  62261. @@ -9,11 +9,9 @@
  62262. * Adapted to FR-V by Alexandre Oliva <aoliva@redhat.com>
  62263. */
  62264. +#include <_lfs_64.h>
  62265. #include <sys/syscall.h>
  62266. -#include <unistd.h>
  62267. #include <sys/stat.h>
  62268. -#ifdef __UCLIBC_HAS_LFS__
  62269. _syscall2(int, lstat64, const char *, file_name, struct stat64 *, buf)
  62270. libc_hidden_def(lstat64)
  62271. -#endif
  62272. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/Makefile uClibc-git/libc/sysdeps/linux/frv/Makefile
  62273. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/Makefile 2012-05-15 09:20:09.000000000 +0200
  62274. +++ uClibc-git/libc/sysdeps/linux/frv/Makefile 2014-06-02 17:40:34.410714177 +0200
  62275. @@ -17,7 +17,7 @@
  62276. SSRC := __longjmp.S setjmp.S clone.S vfork.S
  62277. SOBJ := $(patsubst %.S,%.o, $(SSRC))
  62278. -CSRC = mmap.c sysdep.c syscall.c brk.c sbrk.c __init_brk.c dl-iterate-phdr.c
  62279. +CSRC = sysdep.c syscall.c brk.c sbrk.c __init_brk.c dl-iterate-phdr.c
  62280. CSRC += xstatconv.c stat.c stat64.c fstat.c fstat64.c lstat.c lstat64.c
  62281. COBJ := $(patsubst %.c,%.o, $(CSRC))
  62282. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/mmap.c uClibc-git/libc/sysdeps/linux/frv/mmap.c
  62283. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/mmap.c 2012-05-15 09:20:09.000000000 +0200
  62284. +++ uClibc-git/libc/sysdeps/linux/frv/mmap.c 1970-01-01 01:00:00.000000000 +0100
  62285. @@ -1,50 +0,0 @@
  62286. -/* Copyright (C) 1997, 1998, 1999, 2002, 2003 Free Software Foundation, Inc.
  62287. - This file is part of the GNU C Library.
  62288. - Contributed by Daniel Jacobowitz <dan@debian.org>, 1999.
  62289. -
  62290. - The GNU C Library is free software; you can redistribute it and/or
  62291. - modify it under the terms of the GNU Lesser General Public
  62292. - License as published by the Free Software Foundation; either
  62293. - version 2.1 of the License, or (at your option) any later version.
  62294. -
  62295. - The GNU C Library is distributed in the hope that it will be useful,
  62296. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  62297. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  62298. - Lesser General Public License for more details.
  62299. -
  62300. - You should have received a copy of the GNU Lesser General Public
  62301. - License along with the GNU C Library; if not, write to the Free
  62302. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62303. - 02111-1307 USA. */
  62304. -
  62305. -/* Massivly hacked up for uClibc by Erik Andersen */
  62306. -
  62307. -/* Extracted from ../common/mmap64.c by Alexandre Oliva <aoliva@redhat.com>
  62308. -
  62309. - We don't want to use the old mmap interface. */
  62310. -
  62311. -#include <features.h>
  62312. -#include <errno.h>
  62313. -#include <unistd.h>
  62314. -#include <sys/syscall.h>
  62315. -#include <sys/mman.h>
  62316. -
  62317. -
  62318. -#define __NR___syscall_mmap2 __NR_mmap2
  62319. -static __inline__ _syscall6(__ptr_t, __syscall_mmap2, __ptr_t, addr,
  62320. - size_t, len, int, prot, int, flags, int, fd, off_t, offset)
  62321. -
  62322. -/* This is always 12, even on architectures where PAGE_SHIFT != 12. */
  62323. -# ifndef MMAP2_PAGE_SHIFT
  62324. -# define MMAP2_PAGE_SHIFT 12
  62325. -# endif
  62326. -
  62327. -__ptr_t mmap(__ptr_t addr, size_t len, int prot, int flags, int fd, __off_t offset)
  62328. -{
  62329. - if (offset & ((1 << MMAP2_PAGE_SHIFT) - 1)) {
  62330. - __set_errno (EINVAL);
  62331. - return MAP_FAILED;
  62332. - }
  62333. - return(__syscall_mmap2(addr, len, prot, flags, fd, (off_t) (offset >> MMAP2_PAGE_SHIFT)));
  62334. -}
  62335. -libc_hidden_def(mmap)
  62336. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/stat64.c uClibc-git/libc/sysdeps/linux/frv/stat64.c
  62337. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/stat64.c 2012-05-15 09:20:09.000000000 +0200
  62338. +++ uClibc-git/libc/sysdeps/linux/frv/stat64.c 2014-06-02 17:40:34.434714309 +0200
  62339. @@ -9,11 +9,9 @@
  62340. * Adapted to FR-V by Alexandre Oliva <aoliva@redhat.com>
  62341. */
  62342. +#include <_lfs_64.h>
  62343. #include <sys/syscall.h>
  62344. -#include <unistd.h>
  62345. #include <sys/stat.h>
  62346. -#ifdef __UCLIBC_HAS_LFS__
  62347. _syscall2(int, stat64, const char *, file_name, struct stat64 *, buf)
  62348. libc_hidden_def(stat64)
  62349. -#endif
  62350. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/sys/procfs.h uClibc-git/libc/sysdeps/linux/frv/sys/procfs.h
  62351. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  62352. +++ uClibc-git/libc/sysdeps/linux/frv/sys/procfs.h 2014-06-02 17:40:34.434714309 +0200
  62353. @@ -12,9 +12,8 @@
  62354. Lesser General Public License for more details.
  62355. You should have received a copy of the GNU Lesser General Public
  62356. - License along with the GNU C Library; if not, write to the Free
  62357. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62358. - 02111-1307 USA. */
  62359. + License along with the GNU C Library; if not, see
  62360. + <http://www.gnu.org/licenses/>. */
  62361. #ifndef _SYS_PROCFS_H
  62362. #define _SYS_PROCFS_H 1
  62363. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/sys/ptrace.h uClibc-git/libc/sysdeps/linux/frv/sys/ptrace.h
  62364. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
  62365. +++ uClibc-git/libc/sysdeps/linux/frv/sys/ptrace.h 2014-06-02 17:40:34.434714309 +0200
  62366. @@ -14,9 +14,8 @@
  62367. Lesser General Public License for more details.
  62368. You should have received a copy of the GNU Lesser General Public
  62369. - License along with the GNU C Library; if not, write to the Free
  62370. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62371. - 02111-1307 USA. */
  62372. + License along with the GNU C Library; if not, see
  62373. + <http://www.gnu.org/licenses/>. */
  62374. #ifndef _SYS_PTRACE_H
  62375. #define _SYS_PTRACE_H 1
  62376. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/sys/ucontext.h uClibc-git/libc/sysdeps/linux/frv/sys/ucontext.h
  62377. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  62378. +++ uClibc-git/libc/sysdeps/linux/frv/sys/ucontext.h 2014-06-02 17:40:34.434714309 +0200
  62379. @@ -13,8 +13,7 @@
  62380. You should have received a copy of the GNU Library General Public
  62381. License along with the GNU C Library; see the file COPYING.LIB. If not,
  62382. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  62383. - Boston, MA 02111-1307, USA. */
  62384. + see <http://www.gnu.org/licenses/>. */
  62385. #ifndef _SYS_UCONTEXT_H
  62386. #define _SYS_UCONTEXT_H 1
  62387. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/syscall.c uClibc-git/libc/sysdeps/linux/frv/syscall.c
  62388. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/syscall.c 2012-05-15 09:20:09.000000000 +0200
  62389. +++ uClibc-git/libc/sysdeps/linux/frv/syscall.c 2014-06-02 17:40:34.434714309 +0200
  62390. @@ -13,8 +13,8 @@
  62391. * for more details.
  62392. *
  62393. * You should have received a copy of the GNU Library General Public License
  62394. - * along with this program; if not, write to the Free Software Foundation,
  62395. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  62396. + * along with this program; see the file COPYING.LIB. If not, see
  62397. + * <http://www.gnu.org/licenses/>.
  62398. */
  62399. #include <features.h>
  62400. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/sysdep.c uClibc-git/libc/sysdeps/linux/frv/sysdep.c
  62401. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/sysdep.c 2012-05-15 09:20:09.000000000 +0200
  62402. +++ uClibc-git/libc/sysdeps/linux/frv/sysdep.c 2014-06-02 17:40:34.434714309 +0200
  62403. @@ -12,9 +12,8 @@
  62404. Lesser General Public License for more details.
  62405. You should have received a copy of the GNU Lesser General Public
  62406. - License along with the GNU C Library; if not, write to the Free
  62407. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62408. - 02111-1307 USA. */
  62409. + License along with the GNU C Library; if not, see
  62410. + <http://www.gnu.org/licenses/>. */
  62411. #include <errno.h>
  62412. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/vfork.S uClibc-git/libc/sysdeps/linux/frv/vfork.S
  62413. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/vfork.S 2012-05-15 09:20:09.000000000 +0200
  62414. +++ uClibc-git/libc/sysdeps/linux/frv/vfork.S 2014-06-02 17:40:34.434714309 +0200
  62415. @@ -13,15 +13,10 @@
  62416. Lesser General Public License for more details.
  62417. You should have received a copy of the GNU Lesser General Public
  62418. - License along with the GNU C Library; if not, write to the Free
  62419. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62420. - 02111-1307 USA. */
  62421. -
  62422. -#include <features.h>
  62423. -
  62424. -#include <asm/unistd.h>
  62425. -#define _ERRNO_H 1
  62426. -#include <bits/errno.h>
  62427. + License along with the GNU C Library; if not, see
  62428. + <http://www.gnu.org/licenses/>. */
  62429. +
  62430. +#include <sys/syscall.h>
  62431. .text
  62432. .globl __vfork
  62433. @@ -44,4 +39,4 @@
  62434. .size __vfork,.-__vfork
  62435. weak_alias(__vfork,vfork)
  62436. -libc_hidden_weak(vfork)
  62437. +libc_hidden_def(vfork)
  62438. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/byteswap.h uClibc-git/libc/sysdeps/linux/h8300/bits/byteswap.h
  62439. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/byteswap.h 2012-05-15 09:20:09.000000000 +0200
  62440. +++ uClibc-git/libc/sysdeps/linux/h8300/bits/byteswap.h 2014-06-02 17:40:34.434714309 +0200
  62441. @@ -14,8 +14,7 @@
  62442. You should have received a copy of the GNU Library General Public
  62443. License along with the GNU C Library; see the file COPYING.LIB. If not,
  62444. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  62445. - Boston, MA 02111-1307, USA. */
  62446. + see <http://www.gnu.org/licenses/>. */
  62447. #ifndef _ASM_BITS_BYTESWAP_H
  62448. #define _ASM_BITS_BYTESWAP_H 1
  62449. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/fcntl.h uClibc-git/libc/sysdeps/linux/h8300/bits/fcntl.h
  62450. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  62451. +++ uClibc-git/libc/sysdeps/linux/h8300/bits/fcntl.h 2014-06-02 17:40:34.434714309 +0200
  62452. @@ -13,9 +13,8 @@
  62453. Lesser General Public License for more details.
  62454. You should have received a copy of the GNU Lesser General Public
  62455. - License along with the GNU C Library; if not, write to the Free
  62456. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62457. - 02111-1307 USA. */
  62458. + License along with the GNU C Library; if not, see
  62459. + <http://www.gnu.org/licenses/>. */
  62460. #ifndef _FCNTL_H
  62461. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  62462. 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
  62463. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  62464. +++ uClibc-git/libc/sysdeps/linux/h8300/bits/kernel_types.h 2014-06-02 17:40:34.434714309 +0200
  62465. @@ -32,6 +32,8 @@
  62466. typedef unsigned short __kernel_old_gid_t;
  62467. typedef long long __kernel_loff_t;
  62468. typedef __kernel_dev_t __kernel_old_dev_t;
  62469. +typedef long __kernel_long_t;
  62470. +typedef unsigned long __kernel_ulong_t;
  62471. typedef struct {
  62472. #ifdef __USE_ALL
  62473. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/setjmp.h uClibc-git/libc/sysdeps/linux/h8300/bits/setjmp.h
  62474. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  62475. +++ uClibc-git/libc/sysdeps/linux/h8300/bits/setjmp.h 2014-06-02 17:40:34.434714309 +0200
  62476. @@ -9,24 +9,10 @@
  62477. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  62478. #endif
  62479. -#ifndef _ASM
  62480. -
  62481. typedef struct
  62482. {
  62483. unsigned long __regs[4]; /* save er4 - er7(sp) */
  62484. unsigned long __pc; /* the return address */
  62485. } __jmp_buf[1];
  62486. -#endif /* _ASM */
  62487. -
  62488. -#define JB_REGS 0
  62489. -#define JB_PC 16
  62490. -#define JB_SIZE 20
  62491. -
  62492. -
  62493. -/* Test if longjmp to JMPBUF would unwind the frame
  62494. - containing a local variable at ADDRESS. */
  62495. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  62496. - ((void *) (address) < (void *) (jmpbuf)->__regs[3])
  62497. -
  62498. #endif /* bits/setjmp.h */
  62499. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/h8300/bits/sigcontextinfo.h
  62500. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  62501. +++ uClibc-git/libc/sysdeps/linux/h8300/bits/sigcontextinfo.h 2014-06-02 17:40:34.434714309 +0200
  62502. @@ -13,9 +13,8 @@
  62503. Lesser General Public License for more details.
  62504. You should have received a copy of the GNU Lesser General Public
  62505. - License along with the GNU C Library; if not, write to the Free
  62506. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62507. - 02111-1307 USA. */
  62508. + License along with the GNU C Library; if not, see
  62509. + <http://www.gnu.org/licenses/>. */
  62510. #define SIGCONTEXT int _code, struct sigcontext *
  62511. #define SIGCONTEXT_EXTRA_ARGS _code,
  62512. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/h8300/bits/stackinfo.h
  62513. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  62514. +++ uClibc-git/libc/sysdeps/linux/h8300/bits/stackinfo.h 2014-06-02 17:40:34.434714309 +0200
  62515. @@ -12,9 +12,8 @@
  62516. Lesser General Public License for more details.
  62517. You should have received a copy of the GNU Lesser General Public
  62518. - License along with the GNU C Library; if not, write to the Free
  62519. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62520. - 02111-1307 USA. */
  62521. + License along with the GNU C Library; if not, see
  62522. + <http://www.gnu.org/licenses/>. */
  62523. /* This file contains a bit of information about the stack allocation
  62524. of the processor. */
  62525. 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
  62526. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  62527. +++ uClibc-git/libc/sysdeps/linux/h8300/bits/uClibc_arch_features.h 2014-06-02 17:40:34.434714309 +0200
  62528. @@ -12,8 +12,8 @@
  62529. /* can your target use syscall6() for mmap ? */
  62530. #define __UCLIBC_MMAP_HAS_6_ARGS__
  62531. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  62532. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  62533. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  62534. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  62535. /* does your target have a broken create_module() ? */
  62536. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  62537. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/h8300/bsd-setjmp.S
  62538. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
  62539. +++ uClibc-git/libc/sysdeps/linux/h8300/bsd-setjmp.S 2014-06-02 17:40:34.434714309 +0200
  62540. @@ -1,8 +1,6 @@
  62541. /* BSD `_setjmp' entry point to `sigsetjmp (..., 1)'. H8/300 version. */
  62542. -#define _ASM
  62543. -#define _SETJMP_H
  62544. -#include <bits/setjmp.h>
  62545. +#include <jmpbuf-offsets.h>
  62546. #ifdef __H8300S__
  62547. .h8300s
  62548. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/h8300/bsd-_setjmp.S
  62549. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
  62550. +++ uClibc-git/libc/sysdeps/linux/h8300/bsd-_setjmp.S 2014-06-02 17:40:34.434714309 +0200
  62551. @@ -1,8 +1,6 @@
  62552. /* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. H8/300 version. */
  62553. -#define _ASM
  62554. -#define _SETJMP_H
  62555. -#include <bits/setjmp.h>
  62556. +#include <jmpbuf-offsets.h>
  62557. #ifdef __H8300S__
  62558. .h8300s
  62559. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/crt0.S uClibc-git/libc/sysdeps/linux/h8300/crt0.S
  62560. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/crt0.S 2012-05-15 09:20:09.000000000 +0200
  62561. +++ uClibc-git/libc/sysdeps/linux/h8300/crt0.S 2014-06-02 17:40:34.438714331 +0200
  62562. @@ -14,8 +14,7 @@
  62563. You should have received a copy of the GNU Library General Public
  62564. License along with the GNU C Library; see the file COPYING.LIB. If
  62565. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  62566. -Cambridge, MA 02139, USA. */
  62567. +not, see <http://www.gnu.org/licenses/>. */
  62568. #include <features.h>
  62569. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/h8300/jmpbuf-offsets.h
  62570. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  62571. +++ uClibc-git/libc/sysdeps/linux/h8300/jmpbuf-offsets.h 2014-06-02 17:40:34.438714331 +0200
  62572. @@ -0,0 +1,9 @@
  62573. +/*
  62574. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  62575. + *
  62576. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  62577. + */
  62578. +
  62579. +#define JB_REGS 0
  62580. +#define JB_PC 16
  62581. +#define JB_SIZE 20
  62582. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/h8300/jmpbuf-unwind.h
  62583. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  62584. +++ uClibc-git/libc/sysdeps/linux/h8300/jmpbuf-unwind.h 2014-06-02 17:40:34.438714331 +0200
  62585. @@ -0,0 +1,12 @@
  62586. +/*
  62587. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  62588. + *
  62589. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  62590. + */
  62591. +
  62592. +#include <setjmp.h>
  62593. +
  62594. +/* Test if longjmp to JMPBUF would unwind the frame
  62595. + containing a local variable at ADDRESS. */
  62596. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  62597. + ((void *) (address) < (void *) (jmpbuf)->__regs[3])
  62598. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/__longjmp.S uClibc-git/libc/sysdeps/linux/h8300/__longjmp.S
  62599. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  62600. +++ uClibc-git/libc/sysdeps/linux/h8300/__longjmp.S 2014-06-02 17:40:34.434714309 +0200
  62601. @@ -20,3 +20,5 @@
  62602. mov.l @er0+,er3 ; return PC
  62603. adds #4,sp ; adjust return stack
  62604. jmp @er3
  62605. +
  62606. +libc_hidden_def(__longjmp)
  62607. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/setjmp.S uClibc-git/libc/sysdeps/linux/h8300/setjmp.S
  62608. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  62609. +++ uClibc-git/libc/sysdeps/linux/h8300/setjmp.S 2014-06-02 17:40:34.438714331 +0200
  62610. @@ -1,6 +1,4 @@
  62611. -#define _ASM
  62612. -#define _SETJMP_H
  62613. -#include <bits/setjmp.h>
  62614. +#include <jmpbuf-offsets.h>
  62615. #ifdef __H8300S__
  62616. .h8300s
  62617. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/sys/procfs.h uClibc-git/libc/sysdeps/linux/h8300/sys/procfs.h
  62618. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  62619. +++ uClibc-git/libc/sysdeps/linux/h8300/sys/procfs.h 2014-06-02 17:40:34.438714331 +0200
  62620. @@ -12,9 +12,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 _SYS_PROCFS_H
  62629. #define _SYS_PROCFS_H 1
  62630. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/sys/ucontext.h uClibc-git/libc/sysdeps/linux/h8300/sys/ucontext.h
  62631. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  62632. +++ uClibc-git/libc/sysdeps/linux/h8300/sys/ucontext.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. /* H8/300 compliant context switching support. */
  62642. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/vfork.S uClibc-git/libc/sysdeps/linux/h8300/vfork.S
  62643. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/vfork.S 2012-05-15 09:20:09.000000000 +0200
  62644. +++ uClibc-git/libc/sysdeps/linux/h8300/vfork.S 2014-06-02 17:40:34.442714354 +0200
  62645. @@ -1,5 +1,5 @@
  62646. -#include <asm/unistd.h>
  62647. +#include <sys/syscall.h>
  62648. #ifndef __NR_vfork
  62649. #define __NR_vfork __NR_fork /* uClinux-2.0 only has fork which is vfork */
  62650. @@ -12,7 +12,6 @@
  62651. #endif
  62652. .text
  62653. .align 2
  62654. - .globl _errno
  62655. .globl ___vfork
  62656. .hidden ___vfork
  62657. .type ___vfork,@function
  62658. @@ -38,4 +37,4 @@
  62659. jmp @er1 /* don't return, just jmp directly */
  62660. weak_alias(__vfork,vfork)
  62661. -libc_hidden_weak(vfork)
  62662. +libc_hidden_def(vfork)
  62663. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/add_n.s uClibc-git/libc/sysdeps/linux/hppa/add_n.s
  62664. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/add_n.s 2012-05-15 09:20:09.000000000 +0200
  62665. +++ uClibc-git/libc/sysdeps/linux/hppa/add_n.s 2014-06-02 17:40:34.442714354 +0200
  62666. @@ -16,9 +16,8 @@
  62667. ;! License for more details.
  62668. ;! You should have received a copy of the GNU Lesser General Public License
  62669. -;! along with the GNU MP Library; see the file COPYING.LIB. If not, write to
  62670. -;! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
  62671. -;! MA 02111-1307, USA.
  62672. +;! along with the GNU MP Library; see the file COPYING.LIB. If not, see
  62673. +;! <http://www.gnu.org/licenses/>.
  62674. ;! INPUT PARAMETERS
  62675. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/atomic.h uClibc-git/libc/sysdeps/linux/hppa/bits/atomic.h
  62676. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  62677. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/atomic.h 2014-06-02 17:40:34.442714354 +0200
  62678. @@ -13,11 +13,11 @@
  62679. Lesser General Public License for more details.
  62680. You should have received a copy of the GNU Lesser General Public
  62681. - License along with the GNU C Library; if not, write to the Free
  62682. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62683. - 02111-1307 USA. */
  62684. + License along with the GNU C Library; if not, see
  62685. + <http://www.gnu.org/licenses/>. */
  62686. #include <stdint.h>
  62687. +#include <errno.h>
  62688. #include <bits/kernel-features.h>
  62689. #define ABORT_INSTRUCTION __asm__(__UCLIBC_ABORT_INSTRUCTION__)
  62690. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/eventfd.h uClibc-git/libc/sysdeps/linux/hppa/bits/eventfd.h
  62691. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/eventfd.h 1970-01-01 01:00:00.000000000 +0100
  62692. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/eventfd.h 2014-06-02 17:40:34.442714354 +0200
  62693. @@ -0,0 +1,32 @@
  62694. +/* Copyright (C) 2007-2013 Free Software Foundation, Inc.
  62695. + This file is part of the GNU C Library.
  62696. +
  62697. + The GNU C Library is free software; you can redistribute it and/or
  62698. + modify it under the terms of the GNU Lesser General Public
  62699. + License as published by the Free Software Foundation; either
  62700. + version 2.1 of the License, or (at your option) any later version.
  62701. +
  62702. + The GNU C Library is distributed in the hope that it will be useful,
  62703. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  62704. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  62705. + Lesser General Public License for more details.
  62706. +
  62707. + You should have received a copy of the GNU Lesser General Public
  62708. + License along with the GNU C Library. If not, see
  62709. + <http://www.gnu.org/licenses/>. */
  62710. +
  62711. +#ifndef _SYS_EVENTFD_H
  62712. +# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
  62713. +#endif
  62714. +
  62715. +/* Flags for signalfd. */
  62716. +enum
  62717. + {
  62718. + EFD_SEMAPHORE = 000000001,
  62719. +#define EFD_SEMAPHORE EFD_SEMAPHORE
  62720. + EFD_CLOEXEC = 010000000,
  62721. +#define EFD_CLOEXEC EFD_CLOEXEC
  62722. +/* the below value looks suspicious, should be 000200004 for consistency */
  62723. + EFD_NONBLOCK = 00200004 /* HPUX has separate NDELAY & NONBLOCK */
  62724. +#define EFD_NONBLOCK EFD_NONBLOCK
  62725. + };
  62726. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/fcntl.h uClibc-git/libc/sysdeps/linux/hppa/bits/fcntl.h
  62727. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  62728. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/fcntl.h 2014-06-02 17:40:34.442714354 +0200
  62729. @@ -14,9 +14,8 @@
  62730. Lesser General Public License for more details.
  62731. You should have received a copy of the GNU Lesser General Public
  62732. - License along with the GNU C Library; if not, write to the Free
  62733. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62734. - 02111-1307 USA. */
  62735. + License along with the GNU C Library; if not, see
  62736. + <http://www.gnu.org/licenses/>. */
  62737. #ifndef _FCNTL_H
  62738. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  62739. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/fenv.h uClibc-git/libc/sysdeps/linux/hppa/bits/fenv.h
  62740. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  62741. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/fenv.h 2014-06-02 17:40:34.442714354 +0200
  62742. @@ -13,9 +13,8 @@
  62743. Lesser General Public License for more details.
  62744. You should have received a copy of the GNU Lesser General Public
  62745. - License along with the GNU C Library; if not, write to the Free
  62746. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62747. - 02111-1307 USA. */
  62748. + License along with the GNU C Library; if not, see
  62749. + <http://www.gnu.org/licenses/>. */
  62750. #ifndef _FENV_H
  62751. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  62752. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/ipc.h uClibc-git/libc/sysdeps/linux/hppa/bits/ipc.h
  62753. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
  62754. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/ipc.h 2014-06-02 17:40:34.442714354 +0200
  62755. @@ -12,9 +12,8 @@
  62756. Lesser General Public License for more details.
  62757. You should have received a copy of the GNU Lesser General Public
  62758. - License along with the GNU C Library; if not, write to the Free
  62759. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62760. - 02111-1307 USA. */
  62761. + License along with the GNU C Library; if not, see
  62762. + <http://www.gnu.org/licenses/>. */
  62763. #ifndef _SYS_IPC_H
  62764. # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
  62765. 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
  62766. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/kernel_sigaction.h 2012-05-15 09:20:09.000000000 +0200
  62767. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/kernel_sigaction.h 2014-06-02 17:40:34.442714354 +0200
  62768. @@ -12,12 +12,4 @@
  62769. unsigned long sa_flags;
  62770. };
  62771. -/* In uclibc, userspace struct sigaction is identical to
  62772. - * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel).
  62773. - * See sigaction.h
  62774. - */
  62775. -
  62776. -extern int __syscall_rt_sigaction (int, const struct sigaction *,
  62777. - struct sigaction *, size_t) attribute_hidden;
  62778. -
  62779. #endif
  62780. 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
  62781. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  62782. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/kernel_types.h 2014-06-02 17:40:34.442714354 +0200
  62783. @@ -45,6 +45,8 @@
  62784. typedef unsigned long long __kernel_ino64_t;
  62785. typedef unsigned int __kernel_old_dev_t;
  62786. +typedef long __kernel_long_t;
  62787. +typedef unsigned long __kernel_ulong_t;
  62788. typedef struct {
  62789. #ifdef __USE_ALL
  62790. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/mman.h uClibc-git/libc/sysdeps/linux/hppa/bits/mman.h
  62791. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/mman.h 2012-05-15 09:20:09.000000000 +0200
  62792. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/mman.h 2014-06-02 17:40:34.442714354 +0200
  62793. @@ -13,9 +13,8 @@
  62794. Lesser General Public License for more details.
  62795. You should have received a copy of the GNU Lesser General Public
  62796. - License along with the GNU C Library; if not, write to the Free
  62797. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62798. - 02111-1307 USA. */
  62799. + License along with the GNU C Library; if not, see
  62800. + <http://www.gnu.org/licenses/>. */
  62801. #ifndef _SYS_MMAN_H
  62802. # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
  62803. @@ -45,7 +44,7 @@
  62804. #define MAP_GROWSDOWN 0x8000 /* stack-like segment */
  62805. #define MAP_POPULATE 0x10000 /* populate (prefault) pagetables */
  62806. #define MAP_NONBLOCK 0x20000 /* do not block on IO */
  62807. -#define MAP_UNINITIALIZE 0x4000000 /* For anonymous mmap, memory could
  62808. +#define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could
  62809. be uninitialized. */
  62810. #define MS_SYNC 1 /* synchronous memory sync */
  62811. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/setjmp.h uClibc-git/libc/sysdeps/linux/hppa/bits/setjmp.h
  62812. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  62813. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/setjmp.h 2014-06-02 17:40:34.442714354 +0200
  62814. @@ -1,4 +1,4 @@
  62815. -/* Copyright (C) 2000 Free Software Foundation, Inc.
  62816. +/* Copyright (C) 2000, 2005, 2006 Free Software Foundation, Inc.
  62817. This file is part of the GNU C Library.
  62818. The GNU C Library is free software; you can redistribute it and/or
  62819. @@ -12,9 +12,8 @@
  62820. Lesser General Public License for more details.
  62821. You should have received a copy of the GNU Lesser General Public
  62822. - License along with the GNU C Library; if not, write to the Free
  62823. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62824. - 02111-1307 USA. */
  62825. + License along with the GNU C Library; if not, see
  62826. + <http://www.gnu.org/licenses/>. */
  62827. /* Define the machine-dependent type `jmp_buf'. HPPA version. */
  62828. #ifndef _BITS_SETJMP_H
  62829. @@ -29,17 +28,6 @@
  62830. easier, and to ensure proper alignment. Naturally, user code should
  62831. not depend on either representation. */
  62832. -#if defined __USE_MISC || defined _ASM
  62833. -#define JB_SP (76/4)
  62834. -#endif
  62835. -
  62836. -#ifndef _ASM
  62837. typedef double __jmp_buf[21];
  62838. -#endif
  62839. -
  62840. -/* Test if longjmp to JMPBUF would unwind the frame containing a local
  62841. - variable at ADDRESS. */
  62842. -#define _JMPBUF_UNWINDS(_jmpbuf, _address) \
  62843. - ((void *)(_address) > (void *)(((unsigned long *) _jmpbuf)[JB_SP]))
  62844. #endif /* bits/setjmp.h */
  62845. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/sigaction.h uClibc-git/libc/sysdeps/linux/hppa/bits/sigaction.h
  62846. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/sigaction.h 2012-05-15 09:20:09.000000000 +0200
  62847. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/sigaction.h 2014-06-02 17:40:34.442714354 +0200
  62848. @@ -13,9 +13,8 @@
  62849. Lesser General Public License for more details.
  62850. You should have received a copy of the GNU Lesser General Public
  62851. - License along with the GNU C Library; if not, write to the Free
  62852. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62853. - 02111-1307 USA. */
  62854. + License along with the GNU C Library; if not, see
  62855. + <http://www.gnu.org/licenses/>. */
  62856. #ifndef _SIGNAL_H
  62857. # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
  62858. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/signum.h uClibc-git/libc/sysdeps/linux/hppa/bits/signum.h
  62859. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/signum.h 2012-05-15 09:20:09.000000000 +0200
  62860. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/signum.h 2014-06-02 17:40:34.442714354 +0200
  62861. @@ -13,9 +13,8 @@
  62862. Lesser General Public License for more details.
  62863. You should have received a copy of the GNU Lesser General Public
  62864. - License along with the GNU C Library; if not, write to the Free
  62865. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62866. - 02111-1307 USA. */
  62867. + License along with the GNU C Library; if not, see
  62868. + <http://www.gnu.org/licenses/>. */
  62869. #ifdef _SIGNAL_H
  62870. 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
  62871. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/socket_type.h 1970-01-01 01:00:00.000000000 +0100
  62872. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/socket_type.h 2014-06-02 17:40:34.442714354 +0200
  62873. @@ -0,0 +1,54 @@
  62874. +/* Define enum __socket_type for Linux/HP-PARISC.
  62875. + Copyright (C) 2012 Free Software Foundation, Inc.
  62876. + This file is part of the GNU C Library.
  62877. +
  62878. + The GNU C Library is free software; you can redistribute it and/or
  62879. + modify it under the terms of the GNU Lesser General Public
  62880. + License as published by the Free Software Foundation; either
  62881. + version 2.1 of the License, or (at your option) any later version.
  62882. +
  62883. + The GNU C Library is distributed in the hope that it will be useful,
  62884. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  62885. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  62886. + Lesser General Public License for more details.
  62887. +
  62888. + You should have received a copy of the GNU Lesser General Public
  62889. + License along with the GNU C Library; if not, see
  62890. + <http://www.gnu.org/licenses/>. */
  62891. +
  62892. +#ifndef _SYS_SOCKET_H
  62893. +# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
  62894. +#endif
  62895. +
  62896. +/* Types of sockets. */
  62897. +enum __socket_type
  62898. +{
  62899. + SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
  62900. + byte streams. */
  62901. +#define SOCK_STREAM SOCK_STREAM
  62902. + SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
  62903. + of fixed maximum length. */
  62904. +#define SOCK_DGRAM SOCK_DGRAM
  62905. + SOCK_RAW = 3, /* Raw protocol interface. */
  62906. +#define SOCK_RAW SOCK_RAW
  62907. + SOCK_RDM = 4, /* Reliably-delivered messages. */
  62908. +#define SOCK_RDM SOCK_RDM
  62909. + SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
  62910. + datagrams of fixed maximum length. */
  62911. +#define SOCK_SEQPACKET SOCK_SEQPACKET
  62912. + SOCK_DCCP = 6, /* Datagram Congestion Control Protocol. */
  62913. +#define SOCK_DCCP SOCK_DCCP
  62914. + SOCK_PACKET = 10, /* Linux specific way of getting packets
  62915. + at the dev level. For writing rarp and
  62916. + other similar things on the user level. */
  62917. +#define SOCK_PACKET SOCK_PACKET
  62918. +
  62919. + /* Flags to be ORed into the type parameter of socket and socketpair. */
  62920. +
  62921. + SOCK_CLOEXEC = 010000000, /* Atomically set close-on-exec flag for the
  62922. + new descriptor(s). */
  62923. +#define SOCK_CLOEXEC SOCK_CLOEXEC
  62924. + SOCK_NONBLOCK = 0x40000000 /* Atomically mark descriptor(s) as
  62925. + non-blocking. */
  62926. +#define SOCK_NONBLOCK SOCK_NONBLOCK
  62927. +};
  62928. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/hppa/bits/stackinfo.h
  62929. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  62930. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/stackinfo.h 2014-06-02 17:40:34.442714354 +0200
  62931. @@ -12,9 +12,8 @@
  62932. Lesser General Public License for more details.
  62933. You should have received a copy of the GNU Lesser General Public
  62934. - License along with the GNU C Library; if not, write to the Free
  62935. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62936. - 02111-1307 USA. */
  62937. + License along with the GNU C Library; if not, see
  62938. + <http://www.gnu.org/licenses/>. */
  62939. /* This file contains a bit of information about the stack allocation
  62940. of the processor. */
  62941. 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
  62942. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  62943. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/uClibc_arch_features.h 2014-06-02 17:40:34.442714354 +0200
  62944. @@ -9,10 +9,10 @@
  62945. #define __UCLIBC_ABORT_INSTRUCTION__ "iitlbp %r0,(%sr0,%r0)"
  62946. /* can your target use syscall6() for mmap ? */
  62947. -#undef __UCLIBC_MMAP_HAS_6_ARGS__
  62948. +#define __UCLIBC_MMAP_HAS_6_ARGS__
  62949. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  62950. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  62951. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  62952. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  62953. /* does your target have a broken create_module() ? */
  62954. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  62955. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/brk.c uClibc-git/libc/sysdeps/linux/hppa/brk.c
  62956. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/brk.c 2012-05-15 09:20:09.000000000 +0200
  62957. +++ uClibc-git/libc/sysdeps/linux/hppa/brk.c 2014-06-02 17:40:34.442714354 +0200
  62958. @@ -13,9 +13,8 @@
  62959. Lesser General Public License for more details.
  62960. You should have received a copy of the GNU Lesser General Public
  62961. - License along with the GNU C Library; if not, write to the Free
  62962. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62963. - 02111-1307 USA. */
  62964. + License along with the GNU C Library; if not, see
  62965. + <http://www.gnu.org/licenses/>. */
  62966. #include <errno.h>
  62967. #include <sys/syscall.h>
  62968. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/hppa/bsd-setjmp.S
  62969. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
  62970. +++ uClibc-git/libc/sysdeps/linux/hppa/bsd-setjmp.S 2014-06-02 17:40:34.446714376 +0200
  62971. @@ -13,9 +13,8 @@
  62972. Lesser General Public License for more details.
  62973. You should have received a copy of the GNU Lesser General Public
  62974. - License along with the GNU C Library; if not, write to the Free
  62975. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62976. - 02111-1307 USA. */
  62977. + License along with the GNU C Library; if not, see
  62978. + <http://www.gnu.org/licenses/>. */
  62979. /* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
  62980. We cannot do it in C because it must be a tail-call, so frame-unwinding
  62981. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/hppa/bsd-_setjmp.S
  62982. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
  62983. +++ uClibc-git/libc/sysdeps/linux/hppa/bsd-_setjmp.S 2014-06-02 17:40:34.446714376 +0200
  62984. @@ -13,9 +13,8 @@
  62985. Lesser General Public License for more details.
  62986. You should have received a copy of the GNU Lesser General Public
  62987. - License along with the GNU C Library; if not, write to the Free
  62988. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62989. - 02111-1307 USA. */
  62990. + License along with the GNU C Library; if not, see
  62991. + <http://www.gnu.org/licenses/>. */
  62992. /* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
  62993. We cannot do it in C because it must be a tail-call, so frame-unwinding
  62994. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/clone.S uClibc-git/libc/sysdeps/linux/hppa/clone.S
  62995. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/clone.S 2012-05-15 09:20:09.000000000 +0200
  62996. +++ uClibc-git/libc/sysdeps/linux/hppa/clone.S 2014-06-02 17:40:34.446714376 +0200
  62997. @@ -14,9 +14,8 @@
  62998. Lesser General Public License for more details.
  62999. You should have received a copy of the GNU Lesser General Public
  63000. - License along with the GNU C Library; if not, write to the Free
  63001. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63002. - 02111-1307 USA. */
  63003. + License along with the GNU C Library; if not, see
  63004. + <http://www.gnu.org/licenses/>. */
  63005. /* clone() is even more special than fork() as it mucks with stacks
  63006. and invokes a function in the right context after its all over. */
  63007. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/crt1.S uClibc-git/libc/sysdeps/linux/hppa/crt1.S
  63008. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/crt1.S 2012-05-15 09:20:09.000000000 +0200
  63009. +++ uClibc-git/libc/sysdeps/linux/hppa/crt1.S 2014-06-02 17:40:34.446714376 +0200
  63010. @@ -30,9 +30,8 @@
  63011. Lesser General Public License for more details.
  63012. You should have received a copy of the GNU Lesser General Public
  63013. - License along with the GNU C Library; if not, write to the Free
  63014. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63015. - 02111-1307 USA. */
  63016. + License along with the GNU C Library; if not, see
  63017. + <http://www.gnu.org/licenses/>. */
  63018. .import main, code
  63019. .import $global$, data
  63020. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/hppa/jmpbuf-offsets.h
  63021. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  63022. +++ uClibc-git/libc/sysdeps/linux/hppa/jmpbuf-offsets.h 2014-06-02 17:40:34.446714376 +0200
  63023. @@ -0,0 +1,19 @@
  63024. +/* Private macros for accessing __jmp_buf contents. HPPA version.
  63025. + Copyright (C) 2006 Free Software Foundation, Inc.
  63026. + This file is part of the GNU C Library.
  63027. +
  63028. + The GNU C Library is free software; you can redistribute it and/or
  63029. + modify it under the terms of the GNU Lesser General Public
  63030. + License as published by the Free Software Foundation; either
  63031. + version 2.1 of the License, or (at your option) any later version.
  63032. +
  63033. + The GNU C Library is distributed in the hope that it will be useful,
  63034. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  63035. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  63036. + Lesser General Public License for more details.
  63037. +
  63038. + You should have received a copy of the GNU Lesser General Public
  63039. + License along with the GNU C Library; if not, see
  63040. + <http://www.gnu.org/licenses/>. */
  63041. +
  63042. +#define JB_SP (76/4)
  63043. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/hppa/jmpbuf-unwind.h
  63044. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  63045. +++ uClibc-git/libc/sysdeps/linux/hppa/jmpbuf-unwind.h 2014-06-02 17:40:34.446714376 +0200
  63046. @@ -0,0 +1,12 @@
  63047. +/*
  63048. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  63049. + *
  63050. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  63051. + */
  63052. +#include <setjmp.h>
  63053. +#include <jmpbuf-offsets.h>
  63054. +
  63055. +/* Test if longjmp to JMPBUF would unwind the frame containing a local
  63056. + variable at ADDRESS. */
  63057. +#define _JMPBUF_UNWINDS(_jmpbuf, _address) \
  63058. + ((void *)(_address) > (void *)(((unsigned long *) _jmpbuf)[JB_SP]))
  63059. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/__longjmp.S uClibc-git/libc/sysdeps/linux/hppa/__longjmp.S
  63060. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  63061. +++ uClibc-git/libc/sysdeps/linux/hppa/__longjmp.S 2014-06-02 17:40:34.442714354 +0200
  63062. @@ -13,14 +13,8 @@
  63063. Lesser General Public License for more details.
  63064. You should have received a copy of the GNU Lesser General Public
  63065. - License along with the GNU C Library; if not, write to the Free
  63066. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63067. - 02111-1307 USA. */
  63068. -
  63069. -#include <features.h>
  63070. -#define _SETJMP_H
  63071. -#define _ASM
  63072. -#include <bits/setjmp.h>
  63073. + License along with the GNU C Library; if not, see
  63074. + <http://www.gnu.org/licenses/>. */
  63075. /* __longjmp(jmpbuf, val) */
  63076. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/lshift.s uClibc-git/libc/sysdeps/linux/hppa/lshift.s
  63077. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/lshift.s 2012-05-15 09:20:09.000000000 +0200
  63078. +++ uClibc-git/libc/sysdeps/linux/hppa/lshift.s 2014-06-02 17:40:34.446714376 +0200
  63079. @@ -15,9 +15,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/hppa/Makefile.arch uClibc-git/libc/sysdeps/linux/hppa/Makefile.arch
  63089. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  63090. +++ uClibc-git/libc/sysdeps/linux/hppa/Makefile.arch 2014-06-02 17:40:34.442714354 +0200
  63091. @@ -5,7 +5,7 @@
  63092. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  63093. #
  63094. -CSRC := __syscall_error.c brk.c mmap.c syscall.c
  63095. +CSRC-y := __syscall_error.c brk.c syscall.c
  63096. -SSRC := __longjmp.S bsd-_setjmp.S bsd-setjmp.S clone.S setjmp.S \
  63097. +SSRC-y := __longjmp.S bsd-_setjmp.S bsd-setjmp.S clone.S setjmp.S \
  63098. add_n.s lshift.s rshift.s sub_n.s udiv_qrnnd.s
  63099. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/mmap.c uClibc-git/libc/sysdeps/linux/hppa/mmap.c
  63100. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/mmap.c 2012-05-15 09:20:09.000000000 +0200
  63101. +++ uClibc-git/libc/sysdeps/linux/hppa/mmap.c 1970-01-01 01:00:00.000000000 +0100
  63102. @@ -1,19 +0,0 @@
  63103. -/* vi: set sw=4 ts=4: */
  63104. -/*
  63105. - * mmap() for uClibc/x86_64
  63106. - *
  63107. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  63108. - * Copyright (C) 2005 by Mike Frysinger <vapier@gentoo.org>
  63109. - *
  63110. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  63111. - */
  63112. -
  63113. -#include <errno.h>
  63114. -#include <unistd.h>
  63115. -#include <sys/mman.h>
  63116. -#include <sys/syscall.h>
  63117. -
  63118. -
  63119. -_syscall6(void *, mmap, void *, start, size_t, length, int, prot,
  63120. - int, flags, int, fd, off_t, offset)
  63121. -libc_hidden_def(mmap)
  63122. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/rshift.s uClibc-git/libc/sysdeps/linux/hppa/rshift.s
  63123. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/rshift.s 2012-05-15 09:20:09.000000000 +0200
  63124. +++ uClibc-git/libc/sysdeps/linux/hppa/rshift.s 2014-06-02 17:40:34.446714376 +0200
  63125. @@ -15,9 +15,8 @@
  63126. ;! License for more details.
  63127. ;! You should have received a copy of the GNU Lesser General Public License
  63128. -;! along with the GNU MP Library; see the file COPYING.LIB. If not, write to
  63129. -;! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
  63130. -;! MA 02111-1307, USA.
  63131. +;! along with the GNU MP Library; see the file COPYING.LIB. If not, see
  63132. +;! <http://www.gnu.org/licenses/>.
  63133. ;! INPUT PARAMETERS
  63134. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/setjmp.S uClibc-git/libc/sysdeps/linux/hppa/setjmp.S
  63135. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  63136. +++ uClibc-git/libc/sysdeps/linux/hppa/setjmp.S 2014-06-02 17:40:34.446714376 +0200
  63137. @@ -13,9 +13,8 @@
  63138. Lesser General Public License for more details.
  63139. You should have received a copy of the GNU Lesser General Public
  63140. - License along with the GNU C Library; if not, write to the Free
  63141. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63142. - 02111-1307 USA. */
  63143. + License along with the GNU C Library; if not, see
  63144. + <http://www.gnu.org/licenses/>. */
  63145. .text
  63146. .align 4
  63147. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/sub_n.s uClibc-git/libc/sysdeps/linux/hppa/sub_n.s
  63148. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/sub_n.s 2012-05-15 09:20:09.000000000 +0200
  63149. +++ uClibc-git/libc/sysdeps/linux/hppa/sub_n.s 2014-06-02 17:40:34.446714376 +0200
  63150. @@ -16,9 +16,8 @@
  63151. ;! License for more details.
  63152. ;! You should have received a copy of the GNU Lesser General Public License
  63153. -;! along with the GNU MP Library; see the file COPYING.LIB. If not, write to
  63154. -;! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
  63155. -;! MA 02111-1307, USA.
  63156. +;! along with the GNU MP Library; see the file COPYING.LIB. If not, see
  63157. +;! <http://www.gnu.org/licenses/>.
  63158. ;! INPUT PARAMETERS
  63159. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/sys/procfs.h uClibc-git/libc/sysdeps/linux/hppa/sys/procfs.h
  63160. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  63161. +++ uClibc-git/libc/sysdeps/linux/hppa/sys/procfs.h 2014-06-02 17:40:34.446714376 +0200
  63162. @@ -12,9 +12,8 @@
  63163. Lesser General Public License for more details.
  63164. You should have received a copy of the GNU Lesser General Public
  63165. - License along with the GNU C Library; if not, write to the Free
  63166. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63167. - 02111-1307 USA. */
  63168. + License along with the GNU C Library; if not, see
  63169. + <http://www.gnu.org/licenses/>. */
  63170. #ifndef _SYS_PROCFS_H
  63171. #define _SYS_PROCFS_H 1
  63172. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/sys/ucontext.h uClibc-git/libc/sysdeps/linux/hppa/sys/ucontext.h
  63173. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  63174. +++ uClibc-git/libc/sysdeps/linux/hppa/sys/ucontext.h 2014-06-02 17:40:34.446714376 +0200
  63175. @@ -12,9 +12,8 @@
  63176. Lesser General Public License for more details.
  63177. You should have received a copy of the GNU Lesser General Public
  63178. - License along with the GNU C Library; if not, write to the Free
  63179. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63180. - 02111-1307 USA. */
  63181. + License along with the GNU C Library; if not, see
  63182. + <http://www.gnu.org/licenses/>. */
  63183. /* Don't rely on this, the interface is currently messed up and may need to
  63184. be broken to be fixed. */
  63185. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/syscall.c uClibc-git/libc/sysdeps/linux/hppa/syscall.c
  63186. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/syscall.c 2012-05-15 09:20:09.000000000 +0200
  63187. +++ uClibc-git/libc/sysdeps/linux/hppa/syscall.c 2014-06-02 17:40:34.446714376 +0200
  63188. @@ -12,9 +12,8 @@
  63189. Lesser General Public License for more details.
  63190. You should have received a copy of the GNU Lesser General Public
  63191. - License along with the GNU C Library; if not, write to the Free
  63192. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63193. - 02111-1307 USA. */
  63194. + License along with the GNU C Library; if not, see
  63195. + <http://www.gnu.org/licenses/>. */
  63196. #include <stdarg.h>
  63197. #include <errno.h>
  63198. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/udiv_qrnnd.s uClibc-git/libc/sysdeps/linux/hppa/udiv_qrnnd.s
  63199. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/udiv_qrnnd.s 2012-05-15 09:20:09.000000000 +0200
  63200. +++ uClibc-git/libc/sysdeps/linux/hppa/udiv_qrnnd.s 2014-06-02 17:40:34.446714376 +0200
  63201. @@ -16,9 +16,8 @@
  63202. ;! License for more details.
  63203. ;! You should have received a copy of the GNU Lesser General Public License
  63204. -;! along with the GNU MP Library; see the file COPYING.LIB. If not, write to
  63205. -;! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
  63206. -;! MA 02111-1307, USA.
  63207. +;! along with the GNU MP Library; see the file COPYING.LIB. If not, see
  63208. +;! <http://www.gnu.org/licenses/>.
  63209. ;! INPUT PARAMETERS
  63210. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/atomic.h uClibc-git/libc/sysdeps/linux/i386/bits/atomic.h
  63211. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  63212. +++ uClibc-git/libc/sysdeps/linux/i386/bits/atomic.h 2014-06-02 17:40:34.446714376 +0200
  63213. @@ -13,9 +13,8 @@
  63214. Lesser General Public License for more details.
  63215. You should have received a copy of the GNU Lesser General Public
  63216. - License along with the GNU C Library; if not, write to the Free
  63217. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63218. - 02111-1307 USA. */
  63219. + License along with the GNU C Library; if not, see
  63220. + <http://www.gnu.org/licenses/>. */
  63221. #include <stdint.h>
  63222. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/byteswap.h uClibc-git/libc/sysdeps/linux/i386/bits/byteswap.h
  63223. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/byteswap.h 2012-05-15 09:20:09.000000000 +0200
  63224. +++ uClibc-git/libc/sysdeps/linux/i386/bits/byteswap.h 2014-06-02 17:40:34.446714376 +0200
  63225. @@ -13,9 +13,8 @@
  63226. Lesser General Public License for more details.
  63227. You should have received a copy of the GNU Lesser General Public
  63228. - License along with the GNU C Library; if not, write to the Free
  63229. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63230. - 02111-1307 USA. */
  63231. + License along with the GNU C Library; if not, see
  63232. + <http://www.gnu.org/licenses/>. */
  63233. #ifndef _ASM_BITS_BYTESWAP_H
  63234. #define _ASM_BITS_BYTESWAP_H 1
  63235. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/fcntl.h uClibc-git/libc/sysdeps/linux/i386/bits/fcntl.h
  63236. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  63237. +++ uClibc-git/libc/sysdeps/linux/i386/bits/fcntl.h 2014-06-02 17:40:34.446714376 +0200
  63238. @@ -14,9 +14,8 @@
  63239. Lesser General Public License for more details.
  63240. You should have received a copy of the GNU Lesser General Public
  63241. - License along with the GNU C Library; if not, write to the Free
  63242. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63243. - 02111-1307 USA. */
  63244. + License along with the GNU C Library; if not, see
  63245. + <http://www.gnu.org/licenses/>. */
  63246. #ifndef _FCNTL_H
  63247. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  63248. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/fenv.h uClibc-git/libc/sysdeps/linux/i386/bits/fenv.h
  63249. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  63250. +++ uClibc-git/libc/sysdeps/linux/i386/bits/fenv.h 2014-06-02 17:40:34.446714376 +0200
  63251. @@ -12,9 +12,8 @@
  63252. Lesser General Public License for more details.
  63253. You should have received a copy of the GNU Lesser General Public
  63254. - License along with the GNU C Library; if not, write to the Free
  63255. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63256. - 02111-1307 USA. */
  63257. + License along with the GNU C Library; if not, see
  63258. + <http://www.gnu.org/licenses/>. */
  63259. #ifndef _FENV_H
  63260. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  63261. @@ -82,9 +81,9 @@
  63262. fenv_t;
  63263. /* If the default argument is used we use this value. */
  63264. -#define FE_DFL_ENV ((__const fenv_t *) -1)
  63265. +#define FE_DFL_ENV ((const fenv_t *) -1)
  63266. #ifdef __USE_GNU
  63267. /* Floating-point environment where none of the exception is masked. */
  63268. -# define FE_NOMASK_ENV ((__const fenv_t *) -2)
  63269. +# define FE_NOMASK_ENV ((const fenv_t *) -2)
  63270. #endif
  63271. 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
  63272. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/huge_vall.h 1970-01-01 01:00:00.000000000 +0100
  63273. +++ uClibc-git/libc/sysdeps/linux/i386/bits/huge_vall.h 2014-06-02 17:40:34.446714376 +0200
  63274. @@ -0,0 +1,42 @@
  63275. +/* `HUGE_VALL' constant for ix86 (where it is infinity).
  63276. + Used by <stdlib.h> and <math.h> functions for overflow.
  63277. + Copyright (C) 1992, 1995, 1996, 1997, 1999, 2000, 2004
  63278. + Free Software Foundation, Inc.
  63279. + This file is part of the GNU C Library.
  63280. +
  63281. + The GNU C Library is free software; you can redistribute it and/or
  63282. + modify it under the terms of the GNU Lesser General Public
  63283. + License as published by the Free Software Foundation; either
  63284. + version 2.1 of the License, or (at your option) any later version.
  63285. +
  63286. + The GNU C Library is distributed in the hope that it will be useful,
  63287. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  63288. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  63289. + Lesser General Public License for more details.
  63290. +
  63291. + You should have received a copy of the GNU Lesser General Public
  63292. + License along with the GNU C Library; if not, see
  63293. + <http://www.gnu.org/licenses/>. */
  63294. +
  63295. +#ifndef _MATH_H
  63296. +# error "Never use <bits/huge_vall.h> directly; include <math.h> instead."
  63297. +#endif
  63298. +
  63299. +#if __GNUC_PREREQ(3,3)
  63300. +# define HUGE_VALL (__builtin_huge_vall())
  63301. +#elif __GNUC_PREREQ(2,96)
  63302. +# define HUGE_VALL (__extension__ 0x1.0p32767L)
  63303. +#else
  63304. +
  63305. +# define __HUGE_VALL_bytes { 0, 0, 0, 0, 0, 0, 0, 0x80, 0xff, 0x7f, 0, 0 }
  63306. +
  63307. +# define __huge_vall_t union { unsigned char __c[12]; long double __ld; }
  63308. +# ifdef __GNUC__
  63309. +# define HUGE_VALL (__extension__ \
  63310. + ((__huge_vall_t) { __c: __HUGE_VALL_bytes }).__ld)
  63311. +# else /* Not GCC. */
  63312. +static __huge_vall_t __huge_vall = { __HUGE_VALL_bytes };
  63313. +# define HUGE_VALL (__huge_vall.__ld)
  63314. +# endif /* GCC. */
  63315. +
  63316. +#endif /* GCC 2.95 */
  63317. 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
  63318. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  63319. +++ uClibc-git/libc/sysdeps/linux/i386/bits/kernel_types.h 2014-06-02 17:40:34.446714376 +0200
  63320. @@ -40,6 +40,8 @@
  63321. typedef unsigned short __kernel_old_uid_t;
  63322. typedef unsigned short __kernel_old_gid_t;
  63323. typedef __kernel_dev_t __kernel_old_dev_t;
  63324. +typedef long __kernel_long_t;
  63325. +typedef unsigned long __kernel_ulong_t;
  63326. typedef long long __kernel_loff_t;
  63327. typedef struct {
  63328. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/mathdef.h uClibc-git/libc/sysdeps/linux/i386/bits/mathdef.h
  63329. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  63330. +++ uClibc-git/libc/sysdeps/linux/i386/bits/mathdef.h 2014-06-02 17:40:34.446714376 +0200
  63331. @@ -12,9 +12,8 @@
  63332. Lesser General Public License for more details.
  63333. You should have received a copy of the GNU Lesser General Public
  63334. - License along with the GNU C Library; if not, write to the Free
  63335. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63336. - 02111-1307 USA. */
  63337. + License along with the GNU C Library; if not, see
  63338. + <http://www.gnu.org/licenses/>. */
  63339. #if !defined _MATH_H && !defined _COMPLEX_H
  63340. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  63341. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/mathinline.h uClibc-git/libc/sysdeps/linux/i386/bits/mathinline.h
  63342. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/mathinline.h 2012-05-15 09:20:09.000000000 +0200
  63343. +++ uClibc-git/libc/sysdeps/linux/i386/bits/mathinline.h 2014-06-02 17:40:34.450714398 +0200
  63344. @@ -15,9 +15,8 @@
  63345. Lesser General Public License for more details.
  63346. You should have received a copy of the GNU Lesser General Public
  63347. - License along with the GNU C Library; if not, write to the Free
  63348. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63349. - 02111-1307 USA. */
  63350. + License along with the GNU C Library; if not, see
  63351. + <http://www.gnu.org/licenses/>. */
  63352. #ifndef _MATH_H
  63353. # error "Never use <bits/mathinline.h> directly; include <math.h> instead."
  63354. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/select.h uClibc-git/libc/sysdeps/linux/i386/bits/select.h
  63355. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/select.h 2012-05-15 09:20:09.000000000 +0200
  63356. +++ uClibc-git/libc/sysdeps/linux/i386/bits/select.h 2014-06-02 17:40:34.450714398 +0200
  63357. @@ -12,9 +12,8 @@
  63358. Lesser General Public License for more details.
  63359. You should have received a copy of the GNU Lesser General Public
  63360. - License along with the GNU C Library; if not, write to the Free
  63361. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63362. - 02111-1307 USA. */
  63363. + License along with the GNU C Library; if not, see
  63364. + <http://www.gnu.org/licenses/>. */
  63365. #ifndef _SYS_SELECT_H
  63366. # error "Never use <bits/select.h> directly; include <sys/select.h> instead."
  63367. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/setjmp.h uClibc-git/libc/sysdeps/linux/i386/bits/setjmp.h
  63368. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  63369. +++ uClibc-git/libc/sysdeps/linux/i386/bits/setjmp.h 2014-06-02 17:40:34.450714398 +0200
  63370. @@ -1,4 +1,5 @@
  63371. -/* Copyright (C) 1997, 1998, 2000, 2001, 2003 Free Software Foundation, Inc.
  63372. +/* Copyright (C) 1997,1998,2000,2001,2003,2005,2006
  63373. + Free Software Foundation, Inc.
  63374. This file is part of the GNU C Library.
  63375. The GNU C Library is free software; you can redistribute it and/or
  63376. @@ -12,9 +13,8 @@
  63377. Lesser General Public License for more details.
  63378. You should have received a copy of the GNU Lesser General Public
  63379. - License along with the GNU C Library; if not, write to the Free
  63380. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63381. - 02111-1307 USA. */
  63382. + License along with the GNU C Library; if not, see
  63383. + <http://www.gnu.org/licenses/>. */
  63384. /* Define the machine-dependent type `jmp_buf'. Intel 386 version. */
  63385. #ifndef _BITS_SETJMP_H
  63386. @@ -24,23 +24,6 @@
  63387. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  63388. #endif
  63389. -#if defined __USE_MISC || defined _ASM
  63390. -# define JB_BX 0
  63391. -# define JB_SI 1
  63392. -# define JB_DI 2
  63393. -# define JB_BP 3
  63394. -# define JB_SP 4
  63395. -# define JB_PC 5
  63396. -# define JB_SIZE 24
  63397. -#endif
  63398. -
  63399. -#ifndef _ASM
  63400. typedef int __jmp_buf[6];
  63401. -#endif
  63402. -
  63403. -/* Test if longjmp to JMPBUF would unwind the frame
  63404. - containing a local variable at ADDRESS. */
  63405. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  63406. - ((void *) (address) < (void *) (jmpbuf)[JB_SP])
  63407. #endif /* bits/setjmp.h */
  63408. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/i386/bits/sigcontextinfo.h
  63409. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  63410. +++ uClibc-git/libc/sysdeps/linux/i386/bits/sigcontextinfo.h 2014-06-02 17:40:34.450714398 +0200
  63411. @@ -13,9 +13,8 @@
  63412. Lesser General Public License for more details.
  63413. You should have received a copy of the GNU Lesser General Public
  63414. - License along with the GNU C Library; if not, write to the Free
  63415. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63416. - 02111-1307 USA. */
  63417. + License along with the GNU C Library; if not, see
  63418. + <http://www.gnu.org/licenses/>. */
  63419. #define SIGCONTEXT struct sigcontext
  63420. #define SIGCONTEXT_EXTRA_ARGS
  63421. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/i386/bits/stackinfo.h
  63422. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  63423. +++ uClibc-git/libc/sysdeps/linux/i386/bits/stackinfo.h 2014-06-02 17:40:34.450714398 +0200
  63424. @@ -12,9 +12,8 @@
  63425. Lesser General Public License for more details.
  63426. You should have received a copy of the GNU Lesser General Public
  63427. - License along with the GNU C Library; if not, write to the Free
  63428. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63429. - 02111-1307 USA. */
  63430. + License along with the GNU C Library; if not, see
  63431. + <http://www.gnu.org/licenses/>. */
  63432. /* This file contains a bit of information about the stack allocation
  63433. of the processor. */
  63434. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/syscalls.h uClibc-git/libc/sysdeps/linux/i386/bits/syscalls.h
  63435. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/syscalls.h 2012-05-15 09:20:09.000000000 +0200
  63436. +++ uClibc-git/libc/sysdeps/linux/i386/bits/syscalls.h 2014-06-02 17:40:34.450714398 +0200
  63437. @@ -136,7 +136,7 @@
  63438. #define ASMFMT_5(arg1, arg2, arg3, arg4, arg5) \
  63439. , "a" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5)
  63440. #define ASMFMT_6(arg1, arg2, arg3, arg4, arg5, arg6) \
  63441. - , "a" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5), "m" (arg6)
  63442. + , "a" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5), "g" (arg6)
  63443. #else /* !PIC */
  63444. 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
  63445. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  63446. +++ uClibc-git/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h 2014-06-02 17:40:34.450714398 +0200
  63447. @@ -11,8 +11,8 @@
  63448. /* can your target use syscall6() for mmap ? */
  63449. #undef __UCLIBC_MMAP_HAS_6_ARGS__
  63450. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  63451. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  63452. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  63453. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  63454. /* does your target have a broken create_module() ? */
  63455. #define __UCLIBC_BROKEN_CREATE_MODULE__
  63456. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/wchar.h uClibc-git/libc/sysdeps/linux/i386/bits/wchar.h
  63457. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/wchar.h 2012-05-15 09:20:09.000000000 +0200
  63458. +++ uClibc-git/libc/sysdeps/linux/i386/bits/wchar.h 2014-06-02 17:40:34.450714398 +0200
  63459. @@ -13,9 +13,8 @@
  63460. Lesser General Public License for more details.
  63461. You should have received a copy of the GNU Lesser General Public
  63462. - License along with the GNU C Library; if not, write to the Free
  63463. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63464. - 02111-1307 USA. */
  63465. + License along with the GNU C Library; if not, see
  63466. + <http://www.gnu.org/licenses/>. */
  63467. #ifndef _BITS_WCHAR_H
  63468. #define _BITS_WCHAR_H 1
  63469. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/wordsize.h uClibc-git/libc/sysdeps/linux/i386/bits/wordsize.h
  63470. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  63471. +++ uClibc-git/libc/sysdeps/linux/i386/bits/wordsize.h 2014-06-02 17:40:34.474714531 +0200
  63472. @@ -12,9 +12,8 @@
  63473. Lesser General Public License for more details.
  63474. You should have received a copy of the GNU Lesser General Public
  63475. - License along with the GNU C Library; if not, write to the Free
  63476. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63477. - 02111-1307 USA. */
  63478. + License along with the GNU C Library; if not, see
  63479. + <http://www.gnu.org/licenses/>. */
  63480. #define __WORDSIZE 32
  63481. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/brk.c uClibc-git/libc/sysdeps/linux/i386/brk.c
  63482. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/brk.c 2012-05-15 09:20:09.000000000 +0200
  63483. +++ uClibc-git/libc/sysdeps/linux/i386/brk.c 2014-06-02 17:40:34.474714531 +0200
  63484. @@ -13,9 +13,8 @@
  63485. Lesser General Public License for more details.
  63486. You should have received a copy of the GNU Lesser General Public
  63487. - License along with the GNU C Library; if not, write to the Free
  63488. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63489. - 02111-1307 USA. */
  63490. + License along with the GNU C Library; if not, see
  63491. + <http://www.gnu.org/licenses/>. */
  63492. #include <errno.h>
  63493. #include <unistd.h>
  63494. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/i386/bsd-setjmp.S
  63495. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
  63496. +++ uClibc-git/libc/sysdeps/linux/i386/bsd-setjmp.S 2014-06-02 17:40:34.498714663 +0200
  63497. @@ -13,13 +13,8 @@
  63498. Lesser General Public License for more details.
  63499. You should have received a copy of the GNU Lesser General Public
  63500. - License along with the GNU C Library; if not, write to the Free
  63501. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63502. - 02111-1307 USA. */
  63503. -
  63504. -#define _ASM
  63505. -#define _SETJMP_H
  63506. -#include <bits/setjmp.h>
  63507. + License along with the GNU C Library; if not, see
  63508. + <http://www.gnu.org/licenses/>. */
  63509. .global setjmp
  63510. .type setjmp,%function
  63511. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/i386/bsd-_setjmp.S
  63512. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
  63513. +++ uClibc-git/libc/sysdeps/linux/i386/bsd-_setjmp.S 2014-06-02 17:40:34.494714642 +0200
  63514. @@ -13,17 +13,14 @@
  63515. Lesser General Public License for more details.
  63516. You should have received a copy of the GNU Lesser General Public
  63517. - License along with the GNU C Library; if not, write to the Free
  63518. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63519. - 02111-1307 USA. */
  63520. + License along with the GNU C Library; if not, see
  63521. + <http://www.gnu.org/licenses/>. */
  63522. /* This just does a tail-call to `__sigsetjmp (ARG, 0)'.
  63523. We cannot do it in C because it must be a tail-call, so frame-unwinding
  63524. in setjmp doesn't clobber the state restored by longjmp. */
  63525. -#define _ASM
  63526. -#define _SETJMP_H
  63527. -#include <bits/setjmp.h>
  63528. +#include <jmpbuf-offsets.h>
  63529. .global _setjmp
  63530. .type _setjmp,%function
  63531. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/clone.S uClibc-git/libc/sysdeps/linux/i386/clone.S
  63532. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/clone.S 2012-05-15 09:20:09.000000000 +0200
  63533. +++ uClibc-git/libc/sysdeps/linux/i386/clone.S 2014-06-02 17:40:34.498714663 +0200
  63534. @@ -13,9 +13,8 @@
  63535. Lesser General Public License for more details.
  63536. You should have received a copy of the GNU Lesser General Public
  63537. - License along with the GNU C Library; if not, write to the Free
  63538. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63539. - 02111-1307 USA. */
  63540. + License along with the GNU C Library; if not, see
  63541. + <http://www.gnu.org/licenses/>. */
  63542. /* clone() is even more special than fork() as it mucks with stacks
  63543. and invokes a function in the right context after its all over.
  63544. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/crt1.S uClibc-git/libc/sysdeps/linux/i386/crt1.S
  63545. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/crt1.S 2012-05-15 09:20:09.000000000 +0200
  63546. +++ uClibc-git/libc/sysdeps/linux/i386/crt1.S 2014-06-02 17:40:34.498714663 +0200
  63547. @@ -31,9 +31,8 @@
  63548. Lesser General Public License for more details.
  63549. You should have received a copy of the GNU Lesser General Public
  63550. - License along with the GNU C Library; if not, write to the Free
  63551. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63552. - 02111-1307 USA. */
  63553. + License along with the GNU C Library; if not, see
  63554. + <http://www.gnu.org/licenses/>. */
  63555. /* This is the canonical entry point, usually the first thing in the text
  63556. segment. The SVR4/i386 ABI (pages 3-31, 3-32) says that when the entry
  63557. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/fpu_control.h uClibc-git/libc/sysdeps/linux/i386/fpu_control.h
  63558. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  63559. +++ uClibc-git/libc/sysdeps/linux/i386/fpu_control.h 2014-06-02 17:40:34.498714663 +0200
  63560. @@ -14,9 +14,8 @@
  63561. Lesser General Public License for more details.
  63562. You should have received a copy of the GNU Lesser General Public
  63563. - License along with the GNU C Library; if not, write to the Free
  63564. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63565. - 02111-1307 USA. */
  63566. + License along with the GNU C Library; if not, see
  63567. + <http://www.gnu.org/licenses/>. */
  63568. #ifndef _FPU_CONTROL_H
  63569. #define _FPU_CONTROL_H 1
  63570. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/getcontext.S uClibc-git/libc/sysdeps/linux/i386/getcontext.S
  63571. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/getcontext.S 1970-01-01 01:00:00.000000000 +0100
  63572. +++ uClibc-git/libc/sysdeps/linux/i386/getcontext.S 2014-06-02 17:40:34.498714663 +0200
  63573. @@ -0,0 +1,84 @@
  63574. +/* Save current context.
  63575. + Copyright (C) 2001-2012 Free Software Foundation, Inc.
  63576. + This file is part of the GNU C Library.
  63577. + Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
  63578. +
  63579. + The GNU C Library is free software; you can redistribute it and/or
  63580. + modify it under the terms of the GNU Lesser General Public
  63581. + License as published by the Free Software Foundation; either
  63582. + version 2.1 of the License, or (at your option) any later version.
  63583. +
  63584. + The GNU C Library is distributed in the hope that it will be useful,
  63585. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  63586. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  63587. + Lesser General Public License for more details.
  63588. +
  63589. + You should have received a copy of the GNU Lesser General Public
  63590. + License along with the GNU C Library; if not, see
  63591. + <http://www.gnu.org/licenses/>. */
  63592. +
  63593. +#include <sysdep.h>
  63594. +
  63595. +#include "ucontext_i.h"
  63596. +
  63597. +
  63598. +ENTRY(__getcontext)
  63599. + /* Load address of the context data structure. */
  63600. + movl 4(%esp), %eax
  63601. +
  63602. + /* Return value of getcontext. EAX is the only register whose
  63603. + value is not preserved. */
  63604. + movl $0, oEAX(%eax)
  63605. +
  63606. + /* Save the 32-bit register values and the return address. */
  63607. + movl %ecx, oECX(%eax)
  63608. + movl %edx, oEDX(%eax)
  63609. + movl %edi, oEDI(%eax)
  63610. + movl %esi, oESI(%eax)
  63611. + movl %ebp, oEBP(%eax)
  63612. + movl (%esp), %ecx
  63613. + movl %ecx, oEIP(%eax)
  63614. + leal 4(%esp), %ecx /* Exclude the return address. */
  63615. + movl %ecx, oESP(%eax)
  63616. + movl %ebx, oEBX(%eax)
  63617. +
  63618. + /* Save the FS segment register. We don't touch the GS register
  63619. + since it is used for threads. */
  63620. + xorl %edx, %edx
  63621. + movw %fs, %dx
  63622. + movl %edx, oFS(%eax)
  63623. +
  63624. + /* We have separate floating-point register content memory on the
  63625. + stack. We use the __fpregs_mem block in the context. Set the
  63626. + links up correctly. */
  63627. + leal oFPREGSMEM(%eax), %ecx
  63628. + movl %ecx, oFPREGS(%eax)
  63629. + /* Save the floating-point context. */
  63630. + fnstenv (%ecx)
  63631. + /* And load it right back since the processor changes the mask.
  63632. + Intel thought this opcode to be used in interrupt handlers which
  63633. + would block all exceptions. */
  63634. + fldenv (%ecx)
  63635. +
  63636. + /* Save the current signal mask. */
  63637. + pushl %ebx
  63638. + cfi_adjust_cfa_offset (4)
  63639. + cfi_rel_offset (ebx, 0)
  63640. + leal oSIGMASK(%eax), %edx
  63641. + xorl %ecx, %ecx
  63642. + movl $SIG_BLOCK, %ebx
  63643. + movl $__NR_sigprocmask, %eax
  63644. + ENTER_KERNEL
  63645. + popl %ebx
  63646. + cfi_adjust_cfa_offset (-4)
  63647. + cfi_restore (ebx)
  63648. + cmpl $-4095, %eax /* Check %eax for error. */
  63649. + jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
  63650. +
  63651. + /* All done, return 0 for success. */
  63652. + xorl %eax, %eax
  63653. +L(pseudo_end):
  63654. + ret
  63655. +PSEUDO_END(__getcontext)
  63656. +
  63657. +weak_alias (__getcontext, getcontext)
  63658. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/i386/jmpbuf-offsets.h
  63659. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  63660. +++ uClibc-git/libc/sysdeps/linux/i386/jmpbuf-offsets.h 2014-06-02 17:40:34.498714663 +0200
  63661. @@ -0,0 +1,25 @@
  63662. +/* Private macros for accessing __jmp_buf contents. i386 version.
  63663. + Copyright (C) 2006 Free Software Foundation, Inc.
  63664. + This file is part of the GNU C Library.
  63665. +
  63666. + The GNU C Library is free software; you can redistribute it and/or
  63667. + modify it under the terms of the GNU Lesser General Public
  63668. + License as published by the Free Software Foundation; either
  63669. + version 2.1 of the License, or (at your option) any later version.
  63670. +
  63671. + The GNU C Library is distributed in the hope that it will be useful,
  63672. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  63673. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  63674. + Lesser General Public License for more details.
  63675. +
  63676. + You should have received a copy of the GNU Lesser General Public
  63677. + License along with the GNU C Library; if not, see
  63678. + <http://www.gnu.org/licenses/>. */
  63679. +
  63680. +#define JB_BX 0
  63681. +#define JB_SI 1
  63682. +#define JB_DI 2
  63683. +#define JB_BP 3
  63684. +#define JB_SP 4
  63685. +#define JB_PC 5
  63686. +#define JB_SIZE 24
  63687. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/i386/jmpbuf-unwind.h
  63688. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  63689. +++ uClibc-git/libc/sysdeps/linux/i386/jmpbuf-unwind.h 2014-06-02 17:40:34.498714663 +0200
  63690. @@ -0,0 +1,23 @@
  63691. +/*
  63692. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  63693. + *
  63694. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  63695. + */
  63696. +#include <setjmp.h>
  63697. +#include <jmpbuf-offsets.h>
  63698. +
  63699. +/* Test if longjmp to JMPBUF would unwind the frame
  63700. + containing a local variable at ADDRESS. */
  63701. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  63702. + ((void *) (address) < (void *) (jmpbuf)[JB_SP])
  63703. +
  63704. +#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  63705. +#include <stdint.h>
  63706. +#include <unwind.h>
  63707. +
  63708. +#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
  63709. + _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
  63710. +
  63711. +#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  63712. + ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_SP] - (_adj))
  63713. +#endif
  63714. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/__longjmp.S uClibc-git/libc/sysdeps/linux/i386/__longjmp.S
  63715. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  63716. +++ uClibc-git/libc/sysdeps/linux/i386/__longjmp.S 2014-06-02 17:40:34.446714376 +0200
  63717. @@ -14,13 +14,9 @@
  63718. You should have received a copy of the GNU Library General Public
  63719. License along with the GNU C Library; see the file COPYING.LIB. If not,
  63720. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  63721. - Boston, MA 02111-1307, USA. */
  63722. + see <http://www.gnu.org/licenses/>. */
  63723. -#include <features.h>
  63724. -#define _ASM
  63725. -#define _SETJMP_H
  63726. -#include <bits/setjmp.h>
  63727. +#include <jmpbuf-offsets.h>
  63728. .global __longjmp
  63729. .type __longjmp,%function
  63730. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/makecontext.S uClibc-git/libc/sysdeps/linux/i386/makecontext.S
  63731. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/makecontext.S 1970-01-01 01:00:00.000000000 +0100
  63732. +++ uClibc-git/libc/sysdeps/linux/i386/makecontext.S 2014-06-02 17:40:34.498714663 +0200
  63733. @@ -0,0 +1,123 @@
  63734. +/* Create new context.
  63735. + Copyright (C) 2001,2002,2005,2007,2008,2009 Free Software Foundation, Inc.
  63736. + This file is part of the GNU C Library.
  63737. + Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
  63738. +
  63739. + The GNU C Library is free software; you can redistribute it and/or
  63740. + modify it under the terms of the GNU Lesser General Public
  63741. + License as published by the Free Software Foundation; either
  63742. + version 2.1 of the License, or (at your option) any later version.
  63743. +
  63744. + The GNU C Library is distributed in the hope that it will be useful,
  63745. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  63746. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  63747. + Lesser General Public License for more details.
  63748. +
  63749. + You should have received a copy of the GNU Lesser General Public
  63750. + License along with the GNU C Library; if not, see
  63751. + <http://www.gnu.org/licenses/>. */
  63752. +
  63753. +#include <sysdep.h>
  63754. +
  63755. +#include "ucontext_i.h"
  63756. +
  63757. +
  63758. +ENTRY(__makecontext)
  63759. + movl 4(%esp), %eax
  63760. +
  63761. + /* Load the address of the function we are supposed to run. */
  63762. + movl 8(%esp), %ecx
  63763. +
  63764. + /* Compute the address of the stack. The information comes from
  63765. + to us_stack element. */
  63766. + movl oSS_SP(%eax), %edx
  63767. + movl %ecx, oEIP(%eax)
  63768. + addl oSS_SIZE(%eax), %edx
  63769. +
  63770. + /* Remember the number of parameters for the exit handler since
  63771. + it has to remove them. We store the number in the EBX register
  63772. + which the function we will call must preserve. */
  63773. + movl 12(%esp), %ecx
  63774. + movl %ecx, oEBX(%eax)
  63775. +
  63776. + /* Make room on the new stack for the parameters.
  63777. + Room for the arguments, return address (== L(exitcode)) and
  63778. + oLINK pointer is needed. One of the pointer sizes is subtracted
  63779. + after aligning the stack. */
  63780. + negl %ecx
  63781. + leal -4(%edx,%ecx,4), %edx
  63782. + negl %ecx
  63783. +
  63784. + /* Align the stack. */
  63785. + andl $0xfffffff0, %edx
  63786. + subl $4, %edx
  63787. +
  63788. + /* Store the future stack pointer. */
  63789. + movl %edx, oESP(%eax)
  63790. +
  63791. + /* Put the next context on the new stack (from the uc_link
  63792. + element). */
  63793. + movl oLINK(%eax), %eax
  63794. + movl %eax, 4(%edx,%ecx,4)
  63795. +
  63796. + /* Copy all the parameters. */
  63797. + jecxz 2f
  63798. +1: movl 12(%esp,%ecx,4), %eax
  63799. + movl %eax, (%edx,%ecx,4)
  63800. + decl %ecx
  63801. + jnz 1b
  63802. +2:
  63803. +
  63804. + /* If the function we call returns we must continue with the
  63805. + context which is given in the uc_link element. To do this
  63806. + set the return address for the function the user provides
  63807. + to a little bit of helper code which does the magic (see
  63808. + below). */
  63809. +#ifdef __PIC__
  63810. + call 1f
  63811. + cfi_adjust_cfa_offset (4)
  63812. +1: popl %ecx
  63813. + cfi_adjust_cfa_offset (-4)
  63814. + addl $L(exitcode)-1b, %ecx
  63815. + movl %ecx, (%edx)
  63816. +#else
  63817. + movl $L(exitcode), (%edx)
  63818. +#endif
  63819. + /* 'makecontext' returns no value. */
  63820. +L(pseudo_end):
  63821. + ret
  63822. +
  63823. + /* This is the helper code which gets called if a function which
  63824. + is registered with 'makecontext' returns. In this case we
  63825. + have to install the context listed in the uc_link element of
  63826. + the context 'makecontext' manipulated at the time of the
  63827. + 'makecontext' call. If the pointer is NULL the process must
  63828. + terminate. */
  63829. + cfi_endproc
  63830. +L(exitcode):
  63831. + /* This removes the parameters passed to the function given to
  63832. + 'makecontext' from the stack. EBX contains the number of
  63833. + parameters (see above). */
  63834. + leal (%esp,%ebx,4), %esp
  63835. +
  63836. +#ifdef __PIC__
  63837. + call 1f
  63838. +1: popl %ebx
  63839. + addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx
  63840. +#endif
  63841. + cmpl $0, (%esp) /* Check the next context. */
  63842. + je 2f /* If it is zero exit. */
  63843. +
  63844. + call JUMPTARGET(__setcontext)
  63845. + /* If this returns (which can happen if the syscall fails) we'll
  63846. + exit the program with the return error value (-1). */
  63847. +
  63848. + movl %eax, (%esp)
  63849. +2: call HIDDEN_JUMPTARGET(exit)
  63850. + /* The 'exit' call should never return. In case it does cause
  63851. + the process to terminate. */
  63852. + hlt
  63853. + cfi_startproc
  63854. +END(__makecontext)
  63855. +
  63856. +weak_alias (__makecontext, makecontext)
  63857. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/Makefile.arch uClibc-git/libc/sysdeps/linux/i386/Makefile.arch
  63858. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  63859. +++ uClibc-git/libc/sysdeps/linux/i386/Makefile.arch 2014-06-02 17:40:34.446714376 +0200
  63860. @@ -5,13 +5,13 @@
  63861. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  63862. #
  63863. -CSRC := brk.c __syscall_error.c sigaction.c
  63864. +CSRC-y := brk.c __syscall_error.c sigaction.c
  63865. -SSRC := \
  63866. +SSRC-y := \
  63867. __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
  63868. - sync_file_range.S syscall.S mmap.S mmap64.S posix_fadvise64.S
  63869. + sync_file_range.S syscall.S mmap.S
  63870. -
  63871. -ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
  63872. -SSRC += vfork.S clone.S
  63873. -endif
  63874. +SSRC-$(UCLIBC_HAS_LFS) += mmap64.S
  63875. +SSRC-$(if $(findstring yy,$(UCLIBC_HAS_ADVANCED_REALTIME)$(UCLIBC_HAS_LFS)),y) += posix_fadvise64.S
  63876. +SSRC-$(if $(UCLIBC_HAS_THREADS_NATIVE),,y) += vfork.S clone.S
  63877. +SSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += makecontext.S setcontext.S getcontext.S swapcontext.S
  63878. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/mmap64.S uClibc-git/libc/sysdeps/linux/i386/mmap64.S
  63879. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/mmap64.S 2012-05-15 09:20:09.000000000 +0200
  63880. +++ uClibc-git/libc/sysdeps/linux/i386/mmap64.S 2014-06-02 17:40:34.498714663 +0200
  63881. @@ -12,18 +12,16 @@
  63882. Lesser General Public License for more details.
  63883. You should have received a copy of the GNU Lesser General Public
  63884. - License along with the GNU C Library; if not, write to the Free
  63885. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63886. - 02111-1307 USA. */
  63887. + License along with the GNU C Library; if not, see
  63888. + <http://www.gnu.org/licenses/>. */
  63889. +#include <_lfs_64.h>
  63890. #define _ERRNO_H 1
  63891. -#include <features.h>
  63892. #include <bits/errno.h>
  63893. #include <sys/syscall.h>
  63894. -#if defined __UCLIBC_HAS_LFS__ && defined __NR_mmap2
  63895. -
  63896. +#ifdef __NR_mmap2
  63897. #define LINKAGE 4
  63898. #define PTR_SIZE 4
  63899. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/mmap.S uClibc-git/libc/sysdeps/linux/i386/mmap.S
  63900. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/mmap.S 2012-05-15 09:20:09.000000000 +0200
  63901. +++ uClibc-git/libc/sysdeps/linux/i386/mmap.S 2014-06-02 17:40:34.498714663 +0200
  63902. @@ -12,9 +12,8 @@
  63903. Lesser General Public License for more details.
  63904. You should have received a copy of the GNU Lesser General Public
  63905. - License along with the GNU C Library; if not, write to the Free
  63906. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63907. - 02111-1307 USA. */
  63908. + License along with the GNU C Library; if not, see
  63909. + <http://www.gnu.org/licenses/>. */
  63910. #define _ERRNO_H 1
  63911. #include <features.h>
  63912. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/posix_fadvise64.S uClibc-git/libc/sysdeps/linux/i386/posix_fadvise64.S
  63913. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/posix_fadvise64.S 2012-05-15 09:20:09.000000000 +0200
  63914. +++ uClibc-git/libc/sysdeps/linux/i386/posix_fadvise64.S 2014-06-02 17:40:34.498714663 +0200
  63915. @@ -13,29 +13,18 @@
  63916. Lesser General Public License for more details.
  63917. You should have received a copy of the GNU Lesser General Public
  63918. - License along with the GNU C Library; if not, write to the Free
  63919. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63920. - 02111-1307 USA. */
  63921. -
  63922. -#define _ERRNO_H 1
  63923. -#include <features.h>
  63924. -#include <bits/errno.h>
  63925. -#include <sys/syscall.h>
  63926. + License along with the GNU C Library; if not, see
  63927. + <http://www.gnu.org/licenses/>. */
  63928. -#if defined __NR_fadvise64_64 || defined __NR_fadvise64
  63929. +#include <_lfs_64.h>
  63930. +#include <sys/syscall.h>
  63931. -/* Was named __libc_posix_fadvise64 for some inexplicable reason.
  63932. -** google says only uclibc has *__libc*_posix_fadviseXXX,
  63933. -** so it cannot be compat with anything.
  63934. -**
  63935. -** Remove this comment and one at the end after 0.9.31
  63936. -*/
  63937. +#ifdef __NR_fadvise64_64
  63938. .text
  63939. .global posix_fadvise64
  63940. .type posix_fadvise64,%function
  63941. posix_fadvise64:
  63942. -#if defined __NR_fadvise64_64
  63943. /* Save regs */
  63944. pushl %ebp
  63945. pushl %ebx
  63946. @@ -63,47 +52,7 @@
  63947. /* Returns 0 on success, else an error code. */
  63948. negl %eax
  63949. -#elif defined __NR_fadvise64
  63950. - /* Save regs */
  63951. - pushl %ebx
  63952. - pushl %esi
  63953. - pushl %edi
  63954. -#if 0
  63955. - /* does len overflow long? */
  63956. - cmpl $0, 28(%esp)
  63957. - movl $-EOVERFLOW, %eax
  63958. - jne overflow
  63959. -#endif
  63960. - movl $__NR_fadvise64, %eax /* Syscall number in %eax. */
  63961. -
  63962. - movl 16(%esp), %ebx
  63963. - movl 20(%esp), %ecx
  63964. - movl 24(%esp), %edx
  63965. - movl 28(%esp), %esi
  63966. - movl 32(%esp), %edi
  63967. -
  63968. - /* Do the system call trap. */
  63969. - int $0x80
  63970. -overflow:
  63971. - /* Restore regs */
  63972. - popl %edi
  63973. - popl %esi
  63974. - popl %ebx
  63975. -
  63976. - /* Returns 0 on success, else an error code. */
  63977. - negl %eax
  63978. -#endif
  63979. -
  63980. /* Successful; return the syscall's value. */
  63981. ret
  63982. -
  63983. .size posix_fadvise64,.-posix_fadvise64
  63984. -
  63985. -/*
  63986. -** libc_hidden_def(__libc_posix_fadvise64)
  63987. -** #if defined __UCLIBC_HAS_LFS__ && defined __UCLIBC_HAS_ADVANCED_REALTIME__
  63988. -** weak_alias(__libc_posix_fadvise64,posix_fadvise64)
  63989. -** #endif
  63990. -*/
  63991. -
  63992. #endif
  63993. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/setcontext.S uClibc-git/libc/sysdeps/linux/i386/setcontext.S
  63994. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/setcontext.S 1970-01-01 01:00:00.000000000 +0100
  63995. +++ uClibc-git/libc/sysdeps/linux/i386/setcontext.S 2014-06-02 17:40:34.498714663 +0200
  63996. @@ -0,0 +1,96 @@
  63997. +/* Install given context.
  63998. + Copyright (C) 2001-2012 Free Software Foundation, Inc.
  63999. + This file is part of the GNU C Library.
  64000. + Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
  64001. +
  64002. + The GNU C Library is free software; you can redistribute it and/or
  64003. + modify it under the terms of the GNU Lesser General Public
  64004. + License as published by the Free Software Foundation; either
  64005. + version 2.1 of the License, or (at your option) any later version.
  64006. +
  64007. + The GNU C Library is distributed in the hope that it will be useful,
  64008. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  64009. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  64010. + Lesser General Public License for more details.
  64011. +
  64012. + You should have received a copy of the GNU Lesser General Public
  64013. + License along with the GNU C Library; if not, see
  64014. + <http://www.gnu.org/licenses/>. */
  64015. +
  64016. +#include <sysdep.h>
  64017. +
  64018. +#include "ucontext_i.h"
  64019. +
  64020. +
  64021. +ENTRY(__setcontext)
  64022. + /* Load address of the context data structure. */
  64023. + movl 4(%esp), %eax
  64024. +
  64025. + /* Get the current signal mask. Note that we preserve EBX in case
  64026. + the system call fails and we return from the function with an
  64027. + error. */
  64028. + pushl %ebx
  64029. + cfi_adjust_cfa_offset (4)
  64030. + xorl %edx, %edx
  64031. + leal oSIGMASK(%eax), %ecx
  64032. + movl $SIG_SETMASK, %ebx
  64033. + cfi_rel_offset (ebx, 0)
  64034. + movl $__NR_sigprocmask, %eax
  64035. + ENTER_KERNEL
  64036. + popl %ebx
  64037. + cfi_adjust_cfa_offset (-4)
  64038. + cfi_restore (ebx)
  64039. + cmpl $-4095, %eax /* Check %eax for error. */
  64040. + jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
  64041. +
  64042. + /* EAX was modified, reload it. */
  64043. + movl 4(%esp), %eax
  64044. +
  64045. + /* Restore the floating-point context. Not the registers, only the
  64046. + rest. */
  64047. + movl oFPREGS(%eax), %ecx
  64048. + fldenv (%ecx)
  64049. +
  64050. + /* Restore the FS segment register. We don't touch the GS register
  64051. + since it is used for threads. */
  64052. + movl oFS(%eax), %ecx
  64053. + movw %cx, %fs
  64054. +
  64055. + /* Fetch the address to return to. */
  64056. + movl oEIP(%eax), %ecx
  64057. +
  64058. + /* Load the new stack pointer. */
  64059. + cfi_def_cfa (eax, 0)
  64060. + cfi_offset (edi, oEDI)
  64061. + cfi_offset (esi, oESI)
  64062. + cfi_offset (ebp, oEBP)
  64063. + cfi_offset (ebx, oEBX)
  64064. + cfi_offset (edx, oEDX)
  64065. + cfi_offset (ecx, oECX)
  64066. + movl oESP(%eax), %esp
  64067. +
  64068. + /* Push the return address on the new stack so we can return there. */
  64069. + pushl %ecx
  64070. +
  64071. + /* Load the values of all the 32-bit registers (except ESP).
  64072. + Since we are loading from EAX, it must be last. */
  64073. + movl oEDI(%eax), %edi
  64074. + movl oESI(%eax), %esi
  64075. + movl oEBP(%eax), %ebp
  64076. + movl oEBX(%eax), %ebx
  64077. + movl oEDX(%eax), %edx
  64078. + movl oECX(%eax), %ecx
  64079. + movl oEAX(%eax), %eax
  64080. +
  64081. + /* End FDE here, we fall into another context. */
  64082. + cfi_endproc
  64083. + cfi_startproc
  64084. +
  64085. + /* The following 'ret' will pop the address of the code and jump
  64086. + to it. */
  64087. +
  64088. +L(pseudo_end):
  64089. + ret
  64090. +PSEUDO_END(__setcontext)
  64091. +
  64092. +weak_alias (__setcontext, setcontext)
  64093. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/setjmp.S uClibc-git/libc/sysdeps/linux/i386/setjmp.S
  64094. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  64095. +++ uClibc-git/libc/sysdeps/linux/i386/setjmp.S 2014-06-02 17:40:34.498714663 +0200
  64096. @@ -13,14 +13,8 @@
  64097. Lesser General Public License for more details.
  64098. You should have received a copy of the GNU Lesser General Public
  64099. - License along with the GNU C Library; if not, write to the Free
  64100. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64101. - 02111-1307 USA. */
  64102. -
  64103. -#define _ASM
  64104. -#define _SETJMP_H
  64105. -#include <bits/setjmp.h>
  64106. -
  64107. + License along with the GNU C Library; if not, see
  64108. + <http://www.gnu.org/licenses/>. */
  64109. .global __sigsetjmp
  64110. .type __sigsetjmp,%function
  64111. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sigaction.c uClibc-git/libc/sysdeps/linux/i386/sigaction.c
  64112. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sigaction.c 2012-05-15 09:20:09.000000000 +0200
  64113. +++ uClibc-git/libc/sysdeps/linux/i386/sigaction.c 2014-06-02 17:40:34.498714663 +0200
  64114. @@ -13,8 +13,7 @@
  64115. You should have received a copy of the GNU Library General Public
  64116. License along with the GNU C Library; see the file COPYING.LIB. If not,
  64117. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  64118. - Boston, MA 02111-1307, USA.
  64119. + see <http://www.gnu.org/licenses/>.
  64120. Totally hacked up for uClibc by Erik Andersen <andersen@codepoet.org>
  64121. */
  64122. @@ -27,9 +26,6 @@
  64123. #define SA_RESTORER 0x04000000
  64124. -extern __typeof(sigaction) __libc_sigaction;
  64125. -
  64126. -
  64127. #if defined __NR_rt_sigaction
  64128. extern void restore_rt(void) __asm__ ("__restore_rt") attribute_hidden;
  64129. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/swapcontext.S uClibc-git/libc/sysdeps/linux/i386/swapcontext.S
  64130. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/swapcontext.S 1970-01-01 01:00:00.000000000 +0100
  64131. +++ uClibc-git/libc/sysdeps/linux/i386/swapcontext.S 2014-06-02 17:40:34.498714663 +0200
  64132. @@ -0,0 +1,110 @@
  64133. +/* Save current context and install the given one.
  64134. + Copyright (C) 2001-2012 Free Software Foundation, Inc.
  64135. + This file is part of the GNU C Library.
  64136. + Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
  64137. +
  64138. + The GNU C Library is free software; you can redistribute it and/or
  64139. + modify it under the terms of the GNU Lesser General Public
  64140. + License as published by the Free Software Foundation; either
  64141. + version 2.1 of the License, or (at your option) any later version.
  64142. +
  64143. + The GNU C Library is distributed in the hope that it will be useful,
  64144. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  64145. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  64146. + Lesser General Public License for more details.
  64147. +
  64148. + You should have received a copy of the GNU Lesser General Public
  64149. + License along with the GNU C Library; if not, see
  64150. + <http://www.gnu.org/licenses/>. */
  64151. +
  64152. +#include <sysdep.h>
  64153. +
  64154. +#include "ucontext_i.h"
  64155. +
  64156. +
  64157. +ENTRY(__swapcontext)
  64158. + /* Load address of the context data structure we save in. */
  64159. + movl 4(%esp), %eax
  64160. +
  64161. + /* Return value of swapcontext. EAX is the only register whose
  64162. + value is not preserved. */
  64163. + movl $0, oEAX(%eax)
  64164. +
  64165. + /* Save the 32-bit register values and the return address. */
  64166. + movl %ecx, oECX(%eax)
  64167. + movl %edx, oEDX(%eax)
  64168. + movl %edi, oEDI(%eax)
  64169. + movl %esi, oESI(%eax)
  64170. + movl %ebp, oEBP(%eax)
  64171. + movl (%esp), %ecx
  64172. + movl %ecx, oEIP(%eax)
  64173. + leal 4(%esp), %ecx
  64174. + movl %ecx, oESP(%eax)
  64175. + movl %ebx, oEBX(%eax)
  64176. +
  64177. + /* Save the FS segment register. */
  64178. + xorl %edx, %edx
  64179. + movw %fs, %dx
  64180. + movl %edx, oFS(%eax)
  64181. +
  64182. + /* We have separate floating-point register content memory on the
  64183. + stack. We use the __fpregs_mem block in the context. Set the
  64184. + links up correctly. */
  64185. + leal oFPREGSMEM(%eax), %ecx
  64186. + movl %ecx, oFPREGS(%eax)
  64187. + /* Save the floating-point context. */
  64188. + fnstenv (%ecx)
  64189. +
  64190. + /* Load address of the context data structure we have to load. */
  64191. + movl 8(%esp), %ecx
  64192. +
  64193. + /* Save the current signal mask and install the new one. */
  64194. + pushl %ebx
  64195. + leal oSIGMASK(%eax), %edx
  64196. + leal oSIGMASK(%ecx), %ecx
  64197. + movl $SIG_SETMASK, %ebx
  64198. + movl $__NR_sigprocmask, %eax
  64199. + ENTER_KERNEL
  64200. + popl %ebx
  64201. + cmpl $-4095, %eax /* Check %eax for error. */
  64202. + jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
  64203. +
  64204. + /* EAX was modified, reload it. */
  64205. + movl 8(%esp), %eax
  64206. +
  64207. + /* Restore the floating-point context. Not the registers, only the
  64208. + rest. */
  64209. + movl oFPREGS(%eax), %ecx
  64210. + fldenv (%ecx)
  64211. +
  64212. + /* Restore the FS segment register. We don't touch the GS register
  64213. + since it is used for threads. */
  64214. + movl oFS(%eax), %edx
  64215. + movw %dx, %fs
  64216. +
  64217. + /* Fetch the address to return to. */
  64218. + movl oEIP(%eax), %ecx
  64219. +
  64220. + /* Load the new stack pointer. */
  64221. + movl oESP(%eax), %esp
  64222. +
  64223. + /* Push the return address on the new stack so we can return there. */
  64224. + pushl %ecx
  64225. +
  64226. + /* Load the values of all the 32-bit registers (except ESP).
  64227. + Since we are loading from EAX, it must be last. */
  64228. + movl oEDI(%eax), %edi
  64229. + movl oESI(%eax), %esi
  64230. + movl oEBP(%eax), %ebp
  64231. + movl oEBX(%eax), %ebx
  64232. + movl oEDX(%eax), %edx
  64233. + movl oECX(%eax), %ecx
  64234. + movl oEAX(%eax), %eax
  64235. +
  64236. + /* The following 'ret' will pop the address of the code and jump
  64237. + to it. */
  64238. +L(pseudo_end):
  64239. + ret
  64240. +PSEUDO_END(__swapcontext)
  64241. +
  64242. +weak_alias (__swapcontext, swapcontext)
  64243. 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
  64244. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sync_file_range.S 2012-05-15 09:20:09.000000000 +0200
  64245. +++ uClibc-git/libc/sysdeps/linux/i386/sync_file_range.S 2014-06-02 17:40:34.498714663 +0200
  64246. @@ -12,9 +12,8 @@
  64247. Lesser General Public License for more details.
  64248. You should have received a copy of the GNU Lesser General Public
  64249. - License along with the GNU C Library; if not, write to the Free
  64250. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64251. - 02111-1307 USA. */
  64252. + License along with the GNU C Library; if not, see
  64253. + <http://www.gnu.org/licenses/>. */
  64254. #define _ERRNO_H 1
  64255. #include <features.h>
  64256. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/debugreg.h uClibc-git/libc/sysdeps/linux/i386/sys/debugreg.h
  64257. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/debugreg.h 2012-05-15 09:20:09.000000000 +0200
  64258. +++ uClibc-git/libc/sysdeps/linux/i386/sys/debugreg.h 2014-06-02 17:40:34.498714663 +0200
  64259. @@ -12,9 +12,8 @@
  64260. Lesser General Public License for more details.
  64261. You should have received a copy of the GNU Lesser General Public
  64262. - License along with the GNU C Library; if not, write to the Free
  64263. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64264. - 02111-1307 USA. */
  64265. + License along with the GNU C Library; if not, see
  64266. + <http://www.gnu.org/licenses/>. */
  64267. #ifndef _SYS_DEBUGREG_H
  64268. #define _SYS_DEBUGREG_H 1
  64269. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/elf.h uClibc-git/libc/sysdeps/linux/i386/sys/elf.h
  64270. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/elf.h 2012-05-15 09:20:09.000000000 +0200
  64271. +++ uClibc-git/libc/sysdeps/linux/i386/sys/elf.h 2014-06-02 17:40:34.498714663 +0200
  64272. @@ -12,9 +12,8 @@
  64273. Lesser General Public License for more details.
  64274. You should have received a copy of the GNU Lesser General Public
  64275. - License along with the GNU C Library; if not, write to the Free
  64276. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64277. - 02111-1307 USA. */
  64278. + License along with the GNU C Library; if not, see
  64279. + <http://www.gnu.org/licenses/>. */
  64280. #ifndef _SYS_ELF_H
  64281. #define _SYS_ELF_H 1
  64282. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/io.h uClibc-git/libc/sysdeps/linux/i386/sys/io.h
  64283. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/io.h 2012-05-15 09:20:09.000000000 +0200
  64284. +++ uClibc-git/libc/sysdeps/linux/i386/sys/io.h 2014-06-02 17:40:34.498714663 +0200
  64285. @@ -12,9 +12,8 @@
  64286. Lesser General Public License for more details.
  64287. You should have received a copy of the GNU Lesser General Public
  64288. - License along with the GNU C Library; if not, write to the Free
  64289. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64290. - 02111-1307 USA. */
  64291. + License along with the GNU C Library; if not, see
  64292. + <http://www.gnu.org/licenses/>. */
  64293. #ifndef _SYS_IO_H
  64294. #define _SYS_IO_H 1
  64295. @@ -33,7 +32,6 @@
  64296. E.g., Linux/Alpha for Alpha PCs supports this. */
  64297. extern int ioperm (unsigned long int __from, unsigned long int __num,
  64298. int __turn_on) __THROW;
  64299. -libc_hidden_proto(ioperm)
  64300. /* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to
  64301. access any I/O port is granted. This call requires root
  64302. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/perm.h uClibc-git/libc/sysdeps/linux/i386/sys/perm.h
  64303. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/perm.h 2012-05-15 09:20:09.000000000 +0200
  64304. +++ uClibc-git/libc/sysdeps/linux/i386/sys/perm.h 2014-06-02 17:40:34.498714663 +0200
  64305. @@ -12,9 +12,8 @@
  64306. Lesser General Public License for more details.
  64307. You should have received a copy of the GNU Lesser General Public
  64308. - License along with the GNU C Library; if not, write to the Free
  64309. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64310. - 02111-1307 USA. */
  64311. + License along with the GNU C Library; if not, see
  64312. + <http://www.gnu.org/licenses/>. */
  64313. #ifndef _SYS_PERM_H
  64314. @@ -26,7 +25,6 @@
  64315. /* Set port input/output permissions. */
  64316. extern int ioperm (unsigned long int __from, unsigned long int __num,
  64317. int __turn_on) __THROW;
  64318. -libc_hidden_proto(ioperm)
  64319. /* Change I/O privilege level. */
  64320. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/procfs.h uClibc-git/libc/sysdeps/linux/i386/sys/procfs.h
  64321. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  64322. +++ uClibc-git/libc/sysdeps/linux/i386/sys/procfs.h 2014-06-02 17:40:34.498714663 +0200
  64323. @@ -12,9 +12,8 @@
  64324. Lesser General Public License for more details.
  64325. You should have received a copy of the GNU Lesser General Public
  64326. - License along with the GNU C Library; if not, write to the Free
  64327. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64328. - 02111-1307 USA. */
  64329. + License along with the GNU C Library; if not, see
  64330. + <http://www.gnu.org/licenses/>. */
  64331. #ifndef _SYS_PROCFS_H
  64332. #define _SYS_PROCFS_H 1
  64333. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/reg.h uClibc-git/libc/sysdeps/linux/i386/sys/reg.h
  64334. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/reg.h 2012-05-15 09:20:09.000000000 +0200
  64335. +++ uClibc-git/libc/sysdeps/linux/i386/sys/reg.h 2014-06-02 17:40:34.498714663 +0200
  64336. @@ -12,9 +12,8 @@
  64337. Lesser General Public License for more details.
  64338. You should have received a copy of the GNU Lesser General Public
  64339. - License along with the GNU C Library; if not, write to the Free
  64340. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64341. - 02111-1307 USA. */
  64342. + License along with the GNU C Library; if not, see
  64343. + <http://www.gnu.org/licenses/>. */
  64344. #ifndef _SYS_REG_H
  64345. #define _SYS_REG_H 1
  64346. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/ucontext.h uClibc-git/libc/sysdeps/linux/i386/sys/ucontext.h
  64347. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  64348. +++ uClibc-git/libc/sysdeps/linux/i386/sys/ucontext.h 2014-06-02 17:40:34.498714663 +0200
  64349. @@ -12,9 +12,8 @@
  64350. Lesser General Public License for more details.
  64351. You should have received a copy of the GNU Lesser General Public
  64352. - License along with the GNU C Library; if not, write to the Free
  64353. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64354. - 02111-1307 USA. */
  64355. + License along with the GNU C Library; if not, see
  64356. + <http://www.gnu.org/licenses/>. */
  64357. #ifndef _SYS_UCONTEXT_H
  64358. #define _SYS_UCONTEXT_H 1
  64359. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/user.h uClibc-git/libc/sysdeps/linux/i386/sys/user.h
  64360. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/user.h 2012-05-15 09:20:09.000000000 +0200
  64361. +++ uClibc-git/libc/sysdeps/linux/i386/sys/user.h 2014-06-02 17:40:34.498714663 +0200
  64362. @@ -12,9 +12,8 @@
  64363. Lesser General Public License for more details.
  64364. You should have received a copy of the GNU Lesser General Public
  64365. - License along with the GNU C Library; if not, write to the Free
  64366. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64367. - 02111-1307 USA. */
  64368. + License along with the GNU C Library; if not, see
  64369. + <http://www.gnu.org/licenses/>. */
  64370. #ifndef _SYS_USER_H
  64371. #define _SYS_USER_H 1
  64372. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/vm86.h uClibc-git/libc/sysdeps/linux/i386/sys/vm86.h
  64373. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/vm86.h 2012-05-15 09:20:09.000000000 +0200
  64374. +++ uClibc-git/libc/sysdeps/linux/i386/sys/vm86.h 2014-06-02 17:40:34.498714663 +0200
  64375. @@ -12,9 +12,8 @@
  64376. Lesser General Public License for more details.
  64377. You should have received a copy of the GNU Lesser General Public
  64378. - License along with the GNU C Library; if not, write to the Free
  64379. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64380. - 02111-1307 USA. */
  64381. + License along with the GNU C Library; if not, see
  64382. + <http://www.gnu.org/licenses/>. */
  64383. #ifndef _SYS_VM86_H
  64384. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sysdep.h uClibc-git/libc/sysdeps/linux/i386/sysdep.h
  64385. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  64386. +++ uClibc-git/libc/sysdeps/linux/i386/sysdep.h 2014-06-02 17:40:34.498714663 +0200
  64387. @@ -14,9 +14,8 @@
  64388. Lesser General Public License for more details.
  64389. You should have received a copy of the GNU Lesser General Public
  64390. - License along with the GNU C Library; if not, write to the Free
  64391. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64392. - 02111-1307 USA. */
  64393. + License along with the GNU C Library; if not, see
  64394. + <http://www.gnu.org/licenses/>. */
  64395. #ifndef _LINUX_I386_SYSDEP_H
  64396. #define _LINUX_I386_SYSDEP_H 1
  64397. @@ -44,12 +43,9 @@
  64398. incomplete stabs information. Fake some entries here which specify
  64399. the current source file. */
  64400. #define ENTRY(name) \
  64401. - STABS_CURRENT_FILE1("") \
  64402. - STABS_CURRENT_FILE(name) \
  64403. ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(name); \
  64404. ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
  64405. .align ALIGNARG(4); \
  64406. - STABS_FUN(name) \
  64407. C_LABEL(name) \
  64408. cfi_startproc; \
  64409. CALL_MCOUNT
  64410. @@ -58,30 +54,6 @@
  64411. #define END(name) \
  64412. cfi_endproc; \
  64413. ASM_SIZE_DIRECTIVE(name) \
  64414. - STABS_FUN_END(name)
  64415. -
  64416. -#ifdef HAVE_CPP_ASM_DEBUGINFO
  64417. -/* Disable that goop, because we just pass -g through to the assembler
  64418. - and it generates proper line number information directly. */
  64419. -# define STABS_CURRENT_FILE1(name)
  64420. -# define STABS_CURRENT_FILE(name)
  64421. -# define STABS_FUN(name)
  64422. -# define STABS_FUN_END(name)
  64423. -#else
  64424. -/* Remove the following two lines once the gdb bug is fixed. */
  64425. -#define STABS_CURRENT_FILE(name) \
  64426. - STABS_CURRENT_FILE1 (#name)
  64427. -#define STABS_CURRENT_FILE1(name) \
  64428. - 1: .stabs name,100,0,0,1b;
  64429. -/* Emit stabs definition lines. We use F(0,1) and define t(0,1) as `int',
  64430. - the same way gcc does it. */
  64431. -#define STABS_FUN(name) STABS_FUN2(name, name##:F(0,1))
  64432. -#define STABS_FUN2(name, namestr) \
  64433. - .stabs "int:t(0,1)=r(0,1);-2147483648;2147483647;",128,0,0,0; \
  64434. - .stabs #namestr,36,0,0,name;
  64435. -#define STABS_FUN_END(name) \
  64436. - 1: .stabs "",36,0,0,1b-name;
  64437. -#endif
  64438. /* If compiled for profiling, call `mcount' at the start of each function. */
  64439. #ifdef PROF
  64440. @@ -150,10 +122,6 @@
  64441. #undef __i686
  64442. #endif /* __ASSEMBLER__ */
  64443. -#ifndef offsetof
  64444. -# define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
  64445. -#endif
  64446. -
  64447. /* For Linux we can use the system call table in the header file
  64448. /usr/include/asm/unistd.h
  64449. of the kernel. But these symbols do not follow the SYS_* syntax
  64450. @@ -227,8 +195,6 @@
  64451. #define PSEUDO_END_ERRVAL(name) \
  64452. END (name)
  64453. -#define ret_ERRVAL ret
  64454. -
  64455. #ifndef __PIC__
  64456. # define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */
  64457. #else
  64458. @@ -444,6 +410,7 @@
  64459. # define PTR_DEMANGLE(reg) rorl $9, reg; \
  64460. xorl %gs:POINTER_GUARD, reg
  64461. # else
  64462. +# include <stddef.h>
  64463. # define PTR_MANGLE(var) __asm__ ("xorl %%gs:%c2, %0\n" \
  64464. "roll $9, %0" \
  64465. : "=r" (var) \
  64466. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/ucontext_i.sym uClibc-git/libc/sysdeps/linux/i386/ucontext_i.sym
  64467. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/ucontext_i.sym 1970-01-01 01:00:00.000000000 +0100
  64468. +++ uClibc-git/libc/sysdeps/linux/i386/ucontext_i.sym 2014-06-02 17:40:34.498714663 +0200
  64469. @@ -0,0 +1,30 @@
  64470. +#include <stddef.h>
  64471. +#include <signal.h>
  64472. +#include <sys/ucontext.h>
  64473. +
  64474. +--
  64475. +
  64476. +SIG_BLOCK
  64477. +SIG_SETMASK
  64478. +
  64479. +#define ucontext(member) offsetof (ucontext_t, member)
  64480. +#define mcontext(member) ucontext (uc_mcontext.member)
  64481. +#define mreg(reg) mcontext (gregs[REG_##reg])
  64482. +
  64483. +oLINK ucontext (uc_link)
  64484. +oSS_SP ucontext (uc_stack.ss_sp)
  64485. +oSS_SIZE ucontext (uc_stack.ss_size)
  64486. +oGS mreg (GS)
  64487. +oFS mreg (FS)
  64488. +oEDI mreg (EDI)
  64489. +oESI mreg (ESI)
  64490. +oEBP mreg (EBP)
  64491. +oESP mreg (ESP)
  64492. +oEBX mreg (EBX)
  64493. +oEDX mreg (EDX)
  64494. +oECX mreg (ECX)
  64495. +oEAX mreg (EAX)
  64496. +oEIP mreg (EIP)
  64497. +oFPREGS mcontext (fpregs)
  64498. +oSIGMASK ucontext (uc_sigmask)
  64499. +oFPREGSMEM ucontext (__fpregs_mem)
  64500. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/vfork.S uClibc-git/libc/sysdeps/linux/i386/vfork.S
  64501. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/vfork.S 2012-05-15 09:20:09.000000000 +0200
  64502. +++ uClibc-git/libc/sysdeps/linux/i386/vfork.S 2014-06-02 17:40:34.498714663 +0200
  64503. @@ -38,4 +38,4 @@
  64504. .size __vfork,.-__vfork
  64505. weak_alias(__vfork,vfork)
  64506. -libc_hidden_weak(vfork)
  64507. +libc_hidden_def(vfork)
  64508. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/bits/fcntl.h uClibc-git/libc/sysdeps/linux/i960/bits/fcntl.h
  64509. --- uClibc-0.9.33.2/libc/sysdeps/linux/i960/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  64510. +++ uClibc-git/libc/sysdeps/linux/i960/bits/fcntl.h 2014-06-02 17:40:34.498714663 +0200
  64511. @@ -13,9 +13,8 @@
  64512. Lesser General Public License for more details.
  64513. You should have received a copy of the GNU Lesser General Public
  64514. - License along with the GNU C Library; if not, write to the Free
  64515. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64516. - 02111-1307 USA. */
  64517. + License along with the GNU C Library; if not, see
  64518. + <http://www.gnu.org/licenses/>. */
  64519. #ifndef _FCNTL_H
  64520. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  64521. 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
  64522. --- uClibc-0.9.33.2/libc/sysdeps/linux/i960/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  64523. +++ uClibc-git/libc/sysdeps/linux/i960/bits/uClibc_arch_features.h 2014-06-02 17:40:34.498714663 +0200
  64524. @@ -12,8 +12,8 @@
  64525. /* can your target use syscall6() for mmap ? */
  64526. #undef __UCLIBC_MMAP_HAS_6_ARGS__
  64527. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  64528. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  64529. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  64530. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  64531. /* does your target have a broken create_module() ? */
  64532. #define __UCLIBC_BROKEN_CREATE_MODULE__
  64533. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/bits/wordsize.h uClibc-git/libc/sysdeps/linux/i960/bits/wordsize.h
  64534. --- uClibc-0.9.33.2/libc/sysdeps/linux/i960/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  64535. +++ uClibc-git/libc/sysdeps/linux/i960/bits/wordsize.h 2014-06-02 17:40:34.498714663 +0200
  64536. @@ -12,8 +12,7 @@
  64537. Lesser General Public License for more details.
  64538. You should have received a copy of the GNU Lesser General Public
  64539. - License along with the GNU C Library; if not, write to the Free
  64540. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64541. - 02111-1307 USA. */
  64542. + License along with the GNU C Library; if not, see
  64543. + <http://www.gnu.org/licenses/>. */
  64544. #define __WORDSIZE 32
  64545. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/clone.S uClibc-git/libc/sysdeps/linux/i960/clone.S
  64546. --- uClibc-0.9.33.2/libc/sysdeps/linux/i960/clone.S 2012-05-15 09:20:09.000000000 +0200
  64547. +++ uClibc-git/libc/sysdeps/linux/i960/clone.S 2014-06-02 17:40:34.498714663 +0200
  64548. @@ -14,8 +14,7 @@
  64549. # details.
  64550. #
  64551. # You should have received a copy of the GNU Library General Public License
  64552. -# along with this program; if not, write to the Free Software Foundation, Inc.,
  64553. -# at 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  64554. +# along with this program; if not, see <http://www.gnu.org/licenses/>.
  64555. #
  64556. # Derived from an old port of uC-libc to the i960 by Keith Adams (kma@cse.ogi.edu).
  64557. #
  64558. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/crt0.S uClibc-git/libc/sysdeps/linux/i960/crt0.S
  64559. --- uClibc-0.9.33.2/libc/sysdeps/linux/i960/crt0.S 2012-05-15 09:20:09.000000000 +0200
  64560. +++ uClibc-git/libc/sysdeps/linux/i960/crt0.S 2014-06-02 17:40:34.498714663 +0200
  64561. @@ -14,8 +14,7 @@
  64562. # details.
  64563. #
  64564. # You should have received a copy of the GNU Library General Public License
  64565. -# along with this program; if not, write to the Free Software Foundation, Inc.,
  64566. -# at 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  64567. +# along with this program; if not, see <http://www.gnu.org/licenses/>.
  64568. #
  64569. /*
  64570. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/mmap.S uClibc-git/libc/sysdeps/linux/i960/mmap.S
  64571. --- uClibc-0.9.33.2/libc/sysdeps/linux/i960/mmap.S 2012-05-15 09:20:09.000000000 +0200
  64572. +++ uClibc-git/libc/sysdeps/linux/i960/mmap.S 2014-06-02 17:40:34.498714663 +0200
  64573. @@ -14,8 +14,7 @@
  64574. # details.
  64575. #
  64576. # You should have received a copy of the GNU Library General Public License
  64577. -# along with this program; if not, write to the Free Software Foundation, Inc.,
  64578. -# at 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  64579. +# along with this program; if not, see <http://www.gnu.org/licenses/>.
  64580. #
  64581. # Derived from an old port of uC-libc to the i960 by Keith Adams (kma@cse.ogi.edu).
  64582. #
  64583. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/setjmp.S uClibc-git/libc/sysdeps/linux/i960/setjmp.S
  64584. --- uClibc-0.9.33.2/libc/sysdeps/linux/i960/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  64585. +++ uClibc-git/libc/sysdeps/linux/i960/setjmp.S 2014-06-02 17:40:34.502714686 +0200
  64586. @@ -122,3 +122,5 @@
  64587. mov 1, g0 /* return 1 by default */
  64588. 0:
  64589. ret /* return to caller of __sigsetjmp */
  64590. +
  64591. +libc_hidden_def(__longjmp)
  64592. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/sys/procfs.h uClibc-git/libc/sysdeps/linux/i960/sys/procfs.h
  64593. --- uClibc-0.9.33.2/libc/sysdeps/linux/i960/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  64594. +++ uClibc-git/libc/sysdeps/linux/i960/sys/procfs.h 2014-06-02 17:40:34.502714686 +0200
  64595. @@ -12,9 +12,8 @@
  64596. Lesser General Public License for more details.
  64597. You should have received a copy of the GNU Lesser General Public
  64598. - License along with the GNU C Library; if not, write to the Free
  64599. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64600. - 02111-1307 USA. */
  64601. + License along with the GNU C Library; if not, see
  64602. + <http://www.gnu.org/licenses/>. */
  64603. #ifndef _SYS_PROCFS_H
  64604. #define _SYS_PROCFS_H 1
  64605. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/sys/ucontext.h uClibc-git/libc/sysdeps/linux/i960/sys/ucontext.h
  64606. --- uClibc-0.9.33.2/libc/sysdeps/linux/i960/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  64607. +++ uClibc-git/libc/sysdeps/linux/i960/sys/ucontext.h 2014-06-02 17:40:34.502714686 +0200
  64608. @@ -12,9 +12,8 @@
  64609. Lesser General Public License for more details.
  64610. You should have received a copy of the GNU Lesser General Public
  64611. - License along with the GNU C Library; if not, write to the Free
  64612. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64613. - 02111-1307 USA. */
  64614. + License along with the GNU C Library; if not, see
  64615. + <http://www.gnu.org/licenses/>. */
  64616. /* Don't rely on this, the interface is currently messed up and may need to
  64617. be broken to be fixed. */
  64618. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/vfork.S uClibc-git/libc/sysdeps/linux/i960/vfork.S
  64619. --- uClibc-0.9.33.2/libc/sysdeps/linux/i960/vfork.S 2012-05-15 09:20:09.000000000 +0200
  64620. +++ uClibc-git/libc/sysdeps/linux/i960/vfork.S 2014-06-02 17:40:34.502714686 +0200
  64621. @@ -18,6 +18,7 @@
  64622. .globl ___vfork
  64623. .hidden ___vfork
  64624. + .type ___vfork,@function
  64625. ___vfork:
  64626. mov g13, r3
  64627. ldconst __NR_vfork, g13
  64628. @@ -30,4 +31,4 @@
  64629. ret
  64630. weak_alias(__vfork,vfork)
  64631. -libc_hidden_weak(vfork)
  64632. +libc_hidden_def(vfork)
  64633. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/atomic.h uClibc-git/libc/sysdeps/linux/ia64/bits/atomic.h
  64634. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  64635. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/atomic.h 2014-06-02 17:40:34.522714796 +0200
  64636. @@ -12,9 +12,8 @@
  64637. Lesser General Public License for more details.
  64638. You should have received a copy of the GNU Lesser General Public
  64639. - License along with the GNU C Library; if not, write to the Free
  64640. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64641. - 02111-1307 USA. */
  64642. + License along with the GNU C Library; if not, see
  64643. + <http://www.gnu.org/licenses/>. */
  64644. #include <stdint.h>
  64645. #include <ia64intrin.h>
  64646. @@ -92,12 +91,12 @@
  64647. do \
  64648. { \
  64649. __oldval = __val; \
  64650. - if (__builtin_expect (__val <= 0, 0)) \
  64651. + if (unlikely (__val <= 0)) \
  64652. break; \
  64653. __val = atomic_compare_and_exchange_val_acq (__memp, __oldval - 1, \
  64654. __oldval); \
  64655. } \
  64656. - while (__builtin_expect (__val != __oldval, 0)); \
  64657. + while (unlikely (__val != __oldval)); \
  64658. __oldval; })
  64659. #define atomic_bit_test_set(mem, bit) \
  64660. @@ -113,7 +112,7 @@
  64661. __oldval | __mask, \
  64662. __oldval); \
  64663. } \
  64664. - while (__builtin_expect (__val != __oldval, 0)); \
  64665. + while (unlikely (__val != __oldval)); \
  64666. __oldval & __mask; })
  64667. #define atomic_full_barrier() __sync_synchronize ()
  64668. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/byteswap.h uClibc-git/libc/sysdeps/linux/ia64/bits/byteswap.h
  64669. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/byteswap.h 2012-05-15 09:20:09.000000000 +0200
  64670. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/byteswap.h 2014-06-02 17:40:34.522714796 +0200
  64671. @@ -13,9 +13,8 @@
  64672. Lesser General Public License for more details.
  64673. You should have received a copy of the GNU Lesser General Public
  64674. - License along with the GNU C Library; if not, write to the Free
  64675. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64676. - 02111-1307 USA. */
  64677. + License along with the GNU C Library; if not, see
  64678. + <http://www.gnu.org/licenses/>. */
  64679. #ifndef _ASM_BITS_BYTESWAP_H
  64680. #define _ASM_BITS_BYTESWAP_H 1
  64681. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/fcntl.h uClibc-git/libc/sysdeps/linux/ia64/bits/fcntl.h
  64682. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  64683. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/fcntl.h 2014-06-02 17:40:34.522714796 +0200
  64684. @@ -13,9 +13,8 @@
  64685. Lesser General Public License for more details.
  64686. You should have received a copy of the GNU Lesser General Public
  64687. - License along with the GNU C Library; if not, write to the Free
  64688. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64689. - 02111-1307 USA. */
  64690. + License along with the GNU C Library; if not, see
  64691. + <http://www.gnu.org/licenses/>. */
  64692. #ifndef _FCNTL_H
  64693. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  64694. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/fenv.h uClibc-git/libc/sysdeps/linux/ia64/bits/fenv.h
  64695. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  64696. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/fenv.h 2014-06-02 17:40:34.522714796 +0200
  64697. @@ -12,9 +12,8 @@
  64698. Lesser General Public License for more details.
  64699. You should have received a copy of the GNU Lesser General Public
  64700. - License along with the GNU C Library; if not, write to the Free
  64701. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64702. - 02111-1307 USA. */
  64703. + License along with the GNU C Library; if not, see
  64704. + <http://www.gnu.org/licenses/>. */
  64705. #ifndef _FENV_H
  64706. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  64707. @@ -73,15 +72,15 @@
  64708. typedef unsigned long int fenv_t;
  64709. /* If the default argument is used we use this value. */
  64710. -#define FE_DFL_ENV ((__const fenv_t *) 0xc009804c0270033fUL)
  64711. +#define FE_DFL_ENV ((const fenv_t *) 0xc009804c0270033fUL)
  64712. #ifdef __USE_GNU
  64713. /* Floating-point environment where only FE_UNNORMAL is masked since this
  64714. exception is not generally supported by glibc. */
  64715. -# define FE_NOMASK_ENV ((__const fenv_t *) 0xc009804c02700302UL)
  64716. +# define FE_NOMASK_ENV ((const fenv_t *) 0xc009804c02700302UL)
  64717. /* Floating-point environment with (processor-dependent) non-IEEE
  64718. floating point. In this case, turning on flush-to-zero mode for
  64719. s0, s2, and s3. */
  64720. -# define FE_NONIEEE_ENV ((__const fenv_t *) 0xc009a04d0270037fUL)
  64721. +# define FE_NONIEEE_ENV ((const fenv_t *) 0xc009a04d0270037fUL)
  64722. #endif
  64723. 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
  64724. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/huge_vall.h 1970-01-01 01:00:00.000000000 +0100
  64725. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/huge_vall.h 2014-06-02 17:40:34.522714796 +0200
  64726. @@ -0,0 +1,41 @@
  64727. +/* `HUGE_VALL' constant for ia64 (where it is infinity).
  64728. + Used by <stdlib.h> and <math.h> functions for overflow.
  64729. + Copyright (C) 2000, 2004 Free Software Foundation, Inc.
  64730. + This file is part of the GNU C Library.
  64731. +
  64732. + The GNU C Library is free software; you can redistribute it and/or
  64733. + modify it under the terms of the GNU Lesser General Public
  64734. + License as published by the Free Software Foundation; either
  64735. + version 2.1 of the License, or (at your option) any later version.
  64736. +
  64737. + The GNU C Library is distributed in the hope that it will be useful,
  64738. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  64739. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  64740. + Lesser General Public License for more details.
  64741. +
  64742. + You should have received a copy of the GNU Lesser General Public
  64743. + License along with the GNU C Library; if not, see
  64744. + <http://www.gnu.org/licenses/>. */
  64745. +
  64746. +#ifndef _MATH_H
  64747. +# error "Never use <bits/huge_vall.h> directly; include <math.h> instead."
  64748. +#endif
  64749. +
  64750. +#if __GNUC_PREREQ(3,3)
  64751. +# define HUGE_VALL (__builtin_huge_vall())
  64752. +#elif __GNUC_PREREQ(2,96)
  64753. +# define HUGE_VALL (__extension__ 0x1.0p32767L)
  64754. +#else
  64755. +
  64756. +# define __HUGE_VALL_bytes { 0,0,0,0,0,0,0, 0x80, 0xff, 0x7f, 0,0,0,0,0,0}
  64757. +
  64758. +# define __huge_vall_t union { unsigned char __c[16]; long double __ld; }
  64759. +# ifdef __GNUC__
  64760. +# define HUGE_VALL (__extension__ \
  64761. + ((__huge_vall_t) { __c: __HUGE_VALL_bytes }).__ld)
  64762. +# else /* Not GCC. */
  64763. +static __huge_vall_t __huge_vall = { __HUGE_VALL_bytes };
  64764. +# define HUGE_VALL (__huge_vall.__ld)
  64765. +# endif /* GCC. */
  64766. +
  64767. +#endif /* GCC 2.95 */
  64768. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/ipc.h uClibc-git/libc/sysdeps/linux/ia64/bits/ipc.h
  64769. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
  64770. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/ipc.h 2014-06-02 17:40:34.522714796 +0200
  64771. @@ -13,9 +13,8 @@
  64772. Lesser General Public License for more details.
  64773. You should have received a copy of the GNU Lesser General Public
  64774. - License along with the GNU C Library; if not, write to the Free
  64775. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64776. - 02111-1307 USA. */
  64777. + License along with the GNU C Library; if not, see
  64778. + <http://www.gnu.org/licenses/>. */
  64779. #ifndef _SYS_IPC_H
  64780. # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
  64781. 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
  64782. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  64783. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/kernel_types.h 2014-06-02 17:40:34.522714796 +0200
  64784. @@ -52,5 +52,7 @@
  64785. typedef unsigned int __kernel_dev_t;
  64786. typedef unsigned int __kernel_old_dev_t;
  64787. +typedef long __kernel_long_t;
  64788. +typedef unsigned long __kernel_ulong_t;
  64789. #endif /* _ASM_IA64_POSIX_TYPES_H */
  64790. 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
  64791. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/local_lim.h 1970-01-01 01:00:00.000000000 +0100
  64792. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/local_lim.h 2014-06-02 17:40:34.522714796 +0200
  64793. @@ -0,0 +1,99 @@
  64794. +/* Minimum guaranteed maximum values for system limits. Linux/IA-64 version.
  64795. + Copyright (C) 1993-1998,2000,2002-2004,2008 Free Software Foundation, Inc.
  64796. + This file is part of the GNU C Library.
  64797. +
  64798. + The GNU C Library is free software; you can redistribute it and/or
  64799. + modify it under the terms of the GNU Library General Public License as
  64800. + published by the Free Software Foundation; either version 2 of the
  64801. + License, or (at your option) any later version.
  64802. +
  64803. + The GNU C Library is distributed in the hope that it will be useful,
  64804. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  64805. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  64806. + Library General Public License for more details.
  64807. +
  64808. + You should have received a copy of the GNU Library General Public
  64809. + License along with the GNU C Library; see the file COPYING.LIB. If not,
  64810. + see <http://www.gnu.org/licenses/>. */
  64811. +
  64812. +/* The kernel header pollutes the namespace with the NR_OPEN symbol
  64813. + and defines LINK_MAX although filesystems have different maxima. A
  64814. + similar thing is true for OPEN_MAX: the limit can be changed at
  64815. + runtime and therefore the macro must not be defined. Remove this
  64816. + after including the header if necessary. */
  64817. +#ifndef NR_OPEN
  64818. +# define __undef_NR_OPEN
  64819. +#endif
  64820. +#ifndef LINK_MAX
  64821. +# define __undef_LINK_MAX
  64822. +#endif
  64823. +#ifndef OPEN_MAX
  64824. +# define __undef_OPEN_MAX
  64825. +#endif
  64826. +#ifndef ARG_MAX
  64827. +# define __undef_ARG_MAX
  64828. +#endif
  64829. +
  64830. +/* The kernel sources contain a file with all the needed information. */
  64831. +#include <linux/limits.h>
  64832. +
  64833. +/* Have to remove NR_OPEN? */
  64834. +#ifdef __undef_NR_OPEN
  64835. +# undef NR_OPEN
  64836. +# undef __undef_NR_OPEN
  64837. +#endif
  64838. +/* Have to remove LINK_MAX? */
  64839. +#ifdef __undef_LINK_MAX
  64840. +# undef LINK_MAX
  64841. +# undef __undef_LINK_MAX
  64842. +#endif
  64843. +/* Have to remove OPEN_MAX? */
  64844. +#ifdef __undef_OPEN_MAX
  64845. +# undef OPEN_MAX
  64846. +# undef __undef_OPEN_MAX
  64847. +#endif
  64848. +/* Have to remove ARG_MAX? */
  64849. +#ifdef __undef_ARG_MAX
  64850. +# undef ARG_MAX
  64851. +# undef __undef_ARG_MAX
  64852. +#endif
  64853. +
  64854. +/* The number of data keys per process. */
  64855. +#define _POSIX_THREAD_KEYS_MAX 128
  64856. +/* This is the value this implementation supports. */
  64857. +#define PTHREAD_KEYS_MAX 1024
  64858. +
  64859. +/* Controlling the iterations of destructors for thread-specific data. */
  64860. +#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
  64861. +/* Number of iterations this implementation does. */
  64862. +#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
  64863. +
  64864. +/* The number of threads per process. */
  64865. +#define _POSIX_THREAD_THREADS_MAX 64
  64866. +/* We have no predefined limit on the number of threads. */
  64867. +#undef PTHREAD_THREADS_MAX
  64868. +
  64869. +/* Maximum amount by which a process can descrease its asynchronous I/O
  64870. + priority level. */
  64871. +#define AIO_PRIO_DELTA_MAX 20
  64872. +
  64873. +/* Minimum size for a thread. We are free to choose a reasonable value. */
  64874. +#define PTHREAD_STACK_MIN 196608
  64875. +
  64876. +/* Maximum number of timer expiration overruns. */
  64877. +#define DELAYTIMER_MAX 2147483647
  64878. +
  64879. +/* Maximum tty name length. */
  64880. +#define TTY_NAME_MAX 32
  64881. +
  64882. +/* Maximum login name length. This is arbitrary. */
  64883. +#define LOGIN_NAME_MAX 256
  64884. +
  64885. +/* Maximum host name length. */
  64886. +#define HOST_NAME_MAX 64
  64887. +
  64888. +/* Maximum message queue priority level. */
  64889. +#define MQ_PRIO_MAX 32768
  64890. +
  64891. +/* Maximum value the semaphore can have. */
  64892. +#define SEM_VALUE_MAX (2147483647)
  64893. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/mathdef.h uClibc-git/libc/sysdeps/linux/ia64/bits/mathdef.h
  64894. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  64895. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/mathdef.h 2014-06-02 17:40:34.522714796 +0200
  64896. @@ -12,9 +12,8 @@
  64897. Lesser General Public License for more details.
  64898. You should have received a copy of the GNU Lesser General Public
  64899. - License along with the GNU C Library; if not, write to the Free
  64900. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64901. - 02111-1307 USA. */
  64902. + License along with the GNU C Library; if not, see
  64903. + <http://www.gnu.org/licenses/>. */
  64904. #if !defined _MATH_H && !defined _COMPLEX_H
  64905. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  64906. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/mathinline.h uClibc-git/libc/sysdeps/linux/ia64/bits/mathinline.h
  64907. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/mathinline.h 2012-05-15 09:20:09.000000000 +0200
  64908. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/mathinline.h 2014-06-02 17:40:34.522714796 +0200
  64909. @@ -13,9 +13,8 @@
  64910. Lesser General Public License for more details.
  64911. You should have received a copy of the GNU Lesser General Public
  64912. - License along with the GNU C Library; if not, write to the Free
  64913. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64914. - 02111-1307 USA. */
  64915. + License along with the GNU C Library; if not, see
  64916. + <http://www.gnu.org/licenses/>. */
  64917. #ifndef _MATH_H
  64918. # error "Never use <bits/mathinline.h> directly; include <math.h> instead."
  64919. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/msq.h uClibc-git/libc/sysdeps/linux/ia64/bits/msq.h
  64920. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
  64921. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/msq.h 2014-06-02 17:40:34.522714796 +0200
  64922. @@ -13,9 +13,8 @@
  64923. Lesser General Public License for more details.
  64924. You should have received a copy of the GNU Lesser General Public
  64925. - License along with the GNU C Library; if not, write to the Free
  64926. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64927. - 02111-1307 USA. */
  64928. + License along with the GNU C Library; if not, see
  64929. + <http://www.gnu.org/licenses/>. */
  64930. #ifndef _SYS_MSG_H
  64931. #error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
  64932. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sem.h uClibc-git/libc/sysdeps/linux/ia64/bits/sem.h
  64933. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
  64934. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/sem.h 2014-06-02 17:40:34.522714796 +0200
  64935. @@ -14,9 +14,8 @@
  64936. Lesser General Public License for more details.
  64937. You should have received a copy of the GNU Lesser General Public
  64938. - License along with the GNU C Library; if not, write to the Free
  64939. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64940. - 02111-1307 USA. */
  64941. + License along with the GNU C Library; if not, see
  64942. + <http://www.gnu.org/licenses/>. */
  64943. #ifndef _SYS_SEM_H
  64944. # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
  64945. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/setjmp.h uClibc-git/libc/sysdeps/linux/ia64/bits/setjmp.h
  64946. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  64947. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/setjmp.h 2014-06-02 17:40:34.522714796 +0200
  64948. @@ -1,5 +1,5 @@
  64949. /* Define the machine-dependent type `jmp_buf'. Linux/IA-64 version.
  64950. - Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
  64951. + Copyright (C) 1999,2000,2003,2005,2006 Free Software Foundation, Inc.
  64952. This file is part of the GNU C Library.
  64953. Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
  64954. @@ -14,9 +14,8 @@
  64955. Lesser General Public License for more details.
  64956. You should have received a copy of the GNU Lesser General Public
  64957. - License along with the GNU C Library; if not, write to the Free
  64958. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64959. - 02111-1307 USA. */
  64960. + License along with the GNU C Library; if not, see
  64961. + <http://www.gnu.org/licenses/>. */
  64962. #ifndef _BITS_SETJMP_H
  64963. #define _BITS_SETJMP_H 1
  64964. @@ -32,9 +31,4 @@
  64965. /* the __jmp_buf element type should be __float80 per ABI... */
  64966. typedef long __jmp_buf[_JBLEN] __attribute__ ((aligned (16))); /* guarantees 128-bit alignment! */
  64967. -/* Test if longjmp to JMPBUF would unwind the frame containing a local
  64968. - variable at ADDRESS. */
  64969. -#define _JMPBUF_UNWINDS(_jmpbuf, _address) \
  64970. - ((void *)(_address) < (void *)(((long *)_jmpbuf)[0]))
  64971. -
  64972. #endif /* bits/setjmp.h */
  64973. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/shm.h uClibc-git/libc/sysdeps/linux/ia64/bits/shm.h
  64974. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  64975. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/shm.h 2014-06-02 17:40:34.522714796 +0200
  64976. @@ -12,9 +12,8 @@
  64977. Lesser General Public License for more details.
  64978. You should have received a copy of the GNU Lesser General Public
  64979. - License along with the GNU C Library; if not, write to the Free
  64980. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64981. - 02111-1307 USA. */
  64982. + License along with the GNU C Library; if not, see
  64983. + <http://www.gnu.org/licenses/>. */
  64984. #ifndef _SYS_SHM_H
  64985. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  64986. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sigaction.h uClibc-git/libc/sysdeps/linux/ia64/bits/sigaction.h
  64987. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sigaction.h 2012-05-15 09:20:09.000000000 +0200
  64988. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/sigaction.h 2014-06-02 17:40:34.522714796 +0200
  64989. @@ -13,9 +13,8 @@
  64990. Lesser General Public License for more details.
  64991. You should have received a copy of the GNU Lesser General Public
  64992. - License along with the GNU C Library; if not, write to the Free
  64993. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64994. - 02111-1307 USA. */
  64995. + License along with the GNU C Library; if not, see
  64996. + <http://www.gnu.org/licenses/>. */
  64997. #ifndef _SIGNAL_H
  64998. # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
  64999. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sigcontext.h uClibc-git/libc/sysdeps/linux/ia64/bits/sigcontext.h
  65000. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sigcontext.h 2012-05-15 09:20:09.000000000 +0200
  65001. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/sigcontext.h 2014-06-02 17:40:34.522714796 +0200
  65002. @@ -14,9 +14,8 @@
  65003. Lesser General Public License for more details.
  65004. You should have received a copy of the GNU Lesser General Public
  65005. - License along with the GNU C Library; if not, write to the Free
  65006. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65007. - 02111-1307 USA. */
  65008. + License along with the GNU C Library; if not, see
  65009. + <http://www.gnu.org/licenses/>. */
  65010. #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
  65011. # error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
  65012. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/siginfo.h uClibc-git/libc/sysdeps/linux/ia64/bits/siginfo.h
  65013. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/siginfo.h 2012-05-15 09:20:09.000000000 +0200
  65014. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/siginfo.h 2014-06-02 17:40:34.522714796 +0200
  65015. @@ -14,9 +14,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. #if !defined _SIGNAL_H && !defined __need_siginfo_t \
  65024. && !defined __need_sigevent_t
  65025. @@ -298,7 +297,11 @@
  65026. /* Structure to transport application-defined values with signals. */
  65027. # define __SIGEV_MAX_SIZE 64
  65028. -# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
  65029. +# if __WORDSIZE == 64
  65030. +# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
  65031. +# else
  65032. +# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
  65033. +# endif
  65034. typedef struct sigevent
  65035. {
  65036. @@ -310,6 +313,10 @@
  65037. {
  65038. int _pad[__SIGEV_PAD_SIZE];
  65039. + /* When SIGEV_SIGNAL and SIGEV_THREAD_ID set, LWP ID of the
  65040. + thread to receive the signal. */
  65041. + __pid_t _tid;
  65042. +
  65043. struct
  65044. {
  65045. void (*_function) (sigval_t); /* Function to start. */
  65046. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sigstack.h uClibc-git/libc/sysdeps/linux/ia64/bits/sigstack.h
  65047. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sigstack.h 2012-05-15 09:20:09.000000000 +0200
  65048. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/sigstack.h 2014-06-02 17:40:34.522714796 +0200
  65049. @@ -13,9 +13,8 @@
  65050. Lesser General Public License for more details.
  65051. You should have received a copy of the GNU Lesser General Public
  65052. - License along with the GNU C Library; if not, write to the Free
  65053. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65054. - 02111-1307 USA. */
  65055. + License along with the GNU C Library; if not, see
  65056. + <http://www.gnu.org/licenses/>. */
  65057. #ifndef _SIGNAL_H
  65058. # error "Never include this file directly. Use <signal.h> instead"
  65059. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/ia64/bits/stackinfo.h
  65060. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  65061. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/stackinfo.h 2014-06-02 17:40:34.522714796 +0200
  65062. @@ -12,9 +12,8 @@
  65063. Lesser General Public License for more details.
  65064. You should have received a copy of the GNU Lesser General Public
  65065. - License along with the GNU C Library; if not, write to the Free
  65066. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65067. - 02111-1307 USA. */
  65068. + License along with the GNU C Library; if not, see
  65069. + <http://www.gnu.org/licenses/>. */
  65070. /* This file contains a bit of information about the stack allocation
  65071. of the processor. */
  65072. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/stat.h uClibc-git/libc/sysdeps/linux/ia64/bits/stat.h
  65073. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  65074. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/stat.h 2014-06-02 17:40:34.522714796 +0200
  65075. @@ -12,9 +12,8 @@
  65076. Lesser General Public License for more details.
  65077. You should have received a copy of the GNU Lesser General Public
  65078. - License along with the GNU C Library; if not, write to the Free
  65079. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65080. - 02111-1307 USA. */
  65081. + License along with the GNU C Library; if not, see
  65082. + <http://www.gnu.org/licenses/>. */
  65083. #ifndef _SYS_STAT_H
  65084. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  65085. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/syscalls.h uClibc-git/libc/sysdeps/linux/ia64/bits/syscalls.h
  65086. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/syscalls.h 2012-05-15 09:20:09.000000000 +0200
  65087. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/syscalls.h 2014-06-02 17:40:34.526714818 +0200
  65088. @@ -15,9 +15,8 @@
  65089. Lesser General Public License for more details.
  65090. You should have received a copy of the GNU Lesser General Public
  65091. - License along with the GNU C Library; if not, write to the Free
  65092. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65093. - 02111-1307 USA. */
  65094. + License along with the GNU C Library; if not, see
  65095. + <http://www.gnu.org/licenses/>. */
  65096. #ifndef _BITS_SYSCALLS_H
  65097. #define _BITS_SYSCALLS_H
  65098. 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
  65099. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  65100. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/uClibc_arch_features.h 2014-06-02 17:40:34.526714818 +0200
  65101. @@ -11,8 +11,8 @@
  65102. /* can your target use syscall6() for mmap ? */
  65103. #define __UCLIBC_MMAP_HAS_6_ARGS__
  65104. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  65105. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  65106. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  65107. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  65108. /* does your target have a broken create_module() ? */
  65109. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  65110. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/wordsize.h uClibc-git/libc/sysdeps/linux/ia64/bits/wordsize.h
  65111. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  65112. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/wordsize.h 2014-06-02 17:40:34.526714818 +0200
  65113. @@ -12,8 +12,7 @@
  65114. Lesser General Public License for more details.
  65115. You should have received a copy of the GNU Lesser General Public
  65116. - License along with the GNU C Library; if not, write to the Free
  65117. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65118. - 02111-1307 USA. */
  65119. + License along with the GNU C Library; if not, see
  65120. + <http://www.gnu.org/licenses/>. */
  65121. #define __WORDSIZE 64
  65122. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/brk.S uClibc-git/libc/sysdeps/linux/ia64/brk.S
  65123. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/brk.S 2012-05-15 09:20:09.000000000 +0200
  65124. +++ uClibc-git/libc/sysdeps/linux/ia64/brk.S 2014-06-02 17:40:34.526714818 +0200
  65125. @@ -15,9 +15,8 @@
  65126. Lesser General Public License for more details.
  65127. You should have received a copy of the GNU Lesser General Public
  65128. - License along with the GNU C Library; if not, write to the Free
  65129. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65130. - 02111-1307 USA. */
  65131. + License along with the GNU C Library; if not, see
  65132. + <http://www.gnu.org/licenses/>. */
  65133. #include "sysdep.h"
  65134. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/clone2.S uClibc-git/libc/sysdeps/linux/ia64/clone2.S
  65135. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/clone2.S 2012-05-15 09:20:09.000000000 +0200
  65136. +++ uClibc-git/libc/sysdeps/linux/ia64/clone2.S 2014-06-02 17:40:34.526714818 +0200
  65137. @@ -12,9 +12,8 @@
  65138. Lesser General Public License for more details.
  65139. You should have received a copy of the GNU Lesser General Public
  65140. - License along with the GNU C Library; if not, write to the Free
  65141. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65142. - 02111-1307 USA. */
  65143. + License along with the GNU C Library; if not, see
  65144. + <http://www.gnu.org/licenses/>. */
  65145. #include "sysdep.h"
  65146. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/crt1.S uClibc-git/libc/sysdeps/linux/ia64/crt1.S
  65147. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/crt1.S 2012-05-15 09:20:09.000000000 +0200
  65148. +++ uClibc-git/libc/sysdeps/linux/ia64/crt1.S 2014-06-02 17:40:34.526714818 +0200
  65149. @@ -30,9 +30,8 @@
  65150. Lesser General Public License for more details.
  65151. You should have received a copy of the GNU Lesser General Public
  65152. - License along with the GNU C Library; if not, write to the Free
  65153. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65154. - 02111-1307 USA. */
  65155. + License along with the GNU C Library; if not, see
  65156. + <http://www.gnu.org/licenses/>. */
  65157. #define __ASSEMBLY__
  65158. #include "sysdep.h"
  65159. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/fork.S uClibc-git/libc/sysdeps/linux/ia64/fork.S
  65160. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/fork.S 2012-05-15 09:20:09.000000000 +0200
  65161. +++ uClibc-git/libc/sysdeps/linux/ia64/fork.S 2014-06-02 17:40:34.526714818 +0200
  65162. @@ -12,9 +12,8 @@
  65163. Lesser General Public License for more details.
  65164. You should have received a copy of the GNU Lesser General Public
  65165. - License along with the GNU C Library; if not, write to the Free
  65166. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65167. - 02111-1307 USA. */
  65168. + License along with the GNU C Library; if not, see
  65169. + <http://www.gnu.org/licenses/>. */
  65170. #include "sysdep.h"
  65171. @@ -24,7 +23,10 @@
  65172. /* pid_t fork(void); */
  65173. /* Implemented as a clone system call with parameters SIGCHLD and 0 */
  65174. -ENTRY(__libc_fork)
  65175. +#ifdef __UCLIBC_HAS_THREADS__
  65176. +.weak fork
  65177. +#endif
  65178. +ENTRY(fork)
  65179. alloc r2=ar.pfs,0,0,2,0
  65180. mov out0=SIGCHLD /* Return SIGCHLD when child finishes */
  65181. /* no other clone flags; nothing shared */
  65182. @@ -34,9 +36,8 @@
  65183. cmp.eq p6,p0=-1,r10
  65184. (p6) br.cond.spnt.few __syscall_error
  65185. ret
  65186. -PSEUDO_END(__libc_fork)
  65187. -
  65188. -weak_alias (__libc_fork, __fork)
  65189. -libc_hidden_def (__fork)
  65190. -weak_alias (__libc_fork, fork)
  65191. -libc_hidden_weak (fork)
  65192. +PSEUDO_END(fork)
  65193. +#ifdef __UCLIBC_HAS_THREADS__
  65194. +strong_alias(fork,__libc_fork)
  65195. +#endif
  65196. +libc_hidden_def(fork)
  65197. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/ia64/jmpbuf-unwind.h
  65198. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  65199. +++ uClibc-git/libc/sysdeps/linux/ia64/jmpbuf-unwind.h 2014-06-02 17:40:34.526714818 +0200
  65200. @@ -0,0 +1,11 @@
  65201. +/*
  65202. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  65203. + *
  65204. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  65205. + */
  65206. +#include <setjmp.h>
  65207. +
  65208. +/* Test if longjmp to JMPBUF would unwind the frame containing a local
  65209. + variable at ADDRESS. */
  65210. +#define _JMPBUF_UNWINDS(_jmpbuf, _address) \
  65211. + ((void *)(_address) < (void *)(((long *)_jmpbuf)[0]))
  65212. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/__longjmp.S uClibc-git/libc/sysdeps/linux/ia64/__longjmp.S
  65213. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  65214. +++ uClibc-git/libc/sysdeps/linux/ia64/__longjmp.S 2014-06-02 17:40:34.502714686 +0200
  65215. @@ -12,9 +12,8 @@
  65216. Lesser General Public License for more details.
  65217. You should have received a copy of the GNU Lesser General Public
  65218. - License along with the GNU C Library; if not, write to the Free
  65219. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65220. - 02111-1307 USA.
  65221. + License along with the GNU C Library; if not, see
  65222. + <http://www.gnu.org/licenses/>.
  65223. Note that __sigsetjmp() did NOT flush the register stack. Instead,
  65224. we do it here since __longjmp() is usually much less frequently
  65225. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/Makefile.arch uClibc-git/libc/sysdeps/linux/ia64/Makefile.arch
  65226. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  65227. +++ uClibc-git/libc/sysdeps/linux/ia64/Makefile.arch 2014-06-02 17:40:34.502714686 +0200
  65228. @@ -5,8 +5,8 @@
  65229. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  65230. #
  65231. -CSRC := __syscall_error.c
  65232. +CSRC-y := __syscall_error.c
  65233. -SSRC := \
  65234. +SSRC-y := \
  65235. __longjmp.S brk.S bsd-setjmp.S bsd-_setjmp.S clone2.S fork.S \
  65236. pipe.S setjmp.S syscall.S vfork.S
  65237. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/pipe.S uClibc-git/libc/sysdeps/linux/ia64/pipe.S
  65238. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/pipe.S 2012-05-15 09:20:09.000000000 +0200
  65239. +++ uClibc-git/libc/sysdeps/linux/ia64/pipe.S 2014-06-02 17:40:34.526714818 +0200
  65240. @@ -13,9 +13,8 @@
  65241. Lesser General Public License for more details.
  65242. You should have received a copy of the GNU Lesser General Public
  65243. - License along with the GNU C Library; if not, write to the Free
  65244. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65245. - 02111-1307 USA. */
  65246. + License along with the GNU C Library; if not, see
  65247. + <http://www.gnu.org/licenses/>. */
  65248. /* __pipe is a special syscall since it returns two values. */
  65249. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/setjmp.S uClibc-git/libc/sysdeps/linux/ia64/setjmp.S
  65250. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  65251. +++ uClibc-git/libc/sysdeps/linux/ia64/setjmp.S 2014-06-02 17:40:34.526714818 +0200
  65252. @@ -13,9 +13,8 @@
  65253. Lesser General Public License for more details.
  65254. You should have received a copy of the GNU Lesser General Public
  65255. - License along with the GNU C Library; if not, write to the Free
  65256. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65257. - 02111-1307 USA.
  65258. + License along with the GNU C Library; if not, see
  65259. + <http://www.gnu.org/licenses/>.
  65260. The layout of the jmp_buf is as follows. This is subject to change
  65261. and user-code should never depend on the particular layout of
  65262. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/io.h uClibc-git/libc/sysdeps/linux/ia64/sys/io.h
  65263. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/io.h 2012-05-15 09:20:09.000000000 +0200
  65264. +++ uClibc-git/libc/sysdeps/linux/ia64/sys/io.h 2014-06-02 17:40:34.526714818 +0200
  65265. @@ -13,9 +13,8 @@
  65266. Lesser General Public License for more details.
  65267. You should have received a copy of the GNU Lesser General Public
  65268. - License along with the GNU C Library; if not, write to the Free
  65269. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65270. - 02111-1307 USA. */
  65271. + License along with the GNU C Library; if not, see
  65272. + <http://www.gnu.org/licenses/>. */
  65273. #ifndef _SYS_IO_H
  65274. #define _SYS_IO_H 1
  65275. @@ -24,6 +23,7 @@
  65276. __BEGIN_DECLS
  65277. +#if defined __UCLIBC_LINUX_SPECIFIC__
  65278. /* If TURN_ON is TRUE, request for permission to do direct i/o on the
  65279. port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
  65280. permission off for that range. This call requires root privileges.
  65281. @@ -33,12 +33,12 @@
  65282. E.g., Linux/Alpha for Alpha PCs supports this. */
  65283. extern int ioperm (unsigned long int __from, unsigned long int __num,
  65284. int __turn_on);
  65285. -libc_hidden_proto(ioperm)
  65286. /* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to
  65287. access any I/O port is granted. This call requires root
  65288. privileges. */
  65289. extern int iopl (int __level);
  65290. +#endif /* __UCLIBC_LINUX_SPECIFIC__ */
  65291. extern unsigned int _inb (unsigned long int __port);
  65292. extern unsigned int _inb (unsigned long int __port);
  65293. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/procfs.h uClibc-git/libc/sysdeps/linux/ia64/sys/procfs.h
  65294. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  65295. +++ uClibc-git/libc/sysdeps/linux/ia64/sys/procfs.h 2014-06-02 17:40:34.526714818 +0200
  65296. @@ -12,9 +12,8 @@
  65297. Lesser General Public License for more details.
  65298. You should have received a copy of the GNU Lesser General Public
  65299. - License along with the GNU C Library; if not, write to the Free
  65300. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65301. - 02111-1307 USA. */
  65302. + License along with the GNU C Library; if not, see
  65303. + <http://www.gnu.org/licenses/>. */
  65304. #ifndef _SYS_PROCFS_H
  65305. #define _SYS_PROCFS_H 1
  65306. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/ptrace.h uClibc-git/libc/sysdeps/linux/ia64/sys/ptrace.h
  65307. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
  65308. +++ uClibc-git/libc/sysdeps/linux/ia64/sys/ptrace.h 2014-06-02 17:40:34.526714818 +0200
  65309. @@ -13,9 +13,8 @@
  65310. Lesser General Public License for more details.
  65311. You should have received a copy of the GNU Lesser General Public
  65312. - License along with the GNU C Library; if not, write to the Free
  65313. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65314. - 02111-1307 USA. */
  65315. + License along with the GNU C Library; if not, see
  65316. + <http://www.gnu.org/licenses/>. */
  65317. #ifndef _SYS_PTRACE_H
  65318. #define _SYS_PTRACE_H 1
  65319. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/ucontext.h uClibc-git/libc/sysdeps/linux/ia64/sys/ucontext.h
  65320. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  65321. +++ uClibc-git/libc/sysdeps/linux/ia64/sys/ucontext.h 2014-06-02 17:40:34.526714818 +0200
  65322. @@ -12,9 +12,8 @@
  65323. Lesser General Public License for more details.
  65324. You should have received a copy of the GNU Lesser General Public
  65325. - License along with the GNU C Library; if not, write to the Free
  65326. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65327. - 02111-1307 USA. */
  65328. + License along with the GNU C Library; if not, see
  65329. + <http://www.gnu.org/licenses/>. */
  65330. #ifndef _SYS_UCONTEXT_H
  65331. #define _SYS_UCONTEXT_H 1
  65332. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/user.h uClibc-git/libc/sysdeps/linux/ia64/sys/user.h
  65333. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/user.h 2012-05-15 09:20:09.000000000 +0200
  65334. +++ uClibc-git/libc/sysdeps/linux/ia64/sys/user.h 2014-06-02 17:40:34.526714818 +0200
  65335. @@ -12,9 +12,8 @@
  65336. Lesser General Public License for more details.
  65337. You should have received a copy of the GNU Lesser General Public
  65338. - License along with the GNU C Library; if not, write to the Free
  65339. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65340. - 02111-1307 USA. */
  65341. + License along with the GNU C Library; if not, see
  65342. + <http://www.gnu.org/licenses/>. */
  65343. #ifndef _SYS_USER_H
  65344. #define _SYS_USER_H 1
  65345. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/syscall.S uClibc-git/libc/sysdeps/linux/ia64/syscall.S
  65346. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/syscall.S 2012-05-15 09:20:09.000000000 +0200
  65347. +++ uClibc-git/libc/sysdeps/linux/ia64/syscall.S 2014-06-02 17:40:34.526714818 +0200
  65348. @@ -13,9 +13,8 @@
  65349. Lesser General Public License for more details.
  65350. You should have received a copy of the GNU Lesser General Public
  65351. - License along with the GNU C Library; if not, write to the Free
  65352. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65353. - 02111-1307 USA. */
  65354. + License along with the GNU C Library; if not, see
  65355. + <http://www.gnu.org/licenses/>. */
  65356. #include "sysdep.h"
  65357. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sysdep.h uClibc-git/libc/sysdeps/linux/ia64/sysdep.h
  65358. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  65359. +++ uClibc-git/libc/sysdeps/linux/ia64/sysdep.h 2014-06-02 17:40:34.526714818 +0200
  65360. @@ -14,13 +14,13 @@
  65361. Lesser General Public License for more details.
  65362. You should have received a copy of the GNU Lesser General Public
  65363. - License along with the GNU C Library; if not, write to the Free
  65364. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65365. - 02111-1307 USA. */
  65366. + License along with the GNU C Library; if not, see
  65367. + <http://www.gnu.org/licenses/>. */
  65368. #ifndef _LINUX_IA64_SYSDEP_H
  65369. #define _LINUX_IA64_SYSDEP_H 1
  65370. +#include <common/sysdep.h>
  65371. #include <features.h>
  65372. #include <asm/unistd.h>
  65373. @@ -49,6 +49,15 @@
  65374. C_LABEL(name) \
  65375. CALL_MCOUNT
  65376. +#define HIDDEN_ENTRY(name) \
  65377. + .text; \
  65378. + .align 32; \
  65379. + .proc C_SYMBOL_NAME(name); \
  65380. + .global C_SYMBOL_NAME(name); \
  65381. + .hidden C_SYMBOL_NAME(name); \
  65382. + C_LABEL(name) \
  65383. + CALL_MCOUNT
  65384. +
  65385. #define LEAF(name) \
  65386. .text; \
  65387. .align 32; \
  65388. @@ -161,7 +170,6 @@
  65389. #define ret br.ret.sptk.few b0
  65390. #define ret_NOERRNO ret
  65391. -#define ret_ERRVAL ret
  65392. #endif /* not __ASSEMBLER__ */
  65393. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/vfork.S uClibc-git/libc/sysdeps/linux/ia64/vfork.S
  65394. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/vfork.S 2012-05-15 09:20:09.000000000 +0200
  65395. +++ uClibc-git/libc/sysdeps/linux/ia64/vfork.S 2014-06-02 17:40:34.526714818 +0200
  65396. @@ -12,9 +12,8 @@
  65397. Lesser General Public License for more details.
  65398. You should have received a copy of the GNU Lesser General Public
  65399. - License along with the GNU C Library; if not, write to the Free
  65400. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65401. - 02111-1307 USA. */
  65402. + License along with the GNU C Library; if not, see
  65403. + <http://www.gnu.org/licenses/>. */
  65404. #include "sysdep.h"
  65405. @@ -29,7 +28,7 @@
  65406. /* pid_t vfork(void); */
  65407. /* Implemented as __clone_syscall(CLONE_VFORK | CLONE_VM | SIGCHLD, 0) */
  65408. -ENTRY(__vfork)
  65409. +HIDDEN_ENTRY(__vfork)
  65410. alloc r2=ar.pfs,0,0,2,0
  65411. mov out0=CLONE_VM+CLONE_VFORK+SIGCHLD
  65412. mov out1=0 /* Standard sp value. */
  65413. @@ -41,4 +40,4 @@
  65414. PSEUDO_END(__vfork)
  65415. weak_alias(__vfork,vfork)
  65416. -libc_hidden_weak(vfork)
  65417. +libc_hidden_def(vfork)
  65418. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/byteswap.h uClibc-git/libc/sysdeps/linux/m68k/bits/byteswap.h
  65419. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/byteswap.h 2012-05-15 09:20:09.000000000 +0200
  65420. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/byteswap.h 2014-06-02 17:40:34.526714818 +0200
  65421. @@ -13,9 +13,8 @@
  65422. Lesser General Public License for more details.
  65423. You should have received a copy of the GNU Lesser General Public
  65424. - License along with the GNU C Library; if not, write to the Free
  65425. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65426. - 02111-1307 USA. */
  65427. + License along with the GNU C Library; if not, see
  65428. + <http://www.gnu.org/licenses/>. */
  65429. #ifndef _ASM_BITS_BYTESWAP_H
  65430. #define _ASM_BITS_BYTESWAP_H 1
  65431. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/fcntl.h uClibc-git/libc/sysdeps/linux/m68k/bits/fcntl.h
  65432. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  65433. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/fcntl.h 2014-06-02 17:40:34.526714818 +0200
  65434. @@ -13,9 +13,8 @@
  65435. Lesser General Public License for more details.
  65436. You should have received a copy of the GNU Lesser General Public
  65437. - License along with the GNU C Library; if not, write to the Free
  65438. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65439. - 02111-1307 USA. */
  65440. + License along with the GNU C Library; if not, see
  65441. + <http://www.gnu.org/licenses/>. */
  65442. #ifndef _FCNTL_H
  65443. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  65444. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/fenv.h uClibc-git/libc/sysdeps/linux/m68k/bits/fenv.h
  65445. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  65446. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/fenv.h 2014-06-02 17:40:34.526714818 +0200
  65447. @@ -12,9 +12,8 @@
  65448. Lesser General Public License for more details.
  65449. You should have received a copy of the GNU Lesser General Public
  65450. - License along with the GNU C Library; if not, write to the Free
  65451. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65452. - 02111-1307 USA. */
  65453. + License along with the GNU C Library; if not, see
  65454. + <http://www.gnu.org/licenses/>. */
  65455. #ifndef _FENV_H
  65456. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  65457. @@ -71,9 +70,9 @@
  65458. fenv_t;
  65459. /* If the default argument is used we use this value. */
  65460. -#define FE_DFL_ENV ((__const fenv_t *) -1)
  65461. +#define FE_DFL_ENV ((const fenv_t *) -1)
  65462. #ifdef __USE_GNU
  65463. /* Floating-point environment where none of the exceptions are masked. */
  65464. -# define FE_NOMASK_ENV ((__const fenv_t *) -2)
  65465. +# define FE_NOMASK_ENV ((const fenv_t *) -2)
  65466. #endif
  65467. 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
  65468. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/huge_vall.h 1970-01-01 01:00:00.000000000 +0100
  65469. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/huge_vall.h 2014-06-02 17:40:34.526714818 +0200
  65470. @@ -0,0 +1,42 @@
  65471. +/* `HUGE_VALL' constant for m68k (where it is infinity).
  65472. + Used by <stdlib.h> and <math.h> functions for overflow.
  65473. + Copyright (C) 1992, 1995, 1996, 1997, 1999, 2000, 2004
  65474. + Free Software Foundation, Inc.
  65475. + This file is part of the GNU C Library.
  65476. +
  65477. + The GNU C Library is free software; you can redistribute it and/or
  65478. + modify it under the terms of the GNU Lesser General Public
  65479. + License as published by the Free Software Foundation; either
  65480. + version 2.1 of the License, or (at your option) any later version.
  65481. +
  65482. + The GNU C Library is distributed in the hope that it will be useful,
  65483. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  65484. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  65485. + Lesser General Public License for more details.
  65486. +
  65487. + You should have received a copy of the GNU Lesser General Public
  65488. + License along with the GNU C Library; if not, see
  65489. + <http://www.gnu.org/licenses/>. */
  65490. +
  65491. +#ifndef _MATH_H
  65492. +# error "Never use <bits/huge_val.h> directly; include <math.h> instead."
  65493. +#endif
  65494. +
  65495. +#if __GNUC_PREREQ(3,3)
  65496. +# define HUGE_VALL (__builtin_huge_vall ())
  65497. +#elif __GNUC_PREREQ(2,96)
  65498. +# define HUGE_VALL (__extension__ 0x1.0p32767L)
  65499. +#elif defined__GNUC__
  65500. +
  65501. +# define HUGE_VALL \
  65502. + (__extension__ \
  65503. + ((union { unsigned long __l[3]; long double __ld; }) \
  65504. + { __l: { 0x7fff0000UL, 0x80000000UL, 0UL } }).__ld)
  65505. +
  65506. +#else /* not GCC */
  65507. +
  65508. +static union { unsigned char __c[12]; long double __ld; } __huge_vall =
  65509. + { { 0x7f, 0xff, 0, 0, 0x80, 0, 0, 0, 0, 0, 0, 0 } };
  65510. +# define HUGE_VALL (__huge_vall.__ld)
  65511. +
  65512. +#endif /* GCC 2.95. */
  65513. 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
  65514. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  65515. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/kernel_types.h 2014-06-02 17:40:34.526714818 +0200
  65516. @@ -32,6 +32,8 @@
  65517. typedef unsigned short __kernel_old_gid_t;
  65518. typedef long long __kernel_loff_t;
  65519. typedef __kernel_dev_t __kernel_old_dev_t;
  65520. +typedef long __kernel_long_t;
  65521. +typedef unsigned long __kernel_ulong_t;
  65522. typedef struct {
  65523. #ifdef __USE_ALL
  65524. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/mathdef.h uClibc-git/libc/sysdeps/linux/m68k/bits/mathdef.h
  65525. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  65526. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/mathdef.h 2014-06-02 17:40:34.526714818 +0200
  65527. @@ -12,9 +12,8 @@
  65528. Lesser General Public License for more details.
  65529. You should have received a copy of the GNU Lesser General Public
  65530. - License along with the GNU C Library; if not, write to the Free
  65531. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65532. - 02111-1307 USA. */
  65533. + License along with the GNU C Library; if not, see
  65534. + <http://www.gnu.org/licenses/>. */
  65535. #if !defined _MATH_H && !defined _COMPLEX_H
  65536. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  65537. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/mathinline.h uClibc-git/libc/sysdeps/linux/m68k/bits/mathinline.h
  65538. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/mathinline.h 2012-05-15 09:20:09.000000000 +0200
  65539. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/mathinline.h 2014-06-02 17:40:34.526714818 +0200
  65540. @@ -14,9 +14,8 @@
  65541. Lesser General Public License for more details.
  65542. You should have received a copy of the GNU Lesser General Public
  65543. - License along with the GNU C Library; if not, write to the Free
  65544. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65545. - 02111-1307 USA. */
  65546. + License along with the GNU C Library; if not, see
  65547. + <http://www.gnu.org/licenses/>. */
  65548. #ifdef __GNUC__
  65549. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/poll.h uClibc-git/libc/sysdeps/linux/m68k/bits/poll.h
  65550. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/poll.h 2012-05-15 09:20:09.000000000 +0200
  65551. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/poll.h 2014-06-02 17:40:34.526714818 +0200
  65552. @@ -12,9 +12,8 @@
  65553. Lesser General Public License for more details.
  65554. You should have received a copy of the GNU Lesser General Public
  65555. - License along with the GNU C Library; if not, write to the Free
  65556. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65557. - 02111-1307 USA. */
  65558. + License along with the GNU C Library; if not, see
  65559. + <http://www.gnu.org/licenses/>. */
  65560. #ifndef _SYS_POLL_H
  65561. # error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
  65562. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/setjmp.h uClibc-git/libc/sysdeps/linux/m68k/bits/setjmp.h
  65563. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  65564. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/setjmp.h 2014-06-02 17:40:34.526714818 +0200
  65565. @@ -13,9 +13,8 @@
  65566. Lesser General Public License for more details.
  65567. You should have received a copy of the GNU Lesser General Public
  65568. - License along with the GNU C Library; if not, write to the Free
  65569. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65570. - 02111-1307 USA. */
  65571. + License along with the GNU C Library; if not, see
  65572. + <http://www.gnu.org/licenses/>. */
  65573. /* Define the machine-dependent type `jmp_buf'. m68k version. */
  65574. #ifndef _BITS_SETJMP_H
  65575. @@ -25,7 +24,7 @@
  65576. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  65577. #endif
  65578. -#ifndef _ASM
  65579. +#include <features.h>
  65580. typedef struct
  65581. {
  65582. @@ -37,7 +36,7 @@
  65583. int *__fp;
  65584. int *__sp;
  65585. -#if defined __HAVE_68881__ || defined __HAVE_FPU__
  65586. +#if defined __HAVE_68881__ || defined __UCLIBC_HAS_FPU__
  65587. /* There are eight floating point registers which
  65588. are saved in IEEE 96-bit extended format. */
  65589. char __fpregs[8 * (96 / 8)];
  65590. @@ -45,24 +44,4 @@
  65591. } __jmp_buf[1];
  65592. -#endif
  65593. -
  65594. -#define JB_REGS 0
  65595. -#define JB_DREGS 0
  65596. -#define JB_AREGS 24
  65597. -#define JB_PC 48
  65598. -#define JB_FPREGS 52
  65599. -
  65600. -#if defined __HAVE_68881__ || defined __HAVE_FPU__
  65601. -# define JB_SIZE 76
  65602. -#else
  65603. -# define JB_SIZE 52
  65604. -#endif
  65605. -
  65606. -
  65607. -/* Test if longjmp to JMPBUF would unwind the frame
  65608. - containing a local variable at ADDRESS. */
  65609. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  65610. - ((void *) (address) < (void *) (jmpbuf)->__aregs[5])
  65611. -
  65612. #endif /* bits/setjmp.h */
  65613. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/m68k/bits/sigcontextinfo.h
  65614. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  65615. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/sigcontextinfo.h 2014-06-02 17:40:34.526714818 +0200
  65616. @@ -13,9 +13,8 @@
  65617. Lesser General Public License for more details.
  65618. You should have received a copy of the GNU Lesser General Public
  65619. - License along with the GNU C Library; if not, write to the Free
  65620. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65621. - 02111-1307 USA. */
  65622. + License along with the GNU C Library; if not, see
  65623. + <http://www.gnu.org/licenses/>. */
  65624. #define SIGCONTEXT int _code, struct sigcontext *
  65625. #define SIGCONTEXT_EXTRA_ARGS _code,
  65626. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/m68k/bits/stackinfo.h
  65627. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  65628. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/stackinfo.h 2014-06-02 17:40:34.526714818 +0200
  65629. @@ -12,9 +12,8 @@
  65630. Lesser General Public License for more details.
  65631. You should have received a copy of the GNU Lesser General Public
  65632. - License along with the GNU C Library; if not, write to the Free
  65633. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65634. - 02111-1307 USA. */
  65635. + License along with the GNU C Library; if not, see
  65636. + <http://www.gnu.org/licenses/>. */
  65637. /* This file contains a bit of information about the stack allocation
  65638. of the processor. */
  65639. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/stat.h uClibc-git/libc/sysdeps/linux/m68k/bits/stat.h
  65640. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  65641. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/stat.h 2014-06-02 17:40:34.526714818 +0200
  65642. @@ -13,9 +13,8 @@
  65643. Lesser General Public License for more details.
  65644. You should have received a copy of the GNU Lesser General Public
  65645. - License along with the GNU C Library; if not, write to the Free
  65646. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65647. - 02111-1307 USA. */
  65648. + License along with the GNU C Library; if not, see
  65649. + <http://www.gnu.org/licenses/>. */
  65650. #ifndef _SYS_STAT_H
  65651. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  65652. 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
  65653. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  65654. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/uClibc_arch_features.h 2014-06-02 17:40:34.526714818 +0200
  65655. @@ -15,8 +15,8 @@
  65656. /* can your target use syscall6() for mmap ? */
  65657. #undef __UCLIBC_MMAP_HAS_6_ARGS__
  65658. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  65659. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  65660. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  65661. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  65662. /* does your target have a broken create_module() ? */
  65663. #define __UCLIBC_BROKEN_CREATE_MODULE__
  65664. 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
  65665. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
  65666. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/uClibc_page.h 2014-06-02 17:40:34.526714818 +0200
  65667. @@ -11,8 +11,8 @@
  65668. * Library General Public License for more details.
  65669. *
  65670. * You should have received a copy of the GNU Library General Public
  65671. - * License along with this library; if not, write to the Free
  65672. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  65673. + * License along with this library; if not, see
  65674. + * <http://www.gnu.org/licenses/>.
  65675. */
  65676. /* Supply an architecture specific value for PAGE_SIZE and friends. */
  65677. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/wordsize.h uClibc-git/libc/sysdeps/linux/m68k/bits/wordsize.h
  65678. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  65679. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/wordsize.h 2014-06-02 17:40:34.526714818 +0200
  65680. @@ -12,8 +12,7 @@
  65681. Lesser General Public License for more details.
  65682. You should have received a copy of the GNU Lesser General Public
  65683. - License along with the GNU C Library; if not, write to the Free
  65684. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65685. - 02111-1307 USA. */
  65686. + License along with the GNU C Library; if not, see
  65687. + <http://www.gnu.org/licenses/>. */
  65688. #define __WORDSIZE 32
  65689. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/m68k/bsd-setjmp.S
  65690. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
  65691. +++ uClibc-git/libc/sysdeps/linux/m68k/bsd-setjmp.S 2014-06-02 17:40:34.530714841 +0200
  65692. @@ -2,9 +2,8 @@
  65693. /* Copyright (C) 2002, David McCullough <davidm@snapgear.com> */
  65694. /* This file is released under the LGPL, any version you like */
  65695. -#define _ASM
  65696. -#define _SETJMP_H
  65697. -#include <bits/setjmp.h>
  65698. +#include <features.h>
  65699. +#include <jmpbuf-offsets.h>
  65700. #include "m68k_pic.S"
  65701. .globl setjmp;
  65702. @@ -15,7 +14,7 @@
  65703. moveal %sp@(4), %a0
  65704. movel %sp@(0), %a0@(JB_PC)
  65705. moveml %d2-%d7/%a2-%a7, %a0@(JB_REGS)
  65706. -#if defined(__HAVE_68881__) || defined(__HAVE_FPU__)
  65707. +#if defined __HAVE_68881__ || defined __UCLIBC_HAS_FPU__
  65708. fmovemx %fp2-%fp7, %a0@(JB_FPREGS)
  65709. #endif
  65710. clrl %d0
  65711. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/m68k/bsd-_setjmp.S
  65712. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
  65713. +++ uClibc-git/libc/sysdeps/linux/m68k/bsd-_setjmp.S 2014-06-02 17:40:34.530714841 +0200
  65714. @@ -2,9 +2,8 @@
  65715. /* Copyright (C) 2002, David McCullough <davidm@snapgear.com> */
  65716. /* This file is released under the LGPL, any version you like */
  65717. -#define _ASM
  65718. -#define _SETJMP_H
  65719. -#include <bits/setjmp.h>
  65720. +#include <features.h>
  65721. +#include <jmpbuf-offsets.h>
  65722. .globl _setjmp;
  65723. .type _setjmp,@function
  65724. @@ -14,7 +13,7 @@
  65725. moveal %sp@(4), %a0
  65726. movel %sp@(0), %a0@(JB_PC)
  65727. moveml %d2-%d7/%a2-%a7, %a0@(JB_REGS)
  65728. -#if defined(__HAVE_68881__) || defined(__HAVE_FPU__)
  65729. +#if defined __HAVE_68881__ || defined __UCLIBC_HAS_FPU__
  65730. fmovemx %fp2-%fp7, %a0@(JB_FPREGS)
  65731. #endif
  65732. clrl %d0
  65733. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/crt1.S uClibc-git/libc/sysdeps/linux/m68k/crt1.S
  65734. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/crt1.S 2012-05-15 09:20:09.000000000 +0200
  65735. +++ uClibc-git/libc/sysdeps/linux/m68k/crt1.S 2014-06-02 17:40:34.530714841 +0200
  65736. @@ -30,9 +30,8 @@
  65737. Lesser General Public License for more details.
  65738. You should have received a copy of the GNU Lesser General Public
  65739. - License along with the GNU C Library; if not, write to the Free
  65740. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65741. - 02111-1307 USA. */
  65742. + License along with the GNU C Library; if not, see
  65743. + <http://www.gnu.org/licenses/>. */
  65744. #include <features.h>
  65745. #include "m68k_pic.S"
  65746. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/fpu_control.h uClibc-git/libc/sysdeps/linux/m68k/fpu_control.h
  65747. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  65748. +++ uClibc-git/libc/sysdeps/linux/m68k/fpu_control.h 2014-06-02 17:40:34.530714841 +0200
  65749. @@ -13,9 +13,8 @@
  65750. Lesser General Public License for more details.
  65751. You should have received a copy of the GNU Lesser General Public
  65752. - License along with the GNU C Library; if not, write to the Free
  65753. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65754. - 02111-1307 USA. */
  65755. + License along with the GNU C Library; if not, see
  65756. + <http://www.gnu.org/licenses/>. */
  65757. #ifndef _FPU_CONTROL_H
  65758. #define _FPU_CONTROL_H
  65759. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/m68k/jmpbuf-offsets.h
  65760. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  65761. +++ uClibc-git/libc/sysdeps/linux/m68k/jmpbuf-offsets.h 2014-06-02 17:40:34.530714841 +0200
  65762. @@ -0,0 +1,19 @@
  65763. +/*
  65764. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  65765. + *
  65766. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  65767. + */
  65768. +
  65769. +#include <features.h>
  65770. +
  65771. +#define JB_REGS 0
  65772. +#define JB_DREGS 0
  65773. +#define JB_AREGS 24
  65774. +#define JB_PC 48
  65775. +#define JB_FPREGS 52
  65776. +
  65777. +#if defined __HAVE_68881__ || defined __UCLIBC_HAS_FPU__
  65778. +# define JB_SIZE 76
  65779. +#else
  65780. +# define JB_SIZE 52
  65781. +#endif
  65782. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/m68k/jmpbuf-unwind.h
  65783. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  65784. +++ uClibc-git/libc/sysdeps/linux/m68k/jmpbuf-unwind.h 2014-06-02 17:40:34.530714841 +0200
  65785. @@ -0,0 +1,11 @@
  65786. +/*
  65787. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  65788. + *
  65789. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  65790. + */
  65791. +#include <setjmp.h>
  65792. +
  65793. +/* Test if longjmp to JMPBUF would unwind the frame
  65794. + containing a local variable at ADDRESS. */
  65795. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  65796. + ((void *) (address) < (void *) (jmpbuf)->__aregs[5])
  65797. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/__longjmp.S uClibc-git/libc/sysdeps/linux/m68k/__longjmp.S
  65798. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  65799. +++ uClibc-git/libc/sysdeps/linux/m68k/__longjmp.S 2014-06-02 17:40:34.526714818 +0200
  65800. @@ -2,10 +2,8 @@
  65801. /* Copyright (C) 2002, David McCullough <davidm@snapgear.com> */
  65802. /* This file is released under the LGPL, any version you like */
  65803. -#define _ASM
  65804. -#define _SETJMP_H
  65805. #include <features.h>
  65806. -#include <bits/setjmp.h>
  65807. +#include <jmpbuf-offsets.h>
  65808. .globl __longjmp
  65809. .type __longjmp,@function
  65810. @@ -17,7 +15,7 @@
  65811. movel #1, %d0
  65812. 1:
  65813. moveml %a0@(JB_REGS), %d2-%d7/%a2-%a7
  65814. -#if defined(__HAVE_68881__) || defined(__HAVE_FPU__)
  65815. +#if defined __HAVE_68881__ || defined __UCLIBC_HAS_FPU__
  65816. fmovemx %a0@(JB_FPREGS), %fp2-%fp7
  65817. #endif
  65818. movel %a0@(JB_PC), %sp@
  65819. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/Makefile.arch uClibc-git/libc/sysdeps/linux/m68k/Makefile.arch
  65820. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  65821. +++ uClibc-git/libc/sysdeps/linux/m68k/Makefile.arch 2014-06-02 17:40:34.526714818 +0200
  65822. @@ -5,6 +5,6 @@
  65823. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  65824. #
  65825. -CSRC := brk.c __syscall_error.c
  65826. +CSRC-y := brk.c __syscall_error.c
  65827. -SSRC := __longjmp.S bsd-_setjmp.S bsd-setjmp.S clone.S setjmp.S vfork.S
  65828. +SSRC-y := __longjmp.S bsd-_setjmp.S bsd-setjmp.S clone.S setjmp.S vfork.S
  65829. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/setjmp.S uClibc-git/libc/sysdeps/linux/m68k/setjmp.S
  65830. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  65831. +++ uClibc-git/libc/sysdeps/linux/m68k/setjmp.S 2014-06-02 17:40:34.530714841 +0200
  65832. @@ -2,9 +2,8 @@
  65833. /* Copyright (C) 2002, David McCullough <davidm@snapgear.com> */
  65834. /* This file is released under the LGPL, any version you like */
  65835. -#define _ASM
  65836. -#define _SETJMP_H
  65837. -#include <bits/setjmp.h>
  65838. +#include <features.h>
  65839. +#include <jmpbuf-offsets.h>
  65840. #include "m68k_pic.S"
  65841. .globl __sigsetjmp;
  65842. @@ -15,7 +14,7 @@
  65843. moveal %sp@(4), %a0
  65844. movel %sp@(0), %a0@(JB_PC)
  65845. moveml %d2-%d7/%a2-%a7, %a0@(JB_REGS)
  65846. -#if defined(__HAVE_68881__) || defined(__HAVE_FPU__)
  65847. +#if defined __HAVE_68881__ || defined __UCLIBC_HAS_FPU__
  65848. fmovemx %fp2-%fp7, %a0@(JB_FPREGS)
  65849. #endif
  65850. clrl %d0
  65851. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/sys/procfs.h uClibc-git/libc/sysdeps/linux/m68k/sys/procfs.h
  65852. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  65853. +++ uClibc-git/libc/sysdeps/linux/m68k/sys/procfs.h 2014-06-02 17:40:34.530714841 +0200
  65854. @@ -12,9 +12,8 @@
  65855. Lesser General Public License for more details.
  65856. You should have received a copy of the GNU Lesser General Public
  65857. - License along with the GNU C Library; if not, write to the Free
  65858. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65859. - 02111-1307 USA. */
  65860. + License along with the GNU C Library; if not, see
  65861. + <http://www.gnu.org/licenses/>. */
  65862. #ifndef _SYS_PROCFS_H
  65863. #define _SYS_PROCFS_H 1
  65864. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/sys/reg.h uClibc-git/libc/sysdeps/linux/m68k/sys/reg.h
  65865. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/sys/reg.h 2012-05-15 09:20:09.000000000 +0200
  65866. +++ uClibc-git/libc/sysdeps/linux/m68k/sys/reg.h 2014-06-02 17:40:34.530714841 +0200
  65867. @@ -12,9 +12,8 @@
  65868. Lesser General Public License for more details.
  65869. You should have received a copy of the GNU Lesser General Public
  65870. - License along with the GNU C Library; if not, write to the Free
  65871. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65872. - 02111-1307 USA. */
  65873. + License along with the GNU C Library; if not, see
  65874. + <http://www.gnu.org/licenses/>. */
  65875. #ifndef _SYS_REG_H
  65876. #define _SYS_REG_H 1
  65877. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/sys/ucontext.h uClibc-git/libc/sysdeps/linux/m68k/sys/ucontext.h
  65878. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  65879. +++ uClibc-git/libc/sysdeps/linux/m68k/sys/ucontext.h 2014-06-02 17:40:34.530714841 +0200
  65880. @@ -12,9 +12,8 @@
  65881. Lesser General Public License for more details.
  65882. You should have received a copy of the GNU Lesser General Public
  65883. - License along with the GNU C Library; if not, write to the Free
  65884. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65885. - 02111-1307 USA. */
  65886. + License along with the GNU C Library; if not, see
  65887. + <http://www.gnu.org/licenses/>. */
  65888. /* System V/m68k ABI compliant context switching support. */
  65889. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/vfork.S uClibc-git/libc/sysdeps/linux/m68k/vfork.S
  65890. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/vfork.S 2012-05-15 09:20:09.000000000 +0200
  65891. +++ uClibc-git/libc/sysdeps/linux/m68k/vfork.S 2014-06-02 17:40:34.530714841 +0200
  65892. @@ -4,9 +4,7 @@
  65893. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  65894. */
  65895. -#include <features.h>
  65896. -
  65897. -#include <asm/unistd.h>
  65898. +#include <sys/syscall.h>
  65899. #ifndef __NR_vfork
  65900. #define __NR_vfork __NR_fork /* uClinux-2.0 only has fork which is vfork */
  65901. @@ -16,7 +14,6 @@
  65902. .text
  65903. .align 2
  65904. - .globl errno
  65905. .globl __vfork
  65906. .hidden __vfork
  65907. .type __vfork,@function
  65908. @@ -42,4 +39,4 @@
  65909. .size __vfork,.-__vfork
  65910. weak_alias(__vfork,vfork)
  65911. -libc_hidden_weak(vfork)
  65912. +libc_hidden_def(vfork)
  65913. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/Makefile.commonarch uClibc-git/libc/sysdeps/linux/Makefile.commonarch
  65914. --- uClibc-0.9.33.2/libc/sysdeps/linux/Makefile.commonarch 2012-05-15 09:20:09.000000000 +0200
  65915. +++ uClibc-git/libc/sysdeps/linux/Makefile.commonarch 2014-06-02 17:40:34.258713336 +0200
  65916. @@ -8,15 +8,15 @@
  65917. ARCH_DIR := $(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)
  65918. ARCH_OUT := $(top_builddir)libc/sysdeps/linux/$(TARGET_ARCH)
  65919. -ARCH_CSRC := $(patsubst %.c,$(ARCH_DIR)/%.c,$(CSRC))
  65920. -ARCH_COBJ := $(patsubst %.c,$(ARCH_OUT)/%.o,$(CSRC))
  65921. -ARCH_SSRC = $(patsubst %.s,$(ARCH_DIR)/%.s,$(patsubst %.S,$(ARCH_DIR)/%.S,$(SSRC)))
  65922. -ARCH_SOBJ = $(patsubst %.s,$(ARCH_OUT)/%.o,$(patsubst %.S,$(ARCH_OUT)/%.o,$(SSRC)))
  65923. +ARCH_CSRC := $(addprefix $(ARCH_DIR)/,$(CSRC-y))
  65924. +ARCH_COBJ := $(addprefix $(ARCH_OUT)/,$(CSRC-y:.c=.o))
  65925. +ARCH_SSRC = $(addprefix $(ARCH_DIR)/,$(SSRC-y))
  65926. +ARCH_SOBJ = $(patsubst %.s,%.o,$(patsubst %.S,%.o,$(addprefix $(ARCH_OUT)/,$(SSRC-y))))
  65927. -ARCH_OBJS = $(ARCH_COBJ) $(ARCH_SOBJ)
  65928. +ARCH_OBJS-y = $(ARCH_COBJ) $(ARCH_SOBJ)
  65929. crt-y := FORCE
  65930. -libc-y += $(ARCH_OBJS)
  65931. +libc-y += $(ARCH_OBJS-y)
  65932. libc-nomulti-y += $(ARCH_SOBJ)
  65933. objclean-y += CLEAN_$(subst $(top_builddir),,$(ARCH_OUT))
  65934. @@ -37,5 +37,23 @@
  65935. headers_clean-y += HEADERCLEAN_$(subst $(top_builddir),,$(ARCH_OUT))
  65936. HEADERCLEAN_$(subst $(top_builddir),,$(ARCH_OUT)):
  65937. $(do_rm) $(ARCH_HEADERS_OUT)
  65938. -
  65939. endif
  65940. +
  65941. +CFLAGS-ucontext_i.c = -S
  65942. +
  65943. +$(ARCH_OUT)/ucontext_i.c: $(ARCH_DIR)/ucontext_i.sym
  65944. + $(do_awk) $(top_srcdir)extra/scripts/gen-as-const.awk $< > $@
  65945. +
  65946. +$(ARCH_OUT)/ucontext_i.s: $(ARCH_OUT)/ucontext_i.c
  65947. + $(compile.c)
  65948. +
  65949. +$(ARCH_OUT)/ucontext_i.h: $(ARCH_OUT)/ucontext_i.s
  65950. + $(do_sed) $(PTHREAD_GENERATE_MANGLE) $< > $@
  65951. +
  65952. +pregen-headers-$(UCLIBC_HAS_CONTEXT_FUNCS) += $(ARCH_OUT)/ucontext_i.h
  65953. +
  65954. +headers_clean-$(UCLIBC_HAS_CONTEXT_FUNCS) += \
  65955. + HEADERCLEAN_$(subst $(top_builddir),,$(ARCH_OUT)/ucontext_i)
  65956. +
  65957. +HEADERCLEAN_$(subst $(top_builddir),,$(ARCH_OUT)/ucontext_i):
  65958. + $(do_rm) $(addprefix $(ARCH_OUT)/ucontext_i., c h s)
  65959. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/atomic.h uClibc-git/libc/sysdeps/linux/metag/bits/atomic.h
  65960. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/atomic.h 1970-01-01 01:00:00.000000000 +0100
  65961. +++ uClibc-git/libc/sysdeps/linux/metag/bits/atomic.h 2014-06-02 17:40:34.530714841 +0200
  65962. @@ -0,0 +1,66 @@
  65963. +/*
  65964. + * Copyrith (C) 2013 Imagination Technologies Ltd.
  65965. + *
  65966. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  65967. + *
  65968. + */
  65969. +
  65970. +#include <stdint.h>
  65971. +#include <sysdep.h>
  65972. +
  65973. +typedef int8_t atomic8_t;
  65974. +typedef uint8_t uatomic8_t;
  65975. +typedef int_fast8_t atomic_fast8_t;
  65976. +typedef uint_fast8_t uatomic_fast8_t;
  65977. +
  65978. +typedef int32_t atomic32_t;
  65979. +typedef uint32_t uatomic32_t;
  65980. +typedef int_fast32_t atomic_fast32_t;
  65981. +typedef uint_fast32_t uatomic_fast32_t;
  65982. +
  65983. +typedef intptr_t atomicptr_t;
  65984. +typedef uintptr_t uatomicptr_t;
  65985. +typedef intmax_t atomic_max_t;
  65986. +typedef uintmax_t uatomic_max_t;
  65987. +
  65988. +void __metag_link_error (void);
  65989. +
  65990. +#define atomic_full_barrier() \
  65991. + __asm__ __volatile__("": : :"memory")
  65992. +
  65993. +/* Atomic compare and exchange. This sequence relies on the kernel to
  65994. + provide a compare and exchange operation which is atomic. */
  65995. +
  65996. +#define __arch_compare_and_exchange_val_8_acq(mem, newval, oldval) \
  65997. + ({ __metag_link_error (); oldval; })
  65998. +
  65999. +#define __arch_compare_and_exchange_val_16_acq(mem, newval, oldval) \
  66000. + ({ __metag_link_error (); oldval; })
  66001. +
  66002. +/* This code uses the kernel helper to do cmpxchg. It relies on the fact
  66003. + the helper code only clobbers D0Re0. */
  66004. +#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
  66005. + ({ register __typeof (oldval) a_current __asm__ ("D1Ar1"); \
  66006. + register __typeof (oldval) a_newval __asm__ ("D0Ar2") = (newval); \
  66007. + register __typeof (mem) a_ptr __asm__ ("D1Ar3") = (mem); \
  66008. + register __typeof (oldval) a_oldval __asm__ ("D0Ar4") = (oldval); \
  66009. + __asm__ __volatile__ \
  66010. + ("0:\n\t" \
  66011. + "GETD %[cur], [%[ptr]]\n\t" \
  66012. + "CMP %[cur], %[old]\n\t" \
  66013. + "BNE 1f\n\t" \
  66014. + "MOVT D1RtP, #0x6fff\n\t" \
  66015. + "ADD D1RtP, D1RtP, #0xf040\n\t" \
  66016. + "SWAP D1RtP, PC\n\t" \
  66017. + "MOV %[cur], %[old]\n\t" \
  66018. + "CMP D0Re0, #0\n\t" \
  66019. + "BNE 0b\n\t" \
  66020. + "1:" \
  66021. + : [cur] "=&r" (a_current) \
  66022. + : [new] "r" (a_newval), [ptr] "r" (a_ptr), \
  66023. + [old] "r" (a_oldval) \
  66024. + : "D0Re0", "D1RtP", "cc", "memory"); \
  66025. + a_current; })
  66026. +
  66027. +#define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
  66028. + ({ __metag_link_error (); oldval; })
  66029. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/endian.h uClibc-git/libc/sysdeps/linux/metag/bits/endian.h
  66030. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/endian.h 1970-01-01 01:00:00.000000000 +0100
  66031. +++ uClibc-git/libc/sysdeps/linux/metag/bits/endian.h 2014-06-02 17:40:34.530714841 +0200
  66032. @@ -0,0 +1,12 @@
  66033. +/* Meta is little endian
  66034. + *
  66035. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  66036. + *
  66037. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66038. + */
  66039. +
  66040. +#ifndef _ENDIAN_H
  66041. +# error "Never use <bits/endian.h> directly; include <endian.h> instead."
  66042. +#endif
  66043. +
  66044. +#define __BYTE_ORDER __LITTLE_ENDIAN
  66045. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/fcntl.h uClibc-git/libc/sysdeps/linux/metag/bits/fcntl.h
  66046. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/fcntl.h 1970-01-01 01:00:00.000000000 +0100
  66047. +++ uClibc-git/libc/sysdeps/linux/metag/bits/fcntl.h 2014-06-02 17:40:34.530714841 +0200
  66048. @@ -0,0 +1,238 @@
  66049. +/* O_*, F_*, FD_* bit values for Linux.
  66050. + Copyright (C) 1995-1998, 2000, 2004, 2006, 2007, 2008
  66051. + Free Software Foundation, Inc.
  66052. + This file is part of the GNU C Library.
  66053. +
  66054. + The GNU C Library is free software; you can redistribute it and/or
  66055. + modify it under the terms of the GNU Lesser General Public
  66056. + License as published by the Free Software Foundation; either
  66057. + version 2.1 of the License, or (at your option) any later version.
  66058. +
  66059. + The GNU C Library is distributed in the hope that it will be useful,
  66060. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  66061. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  66062. + Lesser General Public License for more details.
  66063. +
  66064. + You should have received a copy of the GNU Lesser General Public
  66065. + License along with the GNU C Library; if not, write to the Free
  66066. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  66067. + 02111-1307 USA. */
  66068. +
  66069. +#ifndef _FCNTL_H
  66070. +# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  66071. +#endif
  66072. +
  66073. +#include <sys/types.h>
  66074. +#ifdef __USE_GNU
  66075. +# include <bits/uio.h>
  66076. +#endif
  66077. +
  66078. +
  66079. +/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
  66080. + located on an ext2 file system */
  66081. +#define O_ACCMODE 0003
  66082. +#define O_RDONLY 00
  66083. +#define O_WRONLY 01
  66084. +#define O_RDWR 02
  66085. +#define O_CREAT 0100 /* not fcntl */
  66086. +#define O_EXCL 0200 /* not fcntl */
  66087. +#define O_NOCTTY 0400 /* not fcntl */
  66088. +#define O_TRUNC 01000 /* not fcntl */
  66089. +#define O_APPEND 02000
  66090. +#define O_NONBLOCK 04000
  66091. +#define O_NDELAY O_NONBLOCK
  66092. +#define O_SYNC 010000
  66093. +#define O_FSYNC O_SYNC
  66094. +#define O_ASYNC 020000
  66095. +
  66096. +#ifdef __USE_GNU
  66097. +# define O_DIRECT 040000 /* Direct disk access. */
  66098. +# define O_DIRECTORY 0200000 /* Must be a directory. */
  66099. +# define O_NOFOLLOW 0400000 /* Do not follow links. */
  66100. +# define O_NOATIME 01000000 /* Do not set atime. */
  66101. +# define O_CLOEXEC 02000000 /* Set close_on_exec. */
  66102. +#endif
  66103. +
  66104. +/* For now Linux has synchronisity options for data and read operations.
  66105. + We define the symbols here but let them do the same as O_SYNC since
  66106. + this is a superset. */
  66107. +#if defined __USE_POSIX199309 || defined __USE_UNIX98
  66108. +# define O_DSYNC O_SYNC /* Synchronize data. */
  66109. +# define O_RSYNC O_SYNC /* Synchronize read operations. */
  66110. +#endif
  66111. +
  66112. +#ifdef __USE_LARGEFILE64
  66113. +# define O_LARGEFILE 0100000
  66114. +#endif
  66115. +
  66116. +/* Values for the second argument to `fcntl'. */
  66117. +#define F_DUPFD 0 /* Duplicate file descriptor. */
  66118. +#define F_GETFD 1 /* Get file descriptor flags. */
  66119. +#define F_SETFD 2 /* Set file descriptor flags. */
  66120. +#define F_GETFL 3 /* Get file status flags. */
  66121. +#define F_SETFL 4 /* Set file status flags. */
  66122. +#ifndef __USE_FILE_OFFSET64
  66123. +# define F_GETLK 5 /* Get record locking info. */
  66124. +# define F_SETLK 6 /* Set record locking info (non-blocking). */
  66125. +# define F_SETLKW 7 /* Set record locking info (blocking). */
  66126. +#else
  66127. +# define F_GETLK F_GETLK64 /* Get record locking info. */
  66128. +# define F_SETLK F_SETLK64 /* Set record locking info (non-blocking).*/
  66129. +# define F_SETLKW F_SETLKW64 /* Set record locking info (blocking). */
  66130. +#endif
  66131. +#define F_GETLK64 12 /* Get record locking info. */
  66132. +#define F_SETLK64 13 /* Set record locking info (non-blocking). */
  66133. +#define F_SETLKW64 14 /* Set record locking info (blocking). */
  66134. +
  66135. +#if defined __USE_BSD || defined __USE_UNIX98
  66136. +# define F_SETOWN 8 /* Get owner of socket (receiver of SIGIO). */
  66137. +# define F_GETOWN 9 /* Set owner of socket (receiver of SIGIO). */
  66138. +#endif
  66139. +
  66140. +#ifdef __USE_GNU
  66141. +# define F_SETSIG 10 /* Set number of signal to be sent. */
  66142. +# define F_GETSIG 11 /* Get number of signal to be sent. */
  66143. +#endif
  66144. +
  66145. +#ifdef __USE_GNU
  66146. +# define F_SETLEASE 1024 /* Set a lease. */
  66147. +# define F_GETLEASE 1025 /* Enquire what lease is active. */
  66148. +# define F_NOTIFY 1026 /* Request notfications on a directory. */
  66149. +# define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with
  66150. + close-on-exit set on new fd. */
  66151. +#endif
  66152. +
  66153. +/* For F_[GET|SET]FD. */
  66154. +#define FD_CLOEXEC 1 /* actually anything with low bit set goes */
  66155. +
  66156. +/* For posix fcntl() and `l_type' field of a `struct flock' for lockf(). */
  66157. +#define F_RDLCK 0 /* Read lock. */
  66158. +#define F_WRLCK 1 /* Write lock. */
  66159. +#define F_UNLCK 2 /* Remove lock. */
  66160. +
  66161. +/* For old implementation of bsd flock(). */
  66162. +#define F_EXLCK 4 /* or 3 */
  66163. +#define F_SHLCK 8 /* or 4 */
  66164. +
  66165. +#ifdef __USE_BSD
  66166. +/* Operations for bsd flock(), also used by the kernel implementation. */
  66167. +# define LOCK_SH 1 /* shared lock */
  66168. +# define LOCK_EX 2 /* exclusive lock */
  66169. +# define LOCK_NB 4 /* or'd with one of the above to prevent
  66170. + blocking */
  66171. +# define LOCK_UN 8 /* remove lock */
  66172. +#endif
  66173. +
  66174. +#ifdef __USE_GNU
  66175. +# define LOCK_MAND 32 /* This is a mandatory flock: */
  66176. +# define LOCK_READ 64 /* ... which allows concurrent read operations. */
  66177. +# define LOCK_WRITE 128 /* ... which allows concurrent write operations. */
  66178. +# define LOCK_RW 192 /* ... Which allows concurrent read & write operations. */
  66179. +#endif
  66180. +
  66181. +#ifdef __USE_GNU
  66182. +/* Types of directory notifications that may be requested with F_NOTIFY. */
  66183. +# define DN_ACCESS 0x00000001 /* File accessed. */
  66184. +# define DN_MODIFY 0x00000002 /* File modified. */
  66185. +# define DN_CREATE 0x00000004 /* File created. */
  66186. +# define DN_DELETE 0x00000008 /* File removed. */
  66187. +# define DN_RENAME 0x00000010 /* File renamed. */
  66188. +# define DN_ATTRIB 0x00000020 /* File changed attibutes. */
  66189. +# define DN_MULTISHOT 0x80000000 /* Don't remove notifier. */
  66190. +#endif
  66191. +
  66192. +struct flock
  66193. + {
  66194. + short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
  66195. + short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
  66196. +#ifndef __USE_FILE_OFFSET64
  66197. + __off_t l_start; /* Offset where the lock begins. */
  66198. + __off_t l_len; /* Size of the locked area; zero means until EOF. */
  66199. +#else
  66200. + __off64_t l_start; /* Offset where the lock begins. */
  66201. + __off64_t l_len; /* Size of the locked area; zero means until EOF. */
  66202. +#endif
  66203. + __pid_t l_pid; /* Process holding the lock. */
  66204. + };
  66205. +
  66206. +#ifdef __USE_LARGEFILE64
  66207. +struct flock64
  66208. + {
  66209. + short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
  66210. + short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
  66211. + __off64_t l_start; /* Offset where the lock begins. */
  66212. + __off64_t l_len; /* Size of the locked area; zero means until EOF. */
  66213. + __pid_t l_pid; /* Process holding the lock. */
  66214. + };
  66215. +#endif
  66216. +
  66217. +/* Define some more compatibility macros to be backward compatible with
  66218. + BSD systems which did not managed to hide these kernel macros. */
  66219. +#ifdef __USE_BSD
  66220. +# define FAPPEND O_APPEND
  66221. +# define FFSYNC O_FSYNC
  66222. +# define FASYNC O_ASYNC
  66223. +# define FNONBLOCK O_NONBLOCK
  66224. +# define FNDELAY O_NDELAY
  66225. +#endif /* Use BSD. */
  66226. +
  66227. +/* Advise to `posix_fadvise'. */
  66228. +#ifdef __USE_XOPEN2K
  66229. +# define POSIX_FADV_NORMAL 0 /* No further special treatment. */
  66230. +# define POSIX_FADV_RANDOM 1 /* Expect random page references. */
  66231. +# define POSIX_FADV_SEQUENTIAL 2 /* Expect sequential page references. */
  66232. +# define POSIX_FADV_WILLNEED 3 /* Will need these pages. */
  66233. +# define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */
  66234. +# define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */
  66235. +#endif
  66236. +
  66237. +
  66238. +#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
  66239. +/* Flags for SYNC_FILE_RANGE. */
  66240. +# define SYNC_FILE_RANGE_WAIT_BEFORE 1 /* Wait upon writeout of all pages
  66241. + in the range before performing the
  66242. + write. */
  66243. +# define SYNC_FILE_RANGE_WRITE 2 /* Initiate writeout of all those
  66244. + dirty pages in the range which are
  66245. + not presently under writeback. */
  66246. +# define SYNC_FILE_RANGE_WAIT_AFTER 4 /* Wait upon writeout of all pages in
  66247. + the range after performing the
  66248. + write. */
  66249. +
  66250. +/* Flags for SPLICE and VMSPLICE. */
  66251. +# define SPLICE_F_MOVE 1 /* Move pages instead of copying. */
  66252. +# define SPLICE_F_NONBLOCK 2 /* Don't block on the pipe splicing
  66253. + (but we may still block on the fd
  66254. + we splice from/to). */
  66255. +# define SPLICE_F_MORE 4 /* Expect more data. */
  66256. +# define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */
  66257. +#endif
  66258. +
  66259. +__BEGIN_DECLS
  66260. +
  66261. +#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
  66262. +
  66263. +/* Provide kernel hint to read ahead. */
  66264. +extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
  66265. + __THROW;
  66266. +
  66267. +/* Selective file content synch'ing. */
  66268. +extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to,
  66269. + unsigned int __flags);
  66270. +
  66271. +/* Splice address range into a pipe. */
  66272. +extern ssize_t vmsplice (int __fdout, const struct iovec *__iov,
  66273. + size_t __count, unsigned int __flags);
  66274. +
  66275. +/* Splice two files together. */
  66276. +extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
  66277. + __off64_t *__offout, size_t __len,
  66278. + unsigned int __flags);
  66279. +
  66280. +/* In-kernel implementation of tee for pipe buffers. */
  66281. +extern ssize_t tee (int __fdin, int __fdout, size_t __len,
  66282. + unsigned int __flags);
  66283. +
  66284. +#endif
  66285. +__END_DECLS
  66286. +
  66287. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/fenv.h uClibc-git/libc/sysdeps/linux/metag/bits/fenv.h
  66288. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/fenv.h 1970-01-01 01:00:00.000000000 +0100
  66289. +++ uClibc-git/libc/sysdeps/linux/metag/bits/fenv.h 2014-06-02 17:40:34.530714841 +0200
  66290. @@ -0,0 +1,77 @@
  66291. +/* Copyright (C) 2013 Imagination Technologies Ltd.
  66292. + This file is part of the GNU C Library.
  66293. +
  66294. + The GNU C Library is free software; you can redistribute it and/or
  66295. + modify it under the terms of the GNU Lesser General Public
  66296. + License as published by the Free Software Foundation; either
  66297. + version 2.1 of the License, or (at your option) any later version.
  66298. +
  66299. + The GNU C Library is distributed in the hope that it will be useful,
  66300. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  66301. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  66302. + Lesser General Public License for more details.
  66303. +
  66304. + You should have received a copy of the GNU Lesser General Public
  66305. + License along with the GNU C Library; if not, write to the Free
  66306. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  66307. + 02111-1307 USA. */
  66308. +
  66309. +#ifndef _FENV_H
  66310. +# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  66311. +#endif
  66312. +
  66313. +
  66314. +/* Define bits representing the exception. We use the bit positions
  66315. + of the appropriate bits in TXDEFR. */
  66316. +enum
  66317. + {
  66318. + FE_INEXACT = 0x1,
  66319. +#define FE_INEXACT FE_INEXACT
  66320. + FE_UNDERFLOW = 0x2,
  66321. +#define FE_UNDERFLOW FE_UNDERFLOW
  66322. + FE_OVERFLOW = 0x4,
  66323. +#define FE_OVERFLOW FE_OVERFLOW
  66324. + FE_DIVBYZERO = 0x8,
  66325. +#define FE_DIVBYZERO FE_DIVBYZERO
  66326. + FE_INVALID = 0x10,
  66327. +#define FE_INVALID FE_INVALID
  66328. + };
  66329. +
  66330. +#define FE_ALL_EXCEPT \
  66331. + (FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID)
  66332. +
  66333. +/* The Meta FPU supports all of the four defined rounding modes. We
  66334. + use the values of the rounding mode bits in TXMODE as the values
  66335. + for the appropriate macros. */
  66336. +enum
  66337. + {
  66338. + FE_TONEAREST = 0x0,
  66339. +#define FE_TONEAREST FE_TONEAREST
  66340. + FE_TOWARDZERO = 0x1,
  66341. +#define FE_TOWARDZERO FE_TOWARDZERO
  66342. + FE_UPWARD = 0x2,
  66343. +#define FE_UPWARD FE_UPWARD
  66344. + FE_DOWNWARD = 0x3
  66345. +#define FE_DOWNWARD FE_DOWNWARD
  66346. + };
  66347. +
  66348. +
  66349. +/* Type representing exception flags. */
  66350. +typedef unsigned int fexcept_t;
  66351. +
  66352. +
  66353. +/* Type representing floating-point environment. */
  66354. +typedef struct
  66355. + {
  66356. + unsigned int txdefr;
  66357. + unsigned int txmode;
  66358. + }
  66359. +fenv_t;
  66360. +
  66361. +/* If the default argument is used we use this value. */
  66362. +#define FE_DFL_ENV ((__const fenv_t *) -1)
  66363. +
  66364. +#ifdef __USE_GNU
  66365. +/* Floating-point environment where none of the exception is masked. */
  66366. +# define FE_NOMASK_ENV ((__const fenv_t *) -2)
  66367. +#endif
  66368. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/ipc.h uClibc-git/libc/sysdeps/linux/metag/bits/ipc.h
  66369. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/ipc.h 1970-01-01 01:00:00.000000000 +0100
  66370. +++ uClibc-git/libc/sysdeps/linux/metag/bits/ipc.h 2014-06-02 17:40:34.530714841 +0200
  66371. @@ -0,0 +1,55 @@
  66372. +/* Copyright (C) 1995-1999, 2000, 2005, 2007 Free Software Foundation, Inc.
  66373. + This file is part of the GNU C Library.
  66374. +
  66375. + The GNU C Library is free software; you can redistribute it and/or
  66376. + modify it under the terms of the GNU Lesser General Public
  66377. + License as published by the Free Software Foundation; either
  66378. + version 2.1 of the License, or (at your option) any later version.
  66379. +
  66380. + The GNU C Library is distributed in the hope that it will be useful,
  66381. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  66382. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  66383. + Lesser General Public License for more details.
  66384. +
  66385. + You should have received a copy of the GNU Lesser General Public
  66386. + License along with the GNU C Library; if not, write to the Free
  66387. + Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  66388. + Boston, MA 02110-1301, USA. */
  66389. +
  66390. +#ifndef _SYS_IPC_H
  66391. +# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
  66392. +#endif
  66393. +
  66394. +#include <bits/types.h>
  66395. +
  66396. +/* Mode bits for `msgget', `semget', and `shmget'. */
  66397. +#define IPC_CREAT 01000 /* Create key if key does not exist. */
  66398. +#define IPC_EXCL 02000 /* Fail if key exists. */
  66399. +#define IPC_NOWAIT 04000 /* Return error on wait. */
  66400. +
  66401. +/* Control commands for `msgctl', `semctl', and `shmctl'. */
  66402. +#define IPC_RMID 0 /* Remove identifier. */
  66403. +#define IPC_SET 1 /* Set `ipc_perm' options. */
  66404. +#define IPC_STAT 2 /* Get `ipc_perm' options. */
  66405. +#ifdef __USE_GNU
  66406. +# define IPC_INFO 3 /* See ipcs. */
  66407. +#endif
  66408. +
  66409. +/* Special key values. */
  66410. +#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
  66411. +
  66412. +
  66413. +/* Data structure used to pass permission information to IPC operations. */
  66414. +struct ipc_perm
  66415. + {
  66416. + __key_t __key; /* Key. */
  66417. + __uid_t uid; /* Owner's user ID. */
  66418. + __gid_t gid; /* Owner's group ID. */
  66419. + __uid_t cuid; /* Creator's user ID. */
  66420. + __gid_t cgid; /* Creator's group ID. */
  66421. + unsigned int mode; /* Read/write permission. */
  66422. + unsigned short __seq; /* Sequence number. */
  66423. + unsigned short __pad1;
  66424. + unsigned long __unused1;
  66425. + unsigned long __unused2;
  66426. + };
  66427. 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
  66428. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/kernel_types.h 1970-01-01 01:00:00.000000000 +0100
  66429. +++ uClibc-git/libc/sysdeps/linux/metag/bits/kernel_types.h 2014-06-02 17:40:34.530714841 +0200
  66430. @@ -0,0 +1,47 @@
  66431. +/* Note that we use the exact same include guard #define names
  66432. + * as asm/posix_types.h. This will avoid gratuitous conflicts
  66433. + * with the posix_types.h kernel header, and will ensure that
  66434. + * our private content, and not the kernel header, will win.
  66435. + * -Erik
  66436. + *
  66437. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  66438. + *
  66439. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66440. + */
  66441. +
  66442. +#ifndef __ASM_GENERIC_POSIX_TYPES_H
  66443. +#define __ASM_GENERIC_POSIX_TYPES_H
  66444. +
  66445. +typedef unsigned int __kernel_dev_t;
  66446. +typedef unsigned int __kernel_ino_t;
  66447. +typedef unsigned int __kernel_mode_t;
  66448. +typedef unsigned long __kernel_nlink_t;
  66449. +typedef long __kernel_off_t;
  66450. +typedef int __kernel_pid_t;
  66451. +typedef unsigned int __kernel_uid_t;
  66452. +typedef unsigned int __kernel_gid_t;
  66453. +typedef unsigned int __kernel_size_t;
  66454. +typedef int __kernel_ssize_t;
  66455. +typedef long __kernel_ptrdiff_t;
  66456. +typedef long __kernel_time_t;
  66457. +typedef long __kernel_suseconds_t;
  66458. +typedef long __kernel_clock_t;
  66459. +typedef int __kernel_daddr_t;
  66460. +typedef char * __kernel_caddr_t;
  66461. +typedef int __kernel_ipc_pid_t;
  66462. +typedef unsigned short __kernel_uid16_t;
  66463. +typedef unsigned short __kernel_gid16_t;
  66464. +typedef unsigned int __kernel_uid32_t;
  66465. +typedef unsigned int __kernel_gid32_t;
  66466. +typedef unsigned int __kernel_old_uid_t;
  66467. +typedef unsigned int __kernel_old_gid_t;
  66468. +typedef __kernel_dev_t __kernel_old_dev_t;
  66469. +typedef long long __kernel_loff_t;
  66470. +typedef long __kernel_long_t;
  66471. +typedef unsigned long __kernel_ulong_t;
  66472. +
  66473. +typedef struct {
  66474. + int val[2];
  66475. +} __kernel_fsid_t;
  66476. +
  66477. +#endif /* __ASM_GENERIC_POSIX_TYPES_H */
  66478. 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
  66479. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/profil-counter.h 1970-01-01 01:00:00.000000000 +0100
  66480. +++ uClibc-git/libc/sysdeps/linux/metag/bits/profil-counter.h 2014-06-02 17:40:34.530714841 +0200
  66481. @@ -0,0 +1,17 @@
  66482. +/*
  66483. + * Low-level statistical profiling support function. Linux/Meta version.
  66484. + *
  66485. + * Copyright (C) 2013, Imagination Technologies Ltd.
  66486. + *
  66487. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66488. + *
  66489. + * Based on the SH version from the GNU C Library.
  66490. + */
  66491. +
  66492. +#include <signal.h>
  66493. +
  66494. +static void
  66495. +profil_counter (int signo, struct sigcontext sc)
  66496. +{
  66497. + profil_count (sc.cbuf.ctx.CurrPC);
  66498. +}
  66499. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/setjmp.h uClibc-git/libc/sysdeps/linux/metag/bits/setjmp.h
  66500. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/setjmp.h 1970-01-01 01:00:00.000000000 +0100
  66501. +++ uClibc-git/libc/sysdeps/linux/metag/bits/setjmp.h 2014-06-02 17:40:34.530714841 +0200
  66502. @@ -0,0 +1,44 @@
  66503. +/*
  66504. + * Copyright (C) 2013, Imagination Technologies Ltd.
  66505. + *
  66506. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66507. + */
  66508. +
  66509. +/* Define the machine-dependent type `jmp_buf' */
  66510. +#ifndef _BITS_SETJMP_H
  66511. +#define _BITS_SETJMP_H 1
  66512. +
  66513. +#if !defined _SETJMP_H && !defined _PTHREAD_H
  66514. +# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  66515. +#endif
  66516. +
  66517. +/*
  66518. + jmp_buf[0] - A0StP
  66519. + jmp_buf[1] - A1GbP
  66520. + jmp_buf[2] - A0FrP
  66521. + jmp_buf[3] - A1LbP
  66522. + jmp_buf[4] - D0FrT
  66523. + jmp_buf[5] - D1RtP
  66524. + jmp_buf[6] - D0.5
  66525. + jmp_buf[7] - D1.5
  66526. + jmp_buf[8] - D0.6
  66527. + jmp_buf[9] - D1.6
  66528. + jmp_buf[10] - D0.7
  66529. + jmp_buf[11] - D1.7
  66530. + */
  66531. +
  66532. +#define _JBLEN 24
  66533. +#if defined (__USE_MISC) || defined (_ASM)
  66534. +#define JB_SP 0
  66535. +#endif
  66536. +
  66537. +#ifndef _ASM
  66538. +typedef int __jmp_buf[_JBLEN] __attribute__((aligned (8)));
  66539. +#endif
  66540. +
  66541. +/* Test if longjmp to JMPBUF would unwind the frame
  66542. + containing a local variable at ADDRESS. */
  66543. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  66544. + ((void *) (address) > (void *) (jmpbuf)[JB_SP])
  66545. +
  66546. +#endif /* bits/setjmp.h */
  66547. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/metag/bits/sigcontextinfo.h
  66548. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/sigcontextinfo.h 1970-01-01 01:00:00.000000000 +0100
  66549. +++ uClibc-git/libc/sysdeps/linux/metag/bits/sigcontextinfo.h 2014-06-02 17:40:34.530714841 +0200
  66550. @@ -0,0 +1,14 @@
  66551. +/*
  66552. + * Copyright (C) 2013, Imagination Technologies Ltd.
  66553. + *
  66554. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66555. + *
  66556. + */
  66557. +
  66558. +#define SIGCONTEXT struct sigcontext
  66559. +#define SIGCONTEXT_EXTRA_ARGS
  66560. +#define GET_PC(ctx) ((void *) ctx.cbuf.ctx.CurrPC)
  66561. +#define GET_FRAME(ctx) ((void *) ctx.cbuf.ctx.AX[1].U0)
  66562. +#define GET_STACK(ctx) ((void *) ctx.cbuf.ctx.AX[0].U0)
  66563. +#define CALL_SIGHANDLER(handler, signo, ctx) \
  66564. + (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
  66565. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/metag/bits/stackinfo.h
  66566. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/stackinfo.h 1970-01-01 01:00:00.000000000 +0100
  66567. +++ uClibc-git/libc/sysdeps/linux/metag/bits/stackinfo.h 2014-06-02 17:40:34.530714841 +0200
  66568. @@ -0,0 +1,28 @@
  66569. +/* Copyright (C) 2001 Free Software Foundation, Inc.
  66570. + This file is part of the GNU C Library.
  66571. +
  66572. + The GNU C Library is free software; you can redistribute it and/or
  66573. + modify it under the terms of the GNU Lesser General Public
  66574. + License as published by the Free Software Foundation; either
  66575. + version 2.1 of the License, or (at your option) any later version.
  66576. +
  66577. + The GNU C Library is distributed in the hope that it will be useful,
  66578. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  66579. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  66580. + Lesser General Public License for more details.
  66581. +
  66582. + You should have received a copy of the GNU Lesser General Public
  66583. + License along with the GNU C Library; if not, write to the Free
  66584. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  66585. + 02111-1307 USA. */
  66586. +
  66587. +/* This file contains a bit of information about the stack allocation
  66588. + of the processor. */
  66589. +
  66590. +#ifndef _STACKINFO_H
  66591. +#define _STACKINFO_H 1
  66592. +
  66593. +/* On Meta the stack grows up. */
  66594. +#define _STACK_GROWS_UP 1
  66595. +
  66596. +#endif /* stackinfo.h */
  66597. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/syscalls.h uClibc-git/libc/sysdeps/linux/metag/bits/syscalls.h
  66598. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/syscalls.h 1970-01-01 01:00:00.000000000 +0100
  66599. +++ uClibc-git/libc/sysdeps/linux/metag/bits/syscalls.h 2014-06-02 17:40:34.530714841 +0200
  66600. @@ -0,0 +1,120 @@
  66601. +/*
  66602. + * Copyright (C) 2013 Imagination Technologies Ltd.
  66603. + *
  66604. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66605. + *
  66606. + */
  66607. +
  66608. +#ifndef _BITS_SYSCALLS_H
  66609. +#define _BITS_SYSCALLS_H
  66610. +#ifndef _SYSCALL_H
  66611. +# error "Never use <bits/syscalls.h> directly; include <sys/syscall.h> instead."
  66612. +#endif
  66613. +
  66614. +/*
  66615. + Meta version adapted from the ARM version.
  66616. +*/
  66617. +
  66618. +#define SYS_ify(syscall_name) (__NR_##syscall_name)
  66619. +
  66620. +#ifdef __ASSEMBLER__
  66621. +
  66622. +/* Call a given syscall, with arguments loaded. */
  66623. +#undef DO_CALL
  66624. +#define DO_CALL(syscall_name, args) \
  66625. + MOV D1Re0, #SYS_ify (syscall_name); \
  66626. + SWITCH #0x440001
  66627. +
  66628. +#else
  66629. +
  66630. +#include <errno.h>
  66631. +
  66632. +#undef INLINE_SYSCALL_NCS
  66633. +#define INLINE_SYSCALL_NCS(name, nr, args...) \
  66634. +(__extension__ \
  66635. + ({ unsigned int _inline_sys_result = INTERNAL_SYSCALL_NCS (name, , nr, args); \
  66636. + if (unlikely(INTERNAL_SYSCALL_ERROR_P (_inline_sys_result, ))) \
  66637. + { \
  66638. + __set_errno (INTERNAL_SYSCALL_ERRNO (_inline_sys_result, )); \
  66639. + _inline_sys_result = (unsigned int) -1; \
  66640. + } \
  66641. + (int) _inline_sys_result; }) \
  66642. +)
  66643. +
  66644. +#undef INTERNAL_SYSCALL_DECL
  66645. +#define INTERNAL_SYSCALL_DECL(err) do { } while (0)
  66646. +
  66647. +#undef INTERNAL_SYSCALL_NCS
  66648. +#define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
  66649. +(__extension__ \
  66650. + ({unsigned int __sys_result; \
  66651. + { \
  66652. + PREP_ARGS_##nr (args); \
  66653. + register int _result __asm__ ("D0Re0"), _nr __asm__ ("D1Re0"); \
  66654. + LOAD_ARGS_##nr; \
  66655. + _nr = (name); \
  66656. + __asm__ volatile ("SWITCH #0x440001 ! syscall " #name \
  66657. + : "=r" (_result) \
  66658. + : "d" (_nr) ASM_ARGS_##nr \
  66659. + : "memory"); \
  66660. + __sys_result = _result; \
  66661. + } \
  66662. + (int) __sys_result; }) \
  66663. +)
  66664. +
  66665. +#undef INTERNAL_SYSCALL_ERROR_P
  66666. +#define INTERNAL_SYSCALL_ERROR_P(val, err) \
  66667. + ((unsigned int) (val) >= 0xfffff001u)
  66668. +
  66669. +#undef INTERNAL_SYSCALL_ERRNO
  66670. +#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
  66671. +
  66672. +#define PREP_ARGS_0()
  66673. +#define PREP_ARGS_1(a1) \
  66674. + int _t1 = (int) (a1); \
  66675. + PREP_ARGS_0 ()
  66676. +#define PREP_ARGS_2(a1, a2) \
  66677. + int _t2 = (int) (a2); \
  66678. + PREP_ARGS_1 (a1)
  66679. +#define PREP_ARGS_3(a1, a2, a3) \
  66680. + int _t3 = (int) (a3); \
  66681. + PREP_ARGS_2 (a1, a2)
  66682. +#define PREP_ARGS_4(a1, a2, a3, a4) \
  66683. + int _t4 = (int) (a4); \
  66684. + PREP_ARGS_3 (a1, a2, a3)
  66685. +#define PREP_ARGS_5(a1, a2, a3, a4, a5) \
  66686. + int _t5 = (int) (a5); \
  66687. + PREP_ARGS_4 (a1, a2, a3, a4)
  66688. +#define PREP_ARGS_6(a1, a2, a3, a4, a5, a6) \
  66689. + int _t6 = (int) (a6); \
  66690. + PREP_ARGS_5 (a1, a2, a3, a4, a5)
  66691. +
  66692. +#define LOAD_ARGS_0
  66693. +#define ASM_ARGS_0
  66694. +#define LOAD_ARGS_1 \
  66695. + register int _a1 __asm__ ("D1Ar1") = (int) (_t1); \
  66696. + LOAD_ARGS_0
  66697. +#define ASM_ARGS_1 ASM_ARGS_0, "d" (_a1)
  66698. +#define LOAD_ARGS_2 \
  66699. + register int _a2 __asm__ ("D0Ar2") = (int) (_t2); \
  66700. + LOAD_ARGS_1
  66701. +#define ASM_ARGS_2 ASM_ARGS_1, "d" (_a2)
  66702. +#define LOAD_ARGS_3 \
  66703. + register int _a3 __asm__ ("D1Ar3") = (int) (_t3); \
  66704. + LOAD_ARGS_2
  66705. +#define ASM_ARGS_3 ASM_ARGS_2, "d" (_a3)
  66706. +#define LOAD_ARGS_4 \
  66707. + register int _a4 __asm__ ("D0Ar4") = (int) (_t4); \
  66708. + LOAD_ARGS_3
  66709. +#define ASM_ARGS_4 ASM_ARGS_3, "d" (_a4)
  66710. +#define LOAD_ARGS_5 \
  66711. + register int _a5 __asm__ ("D1Ar5") = (int) (_t5); \
  66712. + LOAD_ARGS_4
  66713. +#define ASM_ARGS_5 ASM_ARGS_4, "d" (_a5)
  66714. +#define LOAD_ARGS_6 \
  66715. + register int _a6 __asm__ ("D0Ar6") = (int) (_t6); \
  66716. + LOAD_ARGS_5
  66717. +#define ASM_ARGS_6 ASM_ARGS_5, "d" (_a6)
  66718. +
  66719. +#endif /* __ASSEMBLER__ */
  66720. +#endif /* _BITS_SYSCALLS_H */
  66721. 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
  66722. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/uClibc_arch_features.h 1970-01-01 01:00:00.000000000 +0100
  66723. +++ uClibc-git/libc/sysdeps/linux/metag/bits/uClibc_arch_features.h 2014-06-02 17:40:34.530714841 +0200
  66724. @@ -0,0 +1,46 @@
  66725. +/*
  66726. + * Track misc arch-specific features that aren't config options
  66727. + *
  66728. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  66729. + *
  66730. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66731. + */
  66732. +
  66733. +#ifndef _BITS_UCLIBC_ARCH_FEATURES_H
  66734. +#define _BITS_UCLIBC_ARCH_FEATURES_H
  66735. +
  66736. +/* instruction used when calling abort() to kill yourself */
  66737. +/*#define __UCLIBC_ABORT_INSTRUCTION__ "asm instruction"*/
  66738. +#undef __UCLIBC_ABORT_INSTRUCTION__
  66739. +
  66740. +/* can your target use syscall6() for mmap ? */
  66741. +#define __UCLIBC_MMAP_HAS_6_ARGS__
  66742. +
  66743. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  66744. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  66745. +
  66746. +/* does your target have a broken create_module() ? */
  66747. +#undef __UCLIBC_BROKEN_CREATE_MODULE__
  66748. +
  66749. +/* does your target have to worry about older [gs]etrlimit() ? */
  66750. +#undef __UCLIBC_HANDLE_OLDER_RLIMIT__
  66751. +
  66752. +/* does your target have an asm .set ? */
  66753. +#define __UCLIBC_HAVE_ASM_SET_DIRECTIVE__
  66754. +
  66755. +/* define if target doesn't like .global */
  66756. +#undef __UCLIBC_ASM_GLOBAL_DIRECTIVE__
  66757. +
  66758. +/* define if target supports .weak */
  66759. +#define __UCLIBC_HAVE_ASM_WEAK_DIRECTIVE__
  66760. +
  66761. +/* define if target supports .weakext */
  66762. +#undef __UCLIBC_HAVE_ASM_WEAKEXT_DIRECTIVE__
  66763. +
  66764. +/* needed probably only for ppc64 */
  66765. +#undef __UCLIBC_HAVE_ASM_GLOBAL_DOT_NAME__
  66766. +
  66767. +/* define if target supports IEEE signed zero floats */
  66768. +#define __UCLIBC_HAVE_SIGNED_ZERO__
  66769. +
  66770. +#endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
  66771. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/wordsize.h uClibc-git/libc/sysdeps/linux/metag/bits/wordsize.h
  66772. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/wordsize.h 1970-01-01 01:00:00.000000000 +0100
  66773. +++ uClibc-git/libc/sysdeps/linux/metag/bits/wordsize.h 2014-06-02 17:40:34.530714841 +0200
  66774. @@ -0,0 +1,19 @@
  66775. +/* Copyright (C) 1999 Free Software Foundation, Inc.
  66776. + This file is part of the GNU C Library.
  66777. +
  66778. + The GNU C Library is free software; you can redistribute it and/or
  66779. + modify it under the terms of the GNU Lesser General Public
  66780. + License as published by the Free Software Foundation; either
  66781. + version 2.1 of the License, or (at your option) any later version.
  66782. +
  66783. + The GNU C Library is distributed in the hope that it will be useful,
  66784. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  66785. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  66786. + Lesser General Public License for more details.
  66787. +
  66788. + You should have received a copy of the GNU Lesser General Public
  66789. + License along with the GNU C Library; if not, write to the Free
  66790. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  66791. + 02111-1307 USA. */
  66792. +
  66793. +#define __WORDSIZE 32
  66794. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/brk.c uClibc-git/libc/sysdeps/linux/metag/brk.c
  66795. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/brk.c 1970-01-01 01:00:00.000000000 +0100
  66796. +++ uClibc-git/libc/sysdeps/linux/metag/brk.c 2014-06-02 17:40:34.530714841 +0200
  66797. @@ -0,0 +1,38 @@
  66798. +/*
  66799. + * Copyright (C) 2013 Imagination Technologies Ltd.
  66800. + *
  66801. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66802. + */
  66803. +
  66804. +#include <errno.h>
  66805. +#include <unistd.h>
  66806. +#include <sys/syscall.h>
  66807. +
  66808. +libc_hidden_proto(brk)
  66809. +
  66810. +/* This must be initialized data because commons can't have aliases. */
  66811. +void * __curbrk attribute_hidden = 0;
  66812. +
  66813. +int brk (void *addr)
  66814. +{
  66815. + void *newbrk;
  66816. +
  66817. + __asm__ __volatile__ ("MOV D1Re0,%2\n\t"
  66818. + "MOV D1Ar1,%1\n\t"
  66819. + "SWITCH #0x440001\n\t"
  66820. + "MOV %0,D0Re0"
  66821. + : "=r" (newbrk)
  66822. + : "r" (addr), "K" (__NR_brk)
  66823. + : "D0Re0", "D1Re0", "D1Ar1");
  66824. +
  66825. + __curbrk = newbrk;
  66826. +
  66827. + if (newbrk < addr)
  66828. + {
  66829. + __set_errno (ENOMEM);
  66830. + return -1;
  66831. + }
  66832. +
  66833. + return 0;
  66834. +}
  66835. +libc_hidden_def(brk)
  66836. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/clone.S uClibc-git/libc/sysdeps/linux/metag/clone.S
  66837. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/clone.S 1970-01-01 01:00:00.000000000 +0100
  66838. +++ uClibc-git/libc/sysdeps/linux/metag/clone.S 2014-06-02 17:40:34.530714841 +0200
  66839. @@ -0,0 +1,101 @@
  66840. +! Copyright (C) 2013 Imagination Technologies Ltd.
  66841. +
  66842. +! Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66843. +
  66844. +! clone() is even more special than fork() as it mucks with stacks
  66845. +! and invokes a function in the right context after its all over.
  66846. +
  66847. +#include <asm/errno.h>
  66848. +#include <asm/unistd.h>
  66849. +
  66850. +#define CLONE_VM 0x00000100
  66851. +#define CLONE_THREAD 0x00010000
  66852. +
  66853. +#ifdef __PIC__
  66854. +#define __CLONE_METAG_LOAD_TP ___metag_load_tp@PLT
  66855. +#else
  66856. +#define __CLONE_METAG_LOAD_TP ___metag_load_tp
  66857. +#endif
  66858. +
  66859. +/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg,
  66860. + pid_t *ptid, struct user_desc *tls, pid_t *ctid); */
  66861. +
  66862. + .text
  66863. + .global __clone
  66864. + .type __clone,function
  66865. +__clone:
  66866. + ! sanity check args
  66867. + MOV D0Re0, #-EINVAL
  66868. + CMP D1Ar1, #0
  66869. + BEQ ___error
  66870. + CMP D0Ar2, #0
  66871. + BEQ ___error
  66872. +
  66873. + ! save function pointer
  66874. + MOV D0FrT, D1Ar1
  66875. +
  66876. + ! do the system call
  66877. + MOV D1Ar1, D1Ar3
  66878. + MOV D1Ar3, D1Ar5
  66879. + MOV D1Ar5, D0Ar6
  66880. + MOV D0Ar6, D0Ar4
  66881. + GETD D0Ar4, [A0StP+#-4]
  66882. +
  66883. + ! new sp is already in D0Ar2
  66884. + MOV D1Re0, #__NR_clone
  66885. + SWITCH #0x440001
  66886. + CMP D0Re0,#0
  66887. + ! Error on -1
  66888. + BLT ___error
  66889. + ! If non-zero we are the parent
  66890. + MOVNE PC, D1RtP
  66891. + ! BRKPNT
  66892. +
  66893. + ! We are the child
  66894. +#ifdef RESET_PID
  66895. + SETL [A0StP++], D0FrT, D1RtP
  66896. + MOVT D0FrT, #HI(CLONE_THREAD)
  66897. + ADD D0FrT, D0FrT, #LO(CLONE_THREAD)
  66898. + ANDS D0FrT, D0FrT, D1Ar1
  66899. + BNZ 3f
  66900. + MOVT D0FrT, #HI(CLONE_VM)
  66901. + ADD D0FrT, D0FrT, #LO(CLONE_VM)
  66902. + ANDS D0FrT, D0FrT, D1Ar1
  66903. + BZ 1f
  66904. + MOV D1Ar1, #-1
  66905. + BA 2f
  66906. +1: MOV D1Re0, #__NR_getpid
  66907. + SWITCH #0x440001
  66908. + MOV D1Ar1, D0Re0
  66909. +2: CALLR D1RtP, __CLONE_METAG_LOAD_TP
  66910. + SUB D0Re0, D0Re0, #TLS_PRE_TCB_SIZE
  66911. + SETD [D0Re0 + #PID], D1Ar1
  66912. + SETD [D0Re0 + #TID], D1Ar1
  66913. +3: GETL D0FrT, D1RtP, [--A0StP]
  66914. +#endif
  66915. + ! Rearrange the function arg and call address from registers
  66916. + MOV D0Ar2, D0FrT
  66917. + MOV D1Ar1, D0Ar6
  66918. + MOV D1RtP, PC
  66919. + ADD D1RtP, D1RtP, #8
  66920. + MOV PC, D0Ar2
  66921. +
  66922. + ! and we are done, passing the return value D0Re0 through D1Ar1
  66923. + MOV D1Ar1, D0Re0
  66924. +#ifdef __PIC__
  66925. + B _exit@PLT
  66926. +#else
  66927. + B _exit
  66928. +#endif
  66929. +
  66930. +___error:
  66931. + MOV D1Ar1, D0Re0
  66932. +#ifdef __PIC__
  66933. + B ___syscall_error@PLT
  66934. +#else
  66935. + B ___syscall_error
  66936. +#endif
  66937. + .size __clone, .-__clone
  66938. +
  66939. +.weak _clone
  66940. +_clone = __clone
  66941. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/crt1.S uClibc-git/libc/sysdeps/linux/metag/crt1.S
  66942. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/crt1.S 1970-01-01 01:00:00.000000000 +0100
  66943. +++ uClibc-git/libc/sysdeps/linux/metag/crt1.S 2014-06-02 17:40:34.530714841 +0200
  66944. @@ -0,0 +1,75 @@
  66945. +! Copyright (C) 2013 Imagination Technologies Ltd.
  66946. +
  66947. +! Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66948. +
  66949. +
  66950. +#include <asm/unistd.h>
  66951. +
  66952. + .text
  66953. + .global __start
  66954. + .type __start,function
  66955. +__start:
  66956. + MOV D0FrT,A0StP
  66957. + MOV A0FrP,A0StP
  66958. +
  66959. + MOV A0.2,#0
  66960. + MOV A0.3,#0
  66961. +
  66962. + MOV A1.1,#0
  66963. + MOV A1.2,#0
  66964. + MOV A1.3,#0
  66965. +
  66966. + MOV D0.5,#0
  66967. + MOV D0.6,#0
  66968. + MOV D0.7,#0
  66969. +
  66970. + MOV D1.5,#0
  66971. + MOV D1.6,#0
  66972. + MOV D1.7,#0
  66973. +
  66974. + MOV D1Ar3,D0Ar2 ! argv
  66975. + MOV D0Ar2,D1Ar1 ! argc
  66976. + MOV D0Ar6,D0Ar4 ! rtld_fini
  66977. +
  66978. +#ifdef __PIC__
  66979. + ADDT A1LbP,CPC1,#HI(__GLOBAL_OFFSET_TABLE__)
  66980. + ADD A1LbP,A1LbP,#LO(__GLOBAL_OFFSET_TABLE__+4)
  66981. +
  66982. + MOV D1Ar1,A1LbP
  66983. + ADDT D1Ar1,D1Ar1,#HI(_main@GOTOFF)
  66984. + ADD D1Ar1,D1Ar1,#LO(_main@GOTOFF)
  66985. +
  66986. + MOV D0Ar4,A1LbP
  66987. + ADDT D0Ar4,D0Ar4,#HI(__init@GOTOFF)
  66988. + ADD D0Ar4,D0Ar4,#LO(__init@GOTOFF)
  66989. +
  66990. + MOV D1Ar5,A1LbP
  66991. + ADDT D1Ar5,D1Ar5,#HI(__fini@GOTOFF)
  66992. + ADD D1Ar5,D1Ar5,#LO(__fini@GOTOFF)
  66993. +#else
  66994. + MOVT D1Ar1,#HI(_main)
  66995. + ADD D1Ar1,D1Ar1,#LO(_main)
  66996. + MOVT D0Ar4,#HI(__init)
  66997. + ADD D0Ar4,D0Ar4,#LO(__init)
  66998. + MOVT D1Ar5,#HI(__fini)
  66999. + ADD D1Ar5,D1Ar5,#LO(__fini)
  67000. +#endif
  67001. +
  67002. + MOVT D1Re0,#0x80
  67003. +
  67004. + SETL [A0StP++],D0Re0,D1Re0 ! stack_end (8Mb)
  67005. +
  67006. + MOV D1Re0,#0
  67007. + MOV D0Re0,#0
  67008. +
  67009. +#ifdef __PIC__
  67010. + CALLR D1RtP, ___uClibc_main@PLT
  67011. +#else
  67012. + CALLR D1RtP, ___uClibc_main
  67013. +#endif
  67014. +
  67015. + MOV D1Re0,#__NR_exit
  67016. + MOV D1Ar1,#0x1
  67017. + SWITCH #0x440001 ! exit syscall
  67018. +
  67019. + .size __start,.-__start
  67020. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/crti.S uClibc-git/libc/sysdeps/linux/metag/crti.S
  67021. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/crti.S 1970-01-01 01:00:00.000000000 +0100
  67022. +++ uClibc-git/libc/sysdeps/linux/metag/crti.S 2014-06-02 17:40:34.530714841 +0200
  67023. @@ -0,0 +1,19 @@
  67024. +! Copyright (C) 2013 Imagination Technologies Ltd.
  67025. +
  67026. +! Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  67027. +
  67028. + .section .init
  67029. + .global __init
  67030. + .type __init,function
  67031. +__init:
  67032. + MOV D0FrT, A0FrP
  67033. + ADD A0FrP, A0StP, #0
  67034. + SETL [A0StP++], D0.4, D1RtP
  67035. +
  67036. + .section .fini
  67037. + .global __fini
  67038. + .type __fini,function
  67039. +__fini:
  67040. + MOV D0FrT, A0FrP
  67041. + ADD A0FrP, A0StP, #0
  67042. + SETL [A0StP++], D0.4, D1RtP
  67043. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/crtn.S uClibc-git/libc/sysdeps/linux/metag/crtn.S
  67044. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/crtn.S 1970-01-01 01:00:00.000000000 +0100
  67045. +++ uClibc-git/libc/sysdeps/linux/metag/crtn.S 2014-06-02 17:40:34.530714841 +0200
  67046. @@ -0,0 +1,19 @@
  67047. +! Copyright (C) 2013 Imagination Technologies Ltd.
  67048. +
  67049. +! Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  67050. +
  67051. + .section .init
  67052. + .global __init
  67053. + .type __init,function
  67054. + GETL D0.4, D1RtP, [A0FrP+#8++]
  67055. + SUB A0StP, A0FrP, #8
  67056. + MOV A0FrP, D0.4
  67057. + MOV PC, D1RtP
  67058. +
  67059. + .section .fini
  67060. + .global __fini
  67061. + .type __fini,function
  67062. + GETL D0.4, D1RtP, [A0FrP+#8++]
  67063. + SUB A0StP, A0FrP, #8
  67064. + MOV A0FrP, D0.4
  67065. + MOV PC, D1RtP
  67066. 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
  67067. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/libc-metag_load_tp.S 1970-01-01 01:00:00.000000000 +0100
  67068. +++ uClibc-git/libc/sysdeps/linux/metag/libc-metag_load_tp.S 2014-06-02 17:40:34.530714841 +0200
  67069. @@ -0,0 +1,7 @@
  67070. +/*
  67071. + * Copyright (C) 2013 Imagination Technologies Ltd.
  67072. + *
  67073. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  67074. + */
  67075. +
  67076. +#include <ldso/ldso/metag/metag_load_tp.S>
  67077. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/_longjmp.S uClibc-git/libc/sysdeps/linux/metag/_longjmp.S
  67078. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/_longjmp.S 1970-01-01 01:00:00.000000000 +0100
  67079. +++ uClibc-git/libc/sysdeps/linux/metag/_longjmp.S 2014-06-02 17:40:34.530714841 +0200
  67080. @@ -0,0 +1,25 @@
  67081. +! Copyright (C) 2013 Imagination Technologies Ltd.
  67082. +
  67083. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  67084. +
  67085. +
  67086. + .text
  67087. + .global ___longjmp
  67088. + .type ___longjmp,function
  67089. +
  67090. +___longjmp:
  67091. + !! If val is 0, set it to 1
  67092. + CMP D0Ar2,#0
  67093. + ADDZ D0Ar2,D0Ar2,#1
  67094. +
  67095. + !! Restore A0/A1 regs
  67096. + MGETL A0.0,A0.1,[D1Ar1++]
  67097. + !! Restore D0/D1 regs
  67098. + MOV A0.3,D1Ar1
  67099. + MGETL D0FrT,D0.5,D0.6,D0.7,[A0.3++]
  67100. + !! Move 2nd argument to return value
  67101. + MOV D0Re0,D0Ar2
  67102. + MOV PC,D1RtP
  67103. + .size ___longjmp,.-___longjmp
  67104. +
  67105. +libc_hidden_def(__longjmp)
  67106. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/Makefile uClibc-git/libc/sysdeps/linux/metag/Makefile
  67107. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/Makefile 1970-01-01 01:00:00.000000000 +0100
  67108. +++ uClibc-git/libc/sysdeps/linux/metag/Makefile 2014-06-02 17:40:34.530714841 +0200
  67109. @@ -0,0 +1,13 @@
  67110. +# Makefile for uClibc
  67111. +#
  67112. +# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
  67113. +#
  67114. +# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  67115. +#
  67116. +
  67117. +top_srcdir=../../../../
  67118. +top_builddir=../../../../
  67119. +all: objs
  67120. +include $(top_builddir)Rules.mak
  67121. +include Makefile.arch
  67122. +include $(top_srcdir)Makerules
  67123. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/Makefile.arch uClibc-git/libc/sysdeps/linux/metag/Makefile.arch
  67124. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/Makefile.arch 1970-01-01 01:00:00.000000000 +0100
  67125. +++ uClibc-git/libc/sysdeps/linux/metag/Makefile.arch 2014-06-02 17:40:34.530714841 +0200
  67126. @@ -0,0 +1,12 @@
  67127. +# Makefile for uClibc
  67128. +#
  67129. +# Copyright (C) 2013 Imagination Technologies Ltd.
  67130. +#
  67131. +# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  67132. +#
  67133. +
  67134. +CSRC-y := brk.c syscall.c metag.c __syscall_error.c
  67135. +
  67136. +SSRC-y := _longjmp.S clone.S setjmp.S vfork.S
  67137. +
  67138. +SSRC-$(UCLIBC_HAS_THREADS_NATIVE) += libc-metag_load_tp.S
  67139. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/metag.c uClibc-git/libc/sysdeps/linux/metag/metag.c
  67140. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/metag.c 1970-01-01 01:00:00.000000000 +0100
  67141. +++ uClibc-git/libc/sysdeps/linux/metag/metag.c 2014-06-02 17:40:34.530714841 +0200
  67142. @@ -0,0 +1,11 @@
  67143. +/*
  67144. + * Copyright (C) 2013 Imagination Technologies Ltd.
  67145. + *
  67146. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  67147. + */
  67148. +
  67149. +#include <errno.h>
  67150. +#include <sys/syscall.h>
  67151. +
  67152. +_syscall2(int,metag_setglobalbit,char *,addr,int,mask)
  67153. +_syscall1(void,metag_set_fpu_flags,unsigned int,flags)
  67154. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/setjmp.S uClibc-git/libc/sysdeps/linux/metag/setjmp.S
  67155. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/setjmp.S 1970-01-01 01:00:00.000000000 +0100
  67156. +++ uClibc-git/libc/sysdeps/linux/metag/setjmp.S 2014-06-02 17:40:34.530714841 +0200
  67157. @@ -0,0 +1,52 @@
  67158. +/*
  67159. + * Copyright (C) 2013 Imagination Technologies Ltd.
  67160. + *
  67161. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  67162. + */
  67163. +
  67164. +!!! setjmp and variants
  67165. + .text
  67166. +
  67167. +!! int _setjmp (jmp_buf __env)
  67168. +!! Store the calling environment in ENV, not saving the signal mask.
  67169. +!! Return 0. */
  67170. + .global __setjmp
  67171. + .type __setjmp,function
  67172. +__setjmp:
  67173. + MOV D0Ar2,#0
  67174. + B ___sigsetjmp1
  67175. + .size __setjmp,.-__setjmp
  67176. +
  67177. +!! int setjmp (jmp_buf __env)
  67178. +!! Store the calling environment in ENV, also saving the signal mask.
  67179. +!! Return 0. */
  67180. + .global _setjmp
  67181. + .type _setjmp,function
  67182. +_setjmp:
  67183. + MOV D0Ar2,#1
  67184. + !! fall through to __sigsetjmp
  67185. + .size _setjmp,.-_setjmp
  67186. +
  67187. +!! int __sigsetjmp (jmp_buf __env, int __savemask)
  67188. +!! Store the calling environment in ENV, also saving the
  67189. +!! signal mask if SAVEMASK is nonzero. Return 0.
  67190. +!! This is the internal name for `sigsetjmp'.
  67191. + .global ___sigsetjmp
  67192. + .type ___sigsetjmp,function
  67193. +___sigsetjmp:
  67194. +___sigsetjmp1:
  67195. + !! Save A0/A1 regs
  67196. + MSETL [D1Ar1++],A0.0,A0.1
  67197. + !! Use A0.3 as temp
  67198. + MOV A0.3,D1Ar1
  67199. + !! Rewind D1Ar1 that was modified above
  67200. + SUB D1Ar1,D1Ar1,#(2*8)
  67201. + !! Save D0/D1 regs
  67202. + MSETL [A0.3++],D0FrT,D0.5,D0.6,D0.7
  67203. + !! Tail call __sigjmp_save
  67204. +#ifdef __PIC__
  67205. + B ___sigjmp_save@PLT
  67206. +#else
  67207. + B ___sigjmp_save
  67208. +#endif
  67209. + .size ___sigsetjmp,.-___sigsetjmp
  67210. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/io.h uClibc-git/libc/sysdeps/linux/metag/sys/io.h
  67211. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/io.h 1970-01-01 01:00:00.000000000 +0100
  67212. +++ uClibc-git/libc/sysdeps/linux/metag/sys/io.h 2014-06-02 17:40:34.534714863 +0200
  67213. @@ -0,0 +1,48 @@
  67214. +/* Copyright (C) 1996, 1998, 1999, 2000 Free Software Foundation, Inc.
  67215. + This file is part of the GNU C Library.
  67216. +
  67217. + The GNU C Library is free software; you can redistribute it and/or
  67218. + modify it under the terms of the GNU Lesser General Public
  67219. + License as published by the Free Software Foundation; either
  67220. + version 2.1 of the License, or (at your option) any later version.
  67221. +
  67222. + The GNU C Library is distributed in the hope that it will be useful,
  67223. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  67224. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  67225. + Lesser General Public License for more details.
  67226. +
  67227. + You should have received a copy of the GNU Lesser General Public
  67228. + License along with the GNU C Library; if not, write to the Free
  67229. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67230. + 02111-1307 USA. */
  67231. +
  67232. +#ifndef _SYS_IO_H
  67233. +
  67234. +#define _SYS_IO_H 1
  67235. +#include <features.h>
  67236. +
  67237. +__BEGIN_DECLS
  67238. +
  67239. +/* If TURN_ON is TRUE, request for permission to do direct i/o on the
  67240. + port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
  67241. + permission off for that range. This call requires root privileges. */
  67242. +extern int ioperm (unsigned long int __from, unsigned long int __num,
  67243. + int __turn_on) __THROW;
  67244. +
  67245. +/* Set the I/O privilege level to LEVEL. If LEVEL is nonzero,
  67246. + permission to access any I/O port is granted. This call requires
  67247. + root privileges. */
  67248. +extern int iopl (int __level) __THROW;
  67249. +
  67250. +/* The functions that actually perform reads and writes. */
  67251. +extern unsigned char inb (unsigned long int port) __THROW;
  67252. +extern unsigned short int inw (unsigned long int port) __THROW;
  67253. +extern unsigned long int inl (unsigned long int port) __THROW;
  67254. +
  67255. +extern void outb (unsigned char value, unsigned long int port) __THROW;
  67256. +extern void outw (unsigned short value, unsigned long int port) __THROW;
  67257. +extern void outl (unsigned long value, unsigned long int port) __THROW;
  67258. +
  67259. +__END_DECLS
  67260. +
  67261. +#endif /* _SYS_IO_H */
  67262. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/procfs.h uClibc-git/libc/sysdeps/linux/metag/sys/procfs.h
  67263. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/procfs.h 1970-01-01 01:00:00.000000000 +0100
  67264. +++ uClibc-git/libc/sysdeps/linux/metag/sys/procfs.h 2014-06-02 17:40:34.534714863 +0200
  67265. @@ -0,0 +1,121 @@
  67266. +/* Copyright (C) 1996, 1997, 1999, 2007 Free Software Foundation, Inc.
  67267. + This file is part of the GNU C Library.
  67268. +
  67269. + The GNU C Library is free software; you can redistribute it and/or
  67270. + modify it under the terms of the GNU Lesser General Public
  67271. + License as published by the Free Software Foundation; either
  67272. + version 2.1 of the License, or (at your option) any later version.
  67273. +
  67274. + The GNU C Library is distributed in the hope that it will be useful,
  67275. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  67276. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  67277. + Lesser General Public License for more details.
  67278. +
  67279. + You should have received a copy of the GNU Lesser General Public
  67280. + License along with the GNU C Library; if not, write to the Free
  67281. + Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  67282. + Boston, MA 02110-1301, USA. */
  67283. +
  67284. +#ifndef _SYS_PROCFS_H
  67285. +#define _SYS_PROCFS_H 1
  67286. +
  67287. +/* This is somewhat modelled after the file of the same name on SVR4
  67288. + systems. It provides a definition of the core file format for ELF
  67289. + used on Linux. It doesn't have anything to do with the /proc file
  67290. + system, even though Linux has one.
  67291. +
  67292. + Anyway, the whole purpose of this file is for GDB and GDB only.
  67293. + Don't read too much into it. Don't use it for anything other than
  67294. + GDB unless you know what you are doing. */
  67295. +
  67296. +#include <features.h>
  67297. +#include <sys/time.h>
  67298. +#include <sys/types.h>
  67299. +#include <sys/user.h>
  67300. +
  67301. +__BEGIN_DECLS
  67302. +
  67303. +/* Type for a general-purpose register. */
  67304. +typedef unsigned long elf_greg_t;
  67305. +
  67306. +#define ELF_NGREG 30
  67307. +typedef elf_greg_t elf_gregset_t[ELF_NGREG];
  67308. +
  67309. +/* Register set for the floating-point registers. */
  67310. +#define ELF_NFPREG 18
  67311. +typedef unsigned long elf_fpreg_t;
  67312. +typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
  67313. +
  67314. +/* Signal info. */
  67315. +struct elf_siginfo
  67316. + {
  67317. + int si_signo; /* Signal number. */
  67318. + int si_code; /* Extra code. */
  67319. + int si_errno; /* Errno. */
  67320. + };
  67321. +
  67322. +/* Definitions to generate Intel SVR4-like core files. These mostly
  67323. + have the same names as the SVR4 types with "elf_" tacked on the
  67324. + front to prevent clashes with Linux definitions, and the typedef
  67325. + forms have been avoided. This is mostly like the SVR4 structure,
  67326. + but more Linuxy, with things that Linux does not support and which
  67327. + GDB doesn't really use excluded. */
  67328. +
  67329. +struct elf_prstatus
  67330. + {
  67331. + struct elf_siginfo pr_info; /* Info associated with signal. */
  67332. + short int pr_cursig; /* Current signal. */
  67333. + unsigned long int pr_sigpend; /* Set of pending signals. */
  67334. + unsigned long int pr_sighold; /* Set of held signals. */
  67335. + __pid_t pr_pid;
  67336. + __pid_t pr_ppid;
  67337. + __pid_t pr_pgrp;
  67338. + __pid_t pr_sid;
  67339. + struct timeval pr_utime; /* User time. */
  67340. + struct timeval pr_stime; /* System time. */
  67341. + struct timeval pr_cutime; /* Cumulative user time. */
  67342. + struct timeval pr_cstime; /* Cumulative system time. */
  67343. + elf_gregset_t pr_reg; /* GP registers. */
  67344. + int pr_fpvalid; /* True if math copro being used. */
  67345. + };
  67346. +
  67347. +
  67348. +#define ELF_PRARGSZ (80) /* Number of chars for args. */
  67349. +
  67350. +struct elf_prpsinfo
  67351. + {
  67352. + char pr_state; /* Numeric process state. */
  67353. + char pr_sname; /* Char for pr_state. */
  67354. + char pr_zomb; /* Zombie. */
  67355. + char pr_nice; /* Nice val. */
  67356. + unsigned long int pr_flag; /* Flags. */
  67357. + unsigned short int pr_uid;
  67358. + unsigned short int pr_gid;
  67359. + int pr_pid, pr_ppid, pr_pgrp, pr_sid;
  67360. + /* Lots missing */
  67361. + char pr_fname[16]; /* Filename of executable. */
  67362. + char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
  67363. + };
  67364. +
  67365. +/* The rest of this file provides the types for emulation of the
  67366. + Solaris <proc_service.h> interfaces that should be implemented by
  67367. + users of libthread_db. */
  67368. +
  67369. +/* Addresses. */
  67370. +typedef void *psaddr_t;
  67371. +
  67372. +/* Register sets. Linux has different names. */
  67373. +typedef elf_gregset_t prgregset_t;
  67374. +typedef elf_fpregset_t prfpregset_t;
  67375. +
  67376. +/* We don't have any differences between processes and threads,
  67377. + therefore have only one PID type. */
  67378. +typedef __pid_t lwpid_t;
  67379. +
  67380. +/* Process status and info. In the end we do provide typedefs for them. */
  67381. +typedef struct elf_prstatus prstatus_t;
  67382. +typedef struct elf_prpsinfo prpsinfo_t;
  67383. +
  67384. +__END_DECLS
  67385. +
  67386. +#endif /* sys/procfs.h */
  67387. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/ucontext.h uClibc-git/libc/sysdeps/linux/metag/sys/ucontext.h
  67388. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/ucontext.h 1970-01-01 01:00:00.000000000 +0100
  67389. +++ uClibc-git/libc/sysdeps/linux/metag/sys/ucontext.h 2014-06-02 17:40:34.534714863 +0200
  67390. @@ -0,0 +1,96 @@
  67391. +/* Copyright (C) 1998, 1999, 2001, 2006 Free Software Foundation, Inc.
  67392. + This file is part of the GNU C Library.
  67393. +
  67394. + The GNU C Library is free software; you can redistribute it and/or
  67395. + modify it under the terms of the GNU Lesser General Public
  67396. + License as published by the Free Software Foundation; either
  67397. + version 2.1 of the License, or (at your option) any later version.
  67398. +
  67399. + The GNU C Library is distributed in the hope that it will be useful,
  67400. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  67401. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  67402. + Lesser General Public License for more details.
  67403. +
  67404. + You should have received a copy of the GNU Lesser General Public
  67405. + License along with the GNU C Library; if not, write to the Free
  67406. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67407. + 02111-1307 USA. */
  67408. +
  67409. +/* Meta ABI compliant context switching support. */
  67410. +
  67411. +#ifndef _SYS_UCONTEXT_H
  67412. +#define _SYS_UCONTEXT_H 1
  67413. +
  67414. +#include <features.h>
  67415. +#include <signal.h>
  67416. +#include <sys/procfs.h>
  67417. +
  67418. +/* We need the signal context definitions even if they are not used
  67419. + included in <signal.h>. */
  67420. +#include <bits/sigcontext.h>
  67421. +
  67422. +typedef int greg_t;
  67423. +
  67424. +/* Number of general registers. */
  67425. +#define NGREG 18
  67426. +
  67427. +/* Container for all general registers. */
  67428. +typedef elf_gregset_t gregset_t;
  67429. +
  67430. +/* Number of each register is the `gregset_t' array. */
  67431. +enum
  67432. +{
  67433. + R0 = 0,
  67434. +#define R0 R0
  67435. + R1 = 1,
  67436. +#define R1 R1
  67437. + R2 = 2,
  67438. +#define R2 R2
  67439. + R3 = 3,
  67440. +#define R3 R3
  67441. + R4 = 4,
  67442. +#define R4 R4
  67443. + R5 = 5,
  67444. +#define R5 R5
  67445. + R6 = 6,
  67446. +#define R6 R6
  67447. + R7 = 7,
  67448. +#define R7 R7
  67449. + R8 = 8,
  67450. +#define R8 R8
  67451. + R9 = 9,
  67452. +#define R9 R9
  67453. + R10 = 10,
  67454. +#define R10 R10
  67455. + R11 = 11,
  67456. +#define R11 R11
  67457. + R12 = 12,
  67458. +#define R12 R12
  67459. + R13 = 13,
  67460. +#define R13 R13
  67461. + R14 = 14,
  67462. +#define R14 R14
  67463. + R15 = 15
  67464. +#define R15 R15
  67465. +};
  67466. +
  67467. +/* Structure to describe FPU registers. */
  67468. +typedef elf_fpregset_t fpregset_t;
  67469. +
  67470. +/* Context to describe whole processor state. This only describes
  67471. + the core registers; coprocessor registers get saved elsewhere
  67472. + (e.g. in uc_regspace, or somewhere unspecified on the stack
  67473. + during non-RT signal handlers). */
  67474. +typedef struct sigcontext mcontext_t;
  67475. +
  67476. +/* Userlevel context. */
  67477. +typedef struct ucontext
  67478. + {
  67479. + unsigned long uc_flags;
  67480. + struct ucontext *uc_link;
  67481. + stack_t uc_stack;
  67482. + mcontext_t uc_mcontext;
  67483. + __sigset_t uc_sigmask;
  67484. + } ucontext_t;
  67485. +
  67486. +#endif /* sys/ucontext.h */
  67487. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/user.h uClibc-git/libc/sysdeps/linux/metag/sys/user.h
  67488. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/user.h 1970-01-01 01:00:00.000000000 +0100
  67489. +++ uClibc-git/libc/sysdeps/linux/metag/sys/user.h 2014-06-02 17:40:34.534714863 +0200
  67490. @@ -0,0 +1,7 @@
  67491. +/*
  67492. + * This file is not needed, but in practice gdb might try to include it.
  67493. + *
  67494. + * Copyright (C) 2013 Imagination Technologies Ltd.
  67495. + *
  67496. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  67497. + */
  67498. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/syscall.c uClibc-git/libc/sysdeps/linux/metag/syscall.c
  67499. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/syscall.c 1970-01-01 01:00:00.000000000 +0100
  67500. +++ uClibc-git/libc/sysdeps/linux/metag/syscall.c 2014-06-02 17:40:34.534714863 +0200
  67501. @@ -0,0 +1,40 @@
  67502. +/* syscall for META/uClibc
  67503. + *
  67504. + * Copyright (C) 2013 Imagination Technologies
  67505. + *
  67506. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  67507. + */
  67508. +
  67509. +#include <features.h>
  67510. +#include <errno.h>
  67511. +#include <sys/types.h>
  67512. +#include <sys/syscall.h>
  67513. +
  67514. +long syscall(long sysnum,
  67515. + long arg1, long arg2, long arg3,
  67516. + long arg4, long arg5, long arg6)
  67517. +{
  67518. +
  67519. + register long __call __asm__ ("D1Re0") = sysnum;
  67520. + register long __res __asm__ ("D0Re0");
  67521. + register long __a __asm__ ("D1Ar1") = arg1;
  67522. + register long __b __asm__ ("D0Ar2") = arg2;
  67523. + register long __c __asm__ ("D1Ar3") = arg3;
  67524. + register long __d __asm__ ("D0Ar4") = arg4;
  67525. + register long __e __asm__ ("D1Ar5") = arg5;
  67526. + register long __f __asm__ ("D0Ar6") = arg6;
  67527. +
  67528. +
  67529. + __asm__ __volatile__ ("SWITCH #0x440001"
  67530. + : "=d" (__res)
  67531. + : "d" (__call), "d" (__a), "d" (__b),
  67532. + "d" (__c), "d" (__d), "d" (__e) , "d" (__f)
  67533. + : "memory");
  67534. +
  67535. + if(__res >= (unsigned long) -4095) {
  67536. + long err = __res;
  67537. + (*__errno_location()) = (-err);
  67538. + __res = (unsigned long) -1;
  67539. + }
  67540. + return (long) __res;
  67541. +}
  67542. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/__syscall_error.c uClibc-git/libc/sysdeps/linux/metag/__syscall_error.c
  67543. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/__syscall_error.c 1970-01-01 01:00:00.000000000 +0100
  67544. +++ uClibc-git/libc/sysdeps/linux/metag/__syscall_error.c 2014-06-02 17:40:34.530714841 +0200
  67545. @@ -0,0 +1,18 @@
  67546. +/* Wrapper for setting errno.
  67547. + *
  67548. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  67549. + *
  67550. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  67551. + */
  67552. +
  67553. +#include <errno.h>
  67554. +#include <features.h>
  67555. +
  67556. +/* This routine is jumped to by all the syscall handlers, to stash
  67557. + * an error number into errno. */
  67558. +int __syscall_error(int err_no) attribute_hidden;
  67559. +int __syscall_error(int err_no)
  67560. +{
  67561. + __set_errno(-err_no);
  67562. + return -1;
  67563. +}
  67564. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/sysdep.h uClibc-git/libc/sysdeps/linux/metag/sysdep.h
  67565. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/sysdep.h 1970-01-01 01:00:00.000000000 +0100
  67566. +++ uClibc-git/libc/sysdeps/linux/metag/sysdep.h 2014-06-02 17:40:34.534714863 +0200
  67567. @@ -0,0 +1,59 @@
  67568. +/*
  67569. + * Assembler macros for Meta.
  67570. + *
  67571. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  67572. + */
  67573. +
  67574. +#include <common/sysdep.h>
  67575. +
  67576. +#include <features.h>
  67577. +#include <libc-internal.h>
  67578. +
  67579. +#ifdef __ASSEMBLER__
  67580. +
  67581. +#ifdef SHARED
  67582. +#define PLTJMP(_x) _x##@PLT
  67583. +#else
  67584. +#define PLTJMP(_x) _x
  67585. +#endif
  67586. +
  67587. +#undef PSEUDO_END
  67588. +#define PSEUDO_END(name) \
  67589. + SYSCALL_ERROR_HANDLER \
  67590. + END (name)
  67591. +
  67592. +#if defined NOT_IN_libc
  67593. +# define SYSCALL_ERROR __local_syscall_error
  67594. +# ifdef RTLD_PRIVATE_ERRNO
  67595. +# define SYSCALL_ERROR_HANDLER \
  67596. +__local_syscall_error: \
  67597. + NEG D0Re0, D0Re0; \
  67598. + ADDT D1Re0, CPC1, #HI(_rtld_errno); \
  67599. + ADD D1Re0, D1Re0, #LO(_rtld_errno) + 4; \
  67600. + SETD [D1Re0], D0Re0; \
  67601. + NEG D0Re0, #0x1; \
  67602. + MOV PC, D1RtP;
  67603. +# else
  67604. +# define SYSCALL_ERROR_HANDLER \
  67605. +__local_syscall_error: \
  67606. + MOV D1Re0, D1RtP; \
  67607. + SETL [A0StP++], D0Re0, D1Re0; \
  67608. + CALLR D1RtP, PLTJMP(___errno_location); \
  67609. + GETD D1Re0, [A0StP+#-8]; \
  67610. + NEG D1Re0, D1Re0; \
  67611. + SETD [D0Re0], D1Re0; \
  67612. + NEG D0Re0, #0x1; \
  67613. + GETD D1RtP, [A0StP+#-4]; \
  67614. + SUB A0StP, A0StP, #0x8; \
  67615. + MOV PC, D1RtP;
  67616. +# endif
  67617. +#else
  67618. +# define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */
  67619. +# define SYSCALL_ERROR ___syscall_error
  67620. +#endif
  67621. +
  67622. +#endif /* __ASSEMBLER __*/
  67623. +
  67624. +/* Pointer mangling is not yet supported for META. */
  67625. +#define PTR_MANGLE(var) (void) (var)
  67626. +#define PTR_DEMANGLE(var) (void) (var)
  67627. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/vfork.S uClibc-git/libc/sysdeps/linux/metag/vfork.S
  67628. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/vfork.S 1970-01-01 01:00:00.000000000 +0100
  67629. +++ uClibc-git/libc/sysdeps/linux/metag/vfork.S 2014-06-02 17:40:34.534714863 +0200
  67630. @@ -0,0 +1,67 @@
  67631. +! Copyright (C) 2013 Imagination Technologies Ltd.
  67632. +
  67633. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  67634. +
  67635. +#include <asm/unistd.h>
  67636. +
  67637. +#define _ERRNO_H
  67638. +#include <bits/errno.h>
  67639. +#include <sys/syscall.h>
  67640. +
  67641. +#ifndef SAVE_PID
  67642. +#define SAVE_PID
  67643. +#endif
  67644. +
  67645. +#ifndef RESTORE_PID
  67646. +#define RESTORE_PID
  67647. +#endif
  67648. +
  67649. +#ifdef __NR_vfork
  67650. +#define __VFORK_NR __NR_vfork
  67651. +#else
  67652. +#define __VFORK_NR __NR_fork
  67653. +#endif
  67654. +
  67655. +/* Clone the calling process, but without copying the whole address space.
  67656. + The calling process is suspended until the new process exits or is
  67657. + replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
  67658. + and the process ID of the new process to the old process. */
  67659. +
  67660. + .balign 4
  67661. + .global ___vfork
  67662. + .hidden ___vfork
  67663. + .type ___vfork, @function
  67664. +___vfork:
  67665. +
  67666. + SAVE_PID
  67667. +
  67668. + MOV D1Ar1, #0x4111 /* CLONE_VM | CLONE_VFORK | SIGCHLD */
  67669. + MOV D0Ar2, #0
  67670. + MOV D1Ar3, #0
  67671. + MOV D0Ar4, #0
  67672. + MOV D1Ar5, #0
  67673. + MOV D0Ar6, #0
  67674. + MOV D1Re0, #__NR_clone
  67675. + SWITCH #0x440001
  67676. +
  67677. + RESTORE_PID
  67678. +
  67679. + MOVT D1Re0, #HI(-4096)
  67680. + ADD D1Re0, D1Re0, #LO(-4096)
  67681. + CMP D1Re0, D0Re0
  67682. + BCS error
  67683. +
  67684. + /* Syscall worked. Return to child/parent */
  67685. + MOV PC, D1RtP
  67686. +
  67687. +error:
  67688. + MOV D1Ar1, D0Re0
  67689. +#ifdef __PIC__
  67690. + B ___syscall_error@PLT
  67691. +#else
  67692. + B ___syscall_error
  67693. +#endif
  67694. + .size ___vfork,.-___vfork
  67695. +
  67696. +weak_alias(__vfork,vfork)
  67697. +libc_hidden_weak(vfork)
  67698. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/fcntl.h uClibc-git/libc/sysdeps/linux/microblaze/bits/fcntl.h
  67699. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  67700. +++ uClibc-git/libc/sysdeps/linux/microblaze/bits/fcntl.h 2014-06-02 17:40:34.534714863 +0200
  67701. @@ -13,9 +13,8 @@
  67702. Lesser General Public License for more details.
  67703. You should have received a copy of the GNU Lesser General Public
  67704. - License along with the GNU C Library; if not, write to the Free
  67705. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67706. - 02111-1307 USA. */
  67707. + License along with the GNU C Library; if not, see
  67708. + <http://www.gnu.org/licenses/>. */
  67709. #ifndef _FCNTL_H
  67710. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  67711. 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
  67712. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  67713. +++ uClibc-git/libc/sysdeps/linux/microblaze/bits/kernel_types.h 2014-06-02 17:40:34.534714863 +0200
  67714. @@ -44,6 +44,8 @@
  67715. typedef unsigned int __kernel_old_uid_t;
  67716. typedef unsigned int __kernel_old_gid_t;
  67717. typedef unsigned int __kernel_old_dev_t;
  67718. +typedef long __kernel_long_t;
  67719. +typedef unsigned long __kernel_ulong_t;
  67720. #ifdef __GNUC__
  67721. typedef long long __kernel_loff_t;
  67722. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/poll.h uClibc-git/libc/sysdeps/linux/microblaze/bits/poll.h
  67723. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/poll.h 2012-05-15 09:20:09.000000000 +0200
  67724. +++ uClibc-git/libc/sysdeps/linux/microblaze/bits/poll.h 2014-06-02 17:40:34.534714863 +0200
  67725. @@ -12,9 +12,8 @@
  67726. Lesser General Public License for more details.
  67727. You should have received a copy of the GNU Lesser General Public
  67728. - License along with the GNU C Library; if not, write to the Free
  67729. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67730. - 02111-1307 USA. */
  67731. + License along with the GNU C Library; if not, see
  67732. + <http://www.gnu.org/licenses/>. */
  67733. #ifndef _SYS_POLL_H
  67734. # error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
  67735. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/setjmp.h uClibc-git/libc/sysdeps/linux/microblaze/bits/setjmp.h
  67736. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  67737. +++ uClibc-git/libc/sysdeps/linux/microblaze/bits/setjmp.h 2014-06-02 17:40:34.534714863 +0200
  67738. @@ -19,7 +19,6 @@
  67739. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  67740. #endif
  67741. -#ifndef _ASM
  67742. typedef struct
  67743. {
  67744. /* Stack pointer. */
  67745. @@ -35,13 +34,5 @@
  67746. /* Callee-saved registers r18-r31. */
  67747. int __regs[14];
  67748. } __jmp_buf[1];
  67749. -#endif
  67750. -
  67751. -#define JB_SIZE (4 * 18)
  67752. -
  67753. -/* Test if longjmp to JMPBUF would unwind the frame
  67754. - containing a local variable at ADDRESS. */
  67755. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  67756. - ((void *) (address) < (void *) (jmpbuf)[0].__sp)
  67757. #endif /* bits/setjmp.h */
  67758. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/microblaze/bits/stackinfo.h
  67759. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  67760. +++ uClibc-git/libc/sysdeps/linux/microblaze/bits/stackinfo.h 2014-06-02 17:40:34.534714863 +0200
  67761. @@ -12,9 +12,8 @@
  67762. Lesser General Public License for more details.
  67763. You should have received a copy of the GNU Lesser General Public
  67764. - License along with the GNU C Library; if not, write to the Free
  67765. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67766. - 02111-1307 USA. */
  67767. + License along with the GNU C Library; if not, see
  67768. + <http://www.gnu.org/licenses/>. */
  67769. /* This file contains a bit of information about the stack allocation
  67770. of the processor. */
  67771. 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
  67772. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  67773. +++ uClibc-git/libc/sysdeps/linux/microblaze/bits/uClibc_arch_features.h 2014-06-02 17:40:34.534714863 +0200
  67774. @@ -12,8 +12,8 @@
  67775. /* can your target use syscall6() for mmap ? */
  67776. #define __UCLIBC_MMAP_HAS_6_ARGS__
  67777. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  67778. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  67779. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  67780. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  67781. /* does your target have a broken create_module() ? */
  67782. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  67783. 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
  67784. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
  67785. +++ uClibc-git/libc/sysdeps/linux/microblaze/bits/uClibc_page.h 2014-06-02 17:40:34.534714863 +0200
  67786. @@ -11,8 +11,8 @@
  67787. * Library General Public License for more details.
  67788. *
  67789. * You should have received a copy of the GNU Library General Public
  67790. - * License along with this library; if not, write to the Free
  67791. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  67792. + * License along with this library; if not, see
  67793. + * <http://www.gnu.org/licenses/>.
  67794. */
  67795. /* Supply an architecture specific value for PAGE_SIZE and friends. */
  67796. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/wordsize.h uClibc-git/libc/sysdeps/linux/microblaze/bits/wordsize.h
  67797. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  67798. +++ uClibc-git/libc/sysdeps/linux/microblaze/bits/wordsize.h 2014-06-02 17:40:34.534714863 +0200
  67799. @@ -12,8 +12,7 @@
  67800. Lesser General Public License for more details.
  67801. You should have received a copy of the GNU Lesser General Public
  67802. - License along with the GNU C Library; if not, write to the Free
  67803. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67804. - 02111-1307 USA. */
  67805. + License along with the GNU C Library; if not, see
  67806. + <http://www.gnu.org/licenses/>. */
  67807. #define __WORDSIZE 32
  67808. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/microblaze/jmpbuf-offsets.h
  67809. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  67810. +++ uClibc-git/libc/sysdeps/linux/microblaze/jmpbuf-offsets.h 2014-06-02 17:40:34.534714863 +0200
  67811. @@ -0,0 +1,6 @@
  67812. +/*
  67813. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  67814. + *
  67815. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  67816. + */
  67817. +#define JB_SIZE (4 * 18)
  67818. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/microblaze/jmpbuf-unwind.h
  67819. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  67820. +++ uClibc-git/libc/sysdeps/linux/microblaze/jmpbuf-unwind.h 2014-06-02 17:40:34.534714863 +0200
  67821. @@ -0,0 +1,11 @@
  67822. +/*
  67823. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  67824. + *
  67825. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  67826. + */
  67827. +#include <setjmp.h>
  67828. +
  67829. +/* Test if longjmp to JMPBUF would unwind the frame
  67830. + containing a local variable at ADDRESS. */
  67831. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  67832. + ((void *) (address) < (void *) (jmpbuf)[0].__sp)
  67833. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/__longjmp.S uClibc-git/libc/sysdeps/linux/microblaze/__longjmp.S
  67834. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  67835. +++ uClibc-git/libc/sysdeps/linux/microblaze/__longjmp.S 2014-06-02 17:40:34.534714863 +0200
  67836. @@ -12,10 +12,6 @@
  67837. * Written by Miles Bader <miles@gnu.org>
  67838. */
  67839. -#define _SETJMP_H
  67840. -#define _ASM
  67841. -#include <bits/setjmp.h>
  67842. -
  67843. #include <libc-symbols.h>
  67844. .text
  67845. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/Makefile uClibc-git/libc/sysdeps/linux/microblaze/Makefile
  67846. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/Makefile 2012-05-15 09:20:09.000000000 +0200
  67847. +++ uClibc-git/libc/sysdeps/linux/microblaze/Makefile 2014-06-02 17:40:34.534714863 +0200
  67848. @@ -13,8 +13,7 @@
  67849. # details.
  67850. #
  67851. # You should have received a copy of the GNU Library General Public License
  67852. -# along with this program; if not, write to the Free Software Foundation, Inc.,
  67853. -# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  67854. +# along with this program; if not, see <http://www.gnu.org/licenses/>.
  67855. top_srcdir=../../../../
  67856. top_builddir=../../../../
  67857. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/Makefile.arch uClibc-git/libc/sysdeps/linux/microblaze/Makefile.arch
  67858. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  67859. +++ uClibc-git/libc/sysdeps/linux/microblaze/Makefile.arch 2014-06-02 17:40:34.534714863 +0200
  67860. @@ -5,8 +5,8 @@
  67861. #
  67862. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  67863. -CSRC := mmap.c clone.c fixdfsi.c
  67864. +CSRC-y := clone.c fixdfsi.c
  67865. -SSRC := setjmp.S __longjmp.S vfork.S
  67866. +SSRC-y := setjmp.S __longjmp.S vfork.S
  67867. ARCH_HEADERS := floatlib.h
  67868. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/mmap.c uClibc-git/libc/sysdeps/linux/microblaze/mmap.c
  67869. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/mmap.c 2012-05-15 09:20:09.000000000 +0200
  67870. +++ uClibc-git/libc/sysdeps/linux/microblaze/mmap.c 1970-01-01 01:00:00.000000000 +0100
  67871. @@ -1,16 +0,0 @@
  67872. -/* Use new style mmap for microblaze */
  67873. -/*
  67874. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  67875. - *
  67876. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  67877. - */
  67878. -
  67879. -#include <unistd.h>
  67880. -#include <errno.h>
  67881. -#include <sys/mman.h>
  67882. -#include <sys/syscall.h>
  67883. -
  67884. -
  67885. -_syscall6 (__ptr_t, mmap, __ptr_t, addr, size_t, len, int, prot,
  67886. - int, flags, int, fd, __off_t, offset)
  67887. -libc_hidden_def(mmap)
  67888. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/setjmp.S uClibc-git/libc/sysdeps/linux/microblaze/setjmp.S
  67889. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  67890. +++ uClibc-git/libc/sysdeps/linux/microblaze/setjmp.S 2014-06-02 17:40:34.534714863 +0200
  67891. @@ -25,13 +25,8 @@
  67892. Lesser General Public License for more details.
  67893. You should have received a copy of the GNU Lesser General Public
  67894. - License along with the GNU C Library; if not, write to the Free
  67895. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67896. - 02111-1307 USA. */
  67897. -
  67898. -#define _SETJMP_H
  67899. -#define _ASM
  67900. -#include <bits/setjmp.h>
  67901. + License along with the GNU C Library; if not, see
  67902. + <http://www.gnu.org/licenses/>. */
  67903. #include <libc-symbols.h>
  67904. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/procfs.h uClibc-git/libc/sysdeps/linux/microblaze/sys/procfs.h
  67905. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  67906. +++ uClibc-git/libc/sysdeps/linux/microblaze/sys/procfs.h 2014-06-02 17:40:34.534714863 +0200
  67907. @@ -12,9 +12,8 @@
  67908. Lesser General Public License for more details.
  67909. You should have received a copy of the GNU Lesser General Public
  67910. - License along with the GNU C Library; if not, write to the Free
  67911. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67912. - 02111-1307 USA. */
  67913. + License along with the GNU C Library; if not, see
  67914. + <http://www.gnu.org/licenses/>. */
  67915. #ifndef _SYS_PROCFS_H
  67916. #define _SYS_PROCFS_H 1
  67917. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/ptrace.h uClibc-git/libc/sysdeps/linux/microblaze/sys/ptrace.h
  67918. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
  67919. +++ uClibc-git/libc/sysdeps/linux/microblaze/sys/ptrace.h 2014-06-02 17:40:34.534714863 +0200
  67920. @@ -13,9 +13,8 @@
  67921. Lesser General Public License for more details.
  67922. You should have received a copy of the GNU Lesser General Public
  67923. - License along with the GNU C Library; if not, write to the Free
  67924. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67925. - 02111-1307 USA. */
  67926. + License along with the GNU C Library; if not, see
  67927. + <http://www.gnu.org/licenses/>. */
  67928. #ifndef _SYS_PTRACE_H
  67929. #define _SYS_PTRACE_H 1
  67930. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/ucontext.h uClibc-git/libc/sysdeps/linux/microblaze/sys/ucontext.h
  67931. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  67932. +++ uClibc-git/libc/sysdeps/linux/microblaze/sys/ucontext.h 2014-06-02 17:40:34.534714863 +0200
  67933. @@ -12,9 +12,8 @@
  67934. Lesser General Public License for more details.
  67935. You should have received a copy of the GNU Lesser General Public
  67936. - License along with the GNU C Library; if not, write to the Free
  67937. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67938. - 02111-1307 USA. */
  67939. + License along with the GNU C Library; if not, see
  67940. + <http://www.gnu.org/licenses/>. */
  67941. #ifndef _SYS_UCONTEXT_H
  67942. #define _SYS_UCONTEXT_H 1
  67943. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/user.h uClibc-git/libc/sysdeps/linux/microblaze/sys/user.h
  67944. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/user.h 2012-05-15 09:20:09.000000000 +0200
  67945. +++ uClibc-git/libc/sysdeps/linux/microblaze/sys/user.h 2014-06-02 17:40:34.534714863 +0200
  67946. @@ -12,9 +12,8 @@
  67947. Lesser General Public License for more details.
  67948. You should have received a copy of the GNU Lesser General Public
  67949. - License along with the GNU C Library; if not, write to the Free
  67950. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67951. - 02111-1307 USA. */
  67952. + License along with the GNU C Library; if not, see
  67953. + <http://www.gnu.org/licenses/>. */
  67954. #ifndef _SYS_USER_H
  67955. #define _SYS_USER_H 1
  67956. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/vfork.S uClibc-git/libc/sysdeps/linux/microblaze/vfork.S
  67957. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/vfork.S 2012-05-15 09:20:09.000000000 +0200
  67958. +++ uClibc-git/libc/sysdeps/linux/microblaze/vfork.S 2014-06-02 17:40:34.534714863 +0200
  67959. @@ -13,21 +13,15 @@
  67960. * Microblaze port by John Williams
  67961. */
  67962. -#define _ERRNO_H 1
  67963. -#include <bits/errno.h>
  67964. -#define _SYSCALL_H
  67965. -#include <bits/sysnum.h>
  67966. -
  67967. -#include <libc-symbols.h>
  67968. +#include <sys/syscall.h>
  67969. /* Clone the calling process, but without copying the whole address space.
  67970. The calling process is suspended until the new process exits or is
  67971. replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
  67972. and the process ID of the new process to the old process. */
  67973. -.global C_SYMBOL_NAME(errno)
  67974. -
  67975. .globl __vfork
  67976. + .hidden __vfork
  67977. .align 4
  67978. __vfork:
  67979. addi r12, r0, SYS_vfork
  67980. @@ -50,4 +44,4 @@
  67981. .size __vfork, .-__vfork
  67982. weak_alias(__vfork,vfork)
  67983. -libc_hidden_weak(vfork)
  67984. +libc_hidden_def(vfork)
  67985. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/atomic.h uClibc-git/libc/sysdeps/linux/mips/bits/atomic.h
  67986. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  67987. +++ uClibc-git/libc/sysdeps/linux/mips/bits/atomic.h 2014-06-02 17:40:34.538714885 +0200
  67988. @@ -13,9 +13,8 @@
  67989. Lesser General Public License for more details.
  67990. You should have received a copy of the GNU Lesser General Public
  67991. - License along with the GNU C Library; if not, write to the Free
  67992. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67993. - 02111-1307 USA. */
  67994. + License along with the GNU C Library; if not, see
  67995. + <http://www.gnu.org/licenses/>. */
  67996. #ifndef _MIPS_BITS_ATOMIC_H
  67997. #define _MIPS_BITS_ATOMIC_H 1
  67998. @@ -84,10 +83,10 @@
  67999. in which values are returned. */
  68000. #define __arch_compare_and_exchange_xxx_8_int(mem, newval, oldval, rel, acq) \
  68001. - (abort (), __prev = __cmp = 0)
  68002. + (abort (), __prev = 0, __cmp = 0)
  68003. #define __arch_compare_and_exchange_xxx_16_int(mem, newval, oldval, rel, acq) \
  68004. - (abort (), __prev = __cmp = 0)
  68005. + (abort (), __prev = 0, __cmp = 0)
  68006. #define __arch_compare_and_exchange_xxx_32_int(mem, newval, oldval, rel, acq) \
  68007. __asm__ __volatile__ ( \
  68008. @@ -111,7 +110,7 @@
  68009. #if _MIPS_SIM == _ABIO32
  68010. /* We can't do an atomic 64-bit operation in O32. */
  68011. #define __arch_compare_and_exchange_xxx_64_int(mem, newval, oldval, rel, acq) \
  68012. - (abort (), __prev = __cmp = 0)
  68013. + (abort (), __prev = 0, __cmp = 0)
  68014. #else
  68015. #define __arch_compare_and_exchange_xxx_64_int(mem, newval, oldval, rel, acq) \
  68016. __asm__ __volatile__ ("\n" \
  68017. @@ -136,22 +135,22 @@
  68018. /* For all "bool" routines, we return FALSE if exchange succesful. */
  68019. #define __arch_compare_and_exchange_bool_8_int(mem, new, old, rel, acq) \
  68020. -({ __typeof (*mem) __prev; int __cmp; \
  68021. +({ __typeof (*mem) __prev attribute_unused; int __cmp; \
  68022. __arch_compare_and_exchange_xxx_8_int(mem, new, old, rel, acq); \
  68023. !__cmp; })
  68024. #define __arch_compare_and_exchange_bool_16_int(mem, new, old, rel, acq) \
  68025. -({ __typeof (*mem) __prev; int __cmp; \
  68026. +({ __typeof (*mem) __prev attribute_unused; int __cmp; \
  68027. __arch_compare_and_exchange_xxx_16_int(mem, new, old, rel, acq); \
  68028. !__cmp; })
  68029. #define __arch_compare_and_exchange_bool_32_int(mem, new, old, rel, acq) \
  68030. -({ __typeof (*mem) __prev; int __cmp; \
  68031. +({ __typeof (*mem) __prev attribute_unused; int __cmp; \
  68032. __arch_compare_and_exchange_xxx_32_int(mem, new, old, rel, acq); \
  68033. !__cmp; })
  68034. #define __arch_compare_and_exchange_bool_64_int(mem, new, old, rel, acq) \
  68035. -({ __typeof (*mem) __prev; int __cmp; \
  68036. +({ __typeof (*mem) __prev attribute_unused; int __cmp; \
  68037. __arch_compare_and_exchange_xxx_64_int(mem, new, old, rel, acq); \
  68038. !__cmp; })
  68039. @@ -159,22 +158,22 @@
  68040. successful or not. */
  68041. #define __arch_compare_and_exchange_val_8_int(mem, new, old, rel, acq) \
  68042. -({ __typeof (*mem) __prev; int __cmp; \
  68043. +({ __typeof (*mem) __prev attribute_unused; int __cmp attribute_unused; \
  68044. __arch_compare_and_exchange_xxx_8_int(mem, new, old, rel, acq); \
  68045. (__typeof (*mem))__prev; })
  68046. #define __arch_compare_and_exchange_val_16_int(mem, new, old, rel, acq) \
  68047. -({ __typeof (*mem) __prev; int __cmp; \
  68048. +({ __typeof (*mem) __prev attribute_unused; int __cmp attribute_unused; \
  68049. __arch_compare_and_exchange_xxx_16_int(mem, new, old, rel, acq); \
  68050. (__typeof (*mem))__prev; })
  68051. #define __arch_compare_and_exchange_val_32_int(mem, new, old, rel, acq) \
  68052. -({ __typeof (*mem) __prev; int __cmp; \
  68053. +({ __typeof (*mem) __prev attribute_unused; int __cmp attribute_unused; \
  68054. __arch_compare_and_exchange_xxx_32_int(mem, new, old, rel, acq); \
  68055. (__typeof (*mem))__prev; })
  68056. #define __arch_compare_and_exchange_val_64_int(mem, new, old, rel, acq) \
  68057. -({ __typeof (*mem) __prev; int __cmp; \
  68058. +({ __typeof (*mem) __prev attribute_unused; int __cmp attribute_unused; \
  68059. __arch_compare_and_exchange_xxx_64_int(mem, new, old, rel, acq); \
  68060. (__typeof (*mem))__prev; })
  68061. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/dirent.h uClibc-git/libc/sysdeps/linux/mips/bits/dirent.h
  68062. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/dirent.h 2012-05-15 09:20:09.000000000 +0200
  68063. +++ uClibc-git/libc/sysdeps/linux/mips/bits/dirent.h 2014-06-02 17:40:34.538714885 +0200
  68064. @@ -12,9 +12,8 @@
  68065. Lesser General Public License for more details.
  68066. You should have received a copy of the GNU Lesser General Public
  68067. - License along with the GNU C Library; if not, write to the Free
  68068. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68069. - 02111-1307 USA. */
  68070. + License along with the GNU C Library; if not, see
  68071. + <http://www.gnu.org/licenses/>. */
  68072. #ifndef _DIRENT_H
  68073. # error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
  68074. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/dlfcn.h uClibc-git/libc/sysdeps/linux/mips/bits/dlfcn.h
  68075. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/dlfcn.h 2012-05-15 09:20:09.000000000 +0200
  68076. +++ uClibc-git/libc/sysdeps/linux/mips/bits/dlfcn.h 2014-06-02 17:40:34.538714885 +0200
  68077. @@ -14,9 +14,8 @@
  68078. Lesser General Public License for more details.
  68079. You should have received a copy of the GNU Lesser General Public
  68080. - License along with the GNU C Library; if not, write to the Free
  68081. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68082. - 02111-1307 USA. */
  68083. + License along with the GNU C Library; if not, see
  68084. + <http://www.gnu.org/licenses/>. */
  68085. #ifndef _DLFCN_H
  68086. # error "Never use <bits/dlfcn.h> directly; include <dlfcn.h> instead."
  68087. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/eventfd.h uClibc-git/libc/sysdeps/linux/mips/bits/eventfd.h
  68088. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/eventfd.h 1970-01-01 01:00:00.000000000 +0100
  68089. +++ uClibc-git/libc/sysdeps/linux/mips/bits/eventfd.h 2014-06-02 17:40:34.538714885 +0200
  68090. @@ -0,0 +1,31 @@
  68091. +/* Copyright (C) 2007-2013 Free Software Foundation, Inc.
  68092. + This file is part of the GNU C Library.
  68093. +
  68094. + The GNU C Library is free software; you can redistribute it and/or
  68095. + modify it under the terms of the GNU Lesser General Public
  68096. + License as published by the Free Software Foundation; either
  68097. + version 2.1 of the License, or (at your option) any later version.
  68098. +
  68099. + The GNU C Library is distributed in the hope that it will be useful,
  68100. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  68101. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  68102. + Lesser General Public License for more details.
  68103. +
  68104. + You should have received a copy of the GNU Lesser General Public
  68105. + License along with the GNU C Library; if not, see
  68106. + <http://www.gnu.org/licenses/>. */
  68107. +
  68108. +#ifndef _SYS_EVENTFD_H
  68109. +# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
  68110. +#endif
  68111. +
  68112. +/* Flags for eventfd. */
  68113. +enum
  68114. + {
  68115. + EFD_SEMAPHORE = 00000001,
  68116. +#define EFD_SEMAPHORE EFD_SEMAPHORE
  68117. + EFD_CLOEXEC = 02000000,
  68118. +#define EFD_CLOEXEC EFD_CLOEXEC
  68119. + EFD_NONBLOCK = 00000200
  68120. +#define EFD_NONBLOCK EFD_NONBLOCK
  68121. + };
  68122. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/fcntl.h uClibc-git/libc/sysdeps/linux/mips/bits/fcntl.h
  68123. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  68124. +++ uClibc-git/libc/sysdeps/linux/mips/bits/fcntl.h 2014-06-02 17:40:34.538714885 +0200
  68125. @@ -14,9 +14,8 @@
  68126. Lesser General Public License for more details.
  68127. You should have received a copy of the GNU Lesser General Public
  68128. - License along with the GNU C Library; if not, write to the Free
  68129. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68130. - 02111-1307 USA. */
  68131. + License along with the GNU C Library; if not, see
  68132. + <http://www.gnu.org/licenses/>. */
  68133. #ifndef _FCNTL_H
  68134. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  68135. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/fenv.h uClibc-git/libc/sysdeps/linux/mips/bits/fenv.h
  68136. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  68137. +++ uClibc-git/libc/sysdeps/linux/mips/bits/fenv.h 2014-06-02 17:40:34.538714885 +0200
  68138. @@ -12,9 +12,8 @@
  68139. Lesser General Public License for more details.
  68140. You should have received a copy of the GNU Lesser General Public
  68141. - License along with the GNU C Library; if not, write to the Free
  68142. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68143. - 02111-1307 USA. */
  68144. + License along with the GNU C Library; if not, see
  68145. + <http://www.gnu.org/licenses/>. */
  68146. #ifndef _FENV_H
  68147. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  68148. @@ -69,9 +68,9 @@
  68149. fenv_t;
  68150. /* If the default argument is used we use this value. */
  68151. -#define FE_DFL_ENV ((__const fenv_t *) -1)
  68152. +#define FE_DFL_ENV ((const fenv_t *) -1)
  68153. #ifdef __USE_GNU
  68154. /* Floating-point environment where none of the exception is masked. */
  68155. -# define FE_NOMASK_ENV ((__const fenv_t *) -2)
  68156. +# define FE_NOMASK_ENV ((const fenv_t *) -2)
  68157. #endif
  68158. 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
  68159. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/ioctl-types.h 2012-05-15 09:20:09.000000000 +0200
  68160. +++ uClibc-git/libc/sysdeps/linux/mips/bits/ioctl-types.h 2014-06-02 17:40:34.538714885 +0200
  68161. @@ -13,9 +13,8 @@
  68162. Lesser General Public License for more details.
  68163. You should have received a copy of the GNU Lesser General Public
  68164. - License along with the GNU C Library; if not, write to the Free
  68165. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68166. - 02111-1307 USA. */
  68167. + License along with the GNU C Library; if not, see
  68168. + <http://www.gnu.org/licenses/>. */
  68169. #ifndef _SYS_IOCTL_H
  68170. # error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead."
  68171. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/ipc.h uClibc-git/libc/sysdeps/linux/mips/bits/ipc.h
  68172. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
  68173. +++ uClibc-git/libc/sysdeps/linux/mips/bits/ipc.h 2014-06-02 17:40:34.538714885 +0200
  68174. @@ -12,9 +12,8 @@
  68175. Lesser General Public License for more details.
  68176. You should have received a copy of the GNU Lesser General Public
  68177. - License along with the GNU C Library; if not, write to the Free
  68178. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68179. - 02111-1307 USA. */
  68180. + License along with the GNU C Library; if not, see
  68181. + <http://www.gnu.org/licenses/>. */
  68182. #ifndef _SYS_IPC_H
  68183. # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
  68184. 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
  68185. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/kernel_sigaction.h 2012-05-15 09:20:09.000000000 +0200
  68186. +++ uClibc-git/libc/sysdeps/linux/mips/bits/kernel_sigaction.h 2014-06-02 17:40:34.538714885 +0200
  68187. @@ -24,12 +24,4 @@
  68188. #endif
  68189. };
  68190. -/* In uclibc, userspace struct sigaction is identical to
  68191. - * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel).
  68192. - * See sigaction.h
  68193. - */
  68194. -
  68195. -extern int __syscall_rt_sigaction (int, const struct sigaction *,
  68196. - struct sigaction *, size_t) attribute_hidden;
  68197. -
  68198. #endif
  68199. 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
  68200. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  68201. +++ uClibc-git/libc/sysdeps/linux/mips/bits/kernel_types.h 2014-06-02 17:40:34.538714885 +0200
  68202. @@ -32,6 +32,8 @@
  68203. typedef __kernel_uid_t __kernel_old_uid_t;
  68204. typedef __kernel_gid_t __kernel_old_gid_t;
  68205. typedef __kernel_dev_t __kernel_old_dev_t;
  68206. +typedef long __kernel_long_t;
  68207. +typedef unsigned long __kernel_ulong_t;
  68208. typedef long long __kernel_loff_t;
  68209. #else
  68210. typedef unsigned int __kernel_dev_t;
  68211. @@ -68,6 +70,8 @@
  68212. typedef __kernel_uid_t __kernel_old_uid_t;
  68213. typedef __kernel_gid_t __kernel_old_gid_t;
  68214. typedef __kernel_dev_t __kernel_old_dev_t;
  68215. +typedef long __kernel_long_t;
  68216. +typedef unsigned long __kernel_ulong_t;
  68217. typedef long long __kernel_loff_t;
  68218. #endif
  68219. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/mathdef.h uClibc-git/libc/sysdeps/linux/mips/bits/mathdef.h
  68220. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  68221. +++ uClibc-git/libc/sysdeps/linux/mips/bits/mathdef.h 2014-06-02 17:40:34.538714885 +0200
  68222. @@ -13,9 +13,8 @@
  68223. Lesser General Public License for more details.
  68224. You should have received a copy of the GNU Lesser General Public
  68225. - License along with the GNU C Library; if not, write to the Free
  68226. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68227. - 02111-1307 USA. */
  68228. + License along with the GNU C Library; if not, see
  68229. + <http://www.gnu.org/licenses/>. */
  68230. #if !defined _MATH_H && !defined _COMPLEX_H
  68231. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  68232. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/mman.h uClibc-git/libc/sysdeps/linux/mips/bits/mman.h
  68233. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/mman.h 2012-05-15 09:20:09.000000000 +0200
  68234. +++ uClibc-git/libc/sysdeps/linux/mips/bits/mman.h 2014-06-02 17:40:34.538714885 +0200
  68235. @@ -14,9 +14,8 @@
  68236. Lesser General Public License for more details.
  68237. You should have received a copy of the GNU Lesser General Public
  68238. - License along with the GNU C Library; if not, write to the Free
  68239. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68240. - 02111-1307 USA. */
  68241. + License along with the GNU C Library; if not, see
  68242. + <http://www.gnu.org/licenses/>. */
  68243. #ifndef _SYS_MMAN_H
  68244. # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
  68245. @@ -66,7 +65,7 @@
  68246. # define MAP_LOCKED 0x8000 /* pages are locked */
  68247. # define MAP_POPULATE 0x10000 /* populate (prefault) pagetables */
  68248. # define MAP_NONBLOCK 0x20000 /* do not block on IO */
  68249. -# define MAP_UNINITIALIZE 0x4000000 /* For anonymous mmap, memory could
  68250. +# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could
  68251. be uninitialized. */
  68252. #endif
  68253. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/msq.h uClibc-git/libc/sysdeps/linux/mips/bits/msq.h
  68254. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
  68255. +++ uClibc-git/libc/sysdeps/linux/mips/bits/msq.h 2014-06-02 17:40:34.538714885 +0200
  68256. @@ -12,9 +12,8 @@
  68257. Lesser General Public License for more details.
  68258. You should have received a copy of the GNU Lesser General Public
  68259. - License along with the GNU C Library; if not, write to the Free
  68260. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68261. - 02111-1307 USA. */
  68262. + License along with the GNU C Library; if not, see
  68263. + <http://www.gnu.org/licenses/>. */
  68264. #ifndef _SYS_MSG_H
  68265. # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
  68266. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/poll.h uClibc-git/libc/sysdeps/linux/mips/bits/poll.h
  68267. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/poll.h 2012-05-15 09:20:09.000000000 +0200
  68268. +++ uClibc-git/libc/sysdeps/linux/mips/bits/poll.h 2014-06-02 17:40:34.538714885 +0200
  68269. @@ -12,9 +12,8 @@
  68270. Lesser General Public License for more details.
  68271. You should have received a copy of the GNU Lesser General Public
  68272. - License along with the GNU C Library; if not, write to the Free
  68273. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68274. - 02111-1307 USA. */
  68275. + License along with the GNU C Library; if not, see
  68276. + <http://www.gnu.org/licenses/>. */
  68277. #ifndef _SYS_POLL_H
  68278. # error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
  68279. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/resource.h uClibc-git/libc/sysdeps/linux/mips/bits/resource.h
  68280. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/resource.h 2012-05-15 09:20:09.000000000 +0200
  68281. +++ uClibc-git/libc/sysdeps/linux/mips/bits/resource.h 2014-06-02 17:40:34.538714885 +0200
  68282. @@ -14,9 +14,8 @@
  68283. Lesser General Public License for more details.
  68284. You should have received a copy of the GNU Lesser General Public
  68285. - License along with the GNU C Library; if not, write to the Free
  68286. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68287. - 02111-1307 USA. */
  68288. + License along with the GNU C Library; if not, see
  68289. + <http://www.gnu.org/licenses/>. */
  68290. #ifndef _SYS_RESOURCE_H
  68291. # error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
  68292. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sem.h uClibc-git/libc/sysdeps/linux/mips/bits/sem.h
  68293. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
  68294. +++ uClibc-git/libc/sysdeps/linux/mips/bits/sem.h 2014-06-02 17:40:34.538714885 +0200
  68295. @@ -12,9 +12,8 @@
  68296. Lesser General Public License for more details.
  68297. You should have received a copy of the GNU Lesser General Public
  68298. - License along with the GNU C Library; if not, write to the Free
  68299. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68300. - 02111-1307 USA. */
  68301. + License along with the GNU C Library; if not, see
  68302. + <http://www.gnu.org/licenses/>. */
  68303. #ifndef _SYS_SEM_H
  68304. # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
  68305. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/setjmp.h uClibc-git/libc/sysdeps/linux/mips/bits/setjmp.h
  68306. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  68307. +++ uClibc-git/libc/sysdeps/linux/mips/bits/setjmp.h 2014-06-02 17:40:34.538714885 +0200
  68308. @@ -13,9 +13,8 @@
  68309. Lesser General Public License for more details.
  68310. You should have received a copy of the GNU Lesser General Public
  68311. - License along with the GNU C Library; if not, write to the Free
  68312. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68313. - 02111-1307 USA. */
  68314. + License along with the GNU C Library; if not, see
  68315. + <http://www.gnu.org/licenses/>. */
  68316. #ifndef _BITS_SETJMP_H
  68317. #define _BITS_SETJMP_H 1
  68318. @@ -26,13 +25,19 @@
  68319. #include <sgidefs.h>
  68320. +#if _MIPS_SIM == _MIPS_SIM_ABI32
  68321. +#define ptrsize void *
  68322. +#else
  68323. +#define ptrsize long long
  68324. +#endif
  68325. +
  68326. typedef struct
  68327. {
  68328. /* Program counter. */
  68329. - void * __pc;
  68330. + ptrsize __pc;
  68331. /* Stack pointer. */
  68332. - void * __sp;
  68333. + ptrsize __sp;
  68334. /* Callee-saved registers s0 through s7. */
  68335. #if _MIPS_SIM == _MIPS_SIM_ABI32
  68336. @@ -42,10 +47,10 @@
  68337. #endif
  68338. /* The frame pointer. */
  68339. - void * __fp;
  68340. + ptrsize __fp;
  68341. /* The global pointer. */
  68342. - void * __gp;
  68343. + ptrsize __gp;
  68344. /* Floating point status register. */
  68345. int __fpc_csr;
  68346. @@ -58,15 +63,4 @@
  68347. #endif /* N32 || O32 */
  68348. } __jmp_buf[1];
  68349. -#ifdef __USE_MISC
  68350. -/* Offset to the program counter in `jmp_buf'. */
  68351. -# define JB_PC 0
  68352. -#endif
  68353. -
  68354. -
  68355. -/* Test if longjmp to JMPBUF would unwind the frame
  68356. - containing a local variable at ADDRESS. */
  68357. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  68358. - ((void *) (address) < (void *) (jmpbuf)[0].__sp)
  68359. -
  68360. #endif /* bits/setjmp.h */
  68361. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/shm.h uClibc-git/libc/sysdeps/linux/mips/bits/shm.h
  68362. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  68363. +++ uClibc-git/libc/sysdeps/linux/mips/bits/shm.h 2014-06-02 17:40:34.538714885 +0200
  68364. @@ -12,9 +12,8 @@
  68365. Lesser General Public License for more details.
  68366. You should have received a copy of the GNU Lesser General Public
  68367. - License along with the GNU C Library; if not, write to the Free
  68368. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68369. - 02111-1307 USA. */
  68370. + License along with the GNU C Library; if not, see
  68371. + <http://www.gnu.org/licenses/>. */
  68372. #ifndef _SYS_SHM_H
  68373. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  68374. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigaction.h uClibc-git/libc/sysdeps/linux/mips/bits/sigaction.h
  68375. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigaction.h 2012-05-15 09:20:09.000000000 +0200
  68376. +++ uClibc-git/libc/sysdeps/linux/mips/bits/sigaction.h 2014-06-02 17:40:34.538714885 +0200
  68377. @@ -14,9 +14,8 @@
  68378. Lesser General Public License for more details.
  68379. You should have received a copy of the GNU Lesser General Public
  68380. - License along with the GNU C Library; if not, write to the Free
  68381. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68382. - 02111-1307 USA. */
  68383. + License along with the GNU C Library; if not, see
  68384. + <http://www.gnu.org/licenses/>. */
  68385. #ifndef _SIGNAL_H
  68386. # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
  68387. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigcontext.h uClibc-git/libc/sysdeps/linux/mips/bits/sigcontext.h
  68388. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigcontext.h 2012-05-15 09:20:09.000000000 +0200
  68389. +++ uClibc-git/libc/sysdeps/linux/mips/bits/sigcontext.h 2014-06-02 17:40:34.538714885 +0200
  68390. @@ -12,9 +12,8 @@
  68391. Lesser General Public License for more details.
  68392. You should have received a copy of the GNU Lesser General Public
  68393. - License along with the GNU C Library; if not, write to the Free
  68394. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68395. - 02111-1307 USA. */
  68396. + License along with the GNU C Library; if not, see
  68397. + <http://www.gnu.org/licenses/>. */
  68398. #ifndef _BITS_SIGCONTEXT_H
  68399. #define _BITS_SIGCONTEXT_H 1
  68400. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/mips/bits/sigcontextinfo.h
  68401. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  68402. +++ uClibc-git/libc/sysdeps/linux/mips/bits/sigcontextinfo.h 2014-06-02 17:40:34.538714885 +0200
  68403. @@ -13,9 +13,8 @@
  68404. Lesser General Public License for more details.
  68405. You should have received a copy of the GNU Lesser General Public
  68406. - License along with the GNU C Library; if not, write to the Free
  68407. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68408. - 02111-1307 USA. */
  68409. + License along with the GNU C Library; if not, see
  68410. + <http://www.gnu.org/licenses/>. */
  68411. #include <sgidefs.h>
  68412. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/siginfo.h uClibc-git/libc/sysdeps/linux/mips/bits/siginfo.h
  68413. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/siginfo.h 2012-05-15 09:20:09.000000000 +0200
  68414. +++ uClibc-git/libc/sysdeps/linux/mips/bits/siginfo.h 2014-06-02 17:40:34.538714885 +0200
  68415. @@ -14,9 +14,8 @@
  68416. Lesser General Public License for more details.
  68417. You should have received a copy of the GNU Lesser General Public
  68418. - License along with the GNU C Library; if not, write to the Free
  68419. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68420. - 02111-1307 USA. */
  68421. + License along with the GNU C Library; if not, see
  68422. + <http://www.gnu.org/licenses/>. */
  68423. #if !defined _SIGNAL_H && !defined __need_siginfo_t \
  68424. && !defined __need_sigevent_t
  68425. @@ -265,8 +264,11 @@
  68426. /* Structure to transport application-defined values with signals. */
  68427. # define __SIGEV_MAX_SIZE 64
  68428. -# define __SIGEV_HEAD_SIZE (sizeof(long) + 2*sizeof(int))
  68429. -# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE - __SIGEV_HEAD_SIZE) / sizeof (int))
  68430. +# if __WORDSIZE == 64
  68431. +# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
  68432. +# else
  68433. +# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
  68434. +# endif
  68435. /* Forward declaration of the `pthread_attr_t' type. */
  68436. struct __pthread_attr_s;
  68437. @@ -282,6 +284,10 @@
  68438. {
  68439. int _pad[__SIGEV_PAD_SIZE];
  68440. + /* When SIGEV_SIGNAL and SIGEV_THREAD_ID set, LWP ID of the
  68441. + thread to receive the signal. */
  68442. + __pid_t _tid;
  68443. +
  68444. struct
  68445. {
  68446. void (*_function) (sigval_t); /* Function to start. */
  68447. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/signum.h uClibc-git/libc/sysdeps/linux/mips/bits/signum.h
  68448. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/signum.h 2012-05-15 09:20:09.000000000 +0200
  68449. +++ uClibc-git/libc/sysdeps/linux/mips/bits/signum.h 2014-06-02 17:40:34.538714885 +0200
  68450. @@ -13,9 +13,8 @@
  68451. Lesser General Public License for more details.
  68452. You should have received a copy of the GNU Lesser General Public
  68453. - License along with the GNU C Library; if not, write to the Free
  68454. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68455. - 02111-1307 USA. */
  68456. + License along with the GNU C Library; if not, see
  68457. + <http://www.gnu.org/licenses/>. */
  68458. #ifdef _SIGNAL_H
  68459. @@ -54,7 +53,20 @@
  68460. #define SIGXCPU 30 /* CPU limit exceeded (4.2 BSD). */
  68461. #define SIGXFSZ 31 /* File size limit exceeded (4.2 BSD). */
  68462. -/* Biggest signal number + 1 (including real-time signals). */
  68463. -#define _NSIG 129
  68464. +/* MIPS is special by having 128 signals.
  68465. + * All (?) other architectures have at most 64 signals.
  68466. + * Having 128 signals is problematic because signal nos are 1-based
  68467. + * and last signal number is then 128.
  68468. + * This plays havoc with WIFSIGNALED and WCOREDUMP in waitpid status word,
  68469. + * when process dies from signal 128.
  68470. + * Linux kernel 3.9 accepts signal 128, with awful results :/
  68471. + * It is being fixed.
  68472. + *
  68473. + * glibc (accidentally?) papers over this issue by declaring _NSIG to be 128,
  68474. + * not 129 (despite claiming that _NSIG is "biggest signal number + 1"
  68475. + * in the comment above that definition). We follow suit.
  68476. + * Note that this results in __SIGRTMAX == 127. It is intended.
  68477. + */
  68478. +#define _NSIG 128
  68479. #endif /* <signal.h> included. */
  68480. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigstack.h uClibc-git/libc/sysdeps/linux/mips/bits/sigstack.h
  68481. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigstack.h 2012-05-15 09:20:09.000000000 +0200
  68482. +++ uClibc-git/libc/sysdeps/linux/mips/bits/sigstack.h 2014-06-02 17:40:34.538714885 +0200
  68483. @@ -13,9 +13,8 @@
  68484. Lesser General Public License for more details.
  68485. You should have received a copy of the GNU Lesser General Public
  68486. - License along with the GNU C Library; if not, write to the Free
  68487. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68488. - 02111-1307 USA. */
  68489. + License along with the GNU C Library; if not, see
  68490. + <http://www.gnu.org/licenses/>. */
  68491. #ifndef _SIGNAL_H
  68492. # error "Never include this file directly. Use <signal.h> instead"
  68493. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/socket.h uClibc-git/libc/sysdeps/linux/mips/bits/socket.h
  68494. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/socket.h 2012-05-15 09:20:09.000000000 +0200
  68495. +++ uClibc-git/libc/sysdeps/linux/mips/bits/socket.h 1970-01-01 01:00:00.000000000 +0100
  68496. @@ -1,369 +0,0 @@
  68497. -/* System-specific socket constants and types. Linux/MIPS version.
  68498. - Copyright (C) 1991, 92, 1994-1999, 2000, 2001, 2004, 2005, 2006
  68499. - Free Software Foundation, Inc.
  68500. - This file is part of the GNU C Library.
  68501. -
  68502. - The GNU C Library is free software; you can redistribute it and/or
  68503. - modify it under the terms of the GNU Lesser General Public
  68504. - License as published by the Free Software Foundation; either
  68505. - version 2.1 of the License, or (at your option) any later version.
  68506. -
  68507. - The GNU C Library is distributed in the hope that it will be useful,
  68508. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  68509. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  68510. - Lesser General Public License for more details.
  68511. -
  68512. - You should have received a copy of the GNU Lesser General Public
  68513. - License along with the GNU C Library; if not, write to the Free
  68514. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68515. - 02111-1307 USA. */
  68516. -
  68517. -#ifndef __BITS_SOCKET_H
  68518. -#define __BITS_SOCKET_H
  68519. -
  68520. -#if !defined _SYS_SOCKET_H && !defined _NETINET_IN_H
  68521. -# error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
  68522. -#endif
  68523. -
  68524. -#define __need_size_t
  68525. -#define __need_NULL
  68526. -#include <stddef.h>
  68527. -
  68528. -#include <limits.h>
  68529. -#include <sys/types.h>
  68530. -
  68531. -/* Type for length arguments in socket calls. */
  68532. -#ifndef __socklen_t_defined
  68533. -typedef __socklen_t socklen_t;
  68534. -# define __socklen_t_defined
  68535. -#endif
  68536. -
  68537. -/* Types of sockets. */
  68538. -enum __socket_type
  68539. -{
  68540. - SOCK_DGRAM = 1, /* Connectionless, unreliable datagrams
  68541. - of fixed maximum length. */
  68542. -#define SOCK_DGRAM SOCK_DGRAM
  68543. - SOCK_STREAM = 2, /* Sequenced, reliable, connection-based
  68544. - byte streams. */
  68545. -#define SOCK_STREAM SOCK_STREAM
  68546. - SOCK_RAW = 3, /* Raw protocol interface. */
  68547. -#define SOCK_RAW SOCK_RAW
  68548. - SOCK_RDM = 4, /* Reliably-delivered messages. */
  68549. -#define SOCK_RDM SOCK_RDM
  68550. - SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
  68551. - datagrams of fixed maximum length. */
  68552. -#define SOCK_SEQPACKET SOCK_SEQPACKET
  68553. - SOCK_DCCP = 6,
  68554. -#define SOCK_DCCP SOCK_DCCP /* Datagram Congestion Control Protocol. */
  68555. - SOCK_PACKET = 10, /* Linux specific way of getting packets
  68556. - at the dev level. For writing rarp and
  68557. - other similar things on the user level. */
  68558. -#define SOCK_PACKET SOCK_PACKET
  68559. - /* Flags to be ORed into the type parameter of socket and socketpair and
  68560. - used for the flags parameter of paccept. */
  68561. -
  68562. - SOCK_CLOEXEC = 02000000, /* Atomically set close-on-exec flag for the
  68563. - new descriptor(s). */
  68564. -#define SOCK_CLOEXEC SOCK_CLOEXEC
  68565. - SOCK_NONBLOCK = 0200 /* Atomically mark descriptor(s) as
  68566. - non-blocking. */
  68567. -#define SOCK_NONBLOCK SOCK_NONBLOCK
  68568. -};
  68569. -
  68570. -/* Protocol families. */
  68571. -#define PF_UNSPEC 0 /* Unspecified. */
  68572. -#define PF_LOCAL 1 /* Local to host (pipes and file-domain). */
  68573. -#define PF_UNIX PF_LOCAL /* Old BSD name for PF_LOCAL. */
  68574. -#define PF_FILE PF_LOCAL /* Another non-standard name for PF_LOCAL. */
  68575. -#define PF_INET 2 /* IP protocol family. */
  68576. -#define PF_AX25 3 /* Amateur Radio AX.25. */
  68577. -#define PF_IPX 4 /* Novell Internet Protocol. */
  68578. -#define PF_APPLETALK 5 /* Appletalk DDP. */
  68579. -#define PF_NETROM 6 /* Amateur radio NetROM. */
  68580. -#define PF_BRIDGE 7 /* Multiprotocol bridge. */
  68581. -#define PF_ATMPVC 8 /* ATM PVCs. */
  68582. -#define PF_X25 9 /* Reserved for X.25 project. */
  68583. -#define PF_INET6 10 /* IP version 6. */
  68584. -#define PF_ROSE 11 /* Amateur Radio X.25 PLP. */
  68585. -#define PF_DECnet 12 /* Reserved for DECnet project. */
  68586. -#define PF_NETBEUI 13 /* Reserved for 802.2LLC project. */
  68587. -#define PF_SECURITY 14 /* Security callback pseudo AF. */
  68588. -#define PF_KEY 15 /* PF_KEY key management API. */
  68589. -#define PF_NETLINK 16
  68590. -#define PF_ROUTE PF_NETLINK /* Alias to emulate 4.4BSD. */
  68591. -#define PF_PACKET 17 /* Packet family. */
  68592. -#define PF_ASH 18 /* Ash. */
  68593. -#define PF_ECONET 19 /* Acorn Econet. */
  68594. -#define PF_ATMSVC 20 /* ATM SVCs. */
  68595. -#define PF_SNA 22 /* Linux SNA Project */
  68596. -#define PF_IRDA 23 /* IRDA sockets. */
  68597. -#define PF_PPPOX 24 /* PPPoX sockets. */
  68598. -#define PF_WANPIPE 25 /* Wanpipe API sockets. */
  68599. -#define PF_LLC 26 /* Linux LLC. */
  68600. -#define PF_CAN 29 /* Controller Area Network. */
  68601. -#define PF_TIPC 30 /* TIPC sockets. */
  68602. -#define PF_BLUETOOTH 31 /* Bluetooth sockets. */
  68603. -#define PF_IUCV 32 /* IUCV sockets. */
  68604. -#define PF_RXRPC 33 /* RxRPC sockets. */
  68605. -#define PF_ISDN 34 /* mISDN sockets. */
  68606. -#define PF_PHONET 35 /* Phonet sockets. */
  68607. -#define PF_IEEE802154 36 /* IEEE 802.15.4 sockets. */
  68608. -#define PF_CAIF 37 /* CAIF sockets. */
  68609. -#define PF_ALG 38 /* Algorithm sockets. */
  68610. -#define PF_MAX 39 /* For now.. */
  68611. -
  68612. -/* Address families. */
  68613. -#define AF_UNSPEC PF_UNSPEC
  68614. -#define AF_LOCAL PF_LOCAL
  68615. -#define AF_UNIX PF_UNIX
  68616. -#define AF_FILE PF_FILE
  68617. -#define AF_INET PF_INET
  68618. -#define AF_AX25 PF_AX25
  68619. -#define AF_IPX PF_IPX
  68620. -#define AF_APPLETALK PF_APPLETALK
  68621. -#define AF_NETROM PF_NETROM
  68622. -#define AF_BRIDGE PF_BRIDGE
  68623. -#define AF_ATMPVC PF_ATMPVC
  68624. -#define AF_X25 PF_X25
  68625. -#define AF_INET6 PF_INET6
  68626. -#define AF_ROSE PF_ROSE
  68627. -#define AF_DECnet PF_DECnet
  68628. -#define AF_NETBEUI PF_NETBEUI
  68629. -#define AF_SECURITY PF_SECURITY
  68630. -#define AF_KEY PF_KEY
  68631. -#define AF_NETLINK PF_NETLINK
  68632. -#define AF_ROUTE PF_ROUTE
  68633. -#define AF_PACKET PF_PACKET
  68634. -#define AF_ASH PF_ASH
  68635. -#define AF_ECONET PF_ECONET
  68636. -#define AF_ATMSVC PF_ATMSVC
  68637. -#define AF_SNA PF_SNA
  68638. -#define AF_IRDA PF_IRDA
  68639. -#define AF_PPPOX PF_PPPOX
  68640. -#define AF_WANPIPE PF_WANPIPE
  68641. -#define AF_LLC PF_LLC
  68642. -#define AF_CAN PF_CAN
  68643. -#define AF_TIPC PF_TIPC
  68644. -#define AF_BLUETOOTH PF_BLUETOOTH
  68645. -#define AF_IUCV PF_IUCV
  68646. -#define AF_RXRPC PF_RXRPC
  68647. -#define AF_ISDN PF_ISDN
  68648. -#define AF_PHONET PF_PHONET
  68649. -#define AF_IEEE802154 PF_IEEE802154
  68650. -#define AF_CAIF PF_CAIF
  68651. -#define AF_ALG PF_ALG
  68652. -#define AF_MAX PF_MAX
  68653. -
  68654. -/* Socket level values. Others are defined in the appropriate headers.
  68655. -
  68656. - XXX These definitions also should go into the appropriate headers as
  68657. - far as they are available. */
  68658. -#define SOL_RAW 255
  68659. -#define SOL_DECNET 261
  68660. -#define SOL_X25 262
  68661. -#define SOL_PACKET 263
  68662. -#define SOL_ATM 264 /* ATM layer (cell level). */
  68663. -#define SOL_AAL 265 /* ATM Adaption Layer (packet level). */
  68664. -#define SOL_IRDA 266
  68665. -
  68666. -/* Maximum queue length specifiable by listen. */
  68667. -#define SOMAXCONN 128
  68668. -
  68669. -/* Get the definition of the macro to define the common sockaddr members. */
  68670. -#include <bits/sockaddr.h>
  68671. -
  68672. -/* Structure describing a generic socket address. */
  68673. -struct sockaddr
  68674. - {
  68675. - __SOCKADDR_COMMON (sa_); /* Common data: address family and length. */
  68676. - char sa_data[14]; /* Address data. */
  68677. - };
  68678. -
  68679. -
  68680. -/* Structure large enough to hold any socket address (with the historical
  68681. - exception of AF_UNIX). We reserve 128 bytes. */
  68682. -#define __ss_aligntype unsigned long int
  68683. -#define _SS_SIZE 128
  68684. -#define _SS_PADSIZE (_SS_SIZE - (2 * sizeof (__ss_aligntype)))
  68685. -
  68686. -struct sockaddr_storage
  68687. - {
  68688. - __SOCKADDR_COMMON (ss_); /* Address family, etc. */
  68689. - __ss_aligntype __ss_align; /* Force desired alignment. */
  68690. - char __ss_padding[_SS_PADSIZE];
  68691. - };
  68692. -
  68693. -
  68694. -/* Bits in the FLAGS argument to `send', `recv', et al. */
  68695. -enum
  68696. - {
  68697. - MSG_OOB = 0x01, /* Process out-of-band data. */
  68698. -#define MSG_OOB MSG_OOB
  68699. - MSG_PEEK = 0x02, /* Peek at incoming messages. */
  68700. -#define MSG_PEEK MSG_PEEK
  68701. - MSG_DONTROUTE = 0x04, /* Don't use local routing. */
  68702. -#define MSG_DONTROUTE MSG_DONTROUTE
  68703. -#ifdef __USE_GNU
  68704. - /* DECnet uses a different name. */
  68705. - MSG_TRYHARD = MSG_DONTROUTE,
  68706. -# define MSG_TRYHARD MSG_DONTROUTE
  68707. -#endif
  68708. - MSG_CTRUNC = 0x08, /* Control data lost before delivery. */
  68709. -#define MSG_CTRUNC MSG_CTRUNC
  68710. - MSG_PROXY = 0x10, /* Supply or ask second address. */
  68711. -#define MSG_PROXY MSG_PROXY
  68712. - MSG_TRUNC = 0x20,
  68713. -#define MSG_TRUNC MSG_TRUNC
  68714. - MSG_DONTWAIT = 0x40, /* Nonblocking IO. */
  68715. -#define MSG_DONTWAIT MSG_DONTWAIT
  68716. - MSG_EOR = 0x80, /* End of record. */
  68717. -#define MSG_EOR MSG_EOR
  68718. - MSG_WAITALL = 0x100, /* Wait for a full request. */
  68719. -#define MSG_WAITALL MSG_WAITALL
  68720. - MSG_FIN = 0x200,
  68721. -#define MSG_FIN MSG_FIN
  68722. - MSG_SYN = 0x400,
  68723. -#define MSG_SYN MSG_SYN
  68724. - MSG_CONFIRM = 0x800, /* Confirm path validity. */
  68725. -#define MSG_CONFIRM MSG_CONFIRM
  68726. - MSG_RST = 0x1000,
  68727. -#define MSG_RST MSG_RST
  68728. - MSG_ERRQUEUE = 0x2000, /* Fetch message from error queue. */
  68729. -#define MSG_ERRQUEUE MSG_ERRQUEUE
  68730. - MSG_NOSIGNAL = 0x4000, /* Do not generate SIGPIPE. */
  68731. -#define MSG_NOSIGNAL MSG_NOSIGNAL
  68732. - MSG_MORE = 0x8000, /* Sender will send more. */
  68733. -#define MSG_MORE MSG_MORE
  68734. - MSG_WAITFORONE = 0x10000, /* Wait for at least one packet to return.*/
  68735. -#define MSG_WAITFORONE MSG_WAITFORONE
  68736. -
  68737. - MSG_CMSG_CLOEXEC = 0x40000000 /* Set close_on_exit for file
  68738. - descriptor received through
  68739. - SCM_RIGHTS. */
  68740. -#define MSG_CMSG_CLOEXEC MSG_CMSG_CLOEXEC
  68741. - };
  68742. -
  68743. -
  68744. -/* Structure describing messages sent by
  68745. - `sendmsg' and received by `recvmsg'. */
  68746. -/* Note: do not change these members to match glibc; these match the
  68747. - SuSv3 spec already (e.g. msg_iovlen/msg_controllen).
  68748. - http://www.opengroup.org/onlinepubs/009695399/basedefs/sys/socket.h.html */
  68749. -/* Note: linux kernel uses __kernel_size_t (which is 8bytes on 64bit
  68750. - platforms, and 4bytes on 32bit platforms) for msg_iovlen/msg_controllen */
  68751. -struct msghdr
  68752. - {
  68753. - void *msg_name; /* Address to send to/receive from. */
  68754. - socklen_t msg_namelen; /* Length of address data. */
  68755. -
  68756. - struct iovec *msg_iov; /* Vector of data to send/receive into. */
  68757. -#if __WORDSIZE == 32
  68758. - int msg_iovlen; /* Number of elements in the vector. */
  68759. -#else
  68760. - size_t msg_iovlen; /* Number of elements in the vector. */
  68761. -#endif
  68762. -
  68763. - void *msg_control; /* Ancillary data (eg BSD filedesc passing). */
  68764. -#if __WORDSIZE == 32
  68765. - socklen_t msg_controllen; /* Ancillary data buffer length. */
  68766. -#else
  68767. - size_t msg_controllen; /* Ancillary data buffer length. */
  68768. -#endif
  68769. -
  68770. - int msg_flags; /* Flags on received message. */
  68771. - };
  68772. -
  68773. -/* Structure used for storage of ancillary data object information. */
  68774. -struct cmsghdr
  68775. - {
  68776. - size_t cmsg_len; /* Length of data in cmsg_data plus length
  68777. - of cmsghdr structure. */
  68778. - int cmsg_level; /* Originating protocol. */
  68779. - int cmsg_type; /* Protocol specific type. */
  68780. -#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
  68781. - __extension__ unsigned char __cmsg_data __flexarr; /* Ancillary data. */
  68782. -#endif
  68783. - };
  68784. -
  68785. -/* Ancillary data object manipulation macros. */
  68786. -#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
  68787. -# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
  68788. -#else
  68789. -# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
  68790. -#endif
  68791. -#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
  68792. -#define CMSG_FIRSTHDR(mhdr) \
  68793. - ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \
  68794. - ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL)
  68795. -#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
  68796. - & (size_t) ~(sizeof (size_t) - 1))
  68797. -#define CMSG_SPACE(len) (CMSG_ALIGN (len) \
  68798. - + CMSG_ALIGN (sizeof (struct cmsghdr)))
  68799. -#define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
  68800. -
  68801. -extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
  68802. - struct cmsghdr *__cmsg) __THROW;
  68803. -libc_hidden_proto(__cmsg_nxthdr)
  68804. -#ifdef __USE_EXTERN_INLINES
  68805. -# ifndef _EXTERN_INLINE
  68806. -# define _EXTERN_INLINE extern __inline
  68807. -# endif
  68808. -_EXTERN_INLINE struct cmsghdr *
  68809. -__NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg))
  68810. -{
  68811. - if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
  68812. - /* The kernel header does this so there may be a reason. */
  68813. - return 0;
  68814. -
  68815. - __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
  68816. - + CMSG_ALIGN (__cmsg->cmsg_len));
  68817. - if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control
  68818. - + __mhdr->msg_controllen)
  68819. - || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)
  68820. - > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
  68821. - /* No more entries. */
  68822. - return 0;
  68823. - return __cmsg;
  68824. -}
  68825. -#endif /* Use `extern inline'. */
  68826. -
  68827. -/* Socket level message types. This must match the definitions in
  68828. - <linux/socket.h>. */
  68829. -enum
  68830. - {
  68831. - SCM_RIGHTS = 0x01 /* Transfer file descriptors. */
  68832. -#define SCM_RIGHTS SCM_RIGHTS
  68833. -#ifdef __USE_BSD
  68834. - , SCM_CREDENTIALS = 0x02 /* Credentials passing. */
  68835. -# define SCM_CREDENTIALS SCM_CREDENTIALS
  68836. -#endif
  68837. - };
  68838. -
  68839. -/* User visible structure for SCM_CREDENTIALS message */
  68840. -
  68841. -struct ucred
  68842. -{
  68843. - pid_t pid; /* PID of sending process. */
  68844. - uid_t uid; /* UID of sending process. */
  68845. - gid_t gid; /* GID of sending process. */
  68846. -};
  68847. -
  68848. -/* Get socket manipulation related informations from kernel headers. */
  68849. -#ifndef __GLIBC__
  68850. -#define __GLIBC__ 2
  68851. -#include <asm/socket.h>
  68852. -#undef __GLIBC__
  68853. -#else
  68854. -#include <asm/socket.h>
  68855. -#endif
  68856. -
  68857. -
  68858. -/* Structure used to manipulate the SO_LINGER option. */
  68859. -struct linger
  68860. - {
  68861. - int l_onoff; /* Nonzero to linger on close. */
  68862. - int l_linger; /* Time to linger. */
  68863. - };
  68864. -
  68865. -#endif /* bits/socket.h */
  68866. 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
  68867. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/socket_type.h 1970-01-01 01:00:00.000000000 +0100
  68868. +++ uClibc-git/libc/sysdeps/linux/mips/bits/socket_type.h 2014-06-02 17:40:34.538714885 +0200
  68869. @@ -0,0 +1,55 @@
  68870. +/* System-specific socket constants and types. Linux/MIPS version.
  68871. + Copyright (C) 1991, 92, 1994-1999, 2000, 2001, 2004, 2005, 2006
  68872. + Free Software Foundation, Inc.
  68873. + This file is part of the GNU C Library.
  68874. +
  68875. + The GNU C Library is free software; you can redistribute it and/or
  68876. + modify it under the terms of the GNU Lesser General Public
  68877. + License as published by the Free Software Foundation; either
  68878. + version 2.1 of the License, or (at your option) any later version.
  68879. +
  68880. + The GNU C Library is distributed in the hope that it will be useful,
  68881. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  68882. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  68883. + Lesser General Public License for more details.
  68884. +
  68885. + You should have received a copy of the GNU Lesser General Public
  68886. + License along with the GNU C Library; if not, see
  68887. + <http://www.gnu.org/licenses/>. */
  68888. +
  68889. +#ifndef _SYS_SOCKET_H
  68890. +# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
  68891. +#endif
  68892. +
  68893. +/* Types of sockets. */
  68894. +enum __socket_type
  68895. +{
  68896. + SOCK_DGRAM = 1, /* Connectionless, unreliable datagrams
  68897. + of fixed maximum length. */
  68898. +#define SOCK_DGRAM SOCK_DGRAM
  68899. + SOCK_STREAM = 2, /* Sequenced, reliable, connection-based
  68900. + byte streams. */
  68901. +#define SOCK_STREAM SOCK_STREAM
  68902. + SOCK_RAW = 3, /* Raw protocol interface. */
  68903. +#define SOCK_RAW SOCK_RAW
  68904. + SOCK_RDM = 4, /* Reliably-delivered messages. */
  68905. +#define SOCK_RDM SOCK_RDM
  68906. + SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
  68907. + datagrams of fixed maximum length. */
  68908. +#define SOCK_SEQPACKET SOCK_SEQPACKET
  68909. + SOCK_DCCP = 6,
  68910. +#define SOCK_DCCP SOCK_DCCP /* Datagram Congestion Control Protocol. */
  68911. + SOCK_PACKET = 10, /* Linux specific way of getting packets
  68912. + at the dev level. For writing rarp and
  68913. + other similar things on the user level. */
  68914. +#define SOCK_PACKET SOCK_PACKET
  68915. +
  68916. + /* Flags to be ORed into the type parameter of socket and socketpair. */
  68917. +
  68918. + SOCK_CLOEXEC = 02000000, /* Atomically set close-on-exec flag for the
  68919. + new descriptor(s). */
  68920. +#define SOCK_CLOEXEC SOCK_CLOEXEC
  68921. + SOCK_NONBLOCK = 00000200 /* Atomically mark descriptor(s) as
  68922. + non-blocking. */
  68923. +#define SOCK_NONBLOCK SOCK_NONBLOCK
  68924. +};
  68925. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/mips/bits/stackinfo.h
  68926. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  68927. +++ uClibc-git/libc/sysdeps/linux/mips/bits/stackinfo.h 2014-06-02 17:40:34.538714885 +0200
  68928. @@ -12,9 +12,8 @@
  68929. Lesser General Public License for more details.
  68930. You should have received a copy of the GNU Lesser General Public
  68931. - License along with the GNU C Library; if not, write to the Free
  68932. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68933. - 02111-1307 USA. */
  68934. + License along with the GNU C Library; if not, see
  68935. + <http://www.gnu.org/licenses/>. */
  68936. /* This file contains a bit of information about the stack allocation
  68937. of the processor. */
  68938. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/statfs.h uClibc-git/libc/sysdeps/linux/mips/bits/statfs.h
  68939. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/statfs.h 2012-05-15 09:20:09.000000000 +0200
  68940. +++ uClibc-git/libc/sysdeps/linux/mips/bits/statfs.h 2014-06-02 17:40:34.538714885 +0200
  68941. @@ -12,9 +12,8 @@
  68942. Lesser General Public License for more details.
  68943. You should have received a copy of the GNU Lesser General Public
  68944. - License along with the GNU C Library; if not, write to the Free
  68945. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68946. - 02111-1307 USA. */
  68947. + License along with the GNU C Library; if not, see
  68948. + <http://www.gnu.org/licenses/>. */
  68949. #ifndef _SYS_STATFS_H
  68950. # error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
  68951. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/stat.h uClibc-git/libc/sysdeps/linux/mips/bits/stat.h
  68952. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  68953. +++ uClibc-git/libc/sysdeps/linux/mips/bits/stat.h 2014-06-02 17:40:34.538714885 +0200
  68954. @@ -13,9 +13,8 @@
  68955. Lesser General Public License for more details.
  68956. You should have received a copy of the GNU Lesser General Public
  68957. - License along with the GNU C Library; if not, write to the Free
  68958. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68959. - 02111-1307 USA. */
  68960. + License along with the GNU C Library; if not, see
  68961. + <http://www.gnu.org/licenses/>. */
  68962. #ifndef _SYS_STAT_H
  68963. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  68964. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/syscalls.h uClibc-git/libc/sysdeps/linux/mips/bits/syscalls.h
  68965. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/syscalls.h 2012-05-15 09:20:09.000000000 +0200
  68966. +++ uClibc-git/libc/sysdeps/linux/mips/bits/syscalls.h 2014-06-02 17:40:34.538714885 +0200
  68967. @@ -29,7 +29,7 @@
  68968. } \
  68969. result_var; })
  68970. -#define INTERNAL_SYSCALL_DECL(err) long err
  68971. +#define INTERNAL_SYSCALL_DECL(err) long err attribute_unused
  68972. #define INTERNAL_SYSCALL_ERROR_P(val, err) ((long) (err))
  68973. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/termios.h uClibc-git/libc/sysdeps/linux/mips/bits/termios.h
  68974. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/termios.h 2012-05-15 09:20:09.000000000 +0200
  68975. +++ uClibc-git/libc/sysdeps/linux/mips/bits/termios.h 2014-06-02 17:40:34.538714885 +0200
  68976. @@ -13,9 +13,8 @@
  68977. Lesser General Public License for more details.
  68978. You should have received a copy of the GNU Lesser General Public
  68979. - License along with the GNU C Library; if not, write to the Free
  68980. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68981. - 02111-1307 USA. */
  68982. + License along with the GNU C Library; if not, see
  68983. + <http://www.gnu.org/licenses/>. */
  68984. #ifndef _TERMIOS_H
  68985. # error "Never include <bits/termios.h> directly; use <termios.h> instead."
  68986. 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
  68987. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  68988. +++ uClibc-git/libc/sysdeps/linux/mips/bits/uClibc_arch_features.h 2014-06-02 17:40:34.538714885 +0200
  68989. @@ -4,6 +4,7 @@
  68990. #ifndef _BITS_UCLIBC_ARCH_FEATURES_H
  68991. #define _BITS_UCLIBC_ARCH_FEATURES_H
  68992. +#include <sgidefs.h>
  68993. /* instruction used when calling abort() to kill yourself */
  68994. #define __UCLIBC_ABORT_INSTRUCTION__ "break 255"
  68995. @@ -11,8 +12,12 @@
  68996. /* can your target use syscall6() for mmap ? */
  68997. #define __UCLIBC_MMAP_HAS_6_ARGS__
  68998. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  68999. -#define __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  69000. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  69001. +#if _MIPS_SIM == _ABIO32
  69002. +#define __UCLIBC_SYSCALL_ALIGN_64BIT__
  69003. +#else
  69004. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  69005. +#endif
  69006. /* does your target have a broken create_module() ? */
  69007. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  69008. 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
  69009. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
  69010. +++ uClibc-git/libc/sysdeps/linux/mips/bits/uClibc_page.h 2014-06-02 17:40:34.538714885 +0200
  69011. @@ -11,8 +11,8 @@
  69012. * Library General Public License for more details.
  69013. *
  69014. * You should have received a copy of the GNU Library General Public
  69015. - * License along with this library; if not, write to the Free
  69016. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  69017. + * License along with this library; if not, see
  69018. + * <http://www.gnu.org/licenses/>.
  69019. */
  69020. /* Supply an architecture specific value for PAGE_SIZE and friends. */
  69021. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/wordsize.h uClibc-git/libc/sysdeps/linux/mips/bits/wordsize.h
  69022. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  69023. +++ uClibc-git/libc/sysdeps/linux/mips/bits/wordsize.h 2014-06-02 17:40:34.538714885 +0200
  69024. @@ -12,8 +12,7 @@
  69025. Lesser General Public License for more details.
  69026. You should have received a copy of the GNU Lesser General Public
  69027. - License along with the GNU C Library; if not, write to the Free
  69028. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  69029. - 02111-1307 USA. */
  69030. + License along with the GNU C Library; if not, see
  69031. + <http://www.gnu.org/licenses/>. */
  69032. #define __WORDSIZE _MIPS_SZPTR
  69033. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/brk.c uClibc-git/libc/sysdeps/linux/mips/brk.c
  69034. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/brk.c 2012-05-15 09:20:09.000000000 +0200
  69035. +++ uClibc-git/libc/sysdeps/linux/mips/brk.c 2014-06-02 17:40:34.538714885 +0200
  69036. @@ -13,9 +13,8 @@
  69037. Lesser General Public License for more details.
  69038. You should have received a copy of the GNU Lesser General Public
  69039. - License along with the GNU C Library; if not, write to the Free
  69040. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  69041. - 02111-1307 USA. */
  69042. + License along with the GNU C Library; if not, see
  69043. + <http://www.gnu.org/licenses/>. */
  69044. #include <errno.h>
  69045. #include <unistd.h>
  69046. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/mips/bsd-setjmp.S
  69047. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
  69048. +++ uClibc-git/libc/sysdeps/linux/mips/bsd-setjmp.S 2014-06-02 17:40:34.538714885 +0200
  69049. @@ -13,9 +13,8 @@
  69050. Lesser General Public License for more details.
  69051. You should have received a copy of the GNU Lesser General Public
  69052. - License along with the GNU C Library; if not, write to the Free
  69053. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  69054. - 02111-1307 USA. */
  69055. + License along with the GNU C Library; if not, see
  69056. + <http://www.gnu.org/licenses/>. */
  69057. /* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
  69058. We cannot do it in C because it must be a tail-call, so frame-unwinding
  69059. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/mips/bsd-_setjmp.S
  69060. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
  69061. +++ uClibc-git/libc/sysdeps/linux/mips/bsd-_setjmp.S 2014-06-02 17:40:34.538714885 +0200
  69062. @@ -13,9 +13,8 @@
  69063. Lesser General Public License for more details.
  69064. You should have received a copy of the GNU Lesser General Public
  69065. - License along with the GNU C Library; if not, write to the Free
  69066. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  69067. - 02111-1307 USA. */
  69068. + License along with the GNU C Library; if not, see
  69069. + <http://www.gnu.org/licenses/>. */
  69070. /* This just does a tail-call to `__sigsetjmp (ARG, 0)'.
  69071. We cannot do it in C because it must be a tail-call, so frame-unwinding
  69072. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/cacheflush.c uClibc-git/libc/sysdeps/linux/mips/cacheflush.c
  69073. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/cacheflush.c 2012-05-15 09:20:09.000000000 +0200
  69074. +++ uClibc-git/libc/sysdeps/linux/mips/cacheflush.c 2014-06-02 17:40:34.538714885 +0200
  69075. @@ -12,19 +12,18 @@
  69076. Lesser General Public License for more details.
  69077. You should have received a copy of the GNU Lesser General Public
  69078. - License along with the uClibc Library; if not, write to the Free
  69079. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  69080. - 02111-1307 USA. */
  69081. + License along with the uClibc Library; if not, see
  69082. + <http://www.gnu.org/licenses/>. */
  69083. -#include <errno.h>
  69084. -#include <unistd.h>
  69085. #include <sys/syscall.h>
  69086. #ifdef __NR_cacheflush
  69087. +# include <sys/cachectl.h>
  69088. _syscall3(int, cacheflush, void *, addr, const int, nbytes, const int, op)
  69089. -strong_alias(cacheflush, _flush_cache)
  69090. +strong_alias_untyped(cacheflush, _flush_cache)
  69091. #endif
  69092. #ifdef __NR_cachectl
  69093. +# include <sys/cachectl.h>
  69094. _syscall3(int, cachectl, void *, addr, const int, nbytes, const int, op)
  69095. #endif
  69096. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/clone.S uClibc-git/libc/sysdeps/linux/mips/clone.S
  69097. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/clone.S 2012-05-15 09:20:09.000000000 +0200
  69098. +++ uClibc-git/libc/sysdeps/linux/mips/clone.S 2014-06-02 17:40:34.538714885 +0200
  69099. @@ -13,9 +13,8 @@
  69100. Lesser General Public License for more details.
  69101. You should have received a copy of the GNU Lesser General Public
  69102. - License along with the GNU C Library; if not, write to the Free
  69103. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  69104. - 02111-1307 USA. */
  69105. + License along with the GNU C Library; if not, see
  69106. + <http://www.gnu.org/licenses/>. */
  69107. /* clone() is even more special than fork() as it mucks with stacks
  69108. and invokes a function in the right context after its all over. */
  69109. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/crt1.S uClibc-git/libc/sysdeps/linux/mips/crt1.S
  69110. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/crt1.S 2012-05-15 09:20:09.000000000 +0200
  69111. +++ uClibc-git/libc/sysdeps/linux/mips/crt1.S 2014-06-02 17:40:34.538714885 +0200
  69112. @@ -31,9 +31,8 @@
  69113. Lesser General Public License for more details.
  69114. You should have received a copy of the GNU Lesser General Public
  69115. - License along with the GNU C Library; if not, write to the Free
  69116. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  69117. - 02111-1307 USA. */
  69118. + License along with the GNU C Library; if not, see
  69119. + <http://www.gnu.org/licenses/>. */
  69120. #include <sys/regdef.h>
  69121. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/fpu_control.h uClibc-git/libc/sysdeps/linux/mips/fpu_control.h
  69122. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  69123. +++ uClibc-git/libc/sysdeps/linux/mips/fpu_control.h 2014-06-02 17:40:34.542714907 +0200
  69124. @@ -14,9 +14,8 @@
  69125. Lesser General Public License for more details.
  69126. You should have received a copy of the GNU Lesser General Public
  69127. - License along with the GNU C Library; if not, write to the Free
  69128. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  69129. - 02111-1307 USA. */
  69130. + License along with the GNU C Library; if not, see
  69131. + <http://www.gnu.org/licenses/>. */
  69132. #ifndef _FPU_CONTROL_H
  69133. #define _FPU_CONTROL_H
  69134. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/getcontext.S uClibc-git/libc/sysdeps/linux/mips/getcontext.S
  69135. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/getcontext.S 1970-01-01 01:00:00.000000000 +0100
  69136. +++ uClibc-git/libc/sysdeps/linux/mips/getcontext.S 2014-06-02 17:40:34.542714907 +0200
  69137. @@ -0,0 +1,148 @@
  69138. +/* Save current context.
  69139. + Copyright (C) 2009 Free Software Foundation, Inc.
  69140. + This file is part of the GNU C Library.
  69141. + Contributed by Maciej W. Rozycki <macro@codesourcery.com>.
  69142. +
  69143. + The GNU C Library is free software; you can redistribute it and/or
  69144. + modify it under the terms of the GNU Lesser General Public
  69145. + License as published by the Free Software Foundation; either
  69146. + version 2.1 of the License, or (at your option) any later version.
  69147. +
  69148. + The GNU C Library is distributed in the hope that it will be useful,
  69149. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  69150. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  69151. + Lesser General Public License for more details.
  69152. +
  69153. + You should have received a copy of the GNU Lesser General Public
  69154. + License along with the GNU C Library. If not, see
  69155. + <http://www.gnu.org/licenses/>. */
  69156. +
  69157. +#include <sysdep.h>
  69158. +#include <sys/asm.h>
  69159. +#include <sys/fpregdef.h>
  69160. +#include <sys/regdef.h>
  69161. +
  69162. +#include "ucontext_i.h"
  69163. +
  69164. +/* int getcontext (ucontext_t *ucp) */
  69165. +
  69166. + .text
  69167. +LOCALSZ = 0
  69168. +MASK = 0x00000000
  69169. +#ifdef __PIC__
  69170. +LOCALSZ = 1 /* save gp */
  69171. +# if _MIPS_SIM != _ABIO32
  69172. +MASK = 0x10000000
  69173. +# endif
  69174. +#endif
  69175. +FRAMESZ = ((LOCALSZ * SZREG) + ALSZ) & ALMASK
  69176. +GPOFF = FRAMESZ - (1 * SZREG)
  69177. +
  69178. +NESTED (__getcontext, FRAMESZ, ra)
  69179. + .mask MASK, 0
  69180. + .fmask 0x00000000, 0
  69181. +
  69182. +#ifdef __PIC__
  69183. + SETUP_GP
  69184. +
  69185. + move a2, sp
  69186. +# define _SP a2
  69187. +
  69188. +# if _MIPS_SIM != _ABIO32
  69189. + move a3, gp
  69190. +# define _GP a3
  69191. +# endif
  69192. +
  69193. + PTR_ADDIU sp, -FRAMESZ
  69194. + SETUP_GP64 (GPOFF, __getcontext)
  69195. + SAVE_GP (GPOFF)
  69196. +
  69197. +#else /* ! __PIC__ */
  69198. +# define _SP sp
  69199. +# define _GP gp
  69200. +
  69201. +#endif /* ! __PIC__ */
  69202. +
  69203. +#ifdef PROF
  69204. + .set noat
  69205. + move AT, ra
  69206. + jal _mcount
  69207. + .set at
  69208. +#endif
  69209. +
  69210. + /* Store a magic flag. */
  69211. + li v1, 1
  69212. + REG_S v1, (0 * SZREG + MCONTEXT_GREGS)(a0) /* zero */
  69213. +
  69214. + REG_S s0, (16 * SZREG + MCONTEXT_GREGS)(a0)
  69215. + REG_S s1, (17 * SZREG + MCONTEXT_GREGS)(a0)
  69216. + REG_S s2, (18 * SZREG + MCONTEXT_GREGS)(a0)
  69217. + REG_S s3, (19 * SZREG + MCONTEXT_GREGS)(a0)
  69218. + REG_S s4, (20 * SZREG + MCONTEXT_GREGS)(a0)
  69219. + REG_S s5, (21 * SZREG + MCONTEXT_GREGS)(a0)
  69220. + REG_S s6, (22 * SZREG + MCONTEXT_GREGS)(a0)
  69221. + REG_S s7, (23 * SZREG + MCONTEXT_GREGS)(a0)
  69222. +#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
  69223. + REG_S _GP, (28 * SZREG + MCONTEXT_GREGS)(a0)
  69224. +#endif
  69225. + REG_S _SP, (29 * SZREG + MCONTEXT_GREGS)(a0)
  69226. + REG_S fp, (30 * SZREG + MCONTEXT_GREGS)(a0)
  69227. + REG_S ra, (31 * SZREG + MCONTEXT_GREGS)(a0)
  69228. + REG_S ra, MCONTEXT_PC(a0)
  69229. +
  69230. +#ifdef __mips_hard_float
  69231. +# if _MIPS_SIM == _ABI64
  69232. + s.d fs0, (24 * SZREG + MCONTEXT_FPREGS)(a0)
  69233. + s.d fs1, (25 * SZREG + MCONTEXT_FPREGS)(a0)
  69234. + s.d fs2, (26 * SZREG + MCONTEXT_FPREGS)(a0)
  69235. + s.d fs3, (27 * SZREG + MCONTEXT_FPREGS)(a0)
  69236. + s.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
  69237. + s.d fs5, (29 * SZREG + MCONTEXT_FPREGS)(a0)
  69238. + s.d fs6, (30 * SZREG + MCONTEXT_FPREGS)(a0)
  69239. + s.d fs7, (31 * SZREG + MCONTEXT_FPREGS)(a0)
  69240. +
  69241. +# else /* _MIPS_SIM != _ABI64 */
  69242. + s.d fs0, (20 * SZREG + MCONTEXT_FPREGS)(a0)
  69243. + s.d fs1, (22 * SZREG + MCONTEXT_FPREGS)(a0)
  69244. + s.d fs2, (24 * SZREG + MCONTEXT_FPREGS)(a0)
  69245. + s.d fs3, (26 * SZREG + MCONTEXT_FPREGS)(a0)
  69246. + s.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
  69247. + s.d fs5, (30 * SZREG + MCONTEXT_FPREGS)(a0)
  69248. +
  69249. +# endif /* _MIPS_SIM != _ABI64 */
  69250. +
  69251. + cfc1 v1, fcr31
  69252. + sw v1, MCONTEXT_FPC_CSR(a0)
  69253. +#endif /* __mips_hard_float */
  69254. +
  69255. +/* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
  69256. + li a3, _NSIG8
  69257. + PTR_ADDU a2, a0, UCONTEXT_SIGMASK
  69258. + move a1, zero
  69259. + li a0, SIG_BLOCK
  69260. +
  69261. + li v0, SYS_ify (rt_sigprocmask)
  69262. + syscall
  69263. + bnez a3, 99f
  69264. +
  69265. +#ifdef __PIC__
  69266. + RESTORE_GP64
  69267. + PTR_ADDIU sp, FRAMESZ
  69268. +#endif
  69269. + move v0, zero
  69270. + jr ra
  69271. +
  69272. +99:
  69273. +#ifdef __PIC__
  69274. + PTR_LA t9, JUMPTARGET (__syscall_error)
  69275. + RESTORE_GP64
  69276. + PTR_ADDIU sp, FRAMESZ
  69277. + jr t9
  69278. +
  69279. +#else /* ! __PIC__ */
  69280. +
  69281. + j JUMPTARGET (__syscall_error)
  69282. +#endif /* ! __PIC__ */
  69283. +PSEUDO_END (__getcontext)
  69284. +
  69285. +weak_alias (__getcontext, getcontext)
  69286. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/mips/jmpbuf-unwind.h
  69287. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  69288. +++ uClibc-git/libc/sysdeps/linux/mips/jmpbuf-unwind.h 2014-06-02 17:40:34.542714907 +0200
  69289. @@ -0,0 +1,22 @@
  69290. +/*
  69291. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  69292. + *
  69293. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  69294. + */
  69295. +#include <setjmp.h>
  69296. +
  69297. +/* Test if longjmp to JMPBUF would unwind the frame
  69298. + containing a local variable at ADDRESS. */
  69299. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  69300. + ((void *) (address) < (void *) (jmpbuf)[0].__sp)
  69301. +
  69302. +#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  69303. +#include <stdint.h>
  69304. +#include <unwind.h>
  69305. +
  69306. +#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
  69307. + _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
  69308. +
  69309. +#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  69310. + ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[0].__sp - (_adj))
  69311. +#endif
  69312. 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
  69313. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/kernel_rt_sigframe.h 1970-01-01 01:00:00.000000000 +0100
  69314. +++ uClibc-git/libc/sysdeps/linux/mips/kernel_rt_sigframe.h 2014-06-02 17:40:34.542714907 +0200
  69315. @@ -0,0 +1,10 @@
  69316. +/* Linux kernel RT signal frame. */
  69317. +typedef struct kernel_rt_sigframe
  69318. + {
  69319. + uint32_t rs_ass[4];
  69320. + uint32_t rs_code[2];
  69321. + siginfo_t rs_info;
  69322. + struct ucontext rs_uc;
  69323. + uint32_t rs_altcode[8] __attribute__ ((__aligned__ (1 << 7)));
  69324. + }
  69325. +kernel_rt_sigframe_t;
  69326. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/__longjmp.c uClibc-git/libc/sysdeps/linux/mips/__longjmp.c
  69327. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/__longjmp.c 2012-05-15 09:20:09.000000000 +0200
  69328. +++ uClibc-git/libc/sysdeps/linux/mips/__longjmp.c 2014-06-02 17:40:34.534714863 +0200
  69329. @@ -13,9 +13,8 @@
  69330. Lesser General Public License for more details.
  69331. You should have received a copy of the GNU Lesser General Public
  69332. - License along with the GNU C Library; if not, write to the Free
  69333. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  69334. - 02111-1307 USA. */
  69335. + License along with the GNU C Library; if not, see
  69336. + <http://www.gnu.org/licenses/>. */
  69337. #include <features.h>
  69338. #include <setjmp.h>
  69339. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/makecontext.S uClibc-git/libc/sysdeps/linux/mips/makecontext.S
  69340. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/makecontext.S 1970-01-01 01:00:00.000000000 +0100
  69341. +++ uClibc-git/libc/sysdeps/linux/mips/makecontext.S 2014-06-02 17:40:34.542714907 +0200
  69342. @@ -0,0 +1,188 @@
  69343. +/* Modify saved context.
  69344. + Copyright (C) 2009 Free Software Foundation, Inc.
  69345. + This file is part of the GNU C Library.
  69346. + Contributed by Maciej W. Rozycki <macro@codesourcery.com>.
  69347. +
  69348. + The GNU C Library is free software; you can redistribute it and/or
  69349. + modify it under the terms of the GNU Lesser General Public
  69350. + License as published by the Free Software Foundation; either
  69351. + version 2.1 of the License, or (at your option) any later version.
  69352. +
  69353. + The GNU C Library is distributed in the hope that it will be useful,
  69354. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  69355. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  69356. + Lesser General Public License for more details.
  69357. +
  69358. + You should have received a copy of the GNU Lesser General Public
  69359. + License along with the GNU C Library. If not, see
  69360. + <http://www.gnu.org/licenses/>. */
  69361. +
  69362. +#include <sysdep.h>
  69363. +#include <sys/asm.h>
  69364. +#include <sys/fpregdef.h>
  69365. +#include <sys/regdef.h>
  69366. +
  69367. +#include "ucontext_i.h"
  69368. +
  69369. +/* int makecontext (ucontext_t *ucp, (void *func) (), int argc, ...) */
  69370. +
  69371. + .text
  69372. +LOCALSZ = 0
  69373. +ARGSZ = 0
  69374. +MASK = 0x00000000
  69375. +#ifdef __PIC__
  69376. +LOCALSZ = 1 /* save gp */
  69377. +#endif
  69378. +#if _MIPS_SIM != _ABIO32
  69379. +ARGSZ = 5 /* save a3-a7 */
  69380. +# ifdef __PIC__
  69381. +MASK = 0x10000000
  69382. +# endif
  69383. +#endif
  69384. +FRAMESZ = (((ARGSZ + LOCALSZ) * SZREG) + ALSZ) & ALMASK
  69385. +GPOFF = FRAMESZ - ((ARGSZ + 1) * SZREG)
  69386. +#if _MIPS_SIM != _ABIO32
  69387. +A3OFF = FRAMESZ - (5 * SZREG) /* callee-allocated */
  69388. +A4OFF = FRAMESZ - (4 * SZREG)
  69389. +A5OFF = FRAMESZ - (3 * SZREG)
  69390. +A6OFF = FRAMESZ - (2 * SZREG)
  69391. +A7OFF = FRAMESZ - (1 * SZREG)
  69392. +NARGREGS = 8
  69393. +#else
  69394. +A3OFF = FRAMESZ + (3 * SZREG) /* caller-allocated */
  69395. +NARGREGS = 4
  69396. +#endif
  69397. +
  69398. +NESTED (__makecontext, FRAMESZ, ra)
  69399. + .mask MASK, -(ARGSZ * SZREG)
  69400. + .fmask 0x00000000, 0
  69401. +
  69402. +98:
  69403. +#ifdef __PIC__
  69404. + SETUP_GP
  69405. +#endif
  69406. +
  69407. + PTR_ADDIU sp, -FRAMESZ
  69408. +
  69409. +#ifdef __PIC__
  69410. + SETUP_GP64 (GPOFF, __makecontext)
  69411. + SAVE_GP (GPOFF)
  69412. +#endif
  69413. +
  69414. +#ifdef PROF
  69415. + .set noat
  69416. + move AT, ra
  69417. + jal _mcount
  69418. + .set at
  69419. +#endif
  69420. +
  69421. + /* Store args to be passed. */
  69422. + REG_S a3, A3OFF(sp)
  69423. +#if _MIPS_SIM != _ABIO32
  69424. + REG_S a4, A4OFF(sp)
  69425. + REG_S a5, A5OFF(sp)
  69426. + REG_S a6, A6OFF(sp)
  69427. + REG_S a7, A7OFF(sp)
  69428. +#endif
  69429. +
  69430. + /* Store a magic flag. */
  69431. + li v1, 1
  69432. + REG_S v1, (0 * SZREG + MCONTEXT_GREGS)(a0) /* zero */
  69433. +
  69434. + /* Set up the stack. */
  69435. + PTR_L t0, STACK_SP(a0)
  69436. + PTR_L t2, STACK_SIZE(a0)
  69437. + PTR_ADDIU t1, sp, A3OFF
  69438. + PTR_ADDU t0, t2
  69439. + and t0, ALMASK
  69440. + blez a2, 2f /* no arguments */
  69441. +
  69442. + /* Store register arguments. */
  69443. + PTR_ADDIU t2, a0, MCONTEXT_GREGS + 4 * SZREG
  69444. + move t3, zero
  69445. +0:
  69446. + addiu t3, 1
  69447. + REG_L v1, (t1)
  69448. + PTR_ADDIU t1, SZREG
  69449. + REG_S v1, (t2)
  69450. + PTR_ADDIU t2, SZREG
  69451. + bgeu t3, a2, 2f /* all done */
  69452. + bltu t3, NARGREGS, 0b /* next */
  69453. +
  69454. + /* Make room for stack arguments. */
  69455. + PTR_SUBU t2, a2, t3
  69456. + PTR_SLL t2, 3
  69457. + PTR_SUBU t0, t2
  69458. + and t0, ALMASK
  69459. +
  69460. + /* Store stack arguments. */
  69461. + move t2, t0
  69462. +1:
  69463. + addiu t3, 1
  69464. + REG_L v1, (t1)
  69465. + PTR_ADDIU t1, SZREG
  69466. + REG_S v1, (t2)
  69467. + PTR_ADDIU t2, SZREG
  69468. + bltu t3, a2, 1b /* next */
  69469. +
  69470. +2:
  69471. +#if _MIPS_SIM == _ABIO32
  69472. + /* Make room for a0-a3 storage. */
  69473. + PTR_ADDIU t0, -(NARGSAVE * SZREG)
  69474. +#endif
  69475. + PTR_L v1, UCONTEXT_LINK(a0)
  69476. +#ifdef __PIC__
  69477. + PTR_ADDIU t9, 99f - 98b
  69478. +#else
  69479. + PTR_LA t9, 99f
  69480. +#endif
  69481. + REG_S t0, (29 * SZREG + MCONTEXT_GREGS)(a0) /* sp */
  69482. + REG_S v1, (16 * SZREG + MCONTEXT_GREGS)(a0) /* s0 */
  69483. +#ifdef __PIC__
  69484. + REG_S gp, (17 * SZREG + MCONTEXT_GREGS)(a0) /* s1 */
  69485. +#endif
  69486. + REG_S t9, (31 * SZREG + MCONTEXT_GREGS)(a0) /* ra */
  69487. + REG_S a1, MCONTEXT_PC(a0)
  69488. +
  69489. +#ifdef __PIC__
  69490. + RESTORE_GP64
  69491. + PTR_ADDIU sp, FRAMESZ
  69492. +#endif
  69493. + jr ra
  69494. +
  69495. +99:
  69496. +#ifdef __PIC__
  69497. + move gp, s1
  69498. +#endif
  69499. + move a0, zero
  69500. + beqz s0, 0f
  69501. +
  69502. + /* setcontext (ucp) */
  69503. + move a0, s0
  69504. +#ifdef __PIC__
  69505. + PTR_LA t9, JUMPTARGET (__setcontext)
  69506. + jalr t9
  69507. +# if _MIPS_SIM == _ABIO32
  69508. + move gp, s1
  69509. +# endif
  69510. +#else
  69511. + jal JUMPTARGET (__setcontext)
  69512. +#endif
  69513. + move a0, v0
  69514. +
  69515. +0:
  69516. + /* exit (a0) */
  69517. +#ifdef __PIC__
  69518. + PTR_LA t9, HIDDEN_JUMPTARGET (exit)
  69519. + jalr t9
  69520. +#else
  69521. + jal HIDDEN_JUMPTARGET (exit)
  69522. +#endif
  69523. +
  69524. + /* You don't exist, you won't feel anything. */
  69525. +1:
  69526. + lb zero, (zero)
  69527. + b 1b
  69528. +PSEUDO_END (__makecontext)
  69529. +
  69530. +weak_alias (__makecontext, makecontext)
  69531. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/Makefile.arch uClibc-git/libc/sysdeps/linux/mips/Makefile.arch
  69532. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  69533. +++ uClibc-git/libc/sysdeps/linux/mips/Makefile.arch 2014-06-02 17:40:34.534714863 +0200
  69534. @@ -5,20 +5,18 @@
  69535. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  69536. #
  69537. -CSRC := \
  69538. - __longjmp.c brk.c setjmp_aux.c mmap.c \
  69539. - cacheflush.c pread_write.c sigaction.c sysmips.c _test_and_set.c \
  69540. - readahead.c
  69541. -
  69542. -SSRC := bsd-_setjmp.S bsd-setjmp.S setjmp.S syscall.S pipe.S syscall_error.S
  69543. -
  69544. -ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y)
  69545. -CSRC += posix_fadvise.c posix_fadvise64.c
  69546. -endif
  69547. -
  69548. -ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
  69549. -SSRC += vfork.S clone.S
  69550. -endif
  69551. +CSRC-y := \
  69552. + __longjmp.c brk.c setjmp_aux.c \
  69553. + pread_write.c sigaction.c _test_and_set.c
  69554. +
  69555. +SSRC-y := bsd-_setjmp.S bsd-setjmp.S setjmp.S syscall.S pipe.S syscall_error.S
  69556. +
  69557. +CSRC-$(UCLIBC_LINUX_SPECIFIC) += cacheflush.c sysmips.c
  69558. +CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_fadvise.c
  69559. +CSRC-$(if $(findstring yy,$(UCLIBC_HAS_LFS)$(UCLIBC_HAS_ADVANCED_REALTIME)),y) += posix_fadvise64.c
  69560. +SSRC-$(if $(UCLIBC_HAS_THREADS_NATIVE),,y) += vfork.S clone.S
  69561. +SSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += makecontext.S setcontext.S getcontext.S \
  69562. + swapcontext.S
  69563. ASFLAGS-syscall_error.S += -D_LIBC_REENTRANT
  69564. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/mmap.c uClibc-git/libc/sysdeps/linux/mips/mmap.c
  69565. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/mmap.c 2012-05-15 09:20:09.000000000 +0200
  69566. +++ uClibc-git/libc/sysdeps/linux/mips/mmap.c 1970-01-01 01:00:00.000000000 +0100
  69567. @@ -1,26 +0,0 @@
  69568. -/* Use new style mmap for mips */
  69569. -/*
  69570. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  69571. - *
  69572. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  69573. - */
  69574. -
  69575. -#include <unistd.h>
  69576. -#include <errno.h>
  69577. -#include <sys/mman.h>
  69578. -#include <sys/syscall.h>
  69579. -
  69580. -
  69581. -#if 0
  69582. -/* For now, leave mmap using mmap1 since mmap2 seems
  69583. - * to have issues (i.e. it doesn't work 100% properly).
  69584. - */
  69585. -#ifdef __NR_mmap2
  69586. -# undef __NR_mmap
  69587. -# define __NR_mmap __NR_mmap2
  69588. -#endif
  69589. -#endif
  69590. -
  69591. -_syscall6 (__ptr_t, mmap, __ptr_t, addr, size_t, len, int, prot,
  69592. - int, flags, int, fd, __off_t, offset)
  69593. -libc_hidden_def(mmap)
  69594. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/posix_fadvise64.c uClibc-git/libc/sysdeps/linux/mips/posix_fadvise64.c
  69595. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/posix_fadvise64.c 2012-05-15 09:20:09.000000000 +0200
  69596. +++ uClibc-git/libc/sysdeps/linux/mips/posix_fadvise64.c 2014-06-02 17:40:34.542714907 +0200
  69597. @@ -8,36 +8,28 @@
  69598. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  69599. */
  69600. -#include <features.h>
  69601. -#include <unistd.h>
  69602. -#include <errno.h>
  69603. -#include <endian.h>
  69604. -#include <stdint.h>
  69605. -#include <sys/types.h>
  69606. +#include <_lfs_64.h>
  69607. #include <sys/syscall.h>
  69608. -#include <fcntl.h>
  69609. +#include <bits/wordsize.h>
  69610. -#ifdef __UCLIBC_HAS_LFS__
  69611. +/* MIPS kernel only has NR_fadvise64 which acts as NR_fadvise64_64 */
  69612. +#if defined __NR_fadvise64 && __WORDSIZE == 32
  69613. +# include <fcntl.h>
  69614. +# include <endian.h>
  69615. -int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advice)
  69616. +int posix_fadvise64(int fd, off64_t offset, off64_t len, int advice)
  69617. {
  69618. -/* MIPS kernel only has NR_fadvise64 which acts as NR_fadvise64_64 */
  69619. -#ifdef __NR_fadvise64
  69620. INTERNAL_SYSCALL_DECL(err);
  69621. -# if _MIPS_SIM == _MIPS_SIM_ABI32
  69622. +# if _MIPS_SIM == _ABIO32
  69623. int ret = INTERNAL_SYSCALL(fadvise64, err, 7, fd, 0,
  69624. - __LONG_LONG_PAIR ((long) (offset >> 32), (long) offset),
  69625. - __LONG_LONG_PAIR ((long) (len >> 32), (long) len),
  69626. - advice);
  69627. + __LONG_LONG_PAIR ((long) (offset >> 32), (long) offset),
  69628. + __LONG_LONG_PAIR ((long) (len >> 32), (long) len),
  69629. + advice);
  69630. # else /* N32 || N64 */
  69631. int ret = INTERNAL_SYSCALL(fadvise64, err, 4, fd, offset, len, advice);
  69632. # endif
  69633. if (INTERNAL_SYSCALL_ERROR_P (ret, err))
  69634. return INTERNAL_SYSCALL_ERRNO (ret, err);
  69635. return 0;
  69636. -#else
  69637. - return ENOSYS;
  69638. -#endif
  69639. }
  69640. -
  69641. -#endif /* __UCLIBC_HAS_LFS__ */
  69642. +#endif
  69643. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/posix_fadvise.c uClibc-git/libc/sysdeps/linux/mips/posix_fadvise.c
  69644. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/posix_fadvise.c 2012-05-15 09:20:09.000000000 +0200
  69645. +++ uClibc-git/libc/sysdeps/linux/mips/posix_fadvise.c 2014-06-02 17:40:34.542714907 +0200
  69646. @@ -8,19 +8,16 @@
  69647. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  69648. */
  69649. -#include <features.h>
  69650. -#include <unistd.h>
  69651. -#include <errno.h>
  69652. -#include <endian.h>
  69653. -#include <stdint.h>
  69654. -#include <sys/types.h>
  69655. #include <sys/syscall.h>
  69656. -#include <fcntl.h>
  69657. -int posix_fadvise(int fd, off_t offset, off_t len, int advice)
  69658. -{
  69659. /* MIPS kernel only has NR_fadvise64 which acts as NR_fadvise64_64 */
  69660. #ifdef __NR_fadvise64
  69661. +# include <fcntl.h>
  69662. +# include <endian.h>
  69663. +# include <bits/wordsize.h>
  69664. +
  69665. +int posix_fadvise(int fd, off_t offset, off_t len, int advice)
  69666. +{
  69667. INTERNAL_SYSCALL_DECL(err);
  69668. # if _MIPS_SIM == _ABIO32
  69669. int ret = INTERNAL_SYSCALL(fadvise64, err, 7, fd, 0,
  69670. @@ -33,7 +30,9 @@
  69671. if (INTERNAL_SYSCALL_ERROR_P (ret, err))
  69672. return INTERNAL_SYSCALL_ERRNO (ret, err);
  69673. return 0;
  69674. -#else
  69675. - return ENOSYS;
  69676. -#endif
  69677. }
  69678. +# if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
  69679. +strong_alias(posix_fadvise,posix_fadvise64)
  69680. +# endif
  69681. +
  69682. +#endif
  69683. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/pread_write.c uClibc-git/libc/sysdeps/linux/mips/pread_write.c
  69684. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/pread_write.c 2012-05-15 09:20:09.000000000 +0200
  69685. +++ uClibc-git/libc/sysdeps/linux/mips/pread_write.c 2014-06-02 17:40:34.542714907 +0200
  69686. @@ -4,112 +4,28 @@
  69687. *
  69688. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  69689. */
  69690. -/*
  69691. - * Based in part on the files
  69692. - * ./sysdeps/unix/sysv/linux/pwrite.c,
  69693. - * ./sysdeps/unix/sysv/linux/pread.c,
  69694. - * sysdeps/posix/pread.c
  69695. - * sysdeps/posix/pwrite.c
  69696. - * from GNU libc 2.2.5, but reworked considerably...
  69697. - */
  69698. #include <sys/syscall.h>
  69699. #include <unistd.h>
  69700. -#include <stdint.h>
  69701. #include <endian.h>
  69702. #include <sgidefs.h>
  69703. -#ifdef __NR_pread64 /* Newer kernels renamed but it's the same. */
  69704. -# ifdef __NR_pread
  69705. -# error "__NR_pread and __NR_pread64 both defined???"
  69706. -# endif
  69707. -# define __NR_pread __NR_pread64
  69708. -#endif
  69709. -
  69710. -extern __typeof(pread) __libc_pread;
  69711. -extern __typeof(pwrite) __libc_pwrite;
  69712. -#ifdef __UCLIBC_HAS_LFS__
  69713. -extern __typeof(pread64) __libc_pread64;
  69714. -extern __typeof(pwrite64) __libc_pwrite64;
  69715. -#endif
  69716. -
  69717. -#include <bits/kernel_types.h>
  69718. -
  69719. -
  69720. -#ifdef __NR_pread
  69721. -
  69722. -# if _MIPS_SIM == _MIPS_SIM_ABI64
  69723. -# define __NR___libc_pread __NR_pread
  69724. -_syscall4(ssize_t, __libc_pread, int, fd, void *, buf, size_t, count, off_t, offset)
  69725. -weak_alias (__libc_pread, pread)
  69726. -# ifdef __UCLIBC_HAS_LFS__
  69727. -# define __NR___libc_pread64 __NR_pread
  69728. -_syscall4(ssize_t, __libc_pread64, int, fd, void *, buf, size_t, count, off64_t, offset)
  69729. -weak_alias (__libc_pread64, pread64)
  69730. -# endif /* __UCLIBC_HAS_LFS__ */
  69731. -# else /* O32 || N32 */
  69732. -# define __NR___syscall_pread __NR_pread
  69733. -static __inline__ _syscall6(ssize_t, __syscall_pread, int, fd, void *, buf,
  69734. - size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
  69735. -
  69736. -ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
  69737. -{
  69738. - return(__syscall_pread(fd,buf,count,0,__LONG_LONG_PAIR(offset>>31,offset)));
  69739. -}
  69740. -weak_alias(__libc_pread,pread)
  69741. -
  69742. -# ifdef __UCLIBC_HAS_LFS__
  69743. -ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
  69744. -{
  69745. - uint32_t low = offset & 0xffffffff;
  69746. - uint32_t high = offset >> 32;
  69747. - return(__syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR (high, low)));
  69748. -}
  69749. -weak_alias(__libc_pread64,pread64)
  69750. -# endif /* __UCLIBC_HAS_LFS__ */
  69751. -# endif /* O32 || N32 */
  69752. -
  69753. -#endif /* __NR_pread */
  69754. -
  69755. -/**********************************************************************/
  69756. -
  69757. -#ifdef __NR_pwrite64 /* Newer kernels renamed but it's the same. */
  69758. -# ifdef __NR_pwrite
  69759. -# error "__NR_pwrite and __NR_pwrite64 both defined???"
  69760. -# endif
  69761. -# define __NR_pwrite __NR_pwrite64
  69762. +/* We should generalize this for 32bit userlands w/64bit regs. This applies
  69763. + * to the x86_64 x32 and the mips n32 ABIs. */
  69764. +#if _MIPS_SIM == _MIPS_SIM_NABI32
  69765. +# define __NR___syscall_pread __NR_pread64
  69766. +static _syscall4(ssize_t, __syscall_pread, int, fd, void *, buf, size_t, count, off_t, offset)
  69767. +# define MY_PREAD(fd, buf, count, offset) \
  69768. + __syscall_pread(fd, buf, count, offset)
  69769. +# define MY_PREAD64(fd, buf, count, offset) \
  69770. + __syscall_pread(fd, buf, count, offset)
  69771. +
  69772. +# define __NR___syscall_pwrite __NR_pwrite64
  69773. +static _syscall4(ssize_t, __syscall_pwrite, int, fd, const void *, buf, size_t, count, off_t, offset)
  69774. +# define MY_PWRITE(fd, buf, count, offset) \
  69775. + __syscall_pwrite(fd, buf, count, offset)
  69776. +# define MY_PWRITE64(fd, buf, count, offset) \
  69777. + __syscall_pwrite(fd, buf, count, offset)
  69778. #endif
  69779. -#ifdef __NR_pwrite
  69780. -
  69781. -# if _MIPS_SIM == _MIPS_SIM_ABI64
  69782. -# define __NR___libc_pwrite __NR_pwrite
  69783. -_syscall4(ssize_t, __libc_pwrite, int, fd, const void *, buf, size_t, count, off_t, offset)
  69784. -weak_alias (__libc_pwrite, pwrite)
  69785. -# ifdef __UCLIBC_HAS_LFS__
  69786. -# define __NR___libc_pwrite64 __NR_pwrite
  69787. -_syscall4(ssize_t, __libc_pwrite64, int, fd, const void *, buf, size_t, count, off64_t, offset)
  69788. -weak_alias (__libc_pwrite64, pwrite64)
  69789. -# endif /* __UCLIBC_HAS_LFS__ */
  69790. -# else /* O32 || N32 */
  69791. -# define __NR___syscall_pwrite __NR_pwrite
  69792. -static __inline__ _syscall6(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
  69793. - size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
  69794. -
  69795. -ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
  69796. -{
  69797. - return(__syscall_pwrite(fd,buf,count,0,__LONG_LONG_PAIR(offset>>31,offset)));
  69798. -}
  69799. -weak_alias(__libc_pwrite,pwrite)
  69800. -
  69801. -# ifdef __UCLIBC_HAS_LFS__
  69802. -ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
  69803. -{
  69804. - uint32_t low = offset & 0xffffffff;
  69805. - uint32_t high = offset >> 32;
  69806. - return(__syscall_pwrite(fd, buf, count, 0, __LONG_LONG_PAIR (high, low)));
  69807. -}
  69808. -weak_alias(__libc_pwrite64,pwrite64)
  69809. -# endif /* __UCLIBC_HAS_LFS__ */
  69810. -# endif /* O32 || N32 */
  69811. -#endif /* __NR_pwrite */
  69812. +#include "../common/pread_write.c"
  69813. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/readahead.c uClibc-git/libc/sysdeps/linux/mips/readahead.c
  69814. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/readahead.c 2012-05-15 09:20:09.000000000 +0200
  69815. +++ uClibc-git/libc/sysdeps/linux/mips/readahead.c 1970-01-01 01:00:00.000000000 +0100
  69816. @@ -1,41 +0,0 @@
  69817. -/* Provide kernel hint to read ahead.
  69818. - Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
  69819. - This file is part of the GNU C Library.
  69820. -
  69821. - The GNU C Library is free software; you can redistribute it and/or
  69822. - modify it under the terms of the GNU Lesser General Public
  69823. - License as published by the Free Software Foundation; either
  69824. - version 2.1 of the License, or (at your option) any later version.
  69825. -
  69826. - The GNU C Library is distributed in the hope that it will be useful,
  69827. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  69828. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  69829. - Lesser General Public License for more details.
  69830. -
  69831. - You should have received a copy of the GNU Lesser General Public
  69832. - License along with the GNU C Library; if not, write to the Free
  69833. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  69834. - 02111-1307 USA. */
  69835. -
  69836. -#include <errno.h>
  69837. -#include <fcntl.h>
  69838. -#include <sys/types.h>
  69839. -#include <sys/syscall.h>
  69840. -
  69841. -#ifdef __UCLIBC_HAS_LFS__
  69842. -#include <_lfs_64.h>
  69843. -# ifdef __NR_readahead
  69844. -
  69845. -ssize_t readahead(int fd, off64_t offset, size_t count)
  69846. -{
  69847. -# if _MIPS_SIM == _ABIO32
  69848. - return INLINE_SYSCALL (readahead, 5, fd, 0,
  69849. - __LONG_LONG_PAIR ((off_t) (offset >> 32), (off_t) offset),
  69850. - count);
  69851. -# else /* N32 || N64 */
  69852. - return INLINE_SYSCALL (readahead, 3, fd, offset, count);
  69853. -# endif
  69854. -}
  69855. -
  69856. -# endif
  69857. -#endif
  69858. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/setcontext.S uClibc-git/libc/sysdeps/linux/mips/setcontext.S
  69859. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/setcontext.S 1970-01-01 01:00:00.000000000 +0100
  69860. +++ uClibc-git/libc/sysdeps/linux/mips/setcontext.S 2014-06-02 17:40:34.542714907 +0200
  69861. @@ -0,0 +1,191 @@
  69862. +/* Set current context.
  69863. + Copyright (C) 2009 Free Software Foundation, Inc.
  69864. + This file is part of the GNU C Library.
  69865. + Contributed by Maciej W. Rozycki <macro@codesourcery.com>.
  69866. +
  69867. + The GNU C Library is free software; you can redistribute it and/or
  69868. + modify it under the terms of the GNU Lesser General Public
  69869. + License as published by the Free Software Foundation; either
  69870. + version 2.1 of the License, or (at your option) any later version.
  69871. +
  69872. + The GNU C Library is distributed in the hope that it will be useful,
  69873. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  69874. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  69875. + Lesser General Public License for more details.
  69876. +
  69877. + You should have received a copy of the GNU Lesser General Public
  69878. + License along with the GNU C Library. If not, see
  69879. + <http://www.gnu.org/licenses/>. */
  69880. +
  69881. +#include <sysdep.h>
  69882. +#include <sys/asm.h>
  69883. +#include <sys/fpregdef.h>
  69884. +#include <sys/regdef.h>
  69885. +
  69886. +#include "ucontext_i.h"
  69887. +
  69888. +/* int setcontext (const ucontext_t *ucp) */
  69889. +
  69890. + .text
  69891. +LOCALSZ = 0
  69892. +ARGSZ = 0
  69893. +MASK = 0x00000000
  69894. +#ifdef __PIC__
  69895. +LOCALSZ = 1 /* save gp */
  69896. +#endif
  69897. +#if _MIPS_SIM != _ABIO32
  69898. +ARGSZ = 1 /* save a0 */
  69899. +# ifdef __PIC__
  69900. +MASK = 0x10000000
  69901. +# endif
  69902. +#endif
  69903. +FRAMESZ = (((ARGSZ + LOCALSZ) * SZREG) + ALSZ) & ALMASK
  69904. +GPOFF = FRAMESZ - ((ARGSZ + 1) * SZREG)
  69905. +#if _MIPS_SIM != _ABIO32
  69906. +A0OFF = FRAMESZ - (1 * SZREG) /* callee-allocated */
  69907. +#else
  69908. +A0OFF = FRAMESZ + (0 * SZREG) /* caller-allocated */
  69909. +#endif
  69910. +
  69911. +NESTED (__setcontext, FRAMESZ, ra)
  69912. + .mask MASK, -(ARGSZ * SZREG)
  69913. + .fmask 0x00000000, 0
  69914. +
  69915. +#ifdef __PIC__
  69916. + SETUP_GP
  69917. +#endif
  69918. +
  69919. + PTR_ADDIU sp, -FRAMESZ
  69920. +
  69921. +#ifdef __PIC__
  69922. + SETUP_GP64 (GPOFF, __setcontext)
  69923. + SAVE_GP (GPOFF)
  69924. +#endif
  69925. +
  69926. +#ifdef PROF
  69927. + .set noat
  69928. + move AT, ra
  69929. + jal _mcount
  69930. + .set at
  69931. +#endif
  69932. +
  69933. + /* Check for the magic flag. */
  69934. + li v0, 1
  69935. + REG_L v1, (0 * SZREG + MCONTEXT_GREGS)(a0) /* zero */
  69936. + bne v0, v1, 98f
  69937. +
  69938. + REG_S a0, A0OFF(sp)
  69939. +
  69940. +/* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, NULL, _NSIG8) */
  69941. + li a3, _NSIG8
  69942. + move a2, zero
  69943. + PTR_ADDU a1, a0, UCONTEXT_SIGMASK
  69944. + li a0, SIG_SETMASK
  69945. +
  69946. + li v0, SYS_ify (rt_sigprocmask)
  69947. + syscall
  69948. + bnez a3, 99f
  69949. +
  69950. + REG_L v0, A0OFF(sp)
  69951. +
  69952. +#ifdef __mips_hard_float
  69953. +# if _MIPS_SIM == _ABI64
  69954. + l.d fs0, (24 * SZREG + MCONTEXT_FPREGS)(v0)
  69955. + l.d fs1, (25 * SZREG + MCONTEXT_FPREGS)(v0)
  69956. + l.d fs2, (26 * SZREG + MCONTEXT_FPREGS)(v0)
  69957. + l.d fs3, (27 * SZREG + MCONTEXT_FPREGS)(v0)
  69958. + l.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
  69959. + l.d fs5, (29 * SZREG + MCONTEXT_FPREGS)(v0)
  69960. + l.d fs6, (30 * SZREG + MCONTEXT_FPREGS)(v0)
  69961. + l.d fs7, (31 * SZREG + MCONTEXT_FPREGS)(v0)
  69962. +
  69963. +# else /* _MIPS_SIM != _ABI64 */
  69964. + l.d fs0, (20 * SZREG + MCONTEXT_FPREGS)(v0)
  69965. + l.d fs1, (22 * SZREG + MCONTEXT_FPREGS)(v0)
  69966. + l.d fs2, (24 * SZREG + MCONTEXT_FPREGS)(v0)
  69967. + l.d fs3, (26 * SZREG + MCONTEXT_FPREGS)(v0)
  69968. + l.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
  69969. + l.d fs5, (30 * SZREG + MCONTEXT_FPREGS)(v0)
  69970. +
  69971. +# endif /* _MIPS_SIM != _ABI64 */
  69972. +
  69973. + lw v1, MCONTEXT_FPC_CSR(v0)
  69974. + ctc1 v1, fcr31
  69975. +#endif /* __mips_hard_float */
  69976. +
  69977. + /* Note the contents of argument registers will be random
  69978. + unless makecontext() has been called. */
  69979. + REG_L a0, (4 * SZREG + MCONTEXT_GREGS)(v0)
  69980. + REG_L a1, (5 * SZREG + MCONTEXT_GREGS)(v0)
  69981. + REG_L a2, (6 * SZREG + MCONTEXT_GREGS)(v0)
  69982. + REG_L a3, (7 * SZREG + MCONTEXT_GREGS)(v0)
  69983. +#if _MIPS_SIM != _ABIO32
  69984. + REG_L a4, (8 * SZREG + MCONTEXT_GREGS)(v0)
  69985. + REG_L a5, (9 * SZREG + MCONTEXT_GREGS)(v0)
  69986. + REG_L a6, (10 * SZREG + MCONTEXT_GREGS)(v0)
  69987. + REG_L a7, (11 * SZREG + MCONTEXT_GREGS)(v0)
  69988. +#endif
  69989. +
  69990. + REG_L s0, (16 * SZREG + MCONTEXT_GREGS)(v0)
  69991. + REG_L s1, (17 * SZREG + MCONTEXT_GREGS)(v0)
  69992. + REG_L s2, (18 * SZREG + MCONTEXT_GREGS)(v0)
  69993. + REG_L s3, (19 * SZREG + MCONTEXT_GREGS)(v0)
  69994. + REG_L s4, (20 * SZREG + MCONTEXT_GREGS)(v0)
  69995. + REG_L s5, (21 * SZREG + MCONTEXT_GREGS)(v0)
  69996. + REG_L s6, (22 * SZREG + MCONTEXT_GREGS)(v0)
  69997. + REG_L s7, (23 * SZREG + MCONTEXT_GREGS)(v0)
  69998. +#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
  69999. + REG_L gp, (28 * SZREG + MCONTEXT_GREGS)(v0)
  70000. +#endif
  70001. + REG_L sp, (29 * SZREG + MCONTEXT_GREGS)(v0)
  70002. + REG_L fp, (30 * SZREG + MCONTEXT_GREGS)(v0)
  70003. + REG_L ra, (31 * SZREG + MCONTEXT_GREGS)(v0)
  70004. + REG_L t9, MCONTEXT_PC(v0)
  70005. +
  70006. + move v0, zero
  70007. + jr t9
  70008. +
  70009. +98:
  70010. + /* This is a context obtained from a signal handler.
  70011. + Perform a full restore by pushing the context
  70012. + passed onto a simulated signal frame on the stack
  70013. + and call the signal return syscall as if a signal
  70014. + handler exited normally. */
  70015. + PTR_ADDIU sp, -((RT_SIGFRAME_SIZE + ALSZ) & ALMASK)
  70016. +
  70017. + /* Only ucontext is referred to from rt_sigreturn,
  70018. + copy it. */
  70019. + PTR_ADDIU t1, sp, RT_SIGFRAME_UCONTEXT
  70020. + li t3, ((UCONTEXT_SIZE + SZREG - 1) / SZREG) - 1
  70021. +0:
  70022. + REG_L t2, (a0)
  70023. + PTR_ADDIU a0, SZREG
  70024. + REG_S t2, (t1)
  70025. + PTR_ADDIU t1, SZREG
  70026. + .set noreorder
  70027. + bgtz t3, 0b
  70028. + addiu t3, -1
  70029. + .set reorder
  70030. +
  70031. +/* rt_sigreturn () -- no arguments, sp points to struct rt_sigframe. */
  70032. + li v0, SYS_ify (rt_sigreturn)
  70033. + syscall
  70034. +
  70035. + /* Restore the stack and fall through to the error
  70036. + path. Successful rt_sigreturn never returns to
  70037. + its calling place. */
  70038. + PTR_ADDIU sp, ((RT_SIGFRAME_SIZE + ALSZ) & ALMASK)
  70039. +99:
  70040. +#ifdef __PIC__
  70041. + PTR_LA t9, JUMPTARGET (__syscall_error)
  70042. + RESTORE_GP64
  70043. + PTR_ADDIU sp, FRAMESZ
  70044. + jr t9
  70045. +
  70046. +#else /* ! __PIC__ */
  70047. +
  70048. + j JUMPTARGET (__syscall_error)
  70049. +#endif /* ! __PIC__ */
  70050. +PSEUDO_END (__setcontext)
  70051. +
  70052. +weak_alias (__setcontext, setcontext)
  70053. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/setjmp_aux.c uClibc-git/libc/sysdeps/linux/mips/setjmp_aux.c
  70054. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/setjmp_aux.c 2012-05-15 09:20:09.000000000 +0200
  70055. +++ uClibc-git/libc/sysdeps/linux/mips/setjmp_aux.c 2014-06-02 17:40:34.542714907 +0200
  70056. @@ -13,9 +13,8 @@
  70057. Lesser General Public License for more details.
  70058. You should have received a copy of the GNU Lesser General Public
  70059. - License along with the GNU C Library; if not, write to the Free
  70060. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70061. - 02111-1307 USA. */
  70062. + License along with the GNU C Library; if not, see
  70063. + <http://www.gnu.org/licenses/>. */
  70064. #include <features.h>
  70065. #include <setjmp.h>
  70066. @@ -27,11 +26,9 @@
  70067. pointer. We do things this way because it's difficult to reliably
  70068. access them in C. */
  70069. -extern int __sigjmp_save (sigjmp_buf, int);
  70070. -
  70071. int
  70072. #if _MIPS_SIM == _MIPS_SIM_ABI64
  70073. -__sigsetjmp_aux (jmp_buf env, int savemask, long sp, long fp)
  70074. +__sigsetjmp_aux (jmp_buf env, int savemask, long long sp, long long fp, long long gp)
  70075. #else /* O32 || N32 */
  70076. __sigsetjmp_aux (jmp_buf env, int savemask, int sp, int fp)
  70077. #endif /* O32 || N32 */
  70078. @@ -65,14 +62,14 @@
  70079. #endif
  70080. /* .. and the stack pointer; */
  70081. - env[0].__jmpbuf[0].__sp = (void *) sp;
  70082. + env[0].__jmpbuf[0].__sp = (ptrsize) sp;
  70083. /* .. and the FP; it'll be in s8. */
  70084. - env[0].__jmpbuf[0].__fp = (void *) fp;
  70085. + env[0].__jmpbuf[0].__fp = (ptrsize) fp;
  70086. /* .. and the GP; */
  70087. #if _MIPS_SIM == _MIPS_SIM_ABI64
  70088. - __asm__ __volatile__ ("sd $gp, %0" : : "m" (env[0].__jmpbuf[0].__gp));
  70089. + env[0].__jmpbuf[0].__gp = (ptrsize) gp;
  70090. #else
  70091. __asm__ __volatile__ ("sw $gp, %0" : : "m" (env[0].__jmpbuf[0].__gp));
  70092. #endif
  70093. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/setjmp.S uClibc-git/libc/sysdeps/linux/mips/setjmp.S
  70094. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  70095. +++ uClibc-git/libc/sysdeps/linux/mips/setjmp.S 2014-06-02 17:40:34.542714907 +0200
  70096. @@ -12,9 +12,8 @@
  70097. Lesser General Public License for more details.
  70098. You should have received a copy of the GNU Lesser General Public
  70099. - License along with the GNU C Library; if not, write to the Free
  70100. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70101. - 02111-1307 USA. */
  70102. + License along with the GNU C Library; if not, see
  70103. + <http://www.gnu.org/licenses/>. */
  70104. #include <sys/regdef.h>
  70105. #include <sys/asm.h>
  70106. @@ -53,6 +52,7 @@
  70107. PTR_LA t9, __sigsetjmp_aux
  70108. #if _MIPS_SIM != _MIPS_SIM_ABI32
  70109. .cpreturn
  70110. + move a4, gp
  70111. #endif
  70112. jr t9
  70113. #else
  70114. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sgidefs.h uClibc-git/libc/sysdeps/linux/mips/sgidefs.h
  70115. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sgidefs.h 2012-05-15 09:20:09.000000000 +0200
  70116. +++ uClibc-git/libc/sysdeps/linux/mips/sgidefs.h 2014-06-02 17:40:34.542714907 +0200
  70117. @@ -13,9 +13,8 @@
  70118. Lesser General Public License for more details.
  70119. You should have received a copy of the GNU Lesser General Public
  70120. - License along with the GNU C Library; if not, write to the Free
  70121. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70122. - 02111-1307 USA. */
  70123. + License along with the GNU C Library; if not, see
  70124. + <http://www.gnu.org/licenses/>. */
  70125. #ifndef _SGIDEFS_H
  70126. #define _SGIDEFS_H 1
  70127. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sigaction.c uClibc-git/libc/sysdeps/linux/mips/sigaction.c
  70128. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sigaction.c 2012-05-15 09:20:09.000000000 +0200
  70129. +++ uClibc-git/libc/sysdeps/linux/mips/sigaction.c 2014-06-02 17:40:34.542714907 +0200
  70130. @@ -13,8 +13,7 @@
  70131. You should have received a copy of the GNU Library General Public
  70132. License along with the GNU C Library; see the file COPYING.LIB. If not,
  70133. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  70134. - Boston, MA 02111-1307, USA.
  70135. + see <http://www.gnu.org/licenses/>.
  70136. Totally hacked up for uClibc by Erik Andersen <andersen@codepoet.org>
  70137. */
  70138. @@ -27,9 +26,6 @@
  70139. #define SA_RESTORER 0x04000000
  70140. -extern __typeof(sigaction) __libc_sigaction;
  70141. -
  70142. -
  70143. #ifdef __NR_rt_sigaction
  70144. # if _MIPS_SIM != _ABIO32
  70145. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/swapcontext.S uClibc-git/libc/sysdeps/linux/mips/swapcontext.S
  70146. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/swapcontext.S 1970-01-01 01:00:00.000000000 +0100
  70147. +++ uClibc-git/libc/sysdeps/linux/mips/swapcontext.S 2014-06-02 17:40:34.542714907 +0200
  70148. @@ -0,0 +1,211 @@
  70149. +/* Save and set current context.
  70150. + Copyright (C) 2009 Free Software Foundation, Inc.
  70151. + This file is part of the GNU C Library.
  70152. + Contributed by Maciej W. Rozycki <macro@codesourcery.com>.
  70153. +
  70154. + The GNU C Library is free software; you can redistribute it and/or
  70155. + modify it under the terms of the GNU Lesser General Public
  70156. + License as published by the Free Software Foundation; either
  70157. + version 2.1 of the License, or (at your option) any later version.
  70158. +
  70159. + The GNU C Library is distributed in the hope that it will be useful,
  70160. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  70161. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  70162. + Lesser General Public License for more details.
  70163. +
  70164. + You should have received a copy of the GNU Lesser General Public
  70165. + License along with the GNU C Library. If not, see
  70166. + <http://www.gnu.org/licenses/>. */
  70167. +
  70168. +#include <sysdep.h>
  70169. +#include <sys/asm.h>
  70170. +#include <sys/fpregdef.h>
  70171. +#include <sys/regdef.h>
  70172. +
  70173. +#include "ucontext_i.h"
  70174. +
  70175. +/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */
  70176. +
  70177. + .text
  70178. +LOCALSZ = 0
  70179. +ARGSZ = 0
  70180. +MASK = 0x00000000
  70181. +#ifdef __PIC__
  70182. +LOCALSZ = 1 /* save gp */
  70183. +#endif
  70184. +#if _MIPS_SIM != _ABIO32
  70185. +ARGSZ = 1 /* save a1 */
  70186. +# ifdef __PIC__
  70187. +MASK = 0x10000000
  70188. +# endif
  70189. +#endif
  70190. +FRAMESZ = (((ARGSZ + LOCALSZ) * SZREG) + ALSZ) & ALMASK
  70191. +GPOFF = FRAMESZ - ((ARGSZ + 1) * SZREG)
  70192. +#if _MIPS_SIM != _ABIO32
  70193. +A1OFF = FRAMESZ - (1 * SZREG) /* callee-allocated */
  70194. +#else
  70195. +A1OFF = FRAMESZ + (1 * SZREG) /* caller-allocated */
  70196. +#endif
  70197. +
  70198. +NESTED (__swapcontext, FRAMESZ, ra)
  70199. + .mask MASK, -(ARGSZ * SZREG)
  70200. + .fmask 0x00000000, 0
  70201. +
  70202. +#ifdef __PIC__
  70203. + SETUP_GP
  70204. +
  70205. + move a2, sp
  70206. +# define _SP a2
  70207. +
  70208. +# if _MIPS_SIM != _ABIO32
  70209. + move a3, gp
  70210. +# define _GP a3
  70211. +# endif
  70212. +
  70213. + PTR_ADDIU sp, -FRAMESZ
  70214. + SETUP_GP64 (GPOFF, __swapcontext)
  70215. + SAVE_GP (GPOFF)
  70216. +
  70217. +#else /* ! __PIC__ */
  70218. +# define _SP sp
  70219. +# define _GP gp
  70220. +
  70221. +#endif /* ! __PIC__ */
  70222. +
  70223. +#ifdef PROF
  70224. + .set noat
  70225. + move AT, ra
  70226. + jal _mcount
  70227. + .set at
  70228. +#endif
  70229. +
  70230. + /* Store a magic flag. */
  70231. + li v1, 1
  70232. + REG_S v1, (0 * SZREG + MCONTEXT_GREGS)(a0) /* zero */
  70233. +
  70234. + REG_S s0, (16 * SZREG + MCONTEXT_GREGS)(a0)
  70235. + REG_S s1, (17 * SZREG + MCONTEXT_GREGS)(a0)
  70236. + REG_S s2, (18 * SZREG + MCONTEXT_GREGS)(a0)
  70237. + REG_S s3, (19 * SZREG + MCONTEXT_GREGS)(a0)
  70238. + REG_S s4, (20 * SZREG + MCONTEXT_GREGS)(a0)
  70239. + REG_S s5, (21 * SZREG + MCONTEXT_GREGS)(a0)
  70240. + REG_S s6, (22 * SZREG + MCONTEXT_GREGS)(a0)
  70241. + REG_S s7, (23 * SZREG + MCONTEXT_GREGS)(a0)
  70242. +#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
  70243. + REG_S _GP, (28 * SZREG + MCONTEXT_GREGS)(a0)
  70244. +#endif
  70245. + REG_S _SP, (29 * SZREG + MCONTEXT_GREGS)(a0)
  70246. + REG_S fp, (30 * SZREG + MCONTEXT_GREGS)(a0)
  70247. + REG_S ra, (31 * SZREG + MCONTEXT_GREGS)(a0)
  70248. + REG_S ra, MCONTEXT_PC(a0)
  70249. +
  70250. +#ifdef __mips_hard_float
  70251. +# if _MIPS_SIM == _ABI64
  70252. + s.d fs0, (24 * SZREG + MCONTEXT_FPREGS)(a0)
  70253. + s.d fs1, (25 * SZREG + MCONTEXT_FPREGS)(a0)
  70254. + s.d fs2, (26 * SZREG + MCONTEXT_FPREGS)(a0)
  70255. + s.d fs3, (27 * SZREG + MCONTEXT_FPREGS)(a0)
  70256. + s.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
  70257. + s.d fs5, (29 * SZREG + MCONTEXT_FPREGS)(a0)
  70258. + s.d fs6, (30 * SZREG + MCONTEXT_FPREGS)(a0)
  70259. + s.d fs7, (31 * SZREG + MCONTEXT_FPREGS)(a0)
  70260. +
  70261. +# else /* _MIPS_SIM != _ABI64 */
  70262. + s.d fs0, (20 * SZREG + MCONTEXT_FPREGS)(a0)
  70263. + s.d fs1, (22 * SZREG + MCONTEXT_FPREGS)(a0)
  70264. + s.d fs2, (24 * SZREG + MCONTEXT_FPREGS)(a0)
  70265. + s.d fs3, (26 * SZREG + MCONTEXT_FPREGS)(a0)
  70266. + s.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
  70267. + s.d fs5, (30 * SZREG + MCONTEXT_FPREGS)(a0)
  70268. +
  70269. +# endif /* _MIPS_SIM != _ABI64 */
  70270. +
  70271. + cfc1 v1, fcr31
  70272. + sw v1, MCONTEXT_FPC_CSR(a0)
  70273. +#endif /* __mips_hard_float */
  70274. +
  70275. + REG_S a1, A1OFF(sp)
  70276. +
  70277. +/* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, &oucp->uc_sigmask, _NSIG8) */
  70278. + li a3, _NSIG8
  70279. + PTR_ADDU a2, a0, UCONTEXT_SIGMASK
  70280. + PTR_ADDU a1, a1, UCONTEXT_SIGMASK
  70281. + li a0, SIG_SETMASK
  70282. +
  70283. + li v0, SYS_ify (rt_sigprocmask)
  70284. + syscall
  70285. + bnez a3, 99f
  70286. +
  70287. + REG_L v0, A1OFF(sp)
  70288. +
  70289. +#ifdef __mips_hard_float
  70290. +# if _MIPS_SIM == _ABI64
  70291. + l.d fs0, (24 * SZREG + MCONTEXT_FPREGS)(v0)
  70292. + l.d fs1, (25 * SZREG + MCONTEXT_FPREGS)(v0)
  70293. + l.d fs2, (26 * SZREG + MCONTEXT_FPREGS)(v0)
  70294. + l.d fs3, (27 * SZREG + MCONTEXT_FPREGS)(v0)
  70295. + l.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
  70296. + l.d fs5, (29 * SZREG + MCONTEXT_FPREGS)(v0)
  70297. + l.d fs6, (30 * SZREG + MCONTEXT_FPREGS)(v0)
  70298. + l.d fs7, (31 * SZREG + MCONTEXT_FPREGS)(v0)
  70299. +
  70300. +# else /* _MIPS_SIM != _ABI64 */
  70301. + l.d fs0, (20 * SZREG + MCONTEXT_FPREGS)(v0)
  70302. + l.d fs1, (22 * SZREG + MCONTEXT_FPREGS)(v0)
  70303. + l.d fs2, (24 * SZREG + MCONTEXT_FPREGS)(v0)
  70304. + l.d fs3, (26 * SZREG + MCONTEXT_FPREGS)(v0)
  70305. + l.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
  70306. + l.d fs5, (30 * SZREG + MCONTEXT_FPREGS)(v0)
  70307. +
  70308. +# endif /* _MIPS_SIM != _ABI64 */
  70309. +
  70310. + lw v1, MCONTEXT_FPC_CSR(v0)
  70311. + ctc1 v1, fcr31
  70312. +#endif /* __mips_hard_float */
  70313. +
  70314. + /* Note the contents of argument registers will be random
  70315. + unless makecontext() has been called. */
  70316. + REG_L a0, (4 * SZREG + MCONTEXT_GREGS)(v0)
  70317. + REG_L a1, (5 * SZREG + MCONTEXT_GREGS)(v0)
  70318. + REG_L a2, (6 * SZREG + MCONTEXT_GREGS)(v0)
  70319. + REG_L a3, (7 * SZREG + MCONTEXT_GREGS)(v0)
  70320. +#if _MIPS_SIM != _ABIO32
  70321. + REG_L a4, (8 * SZREG + MCONTEXT_GREGS)(v0)
  70322. + REG_L a5, (9 * SZREG + MCONTEXT_GREGS)(v0)
  70323. + REG_L a6, (10 * SZREG + MCONTEXT_GREGS)(v0)
  70324. + REG_L a7, (11 * SZREG + MCONTEXT_GREGS)(v0)
  70325. +#endif
  70326. +
  70327. + REG_L s0, (16 * SZREG + MCONTEXT_GREGS)(v0)
  70328. + REG_L s1, (17 * SZREG + MCONTEXT_GREGS)(v0)
  70329. + REG_L s2, (18 * SZREG + MCONTEXT_GREGS)(v0)
  70330. + REG_L s3, (19 * SZREG + MCONTEXT_GREGS)(v0)
  70331. + REG_L s4, (20 * SZREG + MCONTEXT_GREGS)(v0)
  70332. + REG_L s5, (21 * SZREG + MCONTEXT_GREGS)(v0)
  70333. + REG_L s6, (22 * SZREG + MCONTEXT_GREGS)(v0)
  70334. + REG_L s7, (23 * SZREG + MCONTEXT_GREGS)(v0)
  70335. +#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
  70336. + REG_L gp, (28 * SZREG + MCONTEXT_GREGS)(v0)
  70337. +#endif
  70338. + REG_L sp, (29 * SZREG + MCONTEXT_GREGS)(v0)
  70339. + REG_L fp, (30 * SZREG + MCONTEXT_GREGS)(v0)
  70340. + REG_L ra, (31 * SZREG + MCONTEXT_GREGS)(v0)
  70341. + REG_L t9, MCONTEXT_PC(v0)
  70342. +
  70343. + move v0, zero
  70344. + jr t9
  70345. +
  70346. +99:
  70347. +#ifdef __PIC__
  70348. + PTR_LA t9, JUMPTARGET (__syscall_error)
  70349. + RESTORE_GP64
  70350. + PTR_ADDIU sp, FRAMESZ
  70351. + jr t9
  70352. +
  70353. +#else /* ! __PIC__ */
  70354. +
  70355. + j JUMPTARGET (__syscall_error)
  70356. +#endif /* ! __PIC__ */
  70357. +PSEUDO_END (__swapcontext)
  70358. +
  70359. +weak_alias (__swapcontext, swapcontext)
  70360. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/asm.h uClibc-git/libc/sysdeps/linux/mips/sys/asm.h
  70361. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/asm.h 2012-05-15 09:20:09.000000000 +0200
  70362. +++ uClibc-git/libc/sysdeps/linux/mips/sys/asm.h 2014-06-02 17:40:34.542714907 +0200
  70363. @@ -13,9 +13,8 @@
  70364. Lesser General Public License for more details.
  70365. You should have received a copy of the GNU Lesser General Public
  70366. - License along with the GNU C Library; if not, write to the Free
  70367. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70368. - 02111-1307 USA. */
  70369. + License along with the GNU C Library; if not, see
  70370. + <http://www.gnu.org/licenses/>. */
  70371. #ifndef _SYS_ASM_H
  70372. #define _SYS_ASM_H
  70373. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/cachectl.h uClibc-git/libc/sysdeps/linux/mips/sys/cachectl.h
  70374. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/cachectl.h 2012-05-15 09:20:09.000000000 +0200
  70375. +++ uClibc-git/libc/sysdeps/linux/mips/sys/cachectl.h 2014-06-02 17:40:34.542714907 +0200
  70376. @@ -12,9 +12,8 @@
  70377. Lesser General Public License for more details.
  70378. You should have received a copy of the GNU Lesser General Public
  70379. - License along with the GNU C Library; if not, write to the Free
  70380. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70381. - 02111-1307 USA. */
  70382. + License along with the GNU C Library; if not, see
  70383. + <http://www.gnu.org/licenses/>. */
  70384. #ifndef _SYS_CACHECTL_H
  70385. #define _SYS_CACHECTL_H 1
  70386. @@ -29,13 +28,15 @@
  70387. __BEGIN_DECLS
  70388. #ifdef __USE_MISC
  70389. -extern int cachectl (void *addr, __const int nbytes, __const int op) __THROW;
  70390. +extern int cachectl (void *addr, const int nbytes, const int op) __THROW;
  70391. +#endif
  70392. +#if 0
  70393. +extern int __cachectl (void *addr, const int nbytes, const int op) __THROW;
  70394. #endif
  70395. -extern int __cachectl (void *addr, __const int nbytes, __const int op) __THROW;
  70396. #ifdef __USE_MISC
  70397. -extern int cacheflush (void *addr, __const int nbytes, __const int op) __THROW;
  70398. +extern int cacheflush (void *addr, const int nbytes, const int op) __THROW;
  70399. #endif
  70400. -extern int _flush_cache (char *addr, __const int nbytes, __const int op) __THROW;
  70401. +extern int _flush_cache (char *addr, const int nbytes, const int op) __THROW;
  70402. __END_DECLS
  70403. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/fpregdef.h uClibc-git/libc/sysdeps/linux/mips/sys/fpregdef.h
  70404. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/fpregdef.h 2012-05-15 09:20:09.000000000 +0200
  70405. +++ uClibc-git/libc/sysdeps/linux/mips/sys/fpregdef.h 2014-06-02 17:40:34.542714907 +0200
  70406. @@ -12,9 +12,8 @@
  70407. Lesser General Public License for more details.
  70408. You should have received a copy of the GNU Lesser General Public
  70409. - License along with the GNU C Library; if not, write to the Free
  70410. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70411. - 02111-1307 USA. */
  70412. + License along with the GNU C Library; if not, see
  70413. + <http://www.gnu.org/licenses/>. */
  70414. #ifndef _SYS_FPREGDEF_H
  70415. #define _SYS_FPREGDEF_H
  70416. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/procfs.h uClibc-git/libc/sysdeps/linux/mips/sys/procfs.h
  70417. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  70418. +++ uClibc-git/libc/sysdeps/linux/mips/sys/procfs.h 2014-06-02 17:40:34.542714907 +0200
  70419. @@ -12,9 +12,8 @@
  70420. Lesser General Public License for more details.
  70421. You should have received a copy of the GNU Lesser General Public
  70422. - License along with the GNU C Library; if not, write to the Free
  70423. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70424. - 02111-1307 USA. */
  70425. + License along with the GNU C Library; if not, see
  70426. + <http://www.gnu.org/licenses/>. */
  70427. #ifndef _SYS_PROCFS_H
  70428. #define _SYS_PROCFS_H 1
  70429. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/regdef.h uClibc-git/libc/sysdeps/linux/mips/sys/regdef.h
  70430. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/regdef.h 2012-05-15 09:20:09.000000000 +0200
  70431. +++ uClibc-git/libc/sysdeps/linux/mips/sys/regdef.h 2014-06-02 17:40:34.542714907 +0200
  70432. @@ -13,9 +13,8 @@
  70433. Lesser General Public License for more details.
  70434. You should have received a copy of the GNU Lesser General Public
  70435. - License along with the GNU C Library; if not, write to the Free
  70436. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70437. - 02111-1307 USA. */
  70438. + License along with the GNU C Library; if not, see
  70439. + <http://www.gnu.org/licenses/>. */
  70440. #ifndef _SYS_REGDEF_H
  70441. #define _SYS_REGDEF_H
  70442. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/sysmips.h uClibc-git/libc/sysdeps/linux/mips/sys/sysmips.h
  70443. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/sysmips.h 2012-05-15 09:20:09.000000000 +0200
  70444. +++ uClibc-git/libc/sysdeps/linux/mips/sys/sysmips.h 2014-06-02 17:40:34.542714907 +0200
  70445. @@ -12,9 +12,8 @@
  70446. Lesser General Public License for more details.
  70447. You should have received a copy of the GNU Lesser General Public
  70448. - License along with the GNU C Library; if not, write to the Free
  70449. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70450. - 02111-1307 USA. */
  70451. + License along with the GNU C Library; if not, see
  70452. + <http://www.gnu.org/licenses/>. */
  70453. #ifndef _SYS_SYSMIPS_H
  70454. #define _SYS_SYSMIPS_H 1
  70455. @@ -36,8 +35,8 @@
  70456. __BEGIN_DECLS
  70457. -extern int sysmips (__const int cmd, __const long arg1,
  70458. - __const int arg2, __const int arg3) __THROW;
  70459. +extern int sysmips (const int cmd, const long arg1,
  70460. + const int arg2, const int arg3) __THROW;
  70461. __END_DECLS
  70462. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/tas.h uClibc-git/libc/sysdeps/linux/mips/sys/tas.h
  70463. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/tas.h 2012-05-15 09:20:09.000000000 +0200
  70464. +++ uClibc-git/libc/sysdeps/linux/mips/sys/tas.h 2014-06-02 17:40:34.542714907 +0200
  70465. @@ -13,9 +13,8 @@
  70466. Lesser General Public License for more details.
  70467. You should have received a copy of the GNU Lesser General Public
  70468. - License along with the GNU C Library; if not, write to the Free
  70469. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70470. - 02111-1307 USA. */
  70471. + License along with the GNU C Library; if not, see
  70472. + <http://www.gnu.org/licenses/>. */
  70473. #ifndef _SYS_TAS_H
  70474. #define _SYS_TAS_H 1
  70475. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/ucontext.h uClibc-git/libc/sysdeps/linux/mips/sys/ucontext.h
  70476. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  70477. +++ uClibc-git/libc/sysdeps/linux/mips/sys/ucontext.h 2014-06-02 17:40:34.542714907 +0200
  70478. @@ -12,9 +12,8 @@
  70479. Lesser General Public License for more details.
  70480. You should have received a copy of the GNU Lesser General Public
  70481. - License along with the GNU C Library; if not, write to the Free
  70482. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70483. - 02111-1307 USA. */
  70484. + License along with the GNU C Library; if not, see
  70485. + <http://www.gnu.org/licenses/>. */
  70486. /* Don't rely on this, the interface is currently messed up and may need to
  70487. be broken to be fixed. */
  70488. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/user.h uClibc-git/libc/sysdeps/linux/mips/sys/user.h
  70489. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/user.h 2012-05-15 09:20:09.000000000 +0200
  70490. +++ uClibc-git/libc/sysdeps/linux/mips/sys/user.h 2014-06-02 17:40:34.542714907 +0200
  70491. @@ -12,9 +12,8 @@
  70492. Lesser General Public License for more details.
  70493. You should have received a copy of the GNU Lesser General Public
  70494. - License along with the GNU C Library; if not, write to the Free
  70495. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70496. - 02111-1307 USA. */
  70497. + License along with the GNU C Library; if not, see
  70498. + <http://www.gnu.org/licenses/>. */
  70499. #ifndef _SYS_USER_H
  70500. #define _SYS_USER_H 1
  70501. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/syscall_error.S uClibc-git/libc/sysdeps/linux/mips/syscall_error.S
  70502. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/syscall_error.S 2012-05-15 09:20:09.000000000 +0200
  70503. +++ uClibc-git/libc/sysdeps/linux/mips/syscall_error.S 2014-06-02 17:40:34.542714907 +0200
  70504. @@ -14,9 +14,8 @@
  70505. Lesser General Public License for more details.
  70506. You should have received a copy of the GNU Lesser General Public
  70507. - License along with the GNU C Library; if not, write to the Free
  70508. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70509. - 02111-1307 USA. */
  70510. + License along with the GNU C Library; if not, see
  70511. + <http://www.gnu.org/licenses/>. */
  70512. #include <sys/asm.h>
  70513. #include <sysdep.h>
  70514. @@ -43,7 +42,7 @@
  70515. #ifdef __PIC__
  70516. SAVE_GP(GPOFF)
  70517. #endif
  70518. - REG_S v0, V0OFF(sp)
  70519. + REG_S a0, V0OFF(sp)
  70520. REG_S ra, RAOFF(sp)
  70521. /* Find our per-thread errno address */
  70522. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/syscall.S uClibc-git/libc/sysdeps/linux/mips/syscall.S
  70523. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/syscall.S 2012-05-15 09:20:09.000000000 +0200
  70524. +++ uClibc-git/libc/sysdeps/linux/mips/syscall.S 2014-06-02 17:40:34.542714907 +0200
  70525. @@ -12,9 +12,8 @@
  70526. Lesser General Public License for more details.
  70527. You should have received a copy of the GNU Lesser General Public
  70528. - License along with the GNU C Library; if not, write to the Free
  70529. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70530. - 02111-1307 USA. */
  70531. + License along with the GNU C Library; if not, see
  70532. + <http://www.gnu.org/licenses/>. */
  70533. #include <features.h>
  70534. #include <sys/asm.h>
  70535. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sysdep.h uClibc-git/libc/sysdeps/linux/mips/sysdep.h
  70536. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  70537. +++ uClibc-git/libc/sysdeps/linux/mips/sysdep.h 2014-06-02 17:40:34.542714907 +0200
  70538. @@ -14,9 +14,8 @@
  70539. Lesser General Public License for more details.
  70540. You should have received a copy of the GNU Lesser General Public
  70541. - License along with the GNU C Library; if not, write to the Free
  70542. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70543. - 02111-1307 USA. */
  70544. + License along with the GNU C Library; if not, see
  70545. + <http://www.gnu.org/licenses/>. */
  70546. #ifndef _LINUX_MIPS_SYSDEP_H
  70547. #define _LINUX_MIPS_SYSDEP_H 1
  70548. @@ -78,8 +77,6 @@
  70549. #undef PSEUDO_END_ERRVAL
  70550. #define PSEUDO_END_ERRVAL(sym) .end sym; .size sym,.-sym
  70551. -#define ret_ERRVAL ret
  70552. -
  70553. #define r0 v0
  70554. #define r1 v1
  70555. /* The mips move insn is d,s. */
  70556. @@ -133,258 +130,6 @@
  70557. #else /* ! __ASSEMBLER__ */
  70558. -/* Define a macro which expands into the inline wrapper code for a system
  70559. - call. */
  70560. -#undef INLINE_SYSCALL
  70561. -#define INLINE_SYSCALL(name, nr, args...) \
  70562. - ({ INTERNAL_SYSCALL_DECL(err); \
  70563. - long result_var = INTERNAL_SYSCALL (name, err, nr, args); \
  70564. - if ( INTERNAL_SYSCALL_ERROR_P (result_var, err) ) \
  70565. - { \
  70566. - __set_errno (INTERNAL_SYSCALL_ERRNO (result_var, err)); \
  70567. - result_var = -1L; \
  70568. - } \
  70569. - result_var; })
  70570. -
  70571. -#undef INTERNAL_SYSCALL_DECL
  70572. -#define INTERNAL_SYSCALL_DECL(err) long err
  70573. -
  70574. -#undef INTERNAL_SYSCALL_ERROR_P
  70575. -#define INTERNAL_SYSCALL_ERROR_P(val, err) ((long) (err))
  70576. -
  70577. -#undef INTERNAL_SYSCALL_ERRNO
  70578. -#define INTERNAL_SYSCALL_ERRNO(val, err) (val)
  70579. -
  70580. -#undef INTERNAL_SYSCALL
  70581. -#define INTERNAL_SYSCALL(name, err, nr, args...) \
  70582. - internal_syscall##nr (, "li\t$2, %2\t\t\t# " #name "\n\t", \
  70583. - "i" (SYS_ify (name)), err, args)
  70584. -
  70585. -#undef INTERNAL_SYSCALL_NCS
  70586. -#define INTERNAL_SYSCALL_NCS(number, err, nr, args...) \
  70587. - internal_syscall##nr (= number, , "r" (__v0), err, args)
  70588. -#undef internal_syscall0
  70589. -#define internal_syscall0(ncs_init, cs_init, input, err, dummy...) \
  70590. -({ \
  70591. - long _sys_result; \
  70592. - \
  70593. - { \
  70594. - register long __v0 __asm__("$2") ncs_init; \
  70595. - register long __a3 __asm__("$7"); \
  70596. - __asm__ __volatile__ ( \
  70597. - ".set\tnoreorder\n\t" \
  70598. - cs_init \
  70599. - "syscall\n\t" \
  70600. - ".set reorder" \
  70601. - : "=r" (__v0), "=r" (__a3) \
  70602. - : input \
  70603. - : __SYSCALL_CLOBBERS); \
  70604. - err = __a3; \
  70605. - _sys_result = __v0; \
  70606. - } \
  70607. - _sys_result; \
  70608. -})
  70609. -
  70610. -#undef internal_syscall1
  70611. -#define internal_syscall1(ncs_init, cs_init, input, err, arg1) \
  70612. -({ \
  70613. - long _sys_result; \
  70614. - \
  70615. - { \
  70616. - register long __v0 __asm__("$2") ncs_init; \
  70617. - register long __a0 __asm__("$4") = (long) arg1; \
  70618. - register long __a3 __asm__("$7"); \
  70619. - __asm__ __volatile__ ( \
  70620. - ".set\tnoreorder\n\t" \
  70621. - cs_init \
  70622. - "syscall\n\t" \
  70623. - ".set reorder" \
  70624. - : "=r" (__v0), "=r" (__a3) \
  70625. - : input, "r" (__a0) \
  70626. - : __SYSCALL_CLOBBERS); \
  70627. - err = __a3; \
  70628. - _sys_result = __v0; \
  70629. - } \
  70630. - _sys_result; \
  70631. -})
  70632. -
  70633. -#undef internal_syscall2
  70634. -#define internal_syscall2(ncs_init, cs_init, input, err, arg1, arg2) \
  70635. -({ \
  70636. - long _sys_result; \
  70637. - \
  70638. - { \
  70639. - register long __v0 __asm__("$2") ncs_init; \
  70640. - register long __a0 __asm__("$4") = (long) arg1; \
  70641. - register long __a1 __asm__("$5") = (long) arg2; \
  70642. - register long __a3 __asm__("$7"); \
  70643. - __asm__ __volatile__ ( \
  70644. - ".set\tnoreorder\n\t" \
  70645. - cs_init \
  70646. - "syscall\n\t" \
  70647. - ".set\treorder" \
  70648. - : "=r" (__v0), "=r" (__a3) \
  70649. - : input, "r" (__a0), "r" (__a1) \
  70650. - : __SYSCALL_CLOBBERS); \
  70651. - err = __a3; \
  70652. - _sys_result = __v0; \
  70653. - } \
  70654. - _sys_result; \
  70655. -})
  70656. -
  70657. -#undef internal_syscall3
  70658. -#define internal_syscall3(ncs_init, cs_init, input, err, arg1, arg2, arg3)\
  70659. -({ \
  70660. - long _sys_result; \
  70661. - \
  70662. - { \
  70663. - register long __v0 __asm__("$2") ncs_init; \
  70664. - register long __a0 __asm__("$4") = (long) arg1; \
  70665. - register long __a1 __asm__("$5") = (long) arg2; \
  70666. - register long __a2 __asm__("$6") = (long) arg3; \
  70667. - register long __a3 __asm__("$7"); \
  70668. - __asm__ __volatile__ ( \
  70669. - ".set\tnoreorder\n\t" \
  70670. - cs_init \
  70671. - "syscall\n\t" \
  70672. - ".set\treorder" \
  70673. - : "=r" (__v0), "=r" (__a3) \
  70674. - : input, "r" (__a0), "r" (__a1), "r" (__a2) \
  70675. - : __SYSCALL_CLOBBERS); \
  70676. - err = __a3; \
  70677. - _sys_result = __v0; \
  70678. - } \
  70679. - _sys_result; \
  70680. -})
  70681. -
  70682. -#undef internal_syscall4
  70683. -#define internal_syscall4(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4)\
  70684. -({ \
  70685. - long _sys_result; \
  70686. - \
  70687. - { \
  70688. - register long __v0 __asm__("$2") ncs_init; \
  70689. - register long __a0 __asm__("$4") = (long) arg1; \
  70690. - register long __a1 __asm__("$5") = (long) arg2; \
  70691. - register long __a2 __asm__("$6") = (long) arg3; \
  70692. - register long __a3 __asm__("$7") = (long) arg4; \
  70693. - __asm__ __volatile__ ( \
  70694. - ".set\tnoreorder\n\t" \
  70695. - cs_init \
  70696. - "syscall\n\t" \
  70697. - ".set\treorder" \
  70698. - : "=r" (__v0), "+r" (__a3) \
  70699. - : input, "r" (__a0), "r" (__a1), "r" (__a2) \
  70700. - : __SYSCALL_CLOBBERS); \
  70701. - err = __a3; \
  70702. - _sys_result = __v0; \
  70703. - } \
  70704. - _sys_result; \
  70705. -})
  70706. -
  70707. -/* We need to use a frame pointer for the functions in which we
  70708. - adjust $sp around the syscall, or debug information and unwind
  70709. - information will be $sp relative and thus wrong during the syscall. As
  70710. - of GCC 3.4.3, this is sufficient. */
  70711. -#define FORCE_FRAME_POINTER alloca (4)
  70712. -
  70713. -#undef internal_syscall5
  70714. -#define internal_syscall5(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4, arg5)\
  70715. -({ \
  70716. - long _sys_result; \
  70717. - \
  70718. - FORCE_FRAME_POINTER; \
  70719. - { \
  70720. - register long __v0 __asm__("$2") ncs_init; \
  70721. - register long __a0 __asm__("$4") = (long) arg1; \
  70722. - register long __a1 __asm__("$5") = (long) arg2; \
  70723. - register long __a2 __asm__("$6") = (long) arg3; \
  70724. - register long __a3 __asm__("$7") = (long) arg4; \
  70725. - __asm__ __volatile__ ( \
  70726. - ".set\tnoreorder\n\t" \
  70727. - "subu\t$29, 32\n\t" \
  70728. - "sw\t%6, 16($29)\n\t" \
  70729. - cs_init \
  70730. - "syscall\n\t" \
  70731. - "addiu\t$29, 32\n\t" \
  70732. - ".set\treorder" \
  70733. - : "=r" (__v0), "+r" (__a3) \
  70734. - : input, "r" (__a0), "r" (__a1), "r" (__a2), \
  70735. - "r" ((long)arg5) \
  70736. - : __SYSCALL_CLOBBERS); \
  70737. - err = __a3; \
  70738. - _sys_result = __v0; \
  70739. - } \
  70740. - _sys_result; \
  70741. -})
  70742. -
  70743. -#undef internal_syscall6
  70744. -#define internal_syscall6(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4, arg5, arg6)\
  70745. -({ \
  70746. - long _sys_result; \
  70747. - \
  70748. - FORCE_FRAME_POINTER; \
  70749. - { \
  70750. - register long __v0 __asm__("$2") ncs_init; \
  70751. - register long __a0 __asm__("$4") = (long) arg1; \
  70752. - register long __a1 __asm__("$5") = (long) arg2; \
  70753. - register long __a2 __asm__("$6") = (long) arg3; \
  70754. - register long __a3 __asm__("$7") = (long) arg4; \
  70755. - __asm__ __volatile__ ( \
  70756. - ".set\tnoreorder\n\t" \
  70757. - "subu\t$29, 32\n\t" \
  70758. - "sw\t%6, 16($29)\n\t" \
  70759. - "sw\t%7, 20($29)\n\t" \
  70760. - cs_init \
  70761. - "syscall\n\t" \
  70762. - "addiu\t$29, 32\n\t" \
  70763. - ".set\treorder" \
  70764. - : "=r" (__v0), "+r" (__a3) \
  70765. - : input, "r" (__a0), "r" (__a1), "r" (__a2), \
  70766. - "r" ((long)arg5), "r" ((long)arg6) \
  70767. - : __SYSCALL_CLOBBERS); \
  70768. - err = __a3; \
  70769. - _sys_result = __v0; \
  70770. - } \
  70771. - _sys_result; \
  70772. -})
  70773. -
  70774. -#undef internal_syscall7
  70775. -#define internal_syscall7(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4, arg5, arg6, arg7)\
  70776. -({ \
  70777. - long _sys_result; \
  70778. - \
  70779. - FORCE_FRAME_POINTER; \
  70780. - { \
  70781. - register long __v0 __asm__("$2") ncs_init; \
  70782. - register long __a0 __asm__("$4") = (long) arg1; \
  70783. - register long __a1 __asm__("$5") = (long) arg2; \
  70784. - register long __a2 __asm__("$6") = (long) arg3; \
  70785. - register long __a3 __asm__("$7") = (long) arg4; \
  70786. - __asm__ __volatile__ ( \
  70787. - ".set\tnoreorder\n\t" \
  70788. - "subu\t$29, 32\n\t" \
  70789. - "sw\t%6, 16($29)\n\t" \
  70790. - "sw\t%7, 20($29)\n\t" \
  70791. - "sw\t%8, 24($29)\n\t" \
  70792. - cs_init \
  70793. - "syscall\n\t" \
  70794. - "addiu\t$29, 32\n\t" \
  70795. - ".set\treorder" \
  70796. - : "=r" (__v0), "+r" (__a3) \
  70797. - : input, "r" (__a0), "r" (__a1), "r" (__a2), \
  70798. - "r" ((long)arg5), "r" ((long)arg6), "r" ((long)arg7) \
  70799. - : __SYSCALL_CLOBBERS); \
  70800. - err = __a3; \
  70801. - _sys_result = __v0; \
  70802. - } \
  70803. - _sys_result; \
  70804. -})
  70805. -
  70806. -#undef __SYSCALL_CLOBBERS
  70807. -#define __SYSCALL_CLOBBERS "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", \
  70808. - "$14", "$15", "$24", "$25", "memory"
  70809. -
  70810. /* Pointer mangling is not yet supported for MIPS. */
  70811. #define PTR_MANGLE(var) (void) (var)
  70812. #define PTR_DEMANGLE(var) (void) (var)
  70813. 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
  70814. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/_test_and_set.c 2012-05-15 09:20:09.000000000 +0200
  70815. +++ uClibc-git/libc/sysdeps/linux/mips/_test_and_set.c 2014-06-02 17:40:34.534714863 +0200
  70816. @@ -13,9 +13,8 @@
  70817. Lesser General Public License for more details.
  70818. You should have received a copy of the GNU Lesser General Public
  70819. - License along with the GNU C Library; if not, write to the Free
  70820. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70821. - 02111-1307 USA. */
  70822. + License along with the GNU C Library; if not, see
  70823. + <http://www.gnu.org/licenses/>. */
  70824. /* Define the real-function versions of all inline functions
  70825. defined in sys/tas.h */
  70826. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/ucontext_i.sym uClibc-git/libc/sysdeps/linux/mips/ucontext_i.sym
  70827. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/ucontext_i.sym 1970-01-01 01:00:00.000000000 +0100
  70828. +++ uClibc-git/libc/sysdeps/linux/mips/ucontext_i.sym 2014-06-02 17:40:34.542714907 +0200
  70829. @@ -0,0 +1,52 @@
  70830. +#include <inttypes.h>
  70831. +#include <signal.h>
  70832. +#include <stddef.h>
  70833. +#include <sys/ucontext.h>
  70834. +
  70835. +#include <kernel_rt_sigframe.h>
  70836. +
  70837. +-- Constants used by the rt_sigprocmask call.
  70838. +
  70839. +SIG_BLOCK
  70840. +SIG_SETMASK
  70841. +
  70842. +_NSIG8 (_NSIG / 8)
  70843. +
  70844. +-- Offsets of the fields in the kernel rt_sigframe_t structure.
  70845. +#define rt_sigframe(member) offsetof (kernel_rt_sigframe_t, member)
  70846. +
  70847. +RT_SIGFRAME_UCONTEXT rt_sigframe (rs_uc)
  70848. +
  70849. +RT_SIGFRAME_SIZE sizeof (kernel_rt_sigframe_t)
  70850. +
  70851. +-- Offsets of the fields in the ucontext_t structure.
  70852. +#define ucontext(member) offsetof (ucontext_t, member)
  70853. +#define stack(member) ucontext (uc_stack.member)
  70854. +#define mcontext(member) ucontext (uc_mcontext.member)
  70855. +
  70856. +UCONTEXT_FLAGS ucontext (uc_flags)
  70857. +UCONTEXT_LINK ucontext (uc_link)
  70858. +UCONTEXT_STACK ucontext (uc_stack)
  70859. +UCONTEXT_MCONTEXT ucontext (uc_mcontext)
  70860. +UCONTEXT_SIGMASK ucontext (uc_sigmask)
  70861. +
  70862. +STACK_SP stack (ss_sp)
  70863. +STACK_SIZE stack (ss_size)
  70864. +STACK_FLAGS stack (ss_flags)
  70865. +
  70866. +MCONTEXT_GREGS mcontext (gregs)
  70867. +MCONTEXT_FPREGS mcontext (fpregs)
  70868. +MCONTEXT_MDHI mcontext (mdhi)
  70869. +MCONTEXT_HI1 mcontext (hi1)
  70870. +MCONTEXT_HI2 mcontext (hi2)
  70871. +MCONTEXT_HI3 mcontext (hi3)
  70872. +MCONTEXT_MDLO mcontext (mdlo)
  70873. +MCONTEXT_LO1 mcontext (lo1)
  70874. +MCONTEXT_LO2 mcontext (lo2)
  70875. +MCONTEXT_LO3 mcontext (lo3)
  70876. +MCONTEXT_PC mcontext (pc)
  70877. +MCONTEXT_FPC_CSR mcontext (fpc_csr)
  70878. +MCONTEXT_USED_MATH mcontext (used_math)
  70879. +MCONTEXT_DSP mcontext (dsp)
  70880. +
  70881. +UCONTEXT_SIZE sizeof (ucontext_t)
  70882. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/vfork.S uClibc-git/libc/sysdeps/linux/mips/vfork.S
  70883. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/vfork.S 2012-05-15 09:20:09.000000000 +0200
  70884. +++ uClibc-git/libc/sysdeps/linux/mips/vfork.S 2014-06-02 17:40:34.542714907 +0200
  70885. @@ -12,12 +12,12 @@
  70886. Lesser General Public License for more details.
  70887. You should have received a copy of the GNU Lesser General Public
  70888. - License along with the GNU C Library; if not, write to the Free
  70889. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70890. - 02111-1307 USA. */
  70891. + License along with the GNU C Library; if not, see
  70892. + <http://www.gnu.org/licenses/>. */
  70893. /* vfork() is just a special case of clone(). */
  70894. +#include <sys/syscall.h>
  70895. #include <sys/asm.h>
  70896. #include <sysdep.h>
  70897. @@ -34,6 +34,7 @@
  70898. /* int vfork() */
  70899. .text
  70900. + .hidden __vfork
  70901. LOCALSZ= 1
  70902. FRAMESZ= (((NARGSAVE+LOCALSZ)*SZREG)+ALSZ)&ALMASK
  70903. GPOFF= FRAMESZ-(1*SZREG)
  70904. @@ -84,6 +85,7 @@
  70905. /* Something bad happened -- no child created. */
  70906. L(error):
  70907. + move a0, v0
  70908. #ifdef __PIC__
  70909. PTR_LA t9, __syscall_error
  70910. RESTORE_GP64
  70911. @@ -95,6 +97,6 @@
  70912. END(__vfork)
  70913. weak_alias(__vfork,vfork)
  70914. -libc_hidden_weak(vfork)
  70915. +libc_hidden_def(vfork)
  70916. #endif
  70917. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/fcntl.h uClibc-git/libc/sysdeps/linux/nios/bits/fcntl.h
  70918. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  70919. +++ uClibc-git/libc/sysdeps/linux/nios/bits/fcntl.h 2014-06-02 17:40:34.542714907 +0200
  70920. @@ -14,8 +14,7 @@
  70921. You should have received a copy of the GNU Library General Public
  70922. License along with the GNU C Library; see the file COPYING.LIB. If not,
  70923. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  70924. - Boston, MA 02111-1307, USA. */
  70925. + see <http://www.gnu.org/licenses/>. */
  70926. #ifndef _FCNTL_H
  70927. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  70928. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/mathdef.h uClibc-git/libc/sysdeps/linux/nios/bits/mathdef.h
  70929. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  70930. +++ uClibc-git/libc/sysdeps/linux/nios/bits/mathdef.h 2014-06-02 17:40:34.542714907 +0200
  70931. @@ -12,9 +12,8 @@
  70932. Lesser General Public License for more details.
  70933. You should have received a copy of the GNU Lesser General Public
  70934. - License along with the GNU C Library; if not, write to the Free
  70935. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70936. - 02111-1307 USA. */
  70937. + License along with the GNU C Library; if not, see
  70938. + <http://www.gnu.org/licenses/>. */
  70939. #if !defined _MATH_H && !defined _COMPLEX_H
  70940. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  70941. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/setjmp.h uClibc-git/libc/sysdeps/linux/nios/bits/setjmp.h
  70942. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  70943. +++ uClibc-git/libc/sysdeps/linux/nios/bits/setjmp.h 2014-06-02 17:40:34.542714907 +0200
  70944. @@ -12,9 +12,8 @@
  70945. Lesser General Public License for more details.
  70946. You should have received a copy of the GNU Lesser General Public
  70947. - License along with the GNU C Library; if not, write to the Free
  70948. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70949. - 02111-1307 USA. */
  70950. + License along with the GNU C Library; if not, see
  70951. + <http://www.gnu.org/licenses/>. */
  70952. /* Define the machine-dependent type `jmp_buf'. Nios version. */
  70953. #ifndef _BITS_SETJMP_H
  70954. @@ -24,8 +23,6 @@
  70955. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  70956. #endif
  70957. -#ifndef _ASM
  70958. -
  70959. #include <signal.h>
  70960. typedef struct
  70961. @@ -44,33 +41,4 @@
  70962. } __jmp_buf[1];
  70963. -/* Test if longjmp to JMPBUF would unwind the frame
  70964. - containing a local variable at ADDRESS. */
  70965. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  70966. - ((void *) (address) < (void *) (jmpbuf)->__sp)
  70967. -
  70968. -#else /* _ASM */
  70969. -
  70970. -#define jmpbuf_l0 0x00
  70971. -#define jmpbuf_l1 0x01
  70972. -#define jmpbuf_l2 0x02
  70973. -#define jmpbuf_l3 0x03
  70974. -#define jmpbuf_l4 0x04
  70975. -#define jmpbuf_l5 0x05
  70976. -#define jmpbuf_l6 0x06
  70977. -#define jmpbuf_l7 0x07
  70978. -
  70979. -#define jmpbuf_i0 0x08
  70980. -#define jmpbuf_i1 0x09
  70981. -#define jmpbuf_i2 0x0a
  70982. -#define jmpbuf_i3 0x0b
  70983. -#define jmpbuf_i4 0x0c
  70984. -#define jmpbuf_i5 0x0d
  70985. -
  70986. -#define jmpbuf_sp 0x0e
  70987. -#define jmpbuf_jmpret 0x0f
  70988. -#define jmpbuf_callersret 0x10
  70989. -
  70990. -#endif /* _ASM */
  70991. -
  70992. #endif /* bits/setjmp.h */
  70993. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/nios/bits/sigcontextinfo.h
  70994. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  70995. +++ uClibc-git/libc/sysdeps/linux/nios/bits/sigcontextinfo.h 2014-06-02 17:40:34.542714907 +0200
  70996. @@ -13,9 +13,8 @@
  70997. Lesser General Public License for more details.
  70998. You should have received a copy of the GNU Lesser General Public
  70999. - License along with the GNU C Library; if not, write to the Free
  71000. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71001. - 02111-1307 USA. */
  71002. + License along with the GNU C Library; if not, see
  71003. + <http://www.gnu.org/licenses/>. */
  71004. #define SIGCONTEXT struct sigcontext *
  71005. #define SIGCONTEXT_EXTRA_ARGS
  71006. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/nios/bits/stackinfo.h
  71007. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  71008. +++ uClibc-git/libc/sysdeps/linux/nios/bits/stackinfo.h 2014-06-02 17:40:34.542714907 +0200
  71009. @@ -12,9 +12,8 @@
  71010. Lesser General Public License for more details.
  71011. You should have received a copy of the GNU Lesser General Public
  71012. - License along with the GNU C Library; if not, write to the Free
  71013. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71014. - 02111-1307 USA. */
  71015. + License along with the GNU C Library; if not, see
  71016. + <http://www.gnu.org/licenses/>. */
  71017. /* This file contains a bit of information about the stack allocation
  71018. of the processor. */
  71019. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/stat.h uClibc-git/libc/sysdeps/linux/nios/bits/stat.h
  71020. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  71021. +++ uClibc-git/libc/sysdeps/linux/nios/bits/stat.h 2014-06-02 17:40:34.542714907 +0200
  71022. @@ -12,9 +12,8 @@
  71023. Lesser General Public License for more details.
  71024. You should have received a copy of the GNU Lesser General Public
  71025. - License along with the GNU C Library; if not, write to the Free
  71026. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71027. - 02111-1307 USA. */
  71028. + License along with the GNU C Library; if not, see
  71029. + <http://www.gnu.org/licenses/>. */
  71030. #ifndef _SYS_STAT_H
  71031. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  71032. 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
  71033. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  71034. +++ uClibc-git/libc/sysdeps/linux/nios/bits/uClibc_arch_features.h 2014-06-02 17:40:34.546714929 +0200
  71035. @@ -12,8 +12,8 @@
  71036. /* can your target use syscall6() for mmap ? */
  71037. #undef __UCLIBC_MMAP_HAS_6_ARGS__
  71038. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  71039. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  71040. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  71041. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  71042. /* does your target have a broken create_module() ? */
  71043. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  71044. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/wordsize.h uClibc-git/libc/sysdeps/linux/nios/bits/wordsize.h
  71045. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  71046. +++ uClibc-git/libc/sysdeps/linux/nios/bits/wordsize.h 2014-06-02 17:40:34.546714929 +0200
  71047. @@ -12,8 +12,7 @@
  71048. Lesser General Public License for more details.
  71049. You should have received a copy of the GNU Lesser General Public
  71050. - License along with the GNU C Library; if not, write to the Free
  71051. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71052. - 02111-1307 USA. */
  71053. + License along with the GNU C Library; if not, see
  71054. + <http://www.gnu.org/licenses/>. */
  71055. #define __WORDSIZE 32
  71056. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/brk.c uClibc-git/libc/sysdeps/linux/nios/brk.c
  71057. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/brk.c 2012-05-15 09:20:09.000000000 +0200
  71058. +++ uClibc-git/libc/sysdeps/linux/nios/brk.c 2014-06-02 17:40:34.546714929 +0200
  71059. @@ -13,9 +13,8 @@
  71060. Lesser General Public License for more details.
  71061. You should have received a copy of the GNU Lesser General Public
  71062. - License along with the GNU C Library; if not, write to the Free
  71063. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71064. - 02111-1307 USA. */
  71065. + License along with the GNU C Library; if not, see
  71066. + <http://www.gnu.org/licenses/>. */
  71067. #include <unistd.h>
  71068. #include <sys/syscall.h>
  71069. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/clone.S uClibc-git/libc/sysdeps/linux/nios/clone.S
  71070. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/clone.S 2012-05-15 09:20:09.000000000 +0200
  71071. +++ uClibc-git/libc/sysdeps/linux/nios/clone.S 2014-06-02 17:40:34.546714929 +0200
  71072. @@ -13,9 +13,8 @@
  71073. Lesser General Public License for more details.
  71074. You should have received a copy of the GNU Lesser General Public
  71075. - License along with the GNU C Library; if not, write to the Free
  71076. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71077. - 02111-1307 USA. */
  71078. + License along with the GNU C Library; if not, see
  71079. + <http://www.gnu.org/licenses/>. */
  71080. /* clone() is even more special than fork() as it mucks with stacks
  71081. and invokes a function in the right context after its all over. */
  71082. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/crt1.S uClibc-git/libc/sysdeps/linux/nios/crt1.S
  71083. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/crt1.S 2012-05-15 09:20:09.000000000 +0200
  71084. +++ uClibc-git/libc/sysdeps/linux/nios/crt1.S 2014-06-02 17:40:34.558714996 +0200
  71085. @@ -14,8 +14,7 @@
  71086. You should have received a copy of the GNU Library General Public
  71087. License along with the GNU C Library; see the file COPYING.LIB. If
  71088. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  71089. -Cambridge, MA 02139, USA. */
  71090. +not, see <http://www.gnu.org/licenses/>. */
  71091. #include <features.h>
  71092. #include <asm/unistd.h>
  71093. @@ -29,9 +28,6 @@
  71094. .weak _fini
  71095. .type main,@function
  71096. .type __uClibc_main,@function
  71097. - .type __h_errno_location, @function
  71098. - .type _stdio_init, @function
  71099. - .type _stdio_term, @function
  71100. .text
  71101. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/fpu_control.h uClibc-git/libc/sysdeps/linux/nios/fpu_control.h
  71102. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  71103. +++ uClibc-git/libc/sysdeps/linux/nios/fpu_control.h 2014-06-02 17:40:34.562715017 +0200
  71104. @@ -13,9 +13,8 @@
  71105. Lesser General Public License for more details.
  71106. You should have received a copy of the GNU Lesser General Public
  71107. - License along with the GNU C Library; if not, write to the Free
  71108. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71109. - 02111-1307 USA. */
  71110. + License along with the GNU C Library; if not, see
  71111. + <http://www.gnu.org/licenses/>. */
  71112. #ifndef _FPU_CONTROL_H
  71113. #define _FPU_CONTROL_H
  71114. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/nios/jmpbuf-offsets.h
  71115. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  71116. +++ uClibc-git/libc/sysdeps/linux/nios/jmpbuf-offsets.h 2014-06-02 17:40:34.562715017 +0200
  71117. @@ -0,0 +1,25 @@
  71118. +/*
  71119. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  71120. + *
  71121. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  71122. + */
  71123. +
  71124. +#define jmpbuf_l0 0x00
  71125. +#define jmpbuf_l1 0x01
  71126. +#define jmpbuf_l2 0x02
  71127. +#define jmpbuf_l3 0x03
  71128. +#define jmpbuf_l4 0x04
  71129. +#define jmpbuf_l5 0x05
  71130. +#define jmpbuf_l6 0x06
  71131. +#define jmpbuf_l7 0x07
  71132. +
  71133. +#define jmpbuf_i0 0x08
  71134. +#define jmpbuf_i1 0x09
  71135. +#define jmpbuf_i2 0x0a
  71136. +#define jmpbuf_i3 0x0b
  71137. +#define jmpbuf_i4 0x0c
  71138. +#define jmpbuf_i5 0x0d
  71139. +
  71140. +#define jmpbuf_sp 0x0e
  71141. +#define jmpbuf_jmpret 0x0f
  71142. +#define jmpbuf_callersret 0x10
  71143. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/nios/jmpbuf-unwind.h
  71144. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  71145. +++ uClibc-git/libc/sysdeps/linux/nios/jmpbuf-unwind.h 2014-06-02 17:40:34.562715017 +0200
  71146. @@ -0,0 +1,11 @@
  71147. +/*
  71148. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  71149. + *
  71150. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  71151. + */
  71152. +#include <setjmp.h>
  71153. +
  71154. +/* Test if longjmp to JMPBUF would unwind the frame
  71155. + containing a local variable at ADDRESS. */
  71156. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  71157. + ((void *) (address) < (void *) (jmpbuf)->__sp)
  71158. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/__longjmp.S uClibc-git/libc/sysdeps/linux/nios/__longjmp.S
  71159. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  71160. +++ uClibc-git/libc/sysdeps/linux/nios/__longjmp.S 2014-06-02 17:40:34.542714907 +0200
  71161. @@ -13,14 +13,9 @@
  71162. You should have received a copy of the GNU Library General Public
  71163. License along with the GNU C Library; see the file COPYING.LIB. If not,
  71164. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  71165. - Boston, MA 02111-1307, USA. */
  71166. -
  71167. -#include <features.h>
  71168. -#define _ASM
  71169. -#define _SETJMP_H
  71170. -#include <bits/setjmp.h>
  71171. + see <http://www.gnu.org/licenses/>. */
  71172. +#include <jmpbuf-offsets.h>
  71173. ;----------------------------------------
  71174. ; Name: __longjmp
  71175. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/Makefile.arch uClibc-git/libc/sysdeps/linux/nios/Makefile.arch
  71176. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  71177. +++ uClibc-git/libc/sysdeps/linux/nios/Makefile.arch 2014-06-02 17:40:34.542714907 +0200
  71178. @@ -5,8 +5,8 @@
  71179. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  71180. #
  71181. -CSRC := brk.c crtbegin.c crtend.c
  71182. +CSRC-y := brk.c crtbegin.c crtend.c
  71183. -SSRC := \
  71184. +SSRC-y := \
  71185. __longjmp.S bsd-_setjmp.S bsd-setjmp.S setjmp.S \
  71186. clone.S vfork.S
  71187. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/setjmp.S uClibc-git/libc/sysdeps/linux/nios/setjmp.S
  71188. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  71189. +++ uClibc-git/libc/sysdeps/linux/nios/setjmp.S 2014-06-02 17:40:34.562715017 +0200
  71190. @@ -13,13 +13,9 @@
  71191. You should have received a copy of the GNU Library General Public
  71192. License along with the GNU C Library; see the file COPYING.LIB. If not,
  71193. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  71194. - Boston, MA 02111-1307, USA. */
  71195. + see <http://www.gnu.org/licenses/>. */
  71196. -#include <features.h>
  71197. -#define _ASM
  71198. -#define _SETJMP_H
  71199. -#include <bits/setjmp.h>
  71200. +#include <jmpbuf-offsets.h>
  71201. #include "NM_Macros.S"
  71202. ;----------------------------------------
  71203. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/sys/procfs.h uClibc-git/libc/sysdeps/linux/nios/sys/procfs.h
  71204. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  71205. +++ uClibc-git/libc/sysdeps/linux/nios/sys/procfs.h 2014-06-02 17:40:34.562715017 +0200
  71206. @@ -12,9 +12,8 @@
  71207. Lesser General Public License for more details.
  71208. You should have received a copy of the GNU Lesser General Public
  71209. - License along with the GNU C Library; if not, write to the Free
  71210. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71211. - 02111-1307 USA. */
  71212. + License along with the GNU C Library; if not, see
  71213. + <http://www.gnu.org/licenses/>. */
  71214. #ifndef _SYS_PROCFS_H
  71215. #define _SYS_PROCFS_H 1
  71216. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/sys/ucontext.h uClibc-git/libc/sysdeps/linux/nios/sys/ucontext.h
  71217. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  71218. +++ uClibc-git/libc/sysdeps/linux/nios/sys/ucontext.h 2014-06-02 17:40:34.562715017 +0200
  71219. @@ -12,9 +12,8 @@
  71220. Lesser General Public License for more details.
  71221. You should have received a copy of the GNU Lesser General Public
  71222. - License along with the GNU C Library; if not, write to the Free
  71223. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71224. - 02111-1307 USA. */
  71225. + License along with the GNU C Library; if not, see
  71226. + <http://www.gnu.org/licenses/>. */
  71227. #ifndef _SYS_UCONTEXT_H
  71228. #define _SYS_UCONTEXT_H 1
  71229. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/vfork.S uClibc-git/libc/sysdeps/linux/nios/vfork.S
  71230. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/vfork.S 2012-05-15 09:20:09.000000000 +0200
  71231. +++ uClibc-git/libc/sysdeps/linux/nios/vfork.S 2014-06-02 17:40:34.562715017 +0200
  71232. @@ -10,9 +10,6 @@
  71233. * Written by Wentao Xu <wentao@microtronix.com>
  71234. */
  71235. -#include <features.h>
  71236. -
  71237. -#include <bits/errno.h>
  71238. #include <sys/syscall.h>
  71239. #include "NM_Macros.S"
  71240. @@ -51,4 +48,4 @@
  71241. .size __vfork,.-__vfork
  71242. weak_alias(__vfork,vfork)
  71243. -libc_hidden_weak(vfork)
  71244. +libc_hidden_def(vfork)
  71245. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/fcntl.h uClibc-git/libc/sysdeps/linux/nios2/bits/fcntl.h
  71246. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  71247. +++ uClibc-git/libc/sysdeps/linux/nios2/bits/fcntl.h 2014-06-02 17:40:34.562715017 +0200
  71248. @@ -13,9 +13,8 @@
  71249. Lesser General Public License for more details.
  71250. You should have received a copy of the GNU Lesser General Public
  71251. - License along with the GNU C Library; if not, write to the Free
  71252. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71253. - 02111-1307 USA. */
  71254. + License along with the GNU C Library; if not, see
  71255. + <http://www.gnu.org/licenses/>. */
  71256. #ifndef _FCNTL_H
  71257. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  71258. 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
  71259. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  71260. +++ uClibc-git/libc/sysdeps/linux/nios2/bits/kernel_types.h 2014-06-02 17:40:34.562715017 +0200
  71261. @@ -31,6 +31,8 @@
  71262. typedef unsigned short __kernel_old_uid_t;
  71263. typedef unsigned short __kernel_old_gid_t;
  71264. typedef unsigned short __kernel_old_dev_t;
  71265. +typedef long __kernel_long_t;
  71266. +typedef unsigned long __kernel_ulong_t;
  71267. typedef long long __kernel_loff_t;
  71268. typedef struct {
  71269. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/mathdef.h uClibc-git/libc/sysdeps/linux/nios2/bits/mathdef.h
  71270. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  71271. +++ uClibc-git/libc/sysdeps/linux/nios2/bits/mathdef.h 2014-06-02 17:40:34.562715017 +0200
  71272. @@ -12,9 +12,8 @@
  71273. Lesser General Public License for more details.
  71274. You should have received a copy of the GNU Lesser General Public
  71275. - License along with the GNU C Library; if not, write to the Free
  71276. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71277. - 02111-1307 USA. */
  71278. + License along with the GNU C Library; if not, see
  71279. + <http://www.gnu.org/licenses/>. */
  71280. #if !defined _MATH_H && !defined _COMPLEX_H
  71281. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  71282. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/setjmp.h uClibc-git/libc/sysdeps/linux/nios2/bits/setjmp.h
  71283. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  71284. +++ uClibc-git/libc/sysdeps/linux/nios2/bits/setjmp.h 2014-06-02 17:40:34.562715017 +0200
  71285. @@ -13,9 +13,8 @@
  71286. Lesser General Public License for more details.
  71287. You should have received a copy of the GNU Lesser General Public
  71288. - License along with the GNU C Library; if not, write to the Free
  71289. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71290. - 02111-1307 USA. */
  71291. + License along with the GNU C Library; if not, see
  71292. + <http://www.gnu.org/licenses/>. */
  71293. #ifndef _BITS_SETJMP_H
  71294. #define _BITS_SETJMP_H 1
  71295. @@ -24,7 +23,6 @@
  71296. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  71297. #endif
  71298. -#ifndef _ASM
  71299. typedef struct
  71300. {
  71301. /* Callee-saved registers r16 through r23. */
  71302. @@ -43,30 +41,9 @@
  71303. unsigned long __gp;
  71304. /* floating point regs, if any */
  71305. -#if defined __HAVE_FPU__
  71306. +#ifdef __UCLIBC_HAS_FPU__
  71307. unsigned long __fpregs[64];
  71308. #endif
  71309. } __jmp_buf[1];
  71310. -#endif
  71311. -
  71312. -#define JB_REGS 0
  71313. -#define JB_PC 32
  71314. -#define JB_SP 36
  71315. -#define JB_FP 40
  71316. -#define JB_GP 44
  71317. -#define JB_FPREGS 48
  71318. -
  71319. -#if defined __HAVE_FPU__
  71320. -# define JB_SIZE 304
  71321. -#else
  71322. -# define JB_SIZE 48
  71323. -#endif
  71324. -
  71325. -
  71326. -/* Test if longjmp to JMPBUF would unwind the frame
  71327. - containing a local variable at ADDRESS. */
  71328. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  71329. - ((void *) (address) < (void*)(jmpbuf)->__sp)
  71330. -
  71331. #endif /* bits/setjmp.h */
  71332. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/nios2/bits/sigcontextinfo.h
  71333. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  71334. +++ uClibc-git/libc/sysdeps/linux/nios2/bits/sigcontextinfo.h 2014-06-02 17:40:34.562715017 +0200
  71335. @@ -13,9 +13,8 @@
  71336. Lesser General Public License for more details.
  71337. You should have received a copy of the GNU Lesser General Public
  71338. - License along with the GNU C Library; if not, write to the Free
  71339. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71340. - 02111-1307 USA. */
  71341. + License along with the GNU C Library; if not, see
  71342. + <http://www.gnu.org/licenses/>. */
  71343. #define SIGCONTEXT struct sigcontext *
  71344. #define SIGCONTEXT_EXTRA_ARGS
  71345. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/nios2/bits/stackinfo.h
  71346. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  71347. +++ uClibc-git/libc/sysdeps/linux/nios2/bits/stackinfo.h 2014-06-02 17:40:34.562715017 +0200
  71348. @@ -12,9 +12,8 @@
  71349. Lesser General Public License for more details.
  71350. You should have received a copy of the GNU Lesser General Public
  71351. - License along with the GNU C Library; if not, write to the Free
  71352. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71353. - 02111-1307 USA. */
  71354. + License along with the GNU C Library; if not, see
  71355. + <http://www.gnu.org/licenses/>. */
  71356. /* This file contains a bit of information about the stack allocation
  71357. of the processor. */
  71358. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/stat.h uClibc-git/libc/sysdeps/linux/nios2/bits/stat.h
  71359. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  71360. +++ uClibc-git/libc/sysdeps/linux/nios2/bits/stat.h 2014-06-02 17:40:34.562715017 +0200
  71361. @@ -12,9 +12,8 @@
  71362. Lesser General Public License for more details.
  71363. You should have received a copy of the GNU Lesser General Public
  71364. - License along with the GNU C Library; if not, write to the Free
  71365. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71366. - 02111-1307 USA. */
  71367. + License along with the GNU C Library; if not, see
  71368. + <http://www.gnu.org/licenses/>. */
  71369. #ifndef _SYS_STAT_H
  71370. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  71371. 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
  71372. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  71373. +++ uClibc-git/libc/sysdeps/linux/nios2/bits/uClibc_arch_features.h 2014-06-02 17:40:34.574715084 +0200
  71374. @@ -12,8 +12,8 @@
  71375. /* can your target use syscall6() for mmap ? */
  71376. #undef __UCLIBC_MMAP_HAS_6_ARGS__
  71377. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  71378. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  71379. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  71380. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  71381. /* does your target have a broken create_module() ? */
  71382. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  71383. 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
  71384. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
  71385. +++ uClibc-git/libc/sysdeps/linux/nios2/bits/uClibc_page.h 1970-01-01 01:00:00.000000000 +0100
  71386. @@ -1,29 +0,0 @@
  71387. -/* Copyright (C) 2004 Erik Andersen
  71388. - *
  71389. - * This library is free software; you can redistribute it and/or
  71390. - * modify it under the terms of the GNU Lesser General Public
  71391. - * License as published by the Free Software Foundation; either
  71392. - * version 2.1 of the License, or (at your option) any later version.
  71393. - *
  71394. - * The GNU C Library is distributed in the hope that it will be useful,
  71395. - * but WITHOUT ANY WARRANTY; without even the implied warranty of
  71396. - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  71397. - * Lesser General Public License for more details.
  71398. - *
  71399. - * You should have received a copy of the GNU Lesser General Public
  71400. - * License along with the GNU C Library; if not, write to the Free
  71401. - * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71402. - * 02111-1307 USA.
  71403. - */
  71404. -
  71405. -/* Supply an architecture specific value for PAGE_SIZE and friends. */
  71406. -
  71407. -#ifndef _UCLIBC_PAGE_H
  71408. -#define _UCLIBC_PAGE_H
  71409. -
  71410. -/* PAGE_SHIFT determines the page size -- in this case 4096 */
  71411. -#define PAGE_SHIFT (12)
  71412. -#define PAGE_SIZE (1UL << PAGE_SHIFT)
  71413. -#define PAGE_MASK (~(PAGE_SIZE-1))
  71414. -
  71415. -#endif /* _UCLIBC_PAGE_H */
  71416. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/wordsize.h uClibc-git/libc/sysdeps/linux/nios2/bits/wordsize.h
  71417. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  71418. +++ uClibc-git/libc/sysdeps/linux/nios2/bits/wordsize.h 2014-06-02 17:40:34.574715084 +0200
  71419. @@ -12,8 +12,7 @@
  71420. Lesser General Public License for more details.
  71421. You should have received a copy of the GNU Lesser General Public
  71422. - License along with the GNU C Library; if not, write to the Free
  71423. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71424. - 02111-1307 USA. */
  71425. + License along with the GNU C Library; if not, see
  71426. + <http://www.gnu.org/licenses/>. */
  71427. #define __WORDSIZE 32
  71428. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/brk.c uClibc-git/libc/sysdeps/linux/nios2/brk.c
  71429. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/brk.c 2012-05-15 09:20:09.000000000 +0200
  71430. +++ uClibc-git/libc/sysdeps/linux/nios2/brk.c 2014-06-02 17:40:34.574715084 +0200
  71431. @@ -13,9 +13,8 @@
  71432. Lesser General Public License for more details.
  71433. You should have received a copy of the GNU Lesser General Public
  71434. - License along with the GNU C Library; if not, write to the Free
  71435. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71436. - 02111-1307 USA. */
  71437. + License along with the GNU C Library; if not, see
  71438. + <http://www.gnu.org/licenses/>. */
  71439. #include <unistd.h>
  71440. #include <sys/syscall.h>
  71441. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/nios2/bsd-setjmp.S
  71442. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
  71443. +++ uClibc-git/libc/sysdeps/linux/nios2/bsd-setjmp.S 2014-06-02 17:40:34.574715084 +0200
  71444. @@ -12,9 +12,8 @@
  71445. */
  71446. -#define _ASM
  71447. -#define _SETJMP_H
  71448. -#include <bits/setjmp.h>
  71449. +#include <features.h>
  71450. +#include <jmpbuf-offsets.h>
  71451. .globl setjmp
  71452. .type setjmp,@function
  71453. @@ -35,7 +34,7 @@
  71454. stw fp, JB_FP(r4)
  71455. stw gp, JB_GP(r4)
  71456. -#if defined(__HAVE_FPU__)
  71457. +#ifdef __UCLIBC_HAS_FPU__
  71458. SAVE_FPU r4 JB_FPREGS
  71459. #endif
  71460. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/nios2/bsd-_setjmp.S
  71461. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
  71462. +++ uClibc-git/libc/sysdeps/linux/nios2/bsd-_setjmp.S 2014-06-02 17:40:34.574715084 +0200
  71463. @@ -11,9 +11,8 @@
  71464. *
  71465. */
  71466. -#define _ASM
  71467. -#define _SETJMP_H
  71468. -#include <bits/setjmp.h>
  71469. +#include <features.h>
  71470. +#include <jmpbuf-offsets.h>
  71471. .globl _setjmp
  71472. .type _setjmp,@function
  71473. @@ -34,7 +33,7 @@
  71474. stw fp, JB_FP(r4)
  71475. stw gp, JB_GP(r4)
  71476. -#if defined(__HAVE_FPU__)
  71477. +#ifdef __UCLIBC_HAS_FPU__
  71478. SAVE_FPU r4 JB_FPREGS
  71479. #endif
  71480. stw r0, JB_SIZE(r4) /* signal mask is not saved */
  71481. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/crt1.S uClibc-git/libc/sysdeps/linux/nios2/crt1.S
  71482. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/crt1.S 2012-05-15 09:20:09.000000000 +0200
  71483. +++ uClibc-git/libc/sysdeps/linux/nios2/crt1.S 2014-06-02 17:40:34.574715084 +0200
  71484. @@ -25,9 +25,6 @@
  71485. #endif
  71486. .type main,@function
  71487. .type __uClibc_main,@function
  71488. - .type __h_errno_location, @function
  71489. - .type _stdio_init, @function
  71490. - .type _stdio_term, @function
  71491. .text
  71492. .balign 4
  71493. _start:
  71494. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/fpu_control.h uClibc-git/libc/sysdeps/linux/nios2/fpu_control.h
  71495. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  71496. +++ uClibc-git/libc/sysdeps/linux/nios2/fpu_control.h 2014-06-02 17:40:34.574715084 +0200
  71497. @@ -13,9 +13,8 @@
  71498. Lesser General Public License for more details.
  71499. You should have received a copy of the GNU Lesser General Public
  71500. - License along with the GNU C Library; if not, write to the Free
  71501. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71502. - 02111-1307 USA. */
  71503. + License along with the GNU C Library; if not, see
  71504. + <http://www.gnu.org/licenses/>. */
  71505. #ifndef _FPU_CONTROL_H
  71506. #define _FPU_CONTROL_H
  71507. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/nios2/jmpbuf-offsets.h
  71508. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  71509. +++ uClibc-git/libc/sysdeps/linux/nios2/jmpbuf-offsets.h 2014-06-02 17:40:34.574715084 +0200
  71510. @@ -0,0 +1,20 @@
  71511. +/*
  71512. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  71513. + *
  71514. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  71515. + */
  71516. +
  71517. +#include <features.h>
  71518. +
  71519. +#define JB_REGS 0
  71520. +#define JB_PC 32
  71521. +#define JB_SP 36
  71522. +#define JB_FP 40
  71523. +#define JB_GP 44
  71524. +#define JB_FPREGS 48
  71525. +
  71526. +#ifdef __UCLIBC_HAS_FPU__
  71527. +# define JB_SIZE 304
  71528. +#else
  71529. +# define JB_SIZE 48
  71530. +#endif
  71531. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/nios2/jmpbuf-unwind.h
  71532. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  71533. +++ uClibc-git/libc/sysdeps/linux/nios2/jmpbuf-unwind.h 2014-06-02 17:40:34.574715084 +0200
  71534. @@ -0,0 +1,11 @@
  71535. +/*
  71536. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  71537. + *
  71538. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  71539. + */
  71540. +#include <setjmp.h>
  71541. +
  71542. +/* Test if longjmp to JMPBUF would unwind the frame
  71543. + containing a local variable at ADDRESS. */
  71544. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  71545. + ((void *) (address) < (void *) (jmpbuf)->__sp)
  71546. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/__longjmp.S uClibc-git/libc/sysdeps/linux/nios2/__longjmp.S
  71547. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  71548. +++ uClibc-git/libc/sysdeps/linux/nios2/__longjmp.S 2014-06-02 17:40:34.562715017 +0200
  71549. @@ -12,9 +12,7 @@
  71550. */
  71551. #include <features.h>
  71552. -#define _ASM
  71553. -#define _SETJMP_H
  71554. -#include <bits/setjmp.h>
  71555. +#include <jmpbuf-offsets.h>
  71556. .globl __longjmp
  71557. .type __longjmp,@function
  71558. @@ -39,7 +37,7 @@
  71559. ldw gp, JB_GP(r4)
  71560. ldw sp, JB_SP(r4)
  71561. -#if defined(__HAVE_FPU__)
  71562. +#ifdef __UCLIBC_HAS_FPU__
  71563. RESTORE_FPU r4 JB_FPREGS
  71564. #endif
  71565. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/Makefile.arch uClibc-git/libc/sysdeps/linux/nios2/Makefile.arch
  71566. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  71567. +++ uClibc-git/libc/sysdeps/linux/nios2/Makefile.arch 2014-06-02 17:40:34.562715017 +0200
  71568. @@ -5,8 +5,8 @@
  71569. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  71570. #
  71571. -CSRC := brk.c syscall.c
  71572. +CSRC-y := brk.c syscall.c
  71573. -SSRC := \
  71574. +SSRC-y := \
  71575. __longjmp.S bsd-_setjmp.S bsd-setjmp.S setjmp.S \
  71576. vfork.S clone.S
  71577. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/setjmp.S uClibc-git/libc/sysdeps/linux/nios2/setjmp.S
  71578. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  71579. +++ uClibc-git/libc/sysdeps/linux/nios2/setjmp.S 2014-06-02 17:40:34.574715084 +0200
  71580. @@ -12,9 +12,7 @@
  71581. */
  71582. #include <features.h>
  71583. -#define _ASM
  71584. -#define _SETJMP_H
  71585. -#include <bits/setjmp.h>
  71586. +#include <jmpbuf-offsets.h>
  71587. .globl __sigsetjmp
  71588. .type __sigsetjmp,@function
  71589. @@ -35,7 +33,7 @@
  71590. stw fp, JB_FP(r4)
  71591. stw gp, JB_GP(r4)
  71592. -#if defined(__HAVE_FPU__)
  71593. +#ifdef __UCLIBC_HAS_FPU__
  71594. SAVE_FPU r4 JB_FPREGS
  71595. #endif
  71596. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/sys/procfs.h uClibc-git/libc/sysdeps/linux/nios2/sys/procfs.h
  71597. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  71598. +++ uClibc-git/libc/sysdeps/linux/nios2/sys/procfs.h 2014-06-02 17:40:34.574715084 +0200
  71599. @@ -12,9 +12,8 @@
  71600. Lesser General Public License for more details.
  71601. You should have received a copy of the GNU Lesser General Public
  71602. - License along with the GNU C Library; if not, write to the Free
  71603. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71604. - 02111-1307 USA. */
  71605. + License along with the GNU C Library; if not, see
  71606. + <http://www.gnu.org/licenses/>. */
  71607. #ifndef _SYS_PROCFS_H
  71608. #define _SYS_PROCFS_H 1
  71609. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/sys/ucontext.h uClibc-git/libc/sysdeps/linux/nios2/sys/ucontext.h
  71610. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  71611. +++ uClibc-git/libc/sysdeps/linux/nios2/sys/ucontext.h 2014-06-02 17:40:34.574715084 +0200
  71612. @@ -12,9 +12,8 @@
  71613. Lesser General Public License for more details.
  71614. You should have received a copy of the GNU Lesser General Public
  71615. - License along with the GNU C Library; if not, write to the Free
  71616. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71617. - 02111-1307 USA. */
  71618. + License along with the GNU C Library; if not, see
  71619. + <http://www.gnu.org/licenses/>. */
  71620. #ifndef _SYS_UCONTEXT_H
  71621. #define _SYS_UCONTEXT_H 1
  71622. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/syscall.c uClibc-git/libc/sysdeps/linux/nios2/syscall.c
  71623. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/syscall.c 2012-05-15 09:20:09.000000000 +0200
  71624. +++ uClibc-git/libc/sysdeps/linux/nios2/syscall.c 2014-06-02 17:40:34.574715084 +0200
  71625. @@ -14,8 +14,8 @@
  71626. * for more details.
  71627. *
  71628. * You should have received a copy of the GNU Library General Public License
  71629. - * along with this program; if not, write to the Free Software Foundation,
  71630. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  71631. + * along with this program; see the file COPYING.LIB. If not, see
  71632. + * <http://www.gnu.org/licenses/>.
  71633. */
  71634. #include <features.h>
  71635. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/vfork.S uClibc-git/libc/sysdeps/linux/nios2/vfork.S
  71636. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/vfork.S 2012-05-15 09:20:09.000000000 +0200
  71637. +++ uClibc-git/libc/sysdeps/linux/nios2/vfork.S 2014-06-02 17:40:34.574715084 +0200
  71638. @@ -10,11 +10,7 @@
  71639. * Written by Wentao Xu <wentao@microtronix.com>
  71640. */
  71641. -#include <features.h>
  71642. -
  71643. -#define _ERRNO_H
  71644. -#include <bits/errno.h>
  71645. -#include <asm/unistd.h>
  71646. +#include <sys/syscall.h>
  71647. #ifndef __NR_vfork
  71648. #define __NR_vfork __NR_fork /* uClinux-2.0 only has fork which is vfork */
  71649. @@ -53,4 +49,4 @@
  71650. .size __vfork,.-__vfork
  71651. weak_alias(__vfork,vfork)
  71652. -libc_hidden_weak(vfork)
  71653. +libc_hidden_def(vfork)
  71654. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/atomic.h uClibc-git/libc/sysdeps/linux/powerpc/bits/atomic.h
  71655. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  71656. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/atomic.h 2014-06-02 17:40:34.574715084 +0200
  71657. @@ -14,9 +14,8 @@
  71658. Lesser General Public License for more details.
  71659. You should have received a copy of the GNU Lesser General Public
  71660. - License along with the GNU C Library; if not, write to the Free
  71661. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71662. - 02111-1307 USA. */
  71663. + License along with the GNU C Library; if not, see
  71664. + <http://www.gnu.org/licenses/>. */
  71665. #include <bits/wordsize.h>
  71666. @@ -37,9 +36,8 @@
  71667. Lesser General Public License for more details.
  71668. You should have received a copy of the GNU Lesser General Public
  71669. - License along with the GNU C Library; if not, write to the Free
  71670. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71671. - 02111-1307 USA. */
  71672. + License along with the GNU C Library; if not, see
  71673. + <http://www.gnu.org/licenses/>. */
  71674. /* The 32-bit exchange_bool is different on powerpc64 because the subf
  71675. does signed 64-bit arthmatic while the lwarx is 32-bit unsigned
  71676. @@ -260,9 +258,8 @@
  71677. Lesser General Public License for more details.
  71678. You should have received a copy of the GNU Lesser General Public
  71679. - License along with the GNU C Library; if not, write to the Free
  71680. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71681. - 02111-1307 USA. */
  71682. + License along with the GNU C Library; if not, see
  71683. + <http://www.gnu.org/licenses/>. */
  71684. /*
  71685. * The 32-bit exchange_bool is different on powerpc64 because the subf
  71686. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/endian.h uClibc-git/libc/sysdeps/linux/powerpc/bits/endian.h
  71687. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/endian.h 2012-05-15 09:20:09.000000000 +0200
  71688. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/endian.h 2014-06-02 17:40:34.574715084 +0200
  71689. @@ -12,9 +12,8 @@
  71690. Lesser General Public License for more details.
  71691. You should have received a copy of the GNU Lesser General Public
  71692. - License along with the GNU C Library; if not, write to the Free
  71693. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71694. - 02111-1307 USA. */
  71695. + License along with the GNU C Library; if not, see
  71696. + <http://www.gnu.org/licenses/>. */
  71697. /* PowerPC can be little or big endian. Hopefully gcc will know... */
  71698. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/fcntl.h uClibc-git/libc/sysdeps/linux/powerpc/bits/fcntl.h
  71699. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  71700. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/fcntl.h 2014-06-02 17:40:34.574715084 +0200
  71701. @@ -14,9 +14,8 @@
  71702. Lesser General Public License for more details.
  71703. You should have received a copy of the GNU Lesser General Public
  71704. - License along with the GNU C Library; if not, write to the Free
  71705. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71706. - 02111-1307 USA. */
  71707. + License along with the GNU C Library; if not, see
  71708. + <http://www.gnu.org/licenses/>. */
  71709. #ifndef _FCNTL_H
  71710. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  71711. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/fenv.h uClibc-git/libc/sysdeps/linux/powerpc/bits/fenv.h
  71712. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  71713. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/fenv.h 2014-06-02 17:40:34.574715084 +0200
  71714. @@ -12,9 +12,8 @@
  71715. Lesser General Public License for more details.
  71716. You should have received a copy of the GNU Lesser General Public
  71717. - License along with the GNU C Library; if not, write to the Free
  71718. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71719. - 02111-1307 USA. */
  71720. + License along with the GNU C Library; if not, see
  71721. + <http://www.gnu.org/licenses/>. */
  71722. #ifndef _FENV_H
  71723. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  71724. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/fenvinline.h uClibc-git/libc/sysdeps/linux/powerpc/bits/fenvinline.h
  71725. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/fenvinline.h 2012-05-15 09:20:09.000000000 +0200
  71726. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/fenvinline.h 2014-06-02 17:40:34.578715107 +0200
  71727. @@ -14,9 +14,8 @@
  71728. Lesser General Public License for more details.
  71729. You should have received a copy of the GNU Lesser General Public
  71730. - License along with the GNU C Library; if not, write to the Free
  71731. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71732. - 02111-1307 USA. */
  71733. + License along with the GNU C Library; if not, see
  71734. + <http://www.gnu.org/licenses/>. */
  71735. #include <features.h>
  71736. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/ipc.h uClibc-git/libc/sysdeps/linux/powerpc/bits/ipc.h
  71737. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
  71738. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/ipc.h 2014-06-02 17:40:34.578715107 +0200
  71739. @@ -12,9 +12,8 @@
  71740. Lesser General Public License for more details.
  71741. You should have received a copy of the GNU Lesser General Public
  71742. - License along with the GNU C Library; if not, write to the Free
  71743. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71744. - 02111-1307 USA. */
  71745. + License along with the GNU C Library; if not, see
  71746. + <http://www.gnu.org/licenses/>. */
  71747. #ifndef _SYS_IPC_H
  71748. # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
  71749. 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
  71750. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  71751. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/kernel_types.h 2014-06-02 17:40:34.578715107 +0200
  71752. @@ -36,6 +36,8 @@
  71753. typedef unsigned int __kernel_old_uid_t;
  71754. typedef unsigned int __kernel_old_gid_t;
  71755. typedef __kernel_dev_t __kernel_old_dev_t;
  71756. +typedef long __kernel_long_t;
  71757. +typedef unsigned long __kernel_ulong_t;
  71758. #else
  71759. typedef unsigned int __kernel_dev_t;
  71760. typedef unsigned int __kernel_ino_t;
  71761. @@ -61,6 +63,8 @@
  71762. typedef unsigned int __kernel_old_uid_t;
  71763. typedef unsigned int __kernel_old_gid_t;
  71764. typedef __kernel_dev_t __kernel_old_dev_t;
  71765. +typedef long __kernel_long_t;
  71766. +typedef unsigned long __kernel_ulong_t;
  71767. typedef long long __kernel_loff_t;
  71768. #endif
  71769. 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
  71770. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/local_lim.h 1970-01-01 01:00:00.000000000 +0100
  71771. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/local_lim.h 2014-06-02 17:40:34.578715107 +0200
  71772. @@ -0,0 +1,101 @@
  71773. +/* Minimum guaranteed maximum values for system limits. Linux/PPC version.
  71774. + Copyright (C) 1993-1998,2000,2002-2004,2006,2008
  71775. + Free Software Foundation, Inc.
  71776. + This file is part of the GNU C Library.
  71777. +
  71778. + The GNU C Library is free software; you can redistribute it and/or
  71779. + modify it under the terms of the GNU Lesser General Public License as
  71780. + published by the Free Software Foundation; either version 2.1 of the
  71781. + License, or (at your option) any later version.
  71782. +
  71783. + The GNU C Library is distributed in the hope that it will be useful,
  71784. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  71785. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  71786. + Lesser General Public License for more details.
  71787. +
  71788. + You should have received a copy of the GNU Lesser General Public
  71789. + License along with the GNU C Library; see the file COPYING.LIB. If
  71790. + not, see <http://www.gnu.org/licenses/>. */
  71791. +
  71792. +/* The kernel header pollutes the namespace with the NR_OPEN symbol
  71793. + and defines LINK_MAX although filesystems have different maxima. A
  71794. + similar thing is true for OPEN_MAX: the limit can be changed at
  71795. + runtime and therefore the macro must not be defined. Remove this
  71796. + after including the header if necessary. */
  71797. +#ifndef NR_OPEN
  71798. +# define __undef_NR_OPEN
  71799. +#endif
  71800. +#ifndef LINK_MAX
  71801. +# define __undef_LINK_MAX
  71802. +#endif
  71803. +#ifndef OPEN_MAX
  71804. +# define __undef_OPEN_MAX
  71805. +#endif
  71806. +#ifndef ARG_MAX
  71807. +# define __undef_ARG_MAX
  71808. +#endif
  71809. +
  71810. +/* The kernel sources contain a file with all the needed information. */
  71811. +#include <linux/limits.h>
  71812. +
  71813. +/* Have to remove NR_OPEN? */
  71814. +#ifdef __undef_NR_OPEN
  71815. +# undef NR_OPEN
  71816. +# undef __undef_NR_OPEN
  71817. +#endif
  71818. +/* Have to remove LINK_MAX? */
  71819. +#ifdef __undef_LINK_MAX
  71820. +# undef LINK_MAX
  71821. +# undef __undef_LINK_MAX
  71822. +#endif
  71823. +/* Have to remove OPEN_MAX? */
  71824. +#ifdef __undef_OPEN_MAX
  71825. +# undef OPEN_MAX
  71826. +# undef __undef_OPEN_MAX
  71827. +#endif
  71828. +/* Have to remove ARG_MAX? */
  71829. +#ifdef __undef_ARG_MAX
  71830. +# undef ARG_MAX
  71831. +# undef __undef_ARG_MAX
  71832. +#endif
  71833. +
  71834. +/* The number of data keys per process. */
  71835. +#define _POSIX_THREAD_KEYS_MAX 128
  71836. +/* This is the value this implementation supports. */
  71837. +#define PTHREAD_KEYS_MAX 1024
  71838. +
  71839. +/* Controlling the iterations of destructors for thread-specific data. */
  71840. +#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
  71841. +/* Number of iterations this implementation does. */
  71842. +#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
  71843. +
  71844. +/* The number of threads per process. */
  71845. +#define _POSIX_THREAD_THREADS_MAX 64
  71846. +/* We have no predefined limit on the number of threads. */
  71847. +#undef PTHREAD_THREADS_MAX
  71848. +
  71849. +/* Maximum amount by which a process can descrease its asynchronous I/O
  71850. + priority level. */
  71851. +#define AIO_PRIO_DELTA_MAX 20
  71852. +
  71853. +/* Minimum size for a thread. At least two pages for systems with 64k
  71854. + pages. */
  71855. +#define PTHREAD_STACK_MIN 131072
  71856. +
  71857. +/* Maximum number of timer expiration overruns. */
  71858. +#define DELAYTIMER_MAX 2147483647
  71859. +
  71860. +/* Maximum tty name length. */
  71861. +#define TTY_NAME_MAX 32
  71862. +
  71863. +/* Maximum login name length. This is arbitrary. */
  71864. +#define LOGIN_NAME_MAX 256
  71865. +
  71866. +/* Maximum host name length. */
  71867. +#define HOST_NAME_MAX 64
  71868. +
  71869. +/* Maximum message queue priority level. */
  71870. +#define MQ_PRIO_MAX 32768
  71871. +
  71872. +/* Maximum value the semaphore can have. */
  71873. +#define SEM_VALUE_MAX (2147483647)
  71874. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/mathdef.h uClibc-git/libc/sysdeps/linux/powerpc/bits/mathdef.h
  71875. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  71876. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/mathdef.h 2014-06-02 17:40:34.578715107 +0200
  71877. @@ -13,9 +13,8 @@
  71878. Lesser General Public License for more details.
  71879. You should have received a copy of the GNU Lesser General Public
  71880. - License along with the GNU C Library; if not, write to the Free
  71881. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71882. - 02111-1307 USA. */
  71883. + License along with the GNU C Library; if not, see
  71884. + <http://www.gnu.org/licenses/>. */
  71885. #include <features.h>
  71886. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/mathinline.h uClibc-git/libc/sysdeps/linux/powerpc/bits/mathinline.h
  71887. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/mathinline.h 2012-05-15 09:20:09.000000000 +0200
  71888. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/mathinline.h 2014-06-02 17:40:34.578715107 +0200
  71889. @@ -14,9 +14,8 @@
  71890. Lesser General Public License for more details.
  71891. You should have received a copy of the GNU Lesser General Public
  71892. - License along with the GNU C Library; if not, write to the Free
  71893. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71894. - 02111-1307 USA. */
  71895. + License along with the GNU C Library; if not, see
  71896. + <http://www.gnu.org/licenses/>. */
  71897. #include <features.h>
  71898. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/mman.h uClibc-git/libc/sysdeps/linux/powerpc/bits/mman.h
  71899. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/mman.h 2012-05-15 09:20:09.000000000 +0200
  71900. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/mman.h 2014-06-02 17:40:34.578715107 +0200
  71901. @@ -13,9 +13,8 @@
  71902. Lesser General Public License for more details.
  71903. You should have received a copy of the GNU Lesser General Public
  71904. - License along with the GNU C Library; if not, write to the Free
  71905. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71906. - 02111-1307 USA. */
  71907. + License along with the GNU C Library; if not, see
  71908. + <http://www.gnu.org/licenses/>. */
  71909. #ifndef _SYS_MMAN_H
  71910. # error "Never use <bits/mman.h> directly; iclude <sys/mman.h> instead."
  71911. @@ -63,7 +62,7 @@
  71912. # define MAP_NORESERVE 0x00040 /* Don't check for reservations. */
  71913. # define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
  71914. # define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
  71915. -# define MAP_UNINITIALIZE 0x4000000 /* For anonymous mmap, memory could
  71916. +# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could
  71917. be uninitialized. */
  71918. #endif
  71919. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/msq.h uClibc-git/libc/sysdeps/linux/powerpc/bits/msq.h
  71920. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
  71921. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/msq.h 2014-06-02 17:40:34.578715107 +0200
  71922. @@ -12,9 +12,8 @@
  71923. Lesser General Public License for more details.
  71924. You should have received a copy of the GNU Lesser General Public
  71925. - License along with the GNU C Library; if not, write to the Free
  71926. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71927. - 02111-1307 USA. */
  71928. + License along with the GNU C Library; if not, see
  71929. + <http://www.gnu.org/licenses/>. */
  71930. #ifndef _SYS_MSG_H
  71931. # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
  71932. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/sem.h uClibc-git/libc/sysdeps/linux/powerpc/bits/sem.h
  71933. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
  71934. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/sem.h 2014-06-02 17:40:34.578715107 +0200
  71935. @@ -13,9 +13,8 @@
  71936. Lesser General Public License for more details.
  71937. You should have received a copy of the GNU Lesser General Public
  71938. - License along with the GNU C Library; if not, write to the Free
  71939. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71940. - 02111-1307 USA. */
  71941. + License along with the GNU C Library; if not, see
  71942. + <http://www.gnu.org/licenses/>. */
  71943. #ifndef _SYS_SEM_H
  71944. # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
  71945. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/setjmp.h uClibc-git/libc/sysdeps/linux/powerpc/bits/setjmp.h
  71946. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  71947. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/setjmp.h 2014-06-02 17:40:34.578715107 +0200
  71948. @@ -1,4 +1,5 @@
  71949. -/* Copyright (C) 1997, 1998, 2000, 2003, 2004 Free Software Foundation, Inc.
  71950. +/* Copyright (C) 1997,1998,2000,2003,2004,2005,2006
  71951. + Free Software Foundation, Inc.
  71952. This file is part of the GNU C Library.
  71953. The GNU C Library is free software; you can redistribute it and/or
  71954. @@ -12,9 +13,8 @@
  71955. Lesser General Public License for more details.
  71956. You should have received a copy of the GNU Lesser General Public
  71957. - License along with the GNU C Library; if not, write to the Free
  71958. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71959. - 02111-1307 USA. */
  71960. + License along with the GNU C Library; if not, see
  71961. + <http://www.gnu.org/licenses/>. */
  71962. /* Define the machine-dependent type `jmp_buf'. PowerPC version. */
  71963. #ifndef _BITS_SETJMP_H
  71964. @@ -31,30 +31,6 @@
  71965. #include <bits/wordsize.h>
  71966. -#if defined __USE_MISC || defined _ASM
  71967. -# define JB_GPR1 0 /* Also known as the stack pointer */
  71968. -# define JB_GPR2 1
  71969. -# define JB_LR 2 /* The address we will return to */
  71970. -# if __WORDSIZE == 64
  71971. -# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18*2 words total. */
  71972. -# define JB_CR 21 /* Condition code registers with the VRSAVE at */
  71973. - /* offset 172 (low half of the double word. */
  71974. -# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total. */
  71975. -# define JB_SIZE (64 * 8) /* As per PPC64-VMX ABI. */
  71976. -# define JB_VRSAVE 21 /* VRSAVE shares a double word with the CR at offset */
  71977. - /* 168 (high half of the double word). */
  71978. -# define JB_VRS 40 /* VRs 20 through 31 are saved, 12*4 words total. */
  71979. -# else
  71980. -# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18 in total. */
  71981. -# define JB_CR 21 /* Condition code registers. */
  71982. -# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total. */
  71983. -# define JB_SIZE ((64 + (12 * 4)) * 4)
  71984. -# define JB_VRSAVE 62
  71985. -# define JB_VRS 64
  71986. -# endif
  71987. -#endif
  71988. -
  71989. -
  71990. /* The current powerpc 32-bit Altivec ABI specifies for SVR4 ABI and EABI
  71991. the vrsave must be at byte 248 & v20 at byte 256. So we must pad this
  71992. correctly on 32 bit. It also insists that vecregs are only gauranteed
  71993. @@ -62,19 +38,12 @@
  71994. We have to version the code because members like int __mask_was_saved
  71995. in the jmp_buf will move as jmp_buf is now larger than 248 bytes. We
  71996. cannot keep the altivec jmp_buf backward compatible with the jmp_buf. */
  71997. -#ifndef _ASM
  71998. -# if __WORDSIZE == 64
  71999. +#if __WORDSIZE == 64
  72000. typedef long int __jmp_buf[64] __attribute__ ((__aligned__ (16)));
  72001. -# else
  72002. +#else
  72003. /* The alignment is not essential, i.e.the buffer can be copied to a 4 byte
  72004. aligned buffer as per the ABI it is just added for performance reasons. */
  72005. typedef long int __jmp_buf[64 + (12 * 4)] __attribute__ ((__aligned__ (16)));
  72006. -# endif
  72007. #endif
  72008. -/* Test if longjmp to JMPBUF would unwind the frame
  72009. - containing a local variable at ADDRESS. */
  72010. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  72011. - ((void *) (address) < (void *) (jmpbuf)[JB_GPR1])
  72012. -
  72013. -#endif /* bits/setjmp.h */
  72014. +#endif /* bits/setjmp.h */
  72015. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/shm.h uClibc-git/libc/sysdeps/linux/powerpc/bits/shm.h
  72016. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  72017. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/shm.h 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. #ifndef _SYS_SHM_H
  72027. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  72028. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/powerpc/bits/sigcontextinfo.h
  72029. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  72030. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/sigcontextinfo.h 2014-06-02 17:40:34.578715107 +0200
  72031. @@ -12,9 +12,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 <signal.h>
  72040. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/powerpc/bits/stackinfo.h
  72041. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  72042. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/stackinfo.h 2014-06-02 17:40:34.578715107 +0200
  72043. @@ -12,9 +12,8 @@
  72044. Lesser General Public License for more details.
  72045. You should have received a copy of the GNU Lesser General Public
  72046. - License along with the GNU C Library; if not, write to the Free
  72047. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72048. - 02111-1307 USA. */
  72049. + License along with the GNU C Library; if not, see
  72050. + <http://www.gnu.org/licenses/>. */
  72051. /* This file contains a bit of information about the stack allocation
  72052. of the processor. */
  72053. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/stat.h uClibc-git/libc/sysdeps/linux/powerpc/bits/stat.h
  72054. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  72055. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/stat.h 2014-06-02 17:40:34.578715107 +0200
  72056. @@ -13,9 +13,8 @@
  72057. Lesser General Public License for more details.
  72058. You should have received a copy of the GNU Lesser General Public
  72059. - License along with the GNU C Library; if not, write to the Free
  72060. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72061. - 02111-1307 USA. */
  72062. + License along with the GNU C Library; if not, see
  72063. + <http://www.gnu.org/licenses/>. */
  72064. #ifndef _SYS_STAT_H
  72065. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  72066. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/syscalls.h uClibc-git/libc/sysdeps/linux/powerpc/bits/syscalls.h
  72067. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/syscalls.h 2012-05-15 09:20:09.000000000 +0200
  72068. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/syscalls.h 2014-06-02 17:40:34.578715107 +0200
  72069. @@ -12,9 +12,8 @@
  72070. Lesser General Public License for more details.
  72071. You should have received a copy of the GNU Lesser General Public
  72072. - License along with the GNU C Library; if not, write to the Free
  72073. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72074. - 02111-1307 USA. */
  72075. + License along with the GNU C Library; if not, see
  72076. + <http://www.gnu.org/licenses/>. */
  72077. #ifndef _BITS_SYSCALLS_H
  72078. #define _BITS_SYSCALLS_H
  72079. @@ -168,7 +167,7 @@
  72080. }) \
  72081. )
  72082. # define INTERNAL_SYSCALL_ERROR_P(val, err) \
  72083. - ((void) (val), __builtin_expect ((err) & (1 << 28), 0))
  72084. + ((void) (val), unlikely ((err) & (1 << 28)))
  72085. # define INTERNAL_SYSCALL_ERRNO(val, err) (val)
  72086. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/termios.h uClibc-git/libc/sysdeps/linux/powerpc/bits/termios.h
  72087. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/termios.h 2012-05-15 09:20:09.000000000 +0200
  72088. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/termios.h 2014-06-02 17:40:34.578715107 +0200
  72089. @@ -12,9 +12,8 @@
  72090. Lesser General Public License for more details.
  72091. You should have received a copy of the GNU Lesser General Public
  72092. - License along with the GNU C Library; if not, write to the Free
  72093. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72094. - 02111-1307 USA. */
  72095. + License along with the GNU C Library; if not, see
  72096. + <http://www.gnu.org/licenses/>. */
  72097. #ifndef _TERMIOS_H
  72098. # error "Never include <bits/termios.h> directly; use <termios.h> instead."
  72099. 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
  72100. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  72101. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/uClibc_arch_features.h 2014-06-02 17:40:34.578715107 +0200
  72102. @@ -11,8 +11,8 @@
  72103. /* can your target use syscall6() for mmap ? */
  72104. #define __UCLIBC_MMAP_HAS_6_ARGS__
  72105. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  72106. -#define __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  72107. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  72108. +#define __UCLIBC_SYSCALL_ALIGN_64BIT__
  72109. /* does your target have a broken create_module() ? */
  72110. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  72111. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/brk.S uClibc-git/libc/sysdeps/linux/powerpc/brk.S
  72112. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/brk.S 2012-05-15 09:20:09.000000000 +0200
  72113. +++ uClibc-git/libc/sysdeps/linux/powerpc/brk.S 2014-06-02 17:40:34.578715107 +0200
  72114. @@ -13,9 +13,8 @@
  72115. Lesser General Public License for more details.
  72116. You should have received a copy of the GNU Lesser General Public
  72117. - License along with the GNU C Library; if not, write to the Free
  72118. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72119. - 02111-1307 USA. */
  72120. + License along with the GNU C Library; if not, see
  72121. + <http://www.gnu.org/licenses/>. */
  72122. #include <features.h>
  72123. #include "ppc_asm.h"
  72124. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/powerpc/bsd-setjmp.S
  72125. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
  72126. +++ uClibc-git/libc/sysdeps/linux/powerpc/bsd-setjmp.S 2014-06-02 17:40:34.578715107 +0200
  72127. @@ -13,9 +13,8 @@
  72128. Lesser General Public License for more details.
  72129. You should have received a copy of the GNU Lesser General Public
  72130. - License along with the GNU C Library; if not, write to the Free
  72131. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72132. - 02111-1307 USA. */
  72133. + License along with the GNU C Library; if not, see
  72134. + <http://www.gnu.org/licenses/>. */
  72135. /* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
  72136. We cannot do it in C because it must be a tail-call, so frame-unwinding
  72137. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/powerpc/bsd-_setjmp.S
  72138. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
  72139. +++ uClibc-git/libc/sysdeps/linux/powerpc/bsd-_setjmp.S 2014-06-02 17:40:34.578715107 +0200
  72140. @@ -13,9 +13,8 @@
  72141. Lesser General Public License for more details.
  72142. You should have received a copy of the GNU Lesser General Public
  72143. - License along with the GNU C Library; if not, write to the Free
  72144. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72145. - 02111-1307 USA. */
  72146. + License along with the GNU C Library; if not, see
  72147. + <http://www.gnu.org/licenses/>. */
  72148. /* This just does a tail-call to `__sigsetjmp (ARG, 0)'.
  72149. We cannot do it in C because it must be a tail-call, so frame-unwinding
  72150. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/clone.S uClibc-git/libc/sysdeps/linux/powerpc/clone.S
  72151. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/clone.S 2012-05-15 09:20:09.000000000 +0200
  72152. +++ uClibc-git/libc/sysdeps/linux/powerpc/clone.S 2014-06-02 17:40:34.578715107 +0200
  72153. @@ -13,9 +13,8 @@
  72154. Lesser General Public License for more details.
  72155. You should have received a copy of the GNU Lesser General Public
  72156. - License along with the GNU C Library; if not, write to the Free
  72157. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72158. - 02111-1307 USA. */
  72159. + License along with the GNU C Library; if not, see
  72160. + <http://www.gnu.org/licenses/>. */
  72161. #include <features.h>
  72162. #define _ERRNO_H 1
  72163. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/crt1.S uClibc-git/libc/sysdeps/linux/powerpc/crt1.S
  72164. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/crt1.S 2012-05-15 09:20:09.000000000 +0200
  72165. +++ uClibc-git/libc/sysdeps/linux/powerpc/crt1.S 2014-06-02 17:40:34.578715107 +0200
  72166. @@ -12,8 +12,8 @@
  72167. * for more details.
  72168. *
  72169. * You should have received a copy of the GNU Library General Public License
  72170. - * along with this program; if not, write to the Free Software Foundation,
  72171. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  72172. + * along with this program; see the file COPYING.LIB. If not, see
  72173. + * <http://www.gnu.org/licenses/>.
  72174. */
  72175. #include <features.h>
  72176. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/fenv.h uClibc-git/libc/sysdeps/linux/powerpc/fenv.h
  72177. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/fenv.h 2012-05-15 09:20:09.000000000 +0200
  72178. +++ uClibc-git/libc/sysdeps/linux/powerpc/fenv.h 2014-06-02 17:40:34.578715107 +0200
  72179. @@ -12,9 +12,8 @@
  72180. Lesser General Public License for more details.
  72181. You should have received a copy of the GNU Lesser General Public
  72182. - License along with the GNU C Library; if not, write to the Free
  72183. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72184. - 02111-1307 USA. */
  72185. + License along with the GNU C Library; if not, see
  72186. + <http://www.gnu.org/licenses/>. */
  72187. /*
  72188. * ISO C99 7.6: Floating-point environment <fenv.h>
  72189. @@ -73,7 +72,7 @@
  72190. /* Set complete status for exceptions indicated by EXCEPTS according to
  72191. the representation in the object pointed to by FLAGP. */
  72192. -extern int fesetexceptflag (__const fexcept_t *__flagp, int __excepts) __THROW;
  72193. +extern int fesetexceptflag (const fexcept_t *__flagp, int __excepts) __THROW;
  72194. /* Determine which of subset of the exceptions specified by EXCEPTS are
  72195. currently set. */
  72196. @@ -102,12 +101,12 @@
  72197. /* Establish the floating-point environment represented by the object
  72198. pointed to by ENVP. */
  72199. -extern int fesetenv (__const fenv_t *__envp) __THROW;
  72200. +extern int fesetenv (const fenv_t *__envp) __THROW;
  72201. /* Save current exceptions in temporary storage, install environment
  72202. represented by object pointed to by ENVP and raise exceptions
  72203. according to saved exceptions. */
  72204. -extern int feupdateenv (__const fenv_t *__envp) __THROW;
  72205. +extern int feupdateenv (const fenv_t *__envp) __THROW;
  72206. /* Include optimization. */
  72207. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/fpu_control.h uClibc-git/libc/sysdeps/linux/powerpc/fpu_control.h
  72208. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  72209. +++ uClibc-git/libc/sysdeps/linux/powerpc/fpu_control.h 2014-06-02 17:40:34.578715107 +0200
  72210. @@ -14,9 +14,8 @@
  72211. Lesser General Public License for more details.
  72212. You should have received a copy of the GNU Lesser General Public
  72213. - License along with the GNU C Library; if not, write to the Free
  72214. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72215. - 02111-1307 USA. */
  72216. + License along with the GNU C Library; if not, see
  72217. + <http://www.gnu.org/licenses/>. */
  72218. #ifndef _FPU_CONTROL_H
  72219. #define _FPU_CONTROL_H
  72220. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/ioctl.c uClibc-git/libc/sysdeps/linux/powerpc/ioctl.c
  72221. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/ioctl.c 2012-05-15 09:20:09.000000000 +0200
  72222. +++ uClibc-git/libc/sysdeps/linux/powerpc/ioctl.c 2014-06-02 17:40:34.598715217 +0200
  72223. @@ -12,9 +12,8 @@
  72224. Lesser General Public License for more details.
  72225. You should have received a copy of the GNU Lesser General Public
  72226. - License along with the GNU C Library; if not, write to the Free
  72227. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72228. - 02111-1307 USA. */
  72229. + License along with the GNU C Library; if not, see
  72230. + <http://www.gnu.org/licenses/>. */
  72231. #include <stdarg.h>
  72232. #include <termios.h>
  72233. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/powerpc/jmpbuf-offsets.h
  72234. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  72235. +++ uClibc-git/libc/sysdeps/linux/powerpc/jmpbuf-offsets.h 2014-06-02 17:40:34.598715217 +0200
  72236. @@ -0,0 +1,40 @@
  72237. +/* Private macros for accessing __jmp_buf contents. PowerPC version.
  72238. + Copyright (C) 2006 Free Software Foundation, Inc.
  72239. + This file is part of the GNU C Library.
  72240. +
  72241. + The GNU C Library is free software; you can redistribute it and/or
  72242. + modify it under the terms of the GNU Lesser General Public
  72243. + License as published by the Free Software Foundation; either
  72244. + version 2.1 of the License, or (at your option) any later version.
  72245. +
  72246. + The GNU C Library is distributed in the hope that it will be useful,
  72247. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  72248. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  72249. + Lesser General Public License for more details.
  72250. +
  72251. + You should have received a copy of the GNU Lesser General Public
  72252. + License along with the GNU C Library; if not, see
  72253. + <http://www.gnu.org/licenses/>. */
  72254. +
  72255. +#include <bits/wordsize.h>
  72256. +
  72257. +#define JB_GPR1 0 /* Also known as the stack pointer */
  72258. +#define JB_GPR2 1
  72259. +#define JB_LR 2 /* The address we will return to */
  72260. +#if __WORDSIZE == 64
  72261. +# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18*2 words total. */
  72262. +# define JB_CR 21 /* Condition code registers with the VRSAVE at */
  72263. + /* offset 172 (low half of the double word. */
  72264. +# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total. */
  72265. +# define JB_SIZE (64 * 8) /* As per PPC64-VMX ABI. */
  72266. +# define JB_VRSAVE 21 /* VRSAVE shares a double word with the CR at offset */
  72267. + /* 168 (high half of the double word). */
  72268. +# define JB_VRS 40 /* VRs 20 through 31 are saved, 12*4 words total. */
  72269. +#else
  72270. +# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18 in total. */
  72271. +# define JB_CR 21 /* Condition code registers. */
  72272. +# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total. */
  72273. +# define JB_SIZE ((64 + (12 * 4)) * 4)
  72274. +# define JB_VRSAVE 62
  72275. +# define JB_VRS 64
  72276. +#endif
  72277. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/powerpc/jmpbuf-unwind.h
  72278. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  72279. +++ uClibc-git/libc/sysdeps/linux/powerpc/jmpbuf-unwind.h 2014-06-02 17:40:34.598715217 +0200
  72280. @@ -0,0 +1,23 @@
  72281. +/*
  72282. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  72283. + *
  72284. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  72285. + */
  72286. +#include <setjmp.h>
  72287. +#include <jmpbuf-offsets.h>
  72288. +
  72289. +/* Test if longjmp to JMPBUF would unwind the frame
  72290. + containing a local variable at ADDRESS. */
  72291. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  72292. + ((void *) (address) < (void *) (jmpbuf)[JB_GPR1])
  72293. +
  72294. +#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  72295. +#include <stdint.h>
  72296. +#include <unwind.h>
  72297. +
  72298. +#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
  72299. + _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
  72300. +
  72301. +#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  72302. + ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_GPR1] - (_adj))
  72303. +#endif
  72304. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/__longjmp.S uClibc-git/libc/sysdeps/linux/powerpc/__longjmp.S
  72305. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  72306. +++ uClibc-git/libc/sysdeps/linux/powerpc/__longjmp.S 2014-06-02 17:40:34.574715084 +0200
  72307. @@ -15,15 +15,12 @@
  72308. Lesser General Public License for more details.
  72309. You should have received a copy of the GNU Lesser General Public
  72310. - License along with the GNU C Library; if not, write to the Free
  72311. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72312. - 02111-1307 USA. */
  72313. + License along with the GNU C Library; if not, see
  72314. + <http://www.gnu.org/licenses/>. */
  72315. #include <features.h>
  72316. #include "ppc_asm.h"
  72317. -#define _ASM
  72318. -#define _SETJMP_H
  72319. -#include <bits/setjmp.h>
  72320. +#include <jmpbuf-offsets.h>
  72321. #if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
  72322. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/Makefile.arch uClibc-git/libc/sysdeps/linux/powerpc/Makefile.arch
  72323. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  72324. +++ uClibc-git/libc/sysdeps/linux/powerpc/Makefile.arch 2014-06-02 17:40:34.574715084 +0200
  72325. @@ -5,18 +5,13 @@
  72326. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  72327. #
  72328. -CSRC := __syscall_error.c pread_write.c ioctl.c
  72329. +CSRC-y := __syscall_error.c ioctl.c
  72330. -ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y)
  72331. -CSRC += posix_fadvise.c posix_fadvise64.c
  72332. -endif
  72333. -
  72334. -SSRC := \
  72335. +SSRC-y := \
  72336. __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S brk.S \
  72337. __uClibc_syscall.S syscall.S
  72338. -ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
  72339. -SSRC += clone.S vfork.S
  72340. -endif
  72341. +
  72342. +SSRC-$(if $(UCLIBC_HAS_THREADS_NATIVE),,y) += clone.S vfork.S
  72343. ifeq ($(CONFIG_E500),y)
  72344. ARCH_HEADERS := fenv.h
  72345. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/posix_fadvise64.c uClibc-git/libc/sysdeps/linux/powerpc/posix_fadvise64.c
  72346. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/posix_fadvise64.c 2012-05-15 09:20:09.000000000 +0200
  72347. +++ uClibc-git/libc/sysdeps/linux/powerpc/posix_fadvise64.c 1970-01-01 01:00:00.000000000 +0100
  72348. @@ -1,69 +0,0 @@
  72349. -/* vi: set sw=4 ts=4: */
  72350. -/*
  72351. - * posix_fadvise64() for uClibc
  72352. - * http://www.opengroup.org/onlinepubs/009695399/functions/posix_fadvise.html
  72353. - *
  72354. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  72355. - *
  72356. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  72357. - */
  72358. -
  72359. -#include <features.h>
  72360. -#include <unistd.h>
  72361. -#include <errno.h>
  72362. -#include <endian.h>
  72363. -#include <stdint.h>
  72364. -#include <sys/types.h>
  72365. -#include <sys/syscall.h>
  72366. -#include <fcntl.h>
  72367. -
  72368. -#ifdef __UCLIBC_HAS_LFS__
  72369. -#ifdef __NR_fadvise64_64
  72370. -
  72371. -/* 64 bit implementation is cake ... or more like pie ... */
  72372. -#if __WORDSIZE == 64
  72373. -
  72374. -#define __NR_posix_fadvise64 __NR_fadvise64_64
  72375. -
  72376. -int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advise)
  72377. -{
  72378. - if (len != (off_t) len)
  72379. - return EOVERFLOW;
  72380. - INTERNAL_SYSCALL_DECL (err);
  72381. - int ret = INTERNAL_SYSCALL (posix_fadvise64, err, 6, fd, 0,
  72382. - __LONG_LONG_PAIR ((long) (offset >> 32), (long) offset),
  72383. - (off_t) len, advise);
  72384. - if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
  72385. - return 0;
  72386. - return INTERNAL_SYSCALL_ERRNO (ret, err);
  72387. -}
  72388. -
  72389. -/* 32 bit implementation is kind of a pita */
  72390. -#elif __WORDSIZE == 32
  72391. -
  72392. -int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advise)
  72393. -{
  72394. - INTERNAL_SYSCALL_DECL (err);
  72395. - int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd, advise,
  72396. - __LONG_LONG_PAIR((long) (offset >> 32), (long) offset ),
  72397. - __LONG_LONG_PAIR((long) (len >> 32), (long) len));
  72398. - if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
  72399. - return 0;
  72400. - return INTERNAL_SYSCALL_ERRNO (ret, err);
  72401. -}
  72402. -
  72403. -#else
  72404. -#error your machine is neither 32 bit or 64 bit ... it must be magical
  72405. -#endif
  72406. -
  72407. -#elif !defined __NR_fadvise64
  72408. -/* This is declared as a strong alias in posix_fadvise.c if __NR_fadvise64
  72409. - * is defined.
  72410. - */
  72411. -int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advise)
  72412. -{
  72413. -#warning This is not correct as far as SUSv3 is concerned.
  72414. - return ENOSYS;
  72415. -}
  72416. -#endif /* __NR_fadvise64_64 */
  72417. -#endif /* __UCLIBC_HAS_LFS__ */
  72418. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/posix_fadvise.c uClibc-git/libc/sysdeps/linux/powerpc/posix_fadvise.c
  72419. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/posix_fadvise.c 2012-05-15 09:20:09.000000000 +0200
  72420. +++ uClibc-git/libc/sysdeps/linux/powerpc/posix_fadvise.c 1970-01-01 01:00:00.000000000 +0100
  72421. @@ -1,36 +0,0 @@
  72422. -/* vi: set sw=4 ts=4: */
  72423. -/*
  72424. - * posix_fadvise() for uClibc
  72425. - * http://www.opengroup.org/onlinepubs/009695399/functions/posix_fadvise.html
  72426. - *
  72427. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  72428. - *
  72429. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  72430. - */
  72431. -
  72432. -#include <sys/syscall.h>
  72433. -#include <fcntl.h>
  72434. -
  72435. -#ifdef __NR_fadvise64
  72436. -#define __NR_posix_fadvise __NR_fadvise64
  72437. -int posix_fadvise(int fd, off_t offset, off_t len, int advice)
  72438. -{
  72439. - INTERNAL_SYSCALL_DECL(err);
  72440. - int ret = (int) (INTERNAL_SYSCALL(posix_fadvise, err, 6, fd, 0,
  72441. - __LONG_LONG_PAIR (offset >> 31, offset), len, advice));
  72442. - if (INTERNAL_SYSCALL_ERROR_P (ret, err))
  72443. - return INTERNAL_SYSCALL_ERRNO (ret, err);
  72444. - return 0;
  72445. -}
  72446. -
  72447. -#if defined __UCLIBC_HAS_LFS__ && (!defined __NR_fadvise64_64 || !defined _syscall6)
  72448. -strong_alias(posix_fadvise,posix_fadvise64)
  72449. -#endif
  72450. -
  72451. -#else
  72452. -int posix_fadvise(int fd attribute_unused, off_t offset attribute_unused, off_t len attribute_unused, int advice attribute_unused)
  72453. -{
  72454. -#warning This is not correct as far as SUSv3 is concerned.
  72455. - return ENOSYS;
  72456. -}
  72457. -#endif
  72458. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/powerpc32/sysdep.h uClibc-git/libc/sysdeps/linux/powerpc/powerpc32/sysdep.h
  72459. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/powerpc32/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  72460. +++ uClibc-git/libc/sysdeps/linux/powerpc/powerpc32/sysdep.h 2014-06-02 17:40:34.598715217 +0200
  72461. @@ -13,9 +13,8 @@
  72462. Lesser General Public License for more details.
  72463. You should have received a copy of the GNU Lesser General Public
  72464. - License along with the GNU C Library; if not, write to the Free
  72465. - Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
  72466. - 02110-1301 USA. */
  72467. + License along with the GNU C Library; if not, see
  72468. + <http://www.gnu.org/licenses/>. */
  72469. #ifdef __ASSEMBLER__
  72470. @@ -133,6 +132,7 @@
  72471. #define PSEUDO_RET_ERRVAL \
  72472. blr
  72473. +#undef ret_ERRVAL
  72474. #define ret_ERRVAL PSEUDO_RET_ERRVAL
  72475. #undef PSEUDO_END_ERRVAL
  72476. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/powerpc64/sysdep.h uClibc-git/libc/sysdeps/linux/powerpc/powerpc64/sysdep.h
  72477. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/powerpc64/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  72478. +++ uClibc-git/libc/sysdeps/linux/powerpc/powerpc64/sysdep.h 2014-06-02 17:40:34.598715217 +0200
  72479. @@ -13,9 +13,8 @@
  72480. Lesser General Public License for more details.
  72481. You should have received a copy of the GNU Lesser General Public
  72482. - License along with the GNU C Library; if not, write to the Free
  72483. - Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
  72484. - 02110-1301 USA. */
  72485. + License along with the GNU C Library; if not, see
  72486. + <http://www.gnu.org/licenses/>. */
  72487. #ifdef __ELF__
  72488. @@ -228,6 +227,7 @@
  72489. #define PSEUDO_RET_ERRVAL \
  72490. blr
  72491. +#undef ret_ERRVAL
  72492. #define ret_ERRVAL PSEUDO_RET_ERRVAL
  72493. #undef PSEUDO_END_ERRVAL
  72494. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/ppc_asm.h uClibc-git/libc/sysdeps/linux/powerpc/ppc_asm.h
  72495. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/ppc_asm.h 2012-05-15 09:20:09.000000000 +0200
  72496. +++ uClibc-git/libc/sysdeps/linux/powerpc/ppc_asm.h 2014-06-02 17:40:34.598715217 +0200
  72497. @@ -12,9 +12,8 @@
  72498. Lesser General Public License for more details.
  72499. You should have received a copy of the GNU Lesser General Public
  72500. - License along with the GNU C Library; if not, write to the Free
  72501. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72502. - 02111-1307 USA. */
  72503. + License along with the GNU C Library; if not, see
  72504. + <http://www.gnu.org/licenses/>. */
  72505. #ifdef __ASSEMBLER__
  72506. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/pread_write.c uClibc-git/libc/sysdeps/linux/powerpc/pread_write.c
  72507. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/pread_write.c 2012-05-15 09:20:09.000000000 +0200
  72508. +++ uClibc-git/libc/sysdeps/linux/powerpc/pread_write.c 1970-01-01 01:00:00.000000000 +0100
  72509. @@ -1,183 +0,0 @@
  72510. -/* vi: set sw=4 ts=4:
  72511. - *
  72512. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  72513. - *
  72514. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  72515. - */
  72516. -/* Based in part on the files
  72517. - * ./sysdeps/unix/sysv/linux/pwrite.c,
  72518. - * ./sysdeps/unix/sysv/linux/pread.c,
  72519. - * sysdeps/posix/pread.c
  72520. - * sysdeps/posix/pwrite.c
  72521. - * from GNU libc 2.2.5, but reworked considerably...
  72522. - */
  72523. -
  72524. -#include <sys/syscall.h>
  72525. -#include <unistd.h>
  72526. -#include <endian.h>
  72527. -
  72528. -#ifndef __UCLIBC_HAS_LFS__
  72529. -# define off64_t off_t
  72530. -#endif
  72531. -
  72532. -#ifdef __NR_pread
  72533. -extern __typeof(pread) __libc_pread;
  72534. -# define __NR___syscall_pread __NR_pread
  72535. -static __inline__ _syscall6(ssize_t, __syscall_pread, int, fd,
  72536. - void *, buf, size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
  72537. -
  72538. -ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
  72539. -{
  72540. - return(__syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR(offset >> 31, offset)));
  72541. -}
  72542. -weak_alias(__libc_pread,pread)
  72543. -
  72544. -# ifdef __UCLIBC_HAS_LFS__
  72545. -extern __typeof(pread64) __libc_pread64;
  72546. -ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
  72547. -{
  72548. - return(__syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR(offset >> 32, offset)));
  72549. -}
  72550. -weak_alias(__libc_pread64,pread64)
  72551. -# endif /* __UCLIBC_HAS_LFS__ */
  72552. -#endif /* __NR_pread */
  72553. -
  72554. -
  72555. -#ifdef __NR_pwrite
  72556. -extern __typeof(pwrite) __libc_pwrite;
  72557. -# define __NR___syscall_pwrite __NR_pwrite
  72558. -static __inline__ _syscall6(ssize_t, __syscall_pwrite, int, fd,
  72559. - const void *, buf, size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
  72560. -
  72561. -ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
  72562. -{
  72563. - return(__syscall_pwrite(fd, buf, count, 0, __LONG_LONG_PAIR(offset >> 31, offset)));
  72564. -}
  72565. -weak_alias(__libc_pwrite,pwrite)
  72566. -
  72567. -# ifdef __UCLIBC_HAS_LFS__
  72568. -extern __typeof(pwrite64) __libc_pwrite64;
  72569. -ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
  72570. -{
  72571. - return(__syscall_pwrite(fd, buf, count, 0, __LONG_LONG_PAIR(offset >> 32, offset)));
  72572. -}
  72573. -weak_alias(__libc_pwrite64,pwrite64)
  72574. -# endif /* __UCLIBC_HAS_LFS__ */
  72575. -#endif /* __NR_pwrite */
  72576. -
  72577. -
  72578. -
  72579. -#if ! defined __NR_pread || ! defined __NR_pwrite
  72580. -
  72581. -static ssize_t __fake_pread_write(int fd, void *buf,
  72582. - size_t count, off_t offset, int do_pwrite)
  72583. -{
  72584. - int save_errno;
  72585. - ssize_t result;
  72586. - off_t old_offset;
  72587. -
  72588. - /* Since we must not change the file pointer preserve the
  72589. - * value so that we can restore it later. */
  72590. - if ((old_offset=lseek(fd, 0, SEEK_CUR)) == (off_t) -1)
  72591. - return -1;
  72592. -
  72593. - /* Set to wanted position. */
  72594. - if (lseek (fd, offset, SEEK_SET) == (off_t) -1)
  72595. - return -1;
  72596. -
  72597. - if (do_pwrite == 1) {
  72598. - /* Write the data. */
  72599. - result = write(fd, buf, count);
  72600. - } else {
  72601. - /* Read the data. */
  72602. - result = read(fd, buf, count);
  72603. - }
  72604. -
  72605. - /* Now we have to restore the position. If this fails we
  72606. - * have to return this as an error. */
  72607. - save_errno = errno;
  72608. - if (lseek(fd, old_offset, SEEK_SET) == (off_t) -1)
  72609. - {
  72610. - if (result == -1)
  72611. - __set_errno(save_errno);
  72612. - return -1;
  72613. - }
  72614. - __set_errno(save_errno);
  72615. - return(result);
  72616. -}
  72617. -
  72618. -# ifdef __UCLIBC_HAS_LFS__
  72619. -
  72620. -static ssize_t __fake_pread_write64(int fd, void *buf,
  72621. - size_t count, off64_t offset, int do_pwrite)
  72622. -{
  72623. - int save_errno;
  72624. - ssize_t result;
  72625. - off64_t old_offset;
  72626. -
  72627. - /* Since we must not change the file pointer preserve the
  72628. - * value so that we can restore it later. */
  72629. - if ((old_offset=lseek64(fd, 0, SEEK_CUR)) == (off64_t) -1)
  72630. - return -1;
  72631. -
  72632. - /* Set to wanted position. */
  72633. - if (lseek64(fd, offset, SEEK_SET) == (off64_t) -1)
  72634. - return -1;
  72635. -
  72636. - if (do_pwrite == 1) {
  72637. - /* Write the data. */
  72638. - result = write(fd, buf, count);
  72639. - } else {
  72640. - /* Read the data. */
  72641. - result = read(fd, buf, count);
  72642. - }
  72643. -
  72644. - /* Now we have to restore the position. */
  72645. - save_errno = errno;
  72646. - if (lseek64 (fd, old_offset, SEEK_SET) == (off64_t) -1) {
  72647. - if (result == -1)
  72648. - __set_errno (save_errno);
  72649. - return -1;
  72650. - }
  72651. - __set_errno (save_errno);
  72652. - return result;
  72653. -}
  72654. -# endif /* __UCLIBC_HAS_LFS__ */
  72655. -#endif /* ! defined __NR_pread || ! defined __NR_pwrite */
  72656. -
  72657. -#ifndef __NR_pread
  72658. -ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset);
  72659. -ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
  72660. -{
  72661. - return(__fake_pread_write(fd, buf, count, offset, 0));
  72662. -}
  72663. -weak_alias(__libc_pread,pread)
  72664. -
  72665. -# ifdef __UCLIBC_HAS_LFS__
  72666. -ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset);
  72667. -ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
  72668. -{
  72669. - return(__fake_pread_write64(fd, buf, count, offset, 0));
  72670. -}
  72671. -weak_alias(__libc_pread64,pread64)
  72672. -# endif /* __UCLIBC_HAS_LFS__ */
  72673. -#endif /* ! __NR_pread */
  72674. -
  72675. -
  72676. -#ifndef __NR_pwrite
  72677. -ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset);
  72678. -ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
  72679. -{
  72680. - return(__fake_pread_write(fd, (void*)buf, count, offset, 1));
  72681. -}
  72682. -weak_alias(__libc_pwrite,pwrite)
  72683. -
  72684. -# ifdef __UCLIBC_HAS_LFS__
  72685. -ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset);
  72686. -ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
  72687. -{
  72688. - return(__fake_pread_write64(fd, (void*)buf, count, offset, 1));
  72689. -}
  72690. -weak_alias(__libc_pwrite64,pwrite64)
  72691. -# endif /* __UCLIBC_HAS_LFS__ */
  72692. -#endif /* ! __NR_pwrite */
  72693. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/setjmp.S uClibc-git/libc/sysdeps/linux/powerpc/setjmp.S
  72694. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  72695. +++ uClibc-git/libc/sysdeps/linux/powerpc/setjmp.S 2014-06-02 17:40:34.598715217 +0200
  72696. @@ -15,15 +15,12 @@
  72697. Lesser General Public License for more details.
  72698. You should have received a copy of the GNU Lesser General Public
  72699. - License along with the GNU C Library; if not, write to the Free
  72700. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72701. - 02111-1307 USA. */
  72702. + License along with the GNU C Library; if not, see
  72703. + <http://www.gnu.org/licenses/>. */
  72704. #include <features.h>
  72705. #include "ppc_asm.h"
  72706. -#define _ASM
  72707. -#define _SETJMP_H
  72708. -#include <bits/setjmp.h>
  72709. +#include <jmpbuf-offsets.h>
  72710. #if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
  72711. #define FP(x...) x
  72712. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/procfs.h uClibc-git/libc/sysdeps/linux/powerpc/sys/procfs.h
  72713. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  72714. +++ uClibc-git/libc/sysdeps/linux/powerpc/sys/procfs.h 2014-06-02 17:40:34.598715217 +0200
  72715. @@ -12,9 +12,8 @@
  72716. Lesser General Public License for more details.
  72717. You should have received a copy of the GNU Lesser General Public
  72718. - License along with the GNU C Library; if not, write to the Free
  72719. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72720. - 02111-1307 USA. */
  72721. + License along with the GNU C Library; if not, see
  72722. + <http://www.gnu.org/licenses/>. */
  72723. #ifndef _SYS_PROCFS_H
  72724. #define _SYS_PROCFS_H 1
  72725. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/ptrace.h uClibc-git/libc/sysdeps/linux/powerpc/sys/ptrace.h
  72726. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
  72727. +++ uClibc-git/libc/sysdeps/linux/powerpc/sys/ptrace.h 2014-06-02 17:40:34.598715217 +0200
  72728. @@ -13,9 +13,8 @@
  72729. Lesser General Public License for more details.
  72730. You should have received a copy of the GNU Lesser General Public
  72731. - License along with the GNU C Library; if not, write to the Free
  72732. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72733. - 02111-1307 USA. */
  72734. + License along with the GNU C Library; if not, see
  72735. + <http://www.gnu.org/licenses/>. */
  72736. #ifndef _SYS_PTRACE_H
  72737. #define _SYS_PTRACE_H 1
  72738. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/ucontext.h uClibc-git/libc/sysdeps/linux/powerpc/sys/ucontext.h
  72739. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  72740. +++ uClibc-git/libc/sysdeps/linux/powerpc/sys/ucontext.h 2014-06-02 17:40:34.598715217 +0200
  72741. @@ -12,9 +12,8 @@
  72742. Lesser General Public License for more details.
  72743. You should have received a copy of the GNU Lesser General Public
  72744. - License along with the GNU C Library; if not, write to the Free
  72745. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72746. - 02111-1307 USA. */
  72747. + License along with the GNU C Library; if not, see
  72748. + <http://www.gnu.org/licenses/>. */
  72749. #ifndef _SYS_UCONTEXT_H
  72750. #define _SYS_UCONTEXT_H 1
  72751. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/user.h uClibc-git/libc/sysdeps/linux/powerpc/sys/user.h
  72752. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/user.h 2012-05-15 09:20:09.000000000 +0200
  72753. +++ uClibc-git/libc/sysdeps/linux/powerpc/sys/user.h 2014-06-02 17:40:34.598715217 +0200
  72754. @@ -12,9 +12,8 @@
  72755. Lesser General Public License for more details.
  72756. You should have received a copy of the GNU Lesser General Public
  72757. - License along with the GNU C Library; if not, write to the Free
  72758. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72759. - 02111-1307 USA. */
  72760. + License along with the GNU C Library; if not, see
  72761. + <http://www.gnu.org/licenses/>. */
  72762. #ifndef _SYS_USER_H
  72763. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/syscall.S uClibc-git/libc/sysdeps/linux/powerpc/syscall.S
  72764. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/syscall.S 2012-05-15 09:20:09.000000000 +0200
  72765. +++ uClibc-git/libc/sysdeps/linux/powerpc/syscall.S 2014-06-02 17:40:34.598715217 +0200
  72766. @@ -12,9 +12,8 @@
  72767. Lesser General Public License for more details.
  72768. You should have received a copy of the GNU Lesser General Public
  72769. - License along with the GNU C Library; if not, write to the Free
  72770. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72771. - 02111-1307 USA. */
  72772. + License along with the GNU C Library; if not, see
  72773. + <http://www.gnu.org/licenses/>. */
  72774. #include <features.h>
  72775. @@ -30,6 +29,7 @@
  72776. mr 5,6
  72777. mr 6,7
  72778. mr 7,8
  72779. + mr 8,9
  72780. sc
  72781. bnslr;
  72782. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sysdep.h uClibc-git/libc/sysdeps/linux/powerpc/sysdep.h
  72783. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  72784. +++ uClibc-git/libc/sysdeps/linux/powerpc/sysdep.h 2014-06-02 17:40:34.598715217 +0200
  72785. @@ -12,9 +12,8 @@
  72786. Lesser General Public License for more details.
  72787. You should have received a copy of the GNU Lesser General Public
  72788. - License along with the GNU C Library; if not, write to the Free
  72789. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72790. - 02111-1307 USA. */
  72791. + License along with the GNU C Library; if not, see
  72792. + <http://www.gnu.org/licenses/>. */
  72793. #include <common/sysdep.h>
  72794. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/vfork.S uClibc-git/libc/sysdeps/linux/powerpc/vfork.S
  72795. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/vfork.S 2012-05-15 09:20:09.000000000 +0200
  72796. +++ uClibc-git/libc/sysdeps/linux/powerpc/vfork.S 2014-06-02 17:40:34.598715217 +0200
  72797. @@ -27,4 +27,4 @@
  72798. .size __vfork,.-__vfork
  72799. weak_alias(__vfork,vfork)
  72800. -libc_hidden_weak(vfork)
  72801. +libc_hidden_def(vfork)
  72802. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/README uClibc-git/libc/sysdeps/linux/README
  72803. --- uClibc-0.9.33.2/libc/sysdeps/linux/README 2012-05-15 09:20:09.000000000 +0200
  72804. +++ uClibc-git/libc/sysdeps/linux/README 2014-06-02 17:40:34.258713336 +0200
  72805. @@ -4,4 +4,7 @@
  72806. to add that support.
  72807. All stuff that is not at all dependent on a particular Linux architecture
  72808. -goes in the 'common' directory.
  72809. +goes in the 'common' directory. However, for new architectures which are
  72810. +using the generic syscalls in the Linux Kernel, the 'common-generic'
  72811. +directory should be used instead as they all use identical interfaces for
  72812. +the system calls.
  72813. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/atomic.h uClibc-git/libc/sysdeps/linux/sh/bits/atomic.h
  72814. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  72815. +++ uClibc-git/libc/sysdeps/linux/sh/bits/atomic.h 2014-06-02 17:40:34.606715261 +0200
  72816. @@ -13,9 +13,8 @@
  72817. Lesser General Public License for more details.
  72818. You should have received a copy of the GNU Lesser General Public
  72819. - License along with the GNU C Library; if not, write to the Free
  72820. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72821. - 02111-1307 USA. */
  72822. + License along with the GNU C Library; if not, see
  72823. + <http://www.gnu.org/licenses/>. */
  72824. #include <stdint.h>
  72825. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/fcntl.h uClibc-git/libc/sysdeps/linux/sh/bits/fcntl.h
  72826. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  72827. +++ uClibc-git/libc/sysdeps/linux/sh/bits/fcntl.h 2014-06-02 17:40:34.606715261 +0200
  72828. @@ -14,9 +14,8 @@
  72829. Lesser General Public License for more details.
  72830. You should have received a copy of the GNU Lesser General Public
  72831. - License along with the GNU C Library; if not, write to the Free
  72832. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72833. - 02111-1307 USA. */
  72834. + License along with the GNU C Library; if not, see
  72835. + <http://www.gnu.org/licenses/>. */
  72836. #ifndef _FCNTL_H
  72837. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  72838. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/fenv.h uClibc-git/libc/sysdeps/linux/sh/bits/fenv.h
  72839. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  72840. +++ uClibc-git/libc/sysdeps/linux/sh/bits/fenv.h 2014-06-02 17:40:34.606715261 +0200
  72841. @@ -12,9 +12,8 @@
  72842. Lesser General Public License for more details.
  72843. You should have received a copy of the GNU Lesser General Public
  72844. - License along with the GNU C Library; if not, write to the Free
  72845. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72846. - 02111-1307 USA. */
  72847. + License along with the GNU C Library; if not, see
  72848. + <http://www.gnu.org/licenses/>. */
  72849. #ifndef _FENV_H
  72850. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  72851. 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
  72852. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/huge_val.h 2012-05-15 09:20:09.000000000 +0200
  72853. +++ uClibc-git/libc/sysdeps/linux/sh/bits/huge_val.h 2014-06-02 17:40:34.606715261 +0200
  72854. @@ -16,9 +16,8 @@
  72855. Lesser General Public License for more details.
  72856. You should have received a copy of the GNU Lesser General Public
  72857. - License along with the GNU C Library; if not, write to the Free
  72858. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72859. - 02111-1307 USA. */
  72860. + License along with the GNU C Library; if not, see
  72861. + <http://www.gnu.org/licenses/>. */
  72862. #ifndef _MATH_H
  72863. # error "Never use <bits/huge_val.h> directly; include <math.h> instead."
  72864. 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
  72865. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  72866. +++ uClibc-git/libc/sysdeps/linux/sh/bits/kernel_types.h 2014-06-02 17:40:34.606715261 +0200
  72867. @@ -32,6 +32,8 @@
  72868. typedef unsigned short __kernel_old_uid_t;
  72869. typedef unsigned short __kernel_old_gid_t;
  72870. typedef __kernel_dev_t __kernel_old_dev_t;
  72871. +typedef long __kernel_long_t;
  72872. +typedef unsigned long __kernel_ulong_t;
  72873. typedef long long __kernel_loff_t;
  72874. typedef struct {
  72875. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/mathdef.h uClibc-git/libc/sysdeps/linux/sh/bits/mathdef.h
  72876. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  72877. +++ uClibc-git/libc/sysdeps/linux/sh/bits/mathdef.h 2014-06-02 17:40:34.606715261 +0200
  72878. @@ -12,9 +12,8 @@
  72879. Lesser General Public License for more details.
  72880. You should have received a copy of the GNU Lesser General Public
  72881. - License along with the GNU C Library; if not, write to the Free
  72882. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72883. - 02111-1307 USA. */
  72884. + License along with the GNU C Library; if not, see
  72885. + <http://www.gnu.org/licenses/>. */
  72886. #if !defined _MATH_H && !defined _COMPLEX_H
  72887. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  72888. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/setjmp.h uClibc-git/libc/sysdeps/linux/sh/bits/setjmp.h
  72889. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  72890. +++ uClibc-git/libc/sysdeps/linux/sh/bits/setjmp.h 2014-06-02 17:40:34.606715261 +0200
  72891. @@ -1,4 +1,4 @@
  72892. -/* Copyright (C) 1999, 2000, 2003, 2005 Free Software Foundation, Inc.
  72893. +/* Copyright (C) 1999,2000,2003,2005,2006 Free Software Foundation, Inc.
  72894. This file is part of the GNU C Library.
  72895. The GNU C Library is free software; you can redistribute it and/or
  72896. @@ -12,19 +12,17 @@
  72897. Lesser General Public License for more details.
  72898. You should have received a copy of the GNU Lesser General Public
  72899. - License along with the GNU C Library; if not, write to the Free
  72900. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72901. - 02111-1307 USA. */
  72902. + License along with the GNU C Library; if not, see
  72903. + <http://www.gnu.org/licenses/>. */
  72904. /* Define the machine-dependent type `jmp_buf'. SH version. */
  72905. #ifndef _BITS_SETJMP_H
  72906. -#define _BITS_SETJMP_H 1
  72907. +#define _BITS_SETJMP_H 1
  72908. #if !defined _SETJMP_H && !defined _PTHREAD_H
  72909. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  72910. #endif
  72911. -#ifndef _ASM
  72912. typedef struct
  72913. {
  72914. /* Callee-saved registers r8 through r15. */
  72915. @@ -42,15 +40,5 @@
  72916. /* Callee-saved floating point registers fr12 through fr15. */
  72917. int __fpregs[4];
  72918. } __jmp_buf[1];
  72919. -#endif
  72920. -
  72921. -#if defined __USE_MISC || defined _ASM
  72922. -# define JB_SIZE (4 * 15)
  72923. -#endif
  72924. -
  72925. -/* Test if longjmp to JMPBUF would unwind the frame
  72926. - containing a local variable at ADDRESS. */
  72927. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  72928. - ((void *) (address) < (void *) (jmpbuf)[0].__regs[7])
  72929. -#endif /* bits/setjmp.h */
  72930. +#endif /* bits/setjmp.h */
  72931. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/shm.h uClibc-git/libc/sysdeps/linux/sh/bits/shm.h
  72932. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  72933. +++ uClibc-git/libc/sysdeps/linux/sh/bits/shm.h 2014-06-02 17:40:34.606715261 +0200
  72934. @@ -12,9 +12,8 @@
  72935. Lesser General Public License for more details.
  72936. You should have received a copy of the GNU Lesser General Public
  72937. - License along with the GNU C Library; if not, write to the Free
  72938. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72939. - 02111-1307 USA. */
  72940. + License along with the GNU C Library; if not, see
  72941. + <http://www.gnu.org/licenses/>. */
  72942. #ifndef _SYS_SHM_H
  72943. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  72944. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/sh/bits/sigcontextinfo.h
  72945. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  72946. +++ uClibc-git/libc/sysdeps/linux/sh/bits/sigcontextinfo.h 2014-06-02 17:40:34.606715261 +0200
  72947. @@ -13,9 +13,8 @@
  72948. Lesser General Public License for more details.
  72949. You should have received a copy of the GNU Lesser General Public
  72950. - License along with the GNU C Library; if not, write to the Free
  72951. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72952. - 02111-1307 USA. */
  72953. + License along with the GNU C Library; if not, see
  72954. + <http://www.gnu.org/licenses/>. */
  72955. #define SIGCONTEXT int _a2, int _a3, int _a4, struct sigcontext
  72956. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/sh/bits/stackinfo.h
  72957. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  72958. +++ uClibc-git/libc/sysdeps/linux/sh/bits/stackinfo.h 2014-06-02 17:40:34.606715261 +0200
  72959. @@ -12,9 +12,8 @@
  72960. Lesser General Public License for more details.
  72961. You should have received a copy of the GNU Lesser General Public
  72962. - License along with the GNU C Library; if not, write to the Free
  72963. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72964. - 02111-1307 USA. */
  72965. + License along with the GNU C Library; if not, see
  72966. + <http://www.gnu.org/licenses/>. */
  72967. /* This file contains a bit of information about the stack allocation
  72968. of the processor. */
  72969. 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
  72970. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  72971. +++ uClibc-git/libc/sysdeps/linux/sh/bits/uClibc_arch_features.h 2014-06-02 17:40:34.606715261 +0200
  72972. @@ -15,8 +15,8 @@
  72973. /* can your target use syscall6() for mmap ? */
  72974. #define __UCLIBC_MMAP_HAS_6_ARGS__
  72975. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  72976. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  72977. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  72978. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  72979. /* does your target have a broken create_module() ? */
  72980. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  72981. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/wordsize.h uClibc-git/libc/sysdeps/linux/sh/bits/wordsize.h
  72982. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  72983. +++ uClibc-git/libc/sysdeps/linux/sh/bits/wordsize.h 2014-06-02 17:40:34.606715261 +0200
  72984. @@ -12,8 +12,7 @@
  72985. Lesser General Public License for more details.
  72986. You should have received a copy of the GNU Lesser General Public
  72987. - License along with the GNU C Library; if not, write to the Free
  72988. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72989. - 02111-1307 USA. */
  72990. + License along with the GNU C Library; if not, see
  72991. + <http://www.gnu.org/licenses/>. */
  72992. #define __WORDSIZE 32
  72993. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/cacheflush.c uClibc-git/libc/sysdeps/linux/sh/cacheflush.c
  72994. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/cacheflush.c 2012-05-15 09:20:09.000000000 +0200
  72995. +++ uClibc-git/libc/sysdeps/linux/sh/cacheflush.c 2014-06-02 17:40:34.606715261 +0200
  72996. @@ -6,10 +6,9 @@
  72997. *
  72998. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  72999. */
  73000. -#include <errno.h>
  73001. -#include <unistd.h>
  73002. #include <sys/syscall.h>
  73003. #ifdef __NR_cacheflush
  73004. -_syscall3(int, cacheflush, char *, addr, int, nbytes, int, op)
  73005. +int cacheflush(void *addr, const int nbytes, int op);
  73006. +_syscall3(int, cacheflush, void *, addr, const int, nbytes, const int, op)
  73007. #endif
  73008. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/clone.S uClibc-git/libc/sysdeps/linux/sh/clone.S
  73009. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/clone.S 2012-05-15 09:20:09.000000000 +0200
  73010. +++ uClibc-git/libc/sysdeps/linux/sh/clone.S 2014-06-02 17:40:34.606715261 +0200
  73011. @@ -12,9 +12,8 @@
  73012. Lesser General Public License for more details.
  73013. You should have received a copy of the GNU Lesser General Public
  73014. - License along with the GNU C Library; if not, write to the Free
  73015. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73016. - 02111-1307 USA. */
  73017. + License along with the GNU C Library; if not, see
  73018. + <http://www.gnu.org/licenses/>. */
  73019. /* clone() is even more special than fork() as it mucks with stacks
  73020. and invokes a function in the right context after its all over. */
  73021. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/crt1.S uClibc-git/libc/sysdeps/linux/sh/crt1.S
  73022. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/crt1.S 2012-05-15 09:20:09.000000000 +0200
  73023. +++ uClibc-git/libc/sysdeps/linux/sh/crt1.S 2014-06-02 17:40:34.610715283 +0200
  73024. @@ -14,8 +14,7 @@
  73025. details.
  73026. You should have received a copy of the GNU Library General Public License
  73027. - along with this program; if not, write to the Free Software Foundation, Inc.,
  73028. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  73029. + along with this program; if not, see <http://www.gnu.org/licenses/>.
  73030. */
  73031. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/___fpscr_values.S uClibc-git/libc/sysdeps/linux/sh/___fpscr_values.S
  73032. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/___fpscr_values.S 2012-05-15 09:20:09.000000000 +0200
  73033. +++ uClibc-git/libc/sysdeps/linux/sh/___fpscr_values.S 2014-06-02 17:40:34.602715239 +0200
  73034. @@ -14,8 +14,7 @@
  73035. details.
  73036. You should have received a copy of the GNU Library General Public License
  73037. - along with this program; if not, write to the Free Software Foundation, Inc.,
  73038. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  73039. + along with this program; if not, see <http://www.gnu.org/licenses/>.
  73040. */
  73041. #include <features.h>
  73042. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/fpu_control.h uClibc-git/libc/sysdeps/linux/sh/fpu_control.h
  73043. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  73044. +++ uClibc-git/libc/sysdeps/linux/sh/fpu_control.h 2014-06-02 17:40:34.610715283 +0200
  73045. @@ -13,9 +13,8 @@
  73046. Lesser General Public License for more details.
  73047. You should have received a copy of the GNU Lesser General Public
  73048. - License along with the GNU C Library; if not, write to the Free
  73049. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73050. - 02111-1307 USA. */
  73051. + License along with the GNU C Library; if not, see
  73052. + <http://www.gnu.org/licenses/>. */
  73053. #ifndef _FPU_CONTROL_H
  73054. #define _FPU_CONTROL_H
  73055. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/sh/jmpbuf-offsets.h
  73056. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  73057. +++ uClibc-git/libc/sysdeps/linux/sh/jmpbuf-offsets.h 2014-06-02 17:40:34.610715283 +0200
  73058. @@ -0,0 +1,19 @@
  73059. +/* Private macros for accessing __jmp_buf contents. SH version.
  73060. + Copyright (C) 2006 Free Software Foundation, Inc.
  73061. + This file is part of the GNU C Library.
  73062. +
  73063. + The GNU C Library is free software; you can redistribute it and/or
  73064. + modify it under the terms of the GNU Lesser General Public
  73065. + License as published by the Free Software Foundation; either
  73066. + version 2.1 of the License, or (at your option) any later version.
  73067. +
  73068. + The GNU C Library is distributed in the hope that it will be useful,
  73069. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  73070. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  73071. + Lesser General Public License for more details.
  73072. +
  73073. + You should have received a copy of the GNU Lesser General Public
  73074. + License along with the GNU C Library; if not, see
  73075. + <http://www.gnu.org/licenses/>. */
  73076. +
  73077. +#define JB_SIZE (4 * 15)
  73078. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/sh/jmpbuf-unwind.h
  73079. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  73080. +++ uClibc-git/libc/sysdeps/linux/sh/jmpbuf-unwind.h 2014-06-02 17:40:34.610715283 +0200
  73081. @@ -0,0 +1,22 @@
  73082. +/*
  73083. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  73084. + *
  73085. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  73086. + */
  73087. +#include <setjmp.h>
  73088. +
  73089. +/* Test if longjmp to JMPBUF would unwind the frame
  73090. + containing a local variable at ADDRESS. */
  73091. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  73092. + ((void *) (address) < (void *) (jmpbuf)[0].__regs[7])
  73093. +
  73094. +#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  73095. +#include <stdint.h>
  73096. +#include <unwind.h>
  73097. +
  73098. +#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
  73099. + _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
  73100. +
  73101. +#define _JMPBUF_UNWINDS_ADJ(jmpbuf, address, adj) \
  73102. + ((uintptr_t) (address) - (adj) < (uintptr_t) (jmpbuf)[0].__regs[7] - (adj))
  73103. +#endif
  73104. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/__longjmp.S uClibc-git/libc/sysdeps/linux/sh/__longjmp.S
  73105. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  73106. +++ uClibc-git/libc/sysdeps/linux/sh/__longjmp.S 2014-06-02 17:40:34.602715239 +0200
  73107. @@ -14,12 +14,8 @@
  73108. You should have received a copy of the GNU Library General Public
  73109. License along with the GNU C Library; see the file COPYING.LIB. If not,
  73110. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  73111. - Boston, MA 02111-1307, USA. */
  73112. + see <http://www.gnu.org/licenses/>. */
  73113. -#define _SETJMP_H
  73114. -#define _ASM
  73115. -#include <bits/setjmp.h>
  73116. #include <features.h>
  73117. /* __longjmp(jmpbuf, val) */
  73118. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/Makefile.arch uClibc-git/libc/sysdeps/linux/sh/Makefile.arch
  73119. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  73120. +++ uClibc-git/libc/sysdeps/linux/sh/Makefile.arch 2014-06-02 17:40:34.602715239 +0200
  73121. @@ -6,7 +6,10 @@
  73122. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  73123. #
  73124. -CSRC := \
  73125. - mmap.c pipe.c __init_brk.c brk.c sbrk.c pread_write.c cacheflush.c
  73126. +CSRC-y := \
  73127. + pipe.c __init_brk.c brk.c sbrk.c pread_write.c
  73128. -SSRC := setjmp.S __longjmp.S ___fpscr_values.S vfork.S clone.S
  73129. +SSRC-y := setjmp.S __longjmp.S ___fpscr_values.S
  73130. +
  73131. +CSRC-$(UCLIBC_LINUX_SPECIFIC) += cacheflush.c
  73132. +SSRC-$(if $(UCLIBC_HAS_THREADS_NATIVE),,y) += clone.S vfork.S
  73133. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/mmap.c uClibc-git/libc/sysdeps/linux/sh/mmap.c
  73134. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/mmap.c 2012-05-15 09:20:09.000000000 +0200
  73135. +++ uClibc-git/libc/sysdeps/linux/sh/mmap.c 1970-01-01 01:00:00.000000000 +0100
  73136. @@ -1,34 +0,0 @@
  73137. -/* Copyright (C) 2001 Hewlett-Packard
  73138. -
  73139. - This program is free software; you can redistribute it and/or modify it under
  73140. - the terms of the GNU Library General Public License as published by the Free
  73141. - Software Foundation; either version 2 of the License, or (at your option) any
  73142. - later version.
  73143. -
  73144. - This program is distributed in the hope that it will be useful, but WITHOUT
  73145. - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  73146. - FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more
  73147. - details.
  73148. -
  73149. - You should have received a copy of the GNU Library General Public License
  73150. - along with this program; if not, write to the Free Software Foundation, Inc.,
  73151. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  73152. -
  73153. - Derived in part from the Linux-8086 C library, the GNU C Library, and several
  73154. - other sundry sources. Files within this library are copyright by their
  73155. - respective copyright holders.
  73156. -*/
  73157. -
  73158. -#include <unistd.h>
  73159. -#include <errno.h>
  73160. -#include <sys/mman.h>
  73161. -
  73162. -
  73163. -#ifdef HIOS
  73164. -# define __SH_SYSCALL6_TRAPA 0x2E
  73165. -#endif
  73166. -
  73167. -#include <sys/syscall.h>
  73168. -
  73169. -_syscall6(__ptr_t, mmap, __ptr_t, addr, size_t, len, int, prot, int, flags, int, fd, __off_t, offset)
  73170. -libc_hidden_def(mmap)
  73171. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/pread_write.c uClibc-git/libc/sysdeps/linux/sh/pread_write.c
  73172. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/pread_write.c 2012-05-15 09:20:09.000000000 +0200
  73173. +++ uClibc-git/libc/sysdeps/linux/sh/pread_write.c 2014-06-02 17:40:34.610715283 +0200
  73174. @@ -4,122 +4,8 @@
  73175. *
  73176. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  73177. */
  73178. -/*
  73179. - * Based in part on the files
  73180. - * ./sysdeps/unix/sysv/linux/pwrite.c,
  73181. - * ./sysdeps/unix/sysv/linux/pread.c,
  73182. - * sysdeps/posix/pread.c
  73183. - * sysdeps/posix/pwrite.c
  73184. - * from GNU libc 2.2.5, but reworked considerably...
  73185. - */
  73186. -
  73187. -#include <sys/syscall.h>
  73188. -#include <unistd.h>
  73189. -#include <stdint.h>
  73190. -#include <endian.h>
  73191. -
  73192. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  73193. -#include <sysdep-cancel.h>
  73194. -#else
  73195. -#define SINGLE_THREAD_P 1
  73196. -#endif
  73197. -
  73198. -
  73199. -#ifdef __NR_pread64 /* Newer kernels renamed but it's the same. */
  73200. -# ifdef __NR_pread
  73201. -# error "__NR_pread and __NR_pread64 both defined???"
  73202. -# endif
  73203. -# define __NR_pread __NR_pread64
  73204. -#endif
  73205. -
  73206. -#ifdef __NR_pread
  73207. -extern __typeof(pread) __libc_pread;
  73208. -# define __NR___syscall_pread __NR_pread
  73209. -static __inline__ _syscall6(ssize_t, __syscall_pread, int, fd, void *, buf,
  73210. - size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
  73211. -
  73212. -ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
  73213. -{
  73214. - if (SINGLE_THREAD_P)
  73215. - return(__syscall_pread(fd,buf,count,0,__LONG_LONG_PAIR(offset >> 31,offset)));
  73216. -
  73217. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  73218. - int oldtype = LIBC_CANCEL_ASYNC ();
  73219. - ssize_t result = __syscall_pread(fd,buf,count,0,__LONG_LONG_PAIR(offset >> 31,offset));
  73220. - LIBC_CANCEL_RESET (oldtype);
  73221. - return result;
  73222. -#endif
  73223. -}
  73224. -weak_alias(__libc_pread,pread)
  73225. -
  73226. -# ifdef __UCLIBC_HAS_LFS__
  73227. -extern __typeof(pread64) __libc_pread64;
  73228. -ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
  73229. -{
  73230. - uint32_t low = offset & 0xffffffff;
  73231. - uint32_t high = offset >> 32;
  73232. -
  73233. - if (SINGLE_THREAD_P)
  73234. - return __syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR (high, low));
  73235. -
  73236. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  73237. - int oldtype = LIBC_CANCEL_ASYNC ();
  73238. - ssize_t result = __syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR (high, low));
  73239. - LIBC_CANCEL_RESET (oldtype);
  73240. - return result;
  73241. -#endif
  73242. -}
  73243. -weak_alias(__libc_pread64,pread64)
  73244. -# endif /* __UCLIBC_HAS_LFS__ */
  73245. -#endif /* __NR_pread */
  73246. -
  73247. -/**********************************************************************/
  73248. -
  73249. -#ifdef __NR_pwrite64 /* Newer kernels renamed but it's the same. */
  73250. -# ifdef __NR_pwrite
  73251. -# error "__NR_pwrite and __NR_pwrite64 both defined???"
  73252. -# endif
  73253. -# define __NR_pwrite __NR_pwrite64
  73254. -#endif
  73255. -
  73256. -#ifdef __NR_pwrite
  73257. -extern __typeof(pwrite) __libc_pwrite;
  73258. -# define __NR___syscall_pwrite __NR_pwrite
  73259. -static __inline__ _syscall6(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
  73260. - size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
  73261. -
  73262. -ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
  73263. -{
  73264. - if (SINGLE_THREAD_P)
  73265. - return __syscall_pwrite(fd,buf,count,0,__LONG_LONG_PAIR(offset >> 31,offset));
  73266. -
  73267. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  73268. - int oldtype = LIBC_CANCEL_ASYNC ();
  73269. - ssize_t result = __syscall_pwrite(fd,buf,count,0,__LONG_LONG_PAIR(offset >> 31,offset));
  73270. - LIBC_CANCEL_RESET (oldtype);
  73271. - return result;
  73272. -#endif
  73273. -
  73274. -}
  73275. -weak_alias(__libc_pwrite,pwrite)
  73276. -
  73277. -# ifdef __UCLIBC_HAS_LFS__
  73278. -extern __typeof(pwrite64) __libc_pwrite64;
  73279. -ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
  73280. -{
  73281. - uint32_t low = offset & 0xffffffff;
  73282. - uint32_t high = offset >> 32;
  73283. -
  73284. - if (SINGLE_THREAD_P)
  73285. - return __syscall_pwrite(fd, buf, count, 0, __LONG_LONG_PAIR (high, low));
  73286. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  73287. - int oldtype = LIBC_CANCEL_ASYNC ();
  73288. - ssize_t result = __syscall_pwrite(fd, buf, count, 0, __LONG_LONG_PAIR (high, low));
  73289. - LIBC_CANCEL_RESET (oldtype);
  73290. - return result;
  73291. -#endif
  73292. -}
  73293. -weak_alias(__libc_pwrite64,pwrite64)
  73294. -# endif /* __UCLIBC_HAS_LFS__ */
  73295. -#endif /* __NR_pwrite */
  73296. +/* SuperH doesn't have this alignment issue. It just decided to copy
  73297. + * the syscall interface from another arch for no good reason. */
  73298. +#define __UCLIBC_SYSCALL_ALIGN_64BIT__
  73299. +#include "../common/pread_write.c"
  73300. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/setjmp.S uClibc-git/libc/sysdeps/linux/sh/setjmp.S
  73301. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  73302. +++ uClibc-git/libc/sysdeps/linux/sh/setjmp.S 2014-06-02 17:40:34.610715283 +0200
  73303. @@ -14,13 +14,10 @@
  73304. You should have received a copy of the GNU Library General Public
  73305. License along with the GNU C Library; see the file COPYING.LIB. If not,
  73306. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  73307. - Boston, MA 02111-1307, USA. */
  73308. + see <http://www.gnu.org/licenses/>. */
  73309. #include <features.h>
  73310. -#define _SETJMP_H
  73311. -#define _ASM
  73312. -#include <bits/setjmp.h>
  73313. +#include <jmpbuf-offsets.h>
  73314. .text
  73315. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/io.h uClibc-git/libc/sysdeps/linux/sh/sys/io.h
  73316. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/io.h 2012-05-15 09:20:09.000000000 +0200
  73317. +++ uClibc-git/libc/sysdeps/linux/sh/sys/io.h 2014-06-02 17:40:34.610715283 +0200
  73318. @@ -12,9 +12,8 @@
  73319. Lesser General Public License for more details.
  73320. You should have received a copy of the GNU Lesser General Public
  73321. - License along with the GNU C Library; if not, write to the Free
  73322. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73323. - 02111-1307 USA. */
  73324. + License along with the GNU C Library; if not, see
  73325. + <http://www.gnu.org/licenses/>. */
  73326. #ifndef _SYS_IO_H
  73327. @@ -23,17 +22,18 @@
  73328. __BEGIN_DECLS
  73329. +#if defined __UCLIBC_LINUX_SPECIFIC__
  73330. /* If TURN_ON is TRUE, request for permission to do direct i/o on the
  73331. port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
  73332. permission off for that range. This call requires root privileges. */
  73333. extern int ioperm (unsigned long int __from, unsigned long int __num,
  73334. int __turn_on) __THROW;
  73335. -libc_hidden_proto(ioperm)
  73336. /* Set the I/O privilege level to LEVEL. If LEVEL is nonzero,
  73337. permission to access any I/O port is granted. This call requires
  73338. root privileges. */
  73339. extern int iopl (int __level) __THROW;
  73340. +#endif /* __UCLIBC_LINUX_SPECIFIC__ */
  73341. /* The functions that actually perform reads and writes. */
  73342. extern unsigned char inb (unsigned long int port) __THROW;
  73343. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/procfs.h uClibc-git/libc/sysdeps/linux/sh/sys/procfs.h
  73344. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  73345. +++ uClibc-git/libc/sysdeps/linux/sh/sys/procfs.h 2014-06-02 17:40:34.610715283 +0200
  73346. @@ -12,9 +12,8 @@
  73347. Lesser General Public License for more details.
  73348. You should have received a copy of the GNU Lesser General Public
  73349. - License along with the GNU C Library; if not, write to the Free
  73350. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73351. - 02111-1307 USA. */
  73352. + License along with the GNU C Library; if not, see
  73353. + <http://www.gnu.org/licenses/>. */
  73354. #ifndef _SYS_PROCFS_H
  73355. #define _SYS_PROCFS_H 1
  73356. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/ucontext.h uClibc-git/libc/sysdeps/linux/sh/sys/ucontext.h
  73357. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  73358. +++ uClibc-git/libc/sysdeps/linux/sh/sys/ucontext.h 2014-06-02 17:40:34.610715283 +0200
  73359. @@ -12,9 +12,8 @@
  73360. Lesser General Public License for more details.
  73361. You should have received a copy of the GNU Lesser General Public
  73362. - License along with the GNU C Library; if not, write to the Free
  73363. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73364. - 02111-1307 USA. */
  73365. + License along with the GNU C Library; if not, see
  73366. + <http://www.gnu.org/licenses/>. */
  73367. /* Where is System V/SH ABI? */
  73368. @@ -32,10 +31,10 @@
  73369. typedef int greg_t;
  73370. /* Number of general registers. */
  73371. -#define NFPREG 16
  73372. +#define NGREG 16
  73373. /* Container for all general registers. */
  73374. -typedef greg_t gregset_t[NFPREG];
  73375. +typedef greg_t gregset_t[NGREG];
  73376. #ifdef __USE_GNU
  73377. /* Number of each register is the `gregset_t' array. */
  73378. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/user.h uClibc-git/libc/sysdeps/linux/sh/sys/user.h
  73379. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/user.h 2012-05-15 09:20:09.000000000 +0200
  73380. +++ uClibc-git/libc/sysdeps/linux/sh/sys/user.h 2014-06-02 17:40:34.610715283 +0200
  73381. @@ -12,9 +12,8 @@
  73382. Lesser General Public License for more details.
  73383. You should have received a copy of the GNU Lesser General Public
  73384. - License along with the GNU C Library; if not, write to the Free
  73385. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73386. - 02111-1307 USA. */
  73387. + License along with the GNU C Library; if not, see
  73388. + <http://www.gnu.org/licenses/>. */
  73389. #ifndef _SYS_USER_H
  73390. #define _SYS_USER_H 1
  73391. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/sysdep.h uClibc-git/libc/sysdeps/linux/sh/sysdep.h
  73392. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  73393. +++ uClibc-git/libc/sysdeps/linux/sh/sysdep.h 2014-06-02 17:40:34.610715283 +0200
  73394. @@ -13,14 +13,12 @@
  73395. Lesser General Public License for more details.
  73396. You should have received a copy of the GNU Lesser General Public
  73397. - License along with the GNU C Library; if not, write to the Free
  73398. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73399. - 02111-1307 USA. */
  73400. + License along with the GNU C Library; if not, see
  73401. + <http://www.gnu.org/licenses/>. */
  73402. #include <common/sysdep.h>
  73403. #include <features.h>
  73404. -#include <libc-internal.h>
  73405. #ifdef __ASSEMBLER__
  73406. @@ -143,8 +141,6 @@
  73407. #define PSEUDO_END_ERRVAL(name) \
  73408. END (name)
  73409. -#define ret_ERRVAL ret
  73410. -
  73411. #ifndef __PIC__
  73412. # define SYSCALL_ERROR_HANDLER \
  73413. mov.l 0f,r1; \
  73414. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/vfork.S uClibc-git/libc/sysdeps/linux/sh/vfork.S
  73415. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/vfork.S 2012-05-15 09:20:09.000000000 +0200
  73416. +++ uClibc-git/libc/sysdeps/linux/sh/vfork.S 2014-06-02 17:40:34.610715283 +0200
  73417. @@ -12,19 +12,16 @@
  73418. details.
  73419. You should have received a copy of the GNU Library General Public License
  73420. - along with this program; if not, write to the Free Software Foundation, Inc.,
  73421. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  73422. + along with this program; if not, see <http://www.gnu.org/licenses/>.
  73423. Derived in part from the Linux-8086 C library, the GNU C Library, and several
  73424. other sundry sources. Files within this library are copyright by their
  73425. respective copyright holders.
  73426. */
  73427. -#include <features.h>
  73428. #include <sys/syscall.h>
  73429. #define _ERRNO_H
  73430. #include <bits/errno.h>
  73431. -#include <bits/sysnum.h>
  73432. /* Clone the calling process, but without copying the whole address space.
  73433. The calling process is suspended until the new process exits or is
  73434. @@ -109,6 +106,6 @@
  73435. .size __vfork, .-__vfork
  73436. weak_alias(__vfork,vfork)
  73437. -libc_hidden_weak(vfork)
  73438. +libc_hidden_def(vfork)
  73439. #include "syscall_error.S"
  73440. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/fcntl.h uClibc-git/libc/sysdeps/linux/sh64/bits/fcntl.h
  73441. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  73442. +++ uClibc-git/libc/sysdeps/linux/sh64/bits/fcntl.h 2014-06-02 17:40:34.610715283 +0200
  73443. @@ -13,9 +13,8 @@
  73444. Lesser General Public License for more details.
  73445. You should have received a copy of the GNU Lesser General Public
  73446. - License along with the GNU C Library; if not, write to the Free
  73447. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73448. - 02111-1307 USA. */
  73449. + License along with the GNU C Library; if not, see
  73450. + <http://www.gnu.org/licenses/>. */
  73451. #ifndef _FCNTL_H
  73452. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  73453. 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
  73454. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  73455. +++ uClibc-git/libc/sysdeps/linux/sh64/bits/kernel_types.h 2014-06-02 17:40:34.610715283 +0200
  73456. @@ -43,6 +43,8 @@
  73457. typedef unsigned short __kernel_old_uid_t;
  73458. typedef unsigned short __kernel_old_gid_t;
  73459. typedef __kernel_dev_t __kernel_old_dev_t;
  73460. +typedef long __kernel_long_t;
  73461. +typedef unsigned long __kernel_ulong_t;
  73462. typedef long long __kernel_loff_t;
  73463. typedef struct {
  73464. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/setjmp.h uClibc-git/libc/sysdeps/linux/sh64/bits/setjmp.h
  73465. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  73466. +++ uClibc-git/libc/sysdeps/linux/sh64/bits/setjmp.h 2014-06-02 17:40:34.610715283 +0200
  73467. @@ -12,9 +12,8 @@
  73468. Lesser General Public License for more details.
  73469. You should have received a copy of the GNU Lesser General Public
  73470. - License along with the GNU C Library; if not, write to the Free
  73471. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73472. - 02111-1307 USA. */
  73473. + License along with the GNU C Library; if not, see
  73474. + <http://www.gnu.org/licenses/>. */
  73475. /* Define the machine-dependent type `jmp_buf'. SH-5 version. */
  73476. #ifndef _BITS_SETJMP_H
  73477. @@ -33,8 +32,6 @@
  73478. #define __SETJMP_TRG(x) (__SETJMP_NUM_INT+__SETJMP_NUM_DBL+(x))
  73479. #define __SETJMP_LR (__SETJMP_NUM_INT+__SETJMP_NUM_DBL+__SETJMP_NUM_TRG)
  73480. -
  73481. -#ifndef _ASM
  73482. typedef struct
  73483. {
  73484. /* Callee-saved registers. */
  73485. @@ -45,6 +42,5 @@
  73486. unsigned long long __trgs[__SETJMP_NUM_TRG]; /* traget registers */
  73487. unsigned long long __lr; /* linkage register */
  73488. } __jmp_buf[1];
  73489. -#endif
  73490. #endif /* bits/setjmp.h */
  73491. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/shm.h uClibc-git/libc/sysdeps/linux/sh64/bits/shm.h
  73492. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  73493. +++ uClibc-git/libc/sysdeps/linux/sh64/bits/shm.h 2014-06-02 17:40:34.610715283 +0200
  73494. @@ -12,9 +12,8 @@
  73495. Lesser General Public License for more details.
  73496. You should have received a copy of the GNU Lesser General Public
  73497. - License along with the GNU C Library; if not, write to the Free
  73498. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73499. - 02111-1307 USA. */
  73500. + License along with the GNU C Library; if not, see
  73501. + <http://www.gnu.org/licenses/>. */
  73502. #ifndef _SYS_SHM_H
  73503. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  73504. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/sh64/bits/stackinfo.h
  73505. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  73506. +++ uClibc-git/libc/sysdeps/linux/sh64/bits/stackinfo.h 2014-06-02 17:40:34.610715283 +0200
  73507. @@ -12,9 +12,8 @@
  73508. Lesser General Public License for more details.
  73509. You should have received a copy of the GNU Lesser General Public
  73510. - License along with the GNU C Library; if not, write to the Free
  73511. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73512. - 02111-1307 USA. */
  73513. + License along with the GNU C Library; if not, see
  73514. + <http://www.gnu.org/licenses/>. */
  73515. /* This file contains a bit of information about the stack allocation
  73516. of the processor. */
  73517. 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
  73518. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  73519. +++ uClibc-git/libc/sysdeps/linux/sh64/bits/uClibc_arch_features.h 2014-06-02 17:40:34.610715283 +0200
  73520. @@ -11,8 +11,8 @@
  73521. /* can your target use syscall6() for mmap ? */
  73522. #undef __UCLIBC_MMAP_HAS_6_ARGS__
  73523. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  73524. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  73525. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  73526. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  73527. /* does your target have a broken create_module() ? */
  73528. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  73529. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/crt1.S uClibc-git/libc/sysdeps/linux/sh64/crt1.S
  73530. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/crt1.S 2012-05-15 09:20:09.000000000 +0200
  73531. +++ uClibc-git/libc/sysdeps/linux/sh64/crt1.S 2014-06-02 17:40:34.610715283 +0200
  73532. @@ -16,8 +16,7 @@
  73533. You should have received a copy of the GNU Library General Public
  73534. License along with the GNU C Library; see the file COPYING.LIB. If not,
  73535. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  73536. - Boston, MA 02111-1307, USA. */
  73537. + see <http://www.gnu.org/licenses/>. */
  73538. /* This is the canonical entry point, usually the first thing in the text
  73539. segment.
  73540. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/__longjmp.S uClibc-git/libc/sysdeps/linux/sh64/__longjmp.S
  73541. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  73542. +++ uClibc-git/libc/sysdeps/linux/sh64/__longjmp.S 2014-06-02 17:40:34.610715283 +0200
  73543. @@ -14,8 +14,7 @@
  73544. You should have received a copy of the GNU Library General Public
  73545. License along with the GNU C Library; see the file COPYING.LIB. If not,
  73546. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  73547. - Boston, MA 02111-1307, USA. */
  73548. + see <http://www.gnu.org/licenses/>. */
  73549. #define _SETJMP_H
  73550. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/Makefile.arch uClibc-git/libc/sysdeps/linux/sh64/Makefile.arch
  73551. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  73552. +++ uClibc-git/libc/sysdeps/linux/sh64/Makefile.arch 2014-06-02 17:40:34.610715283 +0200
  73553. @@ -5,6 +5,6 @@
  73554. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  73555. #
  73556. -CSRC := __init_brk.c brk.c sbrk.c syscall.c
  73557. +CSRC-y := __init_brk.c brk.c sbrk.c syscall.c
  73558. -SSRC := setjmp.S __longjmp.S
  73559. +SSRC-y := setjmp.S __longjmp.S
  73560. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/setjmp.S uClibc-git/libc/sysdeps/linux/sh64/setjmp.S
  73561. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  73562. +++ uClibc-git/libc/sysdeps/linux/sh64/setjmp.S 2014-06-02 17:40:34.610715283 +0200
  73563. @@ -14,8 +14,7 @@
  73564. You should have received a copy of the GNU Library General Public
  73565. License along with the GNU C Library; see the file COPYING.LIB. If not,
  73566. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  73567. - Boston, MA 02111-1307, USA. */
  73568. + see <http://www.gnu.org/licenses/>. */
  73569. #define _SETJMP_H
  73570. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/sys/procfs.h uClibc-git/libc/sysdeps/linux/sh64/sys/procfs.h
  73571. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  73572. +++ uClibc-git/libc/sysdeps/linux/sh64/sys/procfs.h 2014-06-02 17:40:34.610715283 +0200
  73573. @@ -12,9 +12,8 @@
  73574. Lesser General Public License for more details.
  73575. You should have received a copy of the GNU Lesser General Public
  73576. - License along with the GNU C Library; if not, write to the Free
  73577. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73578. - 02111-1307 USA. */
  73579. + License along with the GNU C Library; if not, see
  73580. + <http://www.gnu.org/licenses/>. */
  73581. #ifndef _SYS_PROCFS_H
  73582. #define _SYS_PROCFS_H 1
  73583. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/sys/ucontext.h uClibc-git/libc/sysdeps/linux/sh64/sys/ucontext.h
  73584. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  73585. +++ uClibc-git/libc/sysdeps/linux/sh64/sys/ucontext.h 2014-06-02 17:40:34.610715283 +0200
  73586. @@ -13,8 +13,7 @@
  73587. You should have received a copy of the GNU Library General Public
  73588. License along with the GNU C Library; see the file COPYING.LIB. If not,
  73589. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  73590. - Boston, MA 02111-1307, USA. */
  73591. + see <http://www.gnu.org/licenses/>. */
  73592. /* Where is System V/SH ABI? */
  73593. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/atomic.h uClibc-git/libc/sysdeps/linux/sparc/bits/atomic.h
  73594. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  73595. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/atomic.h 2014-06-02 17:40:34.614715306 +0200
  73596. @@ -14,9 +14,8 @@
  73597. Lesser General Public License for more details.
  73598. You should have received a copy of the GNU Lesser General Public
  73599. - License along with the GNU C Library; if not, write to the Free
  73600. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73601. - 02111-1307 USA. */
  73602. + License along with the GNU C Library; if not, see
  73603. + <http://www.gnu.org/licenses/>. */
  73604. #ifndef _BITS_ATOMIC_H
  73605. #define _BITS_ATOMIC_H 1
  73606. @@ -290,11 +289,11 @@
  73607. __typeof (*(mem)) __acev_wval = (newval); \
  73608. do \
  73609. __acev_wret = *__acev_wmemp; \
  73610. - while (__builtin_expect \
  73611. + while (unlikely \
  73612. (__v9_compare_and_exchange_val_32_acq (__acev_wmemp,\
  73613. __acev_wval, \
  73614. __acev_wret) \
  73615. - != __acev_wret, 0)); \
  73616. + != __acev_wret)); \
  73617. } \
  73618. else \
  73619. __acev_wret = __v7_exchange_acq (mem, newval); \
  73620. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/eventfd.h uClibc-git/libc/sysdeps/linux/sparc/bits/eventfd.h
  73621. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/eventfd.h 1970-01-01 01:00:00.000000000 +0100
  73622. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/eventfd.h 2014-06-02 17:40:34.614715306 +0200
  73623. @@ -0,0 +1,31 @@
  73624. +/* Copyright (C) 2007-2013 Free Software Foundation, Inc.
  73625. + This file is part of the GNU C Library.
  73626. +
  73627. + The GNU C Library is free software; you can redistribute it and/or
  73628. + modify it under the terms of the GNU Lesser General Public
  73629. + License as published by the Free Software Foundation; either
  73630. + version 2.1 of the License, or (at your option) any later version.
  73631. +
  73632. + The GNU C Library is distributed in the hope that it will be useful,
  73633. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  73634. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  73635. + Lesser General Public License for more details.
  73636. +
  73637. + You should have received a copy of the GNU Lesser General Public
  73638. + License along with the GNU C Library; if not, see
  73639. + <http://www.gnu.org/licenses/>. */
  73640. +
  73641. +#ifndef _SYS_EVENTFD_H
  73642. +# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
  73643. +#endif
  73644. +
  73645. +/* Flags for eventfd. */
  73646. +enum
  73647. + {
  73648. + EFD_SEMAPHORE = 1,
  73649. +#define EFD_SEMAPHORE EFD_SEMAPHORE
  73650. + EFD_CLOEXEC = 0x400000,
  73651. +#define EFD_CLOEXEC EFD_CLOEXEC
  73652. + EFD_NONBLOCK = 0x004000
  73653. +#define EFD_NONBLOCK EFD_NONBLOCK
  73654. + };
  73655. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/fcntl.h uClibc-git/libc/sysdeps/linux/sparc/bits/fcntl.h
  73656. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  73657. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/fcntl.h 2014-06-02 17:40:34.614715306 +0200
  73658. @@ -14,9 +14,8 @@
  73659. Lesser General Public License for more details.
  73660. You should have received a copy of the GNU Lesser General Public
  73661. - License along with the GNU C Library; if not, write to the Free
  73662. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73663. - 02111-1307 USA. */
  73664. + License along with the GNU C Library; if not, see
  73665. + <http://www.gnu.org/licenses/>. */
  73666. #ifndef _FCNTL_H
  73667. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  73668. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/fenv.h uClibc-git/libc/sysdeps/linux/sparc/bits/fenv.h
  73669. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  73670. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/fenv.h 2014-06-02 17:40:34.614715306 +0200
  73671. @@ -12,9 +12,8 @@
  73672. Lesser General Public License for more details.
  73673. You should have received a copy of the GNU Lesser General Public
  73674. - License along with the GNU C Library; if not, write to the Free
  73675. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73676. - 02111-1307 USA. */
  73677. + License along with the GNU C Library; if not, see
  73678. + <http://www.gnu.org/licenses/>. */
  73679. #ifndef _FENV_H
  73680. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  73681. @@ -68,11 +67,11 @@
  73682. typedef unsigned long int fenv_t;
  73683. /* If the default argument is used we use this value. */
  73684. -#define FE_DFL_ENV ((__const fenv_t *) -1)
  73685. +#define FE_DFL_ENV ((const fenv_t *) -1)
  73686. #ifdef __USE_GNU
  73687. /* Floating-point environment where none of the exception is masked. */
  73688. -# define FE_NOMASK_ENV ((__const fenv_t *) -2)
  73689. +# define FE_NOMASK_ENV ((const fenv_t *) -2)
  73690. #endif
  73691. /* For internal use only: access the fp state register. */
  73692. 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
  73693. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/huge_vall.h 1970-01-01 01:00:00.000000000 +0100
  73694. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/huge_vall.h 2014-06-02 17:40:34.614715306 +0200
  73695. @@ -0,0 +1,48 @@
  73696. +/* `HUGE_VALL' constant for IEEE 754 machines (where it is infinity).
  73697. + Used by <stdlib.h> and <math.h> functions for overflow.
  73698. + Copyright (C) 1992, 1995, 1996, 1997, 1999, 2000, 2004
  73699. + Free Software Foundation, Inc.
  73700. + This file is part of the GNU C Library.
  73701. +
  73702. + The GNU C Library is free software; you can redistribute it and/or
  73703. + modify it under the terms of the GNU Lesser General Public
  73704. + License as published by the Free Software Foundation; either
  73705. + version 2.1 of the License, or (at your option) any later version.
  73706. +
  73707. + The GNU C Library is distributed in the hope that it will be useful,
  73708. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  73709. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  73710. + Lesser General Public License for more details.
  73711. +
  73712. + You should have received a copy of the GNU Lesser General Public
  73713. + License along with the GNU C Library; if not, see
  73714. + <http://www.gnu.org/licenses/>. */
  73715. +
  73716. +#ifndef _MATH_H
  73717. +# error "Never use <bits/huge_vall.h> directly; include <math.h> instead."
  73718. +#endif
  73719. +
  73720. +#if __GNUC_PREREQ(3,3)
  73721. +# define HUGE_VALL (__builtin_huge_vall())
  73722. +#else
  73723. +# include <bits/wordsize.h>
  73724. +# if __WORDSIZE == 32
  73725. +# define HUGE_VALL ((long double) HUGE_VAL)
  73726. +# elif __GNUC_PREREQ(2,96)
  73727. +# define HUGE_VALL (__extension__ 0x1.0p32767L)
  73728. +# elif defined __GNUC__
  73729. +
  73730. +# define HUGE_VALL \
  73731. + (__extension__ \
  73732. + ((union { struct { unsigned long __h, __l; } __i; long double __d; }) \
  73733. + { __i: { __h: 0x7fff000000000000UL, __l: 0 } }).__d)
  73734. +
  73735. +# else /* not GCC */
  73736. +
  73737. +typedef union { unsigned char __c[16]; long double __d; } __huge_vall_t;
  73738. +# define __HUGE_VALL_bytes { 0x7f, 0xff, 0,0,0,0,0,0,0,0,0,0,0,0,0,0 }
  73739. +static __huge_vall_t __huge_vall = { __HUGE_VALL_bytes };
  73740. +# define HUGE_VALL (__huge_vall.__d)
  73741. +
  73742. +# endif /* GCC. */
  73743. +#endif /* GCC 3.3. */
  73744. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/ioctls.h uClibc-git/libc/sysdeps/linux/sparc/bits/ioctls.h
  73745. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/ioctls.h 2012-05-15 09:20:09.000000000 +0200
  73746. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/ioctls.h 2014-06-02 17:40:34.614715306 +0200
  73747. @@ -12,9 +12,8 @@
  73748. Lesser General Public License for more details.
  73749. You should have received a copy of the GNU Lesser General Public
  73750. - License along with the GNU C Library; if not, write to the Free
  73751. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73752. - 02111-1307 USA. */
  73753. + License along with the GNU C Library; if not, see
  73754. + <http://www.gnu.org/licenses/>. */
  73755. #ifndef _SYS_IOCTL_H
  73756. # error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
  73757. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/ipc.h uClibc-git/libc/sysdeps/linux/sparc/bits/ipc.h
  73758. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
  73759. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/ipc.h 2014-06-02 17:40:34.614715306 +0200
  73760. @@ -12,9 +12,8 @@
  73761. Lesser General Public License for more details.
  73762. You should have received a copy of the GNU Lesser General Public
  73763. - License along with the GNU C Library; if not, write to the Free
  73764. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73765. - 02111-1307 USA. */
  73766. + License along with the GNU C Library; if not, see
  73767. + <http://www.gnu.org/licenses/>. */
  73768. #ifndef _SYS_IPC_H
  73769. # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
  73770. 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
  73771. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  73772. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/kernel_types.h 2014-06-02 17:40:34.614715306 +0200
  73773. @@ -32,6 +32,8 @@
  73774. typedef __kernel_uid_t __kernel_old_uid_t;
  73775. typedef __kernel_gid_t __kernel_old_gid_t;
  73776. typedef __kernel_dev_t __kernel_old_dev_t;
  73777. +typedef long __kernel_long_t;
  73778. +typedef unsigned long __kernel_ulong_t;
  73779. typedef __kernel_uid_t __kernel_uid32_t;
  73780. typedef __kernel_gid_t __kernel_gid32_t;
  73781. typedef int __kernel_suseconds_t;
  73782. @@ -62,6 +64,8 @@
  73783. typedef unsigned short __kernel_old_uid_t;
  73784. typedef unsigned short __kernel_old_gid_t;
  73785. typedef __kernel_dev_t __kernel_old_dev_t;
  73786. +typedef long __kernel_long_t;
  73787. +typedef unsigned long __kernel_ulong_t;
  73788. typedef long long __kernel_loff_t;
  73789. #endif
  73790. 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
  73791. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/local_lim.h 1970-01-01 01:00:00.000000000 +0100
  73792. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/local_lim.h 2014-06-02 17:40:34.614715306 +0200
  73793. @@ -0,0 +1,99 @@
  73794. +/* Minimum guaranteed maximum values for system limits. Linux/SPARC version.
  73795. + Copyright (C) 1993-1998,2000,2002-2004,2008 Free Software Foundation, Inc.
  73796. + This file is part of the GNU C Library.
  73797. +
  73798. + The GNU C Library is free software; you can redistribute it and/or
  73799. + modify it under the terms of the GNU Library General Public License as
  73800. + published by the Free Software Foundation; either version 2 of the
  73801. + License, or (at your option) any later version.
  73802. +
  73803. + The GNU C Library is distributed in the hope that it will be useful,
  73804. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  73805. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  73806. + Library General Public License for more details.
  73807. +
  73808. + You should have received a copy of the GNU Library General Public
  73809. + License along with the GNU C Library; see the file COPYING.LIB. If not,
  73810. + see <http://www.gnu.org/licenses/>. */
  73811. +
  73812. +/* The kernel header pollutes the namespace with the NR_OPEN symbol
  73813. + and defines LINK_MAX although filesystems have different maxima. A
  73814. + similar thing is true for OPEN_MAX: the limit can be changed at
  73815. + runtime and therefore the macro must not be defined. Remove this
  73816. + after including the header if necessary. */
  73817. +#ifndef NR_OPEN
  73818. +# define __undef_NR_OPEN
  73819. +#endif
  73820. +#ifndef LINK_MAX
  73821. +# define __undef_LINK_MAX
  73822. +#endif
  73823. +#ifndef OPEN_MAX
  73824. +# define __undef_OPEN_MAX
  73825. +#endif
  73826. +#ifndef ARG_MAX
  73827. +# define __undef_ARG_MAX
  73828. +#endif
  73829. +
  73830. +/* The kernel sources contain a file with all the needed information. */
  73831. +#include <linux/limits.h>
  73832. +
  73833. +/* Have to remove NR_OPEN? */
  73834. +#ifdef __undef_NR_OPEN
  73835. +# undef NR_OPEN
  73836. +# undef __undef_NR_OPEN
  73837. +#endif
  73838. +/* Have to remove LINK_MAX? */
  73839. +#ifdef __undef_LINK_MAX
  73840. +# undef LINK_MAX
  73841. +# undef __undef_LINK_MAX
  73842. +#endif
  73843. +/* Have to remove OPEN_MAX? */
  73844. +#ifdef __undef_OPEN_MAX
  73845. +# undef OPEN_MAX
  73846. +# undef __undef_OPEN_MAX
  73847. +#endif
  73848. +/* Have to remove ARG_MAX? */
  73849. +#ifdef __undef_ARG_MAX
  73850. +# undef ARG_MAX
  73851. +# undef __undef_ARG_MAX
  73852. +#endif
  73853. +
  73854. +/* The number of data keys per process. */
  73855. +#define _POSIX_THREAD_KEYS_MAX 128
  73856. +/* This is the value this implementation supports. */
  73857. +#define PTHREAD_KEYS_MAX 1024
  73858. +
  73859. +/* Controlling the iterations of destructors for thread-specific data. */
  73860. +#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
  73861. +/* Number of iterations this implementation does. */
  73862. +#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
  73863. +
  73864. +/* The number of threads per process. */
  73865. +#define _POSIX_THREAD_THREADS_MAX 64
  73866. +/* We have no predefined limit on the number of threads. */
  73867. +#undef PTHREAD_THREADS_MAX
  73868. +
  73869. +/* Maximum amount by which a process can descrease its asynchronous I/O
  73870. + priority level. */
  73871. +#define AIO_PRIO_DELTA_MAX 20
  73872. +
  73873. +/* Minimum size for a thread. We are free to choose a reasonable value. */
  73874. +#define PTHREAD_STACK_MIN 24576
  73875. +
  73876. +/* Maximum number of timer expiration overruns. */
  73877. +#define DELAYTIMER_MAX 2147483647
  73878. +
  73879. +/* Maximum tty name length. */
  73880. +#define TTY_NAME_MAX 32
  73881. +
  73882. +/* Maximum login name length. This is arbitrary. */
  73883. +#define LOGIN_NAME_MAX 256
  73884. +
  73885. +/* Maximum host name length. */
  73886. +#define HOST_NAME_MAX 64
  73887. +
  73888. +/* Maximum message queue priority level. */
  73889. +#define MQ_PRIO_MAX 32768
  73890. +
  73891. +/* Maximum value the semaphore can have. */
  73892. +#define SEM_VALUE_MAX (2147483647)
  73893. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/mathdef.h uClibc-git/libc/sysdeps/linux/sparc/bits/mathdef.h
  73894. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  73895. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/mathdef.h 2014-06-02 17:40:34.614715306 +0200
  73896. @@ -13,9 +13,8 @@
  73897. Lesser General Public License for more details.
  73898. You should have received a copy of the GNU Lesser General Public
  73899. - License along with the GNU C Library; if not, write to the Free
  73900. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73901. - 02111-1307 USA. */
  73902. + License along with the GNU C Library; if not, see
  73903. + <http://www.gnu.org/licenses/>. */
  73904. #if !defined _MATH_H && !defined _COMPLEX_H
  73905. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  73906. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/mathinline.h uClibc-git/libc/sysdeps/linux/sparc/bits/mathinline.h
  73907. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/mathinline.h 2012-05-15 09:20:09.000000000 +0200
  73908. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/mathinline.h 2014-06-02 17:40:34.614715306 +0200
  73909. @@ -15,9 +15,8 @@
  73910. Lesser General Public License for more details.
  73911. You should have received a copy of the GNU Lesser General Public
  73912. - License along with the GNU C Library; if not, write to the Free
  73913. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73914. - 02111-1307 USA. */
  73915. + License along with the GNU C Library; if not, see
  73916. + <http://www.gnu.org/licenses/>. */
  73917. #ifndef _MATH_H
  73918. # error "Never use <bits/mathinline.h> directly; include <math.h> instead."
  73919. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/mman.h uClibc-git/libc/sysdeps/linux/sparc/bits/mman.h
  73920. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/mman.h 2012-05-15 09:20:09.000000000 +0200
  73921. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/mman.h 2014-06-02 17:40:34.614715306 +0200
  73922. @@ -13,9 +13,8 @@
  73923. Lesser General Public License for more details.
  73924. You should have received a copy of the GNU Lesser General Public
  73925. - License along with the GNU C Library; if not, write to the Free
  73926. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73927. - 02111-1307 USA. */
  73928. + License along with the GNU C Library; if not, see
  73929. + <http://www.gnu.org/licenses/>. */
  73930. #ifndef _SYS_MMAN_H
  73931. # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
  73932. @@ -65,7 +64,7 @@
  73933. # define _MAP_NEW 0x80000000 /* Binary compatibility with SunOS. */
  73934. # define MAP_POPULATE 0x8000 /* Populate (prefault) pagetables. */
  73935. # define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
  73936. -# define MAP_UNINITIALIZE 0x4000000 /* For anonymous mmap, memory could
  73937. +# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could
  73938. be uninitialized. */
  73939. #endif
  73940. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/msq.h uClibc-git/libc/sysdeps/linux/sparc/bits/msq.h
  73941. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
  73942. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/msq.h 2014-06-02 17:40:34.614715306 +0200
  73943. @@ -12,9 +12,8 @@
  73944. Lesser General Public License for more details.
  73945. You should have received a copy of the GNU Lesser General Public
  73946. - License along with the GNU C Library; if not, write to the Free
  73947. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73948. - 02111-1307 USA. */
  73949. + License along with the GNU C Library; if not, see
  73950. + <http://www.gnu.org/licenses/>. */
  73951. #ifndef _SYS_MSG_H
  73952. # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
  73953. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/poll.h uClibc-git/libc/sysdeps/linux/sparc/bits/poll.h
  73954. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/poll.h 2012-05-15 09:20:09.000000000 +0200
  73955. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/poll.h 2014-06-02 17:40:34.634715416 +0200
  73956. @@ -12,9 +12,8 @@
  73957. Lesser General Public License for more details.
  73958. You should have received a copy of the GNU Lesser General Public
  73959. - License along with the GNU C Library; if not, write to the Free
  73960. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73961. - 02111-1307 USA. */
  73962. + License along with the GNU C Library; if not, see
  73963. + <http://www.gnu.org/licenses/>. */
  73964. #ifndef _SYS_POLL_H
  73965. # error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
  73966. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/resource.h uClibc-git/libc/sysdeps/linux/sparc/bits/resource.h
  73967. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/resource.h 2012-05-15 09:20:09.000000000 +0200
  73968. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/resource.h 2014-06-02 17:40:34.634715416 +0200
  73969. @@ -14,9 +14,8 @@
  73970. Lesser General Public License for more details.
  73971. You should have received a copy of the GNU Lesser General Public
  73972. - License along with the GNU C Library; if not, write to the Free
  73973. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73974. - 02111-1307 USA. */
  73975. + License along with the GNU C Library; if not, see
  73976. + <http://www.gnu.org/licenses/>. */
  73977. #ifndef _SYS_RESOURCE_H
  73978. # error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
  73979. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sem.h uClibc-git/libc/sysdeps/linux/sparc/bits/sem.h
  73980. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
  73981. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/sem.h 2014-06-02 17:40:34.634715416 +0200
  73982. @@ -12,9 +12,8 @@
  73983. Lesser General Public License for more details.
  73984. You should have received a copy of the GNU Lesser General Public
  73985. - License along with the GNU C Library; if not, write to the Free
  73986. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73987. - 02111-1307 USA. */
  73988. + License along with the GNU C Library; if not, see
  73989. + <http://www.gnu.org/licenses/>. */
  73990. #ifndef _SYS_SEM_H
  73991. # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
  73992. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/setjmp.h uClibc-git/libc/sysdeps/linux/sparc/bits/setjmp.h
  73993. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  73994. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/setjmp.h 2014-06-02 17:40:34.634715416 +0200
  73995. @@ -1,4 +1,5 @@
  73996. -/* Copyright (C) 1997,1999,2000,2003 Free Software Foundation, Inc.
  73997. +/* Copyright (C) 1997, 1999, 2000, 2003, 2005, 2006
  73998. + Free Software Foundation, Inc.
  73999. This file is part of the GNU C Library.
  74000. The GNU C Library is free software; you can redistribute it and/or
  74001. @@ -12,9 +13,8 @@
  74002. Lesser General Public License for more details.
  74003. You should have received a copy of the GNU Lesser General Public
  74004. - License along with the GNU C Library; if not, write to the Free
  74005. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74006. - 02111-1307 USA. */
  74007. + License along with the GNU C Library; if not, see
  74008. + <http://www.gnu.org/licenses/>. */
  74009. #ifndef _BITS_SETJMP_H
  74010. #define _BITS_SETJMP_H 1
  74011. @@ -27,7 +27,6 @@
  74012. #if 0 /*__WORDSIZE == 64*/
  74013. -#ifndef _ASM
  74014. typedef struct __sparc64_jmp_buf
  74015. {
  74016. struct __sparc64_jmp_buf *uc_link;
  74017. @@ -55,30 +54,8 @@
  74018. } mc_fpregs;
  74019. } uc_mcontext;
  74020. } __jmp_buf[1];
  74021. -#endif
  74022. -
  74023. -/* Test if longjmp to JMPBUF would unwind the frame
  74024. - containing a local variable at ADDRESS. */
  74025. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  74026. - ((unsigned long int) (address) < (jmpbuf)->uc_mcontext.mc_fp)
  74027. -
  74028. #else
  74029. -
  74030. -#if defined __USE_MISC || defined _ASM
  74031. -# define JB_SP 0
  74032. -# define JB_FP 1
  74033. -# define JB_PC 2
  74034. -#endif
  74035. -
  74036. -#ifndef _ASM
  74037. typedef int __jmp_buf[3];
  74038. #endif
  74039. -/* Test if longjmp to JMPBUF would unwind the frame
  74040. - containing a local variable at ADDRESS. */
  74041. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  74042. - ((int) (address) < (jmpbuf)[JB_SP])
  74043. -
  74044. -#endif
  74045. -
  74046. #endif /* bits/setjmp.h */
  74047. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/shm.h uClibc-git/libc/sysdeps/linux/sparc/bits/shm.h
  74048. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  74049. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/shm.h 2014-06-02 17:40:34.638715439 +0200
  74050. @@ -13,9 +13,8 @@
  74051. Lesser General Public License for more details.
  74052. You should have received a copy of the GNU Lesser General Public
  74053. - License along with the GNU C Library; if not, write to the Free
  74054. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74055. - 02111-1307 USA. */
  74056. + License along with the GNU C Library; if not, see
  74057. + <http://www.gnu.org/licenses/>. */
  74058. #ifndef _SYS_SHM_H
  74059. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  74060. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigaction.h uClibc-git/libc/sysdeps/linux/sparc/bits/sigaction.h
  74061. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigaction.h 2012-05-15 09:20:09.000000000 +0200
  74062. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/sigaction.h 2014-06-02 17:40:34.638715439 +0200
  74063. @@ -13,9 +13,8 @@
  74064. Lesser General Public License for more details.
  74065. You should have received a copy of the GNU Lesser General Public
  74066. - License along with the GNU C Library; if not, write to the Free
  74067. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74068. - 02111-1307 USA. */
  74069. + License along with the GNU C Library; if not, see
  74070. + <http://www.gnu.org/licenses/>. */
  74071. #ifndef _SIGNAL_H
  74072. # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
  74073. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigcontext.h uClibc-git/libc/sysdeps/linux/sparc/bits/sigcontext.h
  74074. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigcontext.h 2012-05-15 09:20:09.000000000 +0200
  74075. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/sigcontext.h 2014-06-02 17:40:34.638715439 +0200
  74076. @@ -12,9 +12,8 @@
  74077. Lesser General Public License for more details.
  74078. You should have received a copy of the GNU Lesser General Public
  74079. - License along with the GNU C Library; if not, write to the Free
  74080. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74081. - 02111-1307 USA. */
  74082. + License along with the GNU C Library; if not, see
  74083. + <http://www.gnu.org/licenses/>. */
  74084. #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
  74085. # error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
  74086. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/sparc/bits/sigcontextinfo.h
  74087. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  74088. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/sigcontextinfo.h 2014-06-02 17:40:34.638715439 +0200
  74089. @@ -13,9 +13,8 @@
  74090. Lesser General Public License for more details.
  74091. You should have received a copy of the GNU Lesser General Public
  74092. - License along with the GNU C Library; if not, write to the Free
  74093. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74094. - 02111-1307 USA. */
  74095. + License along with the GNU C Library; if not, see
  74096. + <http://www.gnu.org/licenses/>. */
  74097. #define SIGCONTEXT struct sigcontext *
  74098. #define SIGCONTEXT_EXTRA_ARGS
  74099. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/siginfo.h uClibc-git/libc/sysdeps/linux/sparc/bits/siginfo.h
  74100. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/siginfo.h 2012-05-15 09:20:09.000000000 +0200
  74101. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/siginfo.h 2014-06-02 17:40:34.638715439 +0200
  74102. @@ -13,9 +13,8 @@
  74103. Lesser General Public License for more details.
  74104. You should have received a copy of the GNU Lesser General Public
  74105. - License along with the GNU C Library; if not, write to the Free
  74106. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74107. - 02111-1307 USA. */
  74108. + License along with the GNU C Library; if not, see
  74109. + <http://www.gnu.org/licenses/>. */
  74110. #if !defined _SIGNAL_H && !defined __need_siginfo_t \
  74111. && !defined __need_sigevent_t
  74112. @@ -289,6 +288,10 @@
  74113. {
  74114. int _pad[__SIGEV_PAD_SIZE];
  74115. + /* When SIGEV_SIGNAL and SIGEV_THREAD_ID set, LWP ID of the
  74116. + thread to receive the signal. */
  74117. + __pid_t _tid;
  74118. +
  74119. struct
  74120. {
  74121. void (*_function) (sigval_t); /* Function to start. */
  74122. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/signum.h uClibc-git/libc/sysdeps/linux/sparc/bits/signum.h
  74123. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/signum.h 2012-05-15 09:20:09.000000000 +0200
  74124. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/signum.h 2014-06-02 17:40:34.638715439 +0200
  74125. @@ -13,9 +13,8 @@
  74126. Lesser General Public License for more details.
  74127. You should have received a copy of the GNU Lesser General Public
  74128. - License along with the GNU C Library; if not, write to the Free
  74129. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74130. - 02111-1307 USA. */
  74131. + License along with the GNU C Library; if not, see
  74132. + <http://www.gnu.org/licenses/>. */
  74133. #ifdef _SIGNAL_H
  74134. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigstack.h uClibc-git/libc/sysdeps/linux/sparc/bits/sigstack.h
  74135. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigstack.h 2012-05-15 09:20:09.000000000 +0200
  74136. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/sigstack.h 2014-06-02 17:40:34.638715439 +0200
  74137. @@ -13,9 +13,8 @@
  74138. Lesser General Public License for more details.
  74139. You should have received a copy of the GNU Lesser General Public
  74140. - License along with the GNU C Library; if not, write to the Free
  74141. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74142. - 02111-1307 USA. */
  74143. + License along with the GNU C Library; if not, see
  74144. + <http://www.gnu.org/licenses/>. */
  74145. #ifndef _SIGNAL_H
  74146. # error "Never include this file directly. Use <signal.h> instead"
  74147. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/socket.h uClibc-git/libc/sysdeps/linux/sparc/bits/socket.h
  74148. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/socket.h 2012-05-15 09:20:09.000000000 +0200
  74149. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/socket.h 1970-01-01 01:00:00.000000000 +0100
  74150. @@ -1,376 +0,0 @@
  74151. -/* System-specific socket constants and types. Linux version.
  74152. - Copyright (C) 1991,1992,1994-2001,2004,2006 Free Software Foundation, Inc.
  74153. - This file is part of the GNU C Library.
  74154. -
  74155. - The GNU C Library is free software; you can redistribute it and/or
  74156. - modify it under the terms of the GNU Lesser General Public
  74157. - License as published by the Free Software Foundation; either
  74158. - version 2.1 of the License, or (at your option) any later version.
  74159. -
  74160. - The GNU C Library is distributed in the hope that it will be useful,
  74161. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  74162. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  74163. - Lesser General Public License for more details.
  74164. -
  74165. - You should have received a copy of the GNU Lesser General Public
  74166. - License along with the GNU C Library; if not, write to the Free
  74167. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74168. - 02111-1307 USA. */
  74169. -
  74170. -#ifndef __BITS_SOCKET_H
  74171. -#define __BITS_SOCKET_H
  74172. -
  74173. -#if !defined _SYS_SOCKET_H && !defined _NETINET_IN_H
  74174. -# error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
  74175. -#endif
  74176. -
  74177. -#define __need_size_t
  74178. -#define __need_NULL
  74179. -#include <stddef.h>
  74180. -
  74181. -#include <limits.h>
  74182. -#include <sys/types.h>
  74183. -
  74184. -/* Type for length arguments in socket calls. */
  74185. -#ifndef __socklen_t_defined
  74186. -typedef __socklen_t socklen_t;
  74187. -# define __socklen_t_defined
  74188. -#endif
  74189. -
  74190. -/* Types of sockets. */
  74191. -enum __socket_type
  74192. -{
  74193. - SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
  74194. - byte streams. */
  74195. -#define SOCK_STREAM SOCK_STREAM
  74196. - SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
  74197. - of fixed maximum length. */
  74198. -#define SOCK_DGRAM SOCK_DGRAM
  74199. - SOCK_RAW = 3, /* Raw protocol interface. */
  74200. -#define SOCK_RAW SOCK_RAW
  74201. - SOCK_RDM = 4, /* Reliably-delivered messages. */
  74202. -#define SOCK_RDM SOCK_RDM
  74203. - SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
  74204. - datagrams of fixed maximum length. */
  74205. -#define SOCK_SEQPACKET SOCK_SEQPACKET
  74206. - SOCK_PACKET = 10 /* Linux specific way of getting packets
  74207. - at the dev level. For writing rarp and
  74208. - other similar things on the user level. */
  74209. -#define SOCK_PACKET SOCK_PACKET
  74210. -};
  74211. -
  74212. -/* Protocol families. */
  74213. -#define PF_UNSPEC 0 /* Unspecified. */
  74214. -#define PF_LOCAL 1 /* Local to host (pipes and file-domain). */
  74215. -#define PF_UNIX PF_LOCAL /* Old BSD name for PF_LOCAL. */
  74216. -#define PF_FILE PF_LOCAL /* Another non-standard name for PF_LOCAL. */
  74217. -#define PF_INET 2 /* IP protocol family. */
  74218. -#define PF_AX25 3 /* Amateur Radio AX.25. */
  74219. -#define PF_IPX 4 /* Novell Internet Protocol. */
  74220. -#define PF_APPLETALK 5 /* Appletalk DDP. */
  74221. -#define PF_NETROM 6 /* Amateur radio NetROM. */
  74222. -#define PF_BRIDGE 7 /* Multiprotocol bridge. */
  74223. -#define PF_ATMPVC 8 /* ATM PVCs. */
  74224. -#define PF_X25 9 /* Reserved for X.25 project. */
  74225. -#define PF_INET6 10 /* IP version 6. */
  74226. -#define PF_ROSE 11 /* Amateur Radio X.25 PLP. */
  74227. -#define PF_DECnet 12 /* Reserved for DECnet project. */
  74228. -#define PF_NETBEUI 13 /* Reserved for 802.2LLC project. */
  74229. -#define PF_SECURITY 14 /* Security callback pseudo AF. */
  74230. -#define PF_KEY 15 /* PF_KEY key management API. */
  74231. -#define PF_NETLINK 16
  74232. -#define PF_ROUTE PF_NETLINK /* Alias to emulate 4.4BSD. */
  74233. -#define PF_PACKET 17 /* Packet family. */
  74234. -#define PF_ASH 18 /* Ash. */
  74235. -#define PF_ECONET 19 /* Acorn Econet. */
  74236. -#define PF_ATMSVC 20 /* ATM SVCs. */
  74237. -#define PF_SNA 22 /* Linux SNA Project */
  74238. -#define PF_IRDA 23 /* IRDA sockets. */
  74239. -#define PF_PPPOX 24 /* PPPoX sockets. */
  74240. -#define PF_WANPIPE 25 /* Wanpipe API sockets. */
  74241. -#define PF_LLC 26 /* Linux LLC. */
  74242. -#define PF_CAN 29 /* Controller Area Network. */
  74243. -#define PF_TIPC 30 /* TIPC sockets. */
  74244. -#define PF_BLUETOOTH 31 /* Bluetooth sockets. */
  74245. -#define PF_IUCV 32 /* IUCV sockets. */
  74246. -#define PF_RXRPC 33 /* RxRPC sockets. */
  74247. -#define PF_ISDN 34 /* mISDN sockets. */
  74248. -#define PF_PHONET 35 /* Phonet sockets. */
  74249. -#define PF_IEEE802154 36 /* IEEE 802.15.4 sockets. */
  74250. -#define PF_CAIF 37 /* CAIF sockets. */
  74251. -#define PF_ALG 38 /* Algorithm sockets. */
  74252. -#define PF_MAX 39 /* For now.. */
  74253. -
  74254. -/* Address families. */
  74255. -#define AF_UNSPEC PF_UNSPEC
  74256. -#define AF_LOCAL PF_LOCAL
  74257. -#define AF_UNIX PF_UNIX
  74258. -#define AF_FILE PF_FILE
  74259. -#define AF_INET PF_INET
  74260. -#define AF_AX25 PF_AX25
  74261. -#define AF_IPX PF_IPX
  74262. -#define AF_APPLETALK PF_APPLETALK
  74263. -#define AF_NETROM PF_NETROM
  74264. -#define AF_BRIDGE PF_BRIDGE
  74265. -#define AF_ATMPVC PF_ATMPVC
  74266. -#define AF_X25 PF_X25
  74267. -#define AF_INET6 PF_INET6
  74268. -#define AF_ROSE PF_ROSE
  74269. -#define AF_DECnet PF_DECnet
  74270. -#define AF_NETBEUI PF_NETBEUI
  74271. -#define AF_SECURITY PF_SECURITY
  74272. -#define AF_KEY PF_KEY
  74273. -#define AF_NETLINK PF_NETLINK
  74274. -#define AF_ROUTE PF_ROUTE
  74275. -#define AF_PACKET PF_PACKET
  74276. -#define AF_ASH PF_ASH
  74277. -#define AF_ECONET PF_ECONET
  74278. -#define AF_ATMSVC PF_ATMSVC
  74279. -#define AF_SNA PF_SNA
  74280. -#define AF_IRDA PF_IRDA
  74281. -#define AF_PPPOX PF_PPPOX
  74282. -#define AF_WANPIPE PF_WANPIPE
  74283. -#define AF_LLC PF_LLC
  74284. -#define AF_CAN PF_CAN
  74285. -#define AF_TIPC PF_TIPC
  74286. -#define AF_BLUETOOTH PF_BLUETOOTH
  74287. -#define AF_IUCV PF_IUCV
  74288. -#define AF_RXRPC PF_RXRPC
  74289. -#define AF_ISDN PF_ISDN
  74290. -#define AF_PHONET PF_PHONET
  74291. -#define AF_IEEE802154 PF_IEEE802154
  74292. -#define AF_CAIF PF_CAIF
  74293. -#define AF_ALG PF_ALG
  74294. -#define AF_MAX PF_MAX
  74295. -
  74296. -/* Socket level values. Others are defined in the appropriate headers.
  74297. -
  74298. - XXX These definitions also should go into the appropriate headers as
  74299. - far as they are available. */
  74300. -#define SOL_RAW 255
  74301. -#define SOL_DECNET 261
  74302. -#define SOL_X25 262
  74303. -#define SOL_PACKET 263
  74304. -#define SOL_ATM 264 /* ATM layer (cell level). */
  74305. -#define SOL_AAL 265 /* ATM Adaption Layer (packet level). */
  74306. -#define SOL_IRDA 266
  74307. -
  74308. -/* Maximum queue length specifiable by listen. */
  74309. -#define SOMAXCONN 128
  74310. -
  74311. -/* Get the definition of the macro to define the common sockaddr members. */
  74312. -#include <bits/sockaddr.h>
  74313. -
  74314. -/* Structure describing a generic socket address. */
  74315. -struct sockaddr
  74316. - {
  74317. - __SOCKADDR_COMMON (sa_); /* Common data: address family and length. */
  74318. - char sa_data[14]; /* Address data. */
  74319. - };
  74320. -
  74321. -
  74322. -/* Structure large enough to hold any socket address (with the historical
  74323. - exception of AF_UNIX). We reserve 128 bytes. */
  74324. -#if ULONG_MAX > 0xffffffff
  74325. -# define __ss_aligntype __uint64_t
  74326. -#else
  74327. -# define __ss_aligntype __uint32_t
  74328. -#endif
  74329. -#define _SS_SIZE 128
  74330. -#define _SS_PADSIZE (_SS_SIZE - (2 * sizeof (__ss_aligntype)))
  74331. -
  74332. -struct sockaddr_storage
  74333. - {
  74334. - __SOCKADDR_COMMON (ss_); /* Address family, etc. */
  74335. - __ss_aligntype __ss_align; /* Force desired alignment. */
  74336. - char __ss_padding[_SS_PADSIZE];
  74337. - };
  74338. -
  74339. -
  74340. -/* Bits in the FLAGS argument to `send', `recv', et al. */
  74341. -enum
  74342. - {
  74343. - MSG_OOB = 0x01, /* Process out-of-band data. */
  74344. -#define MSG_OOB MSG_OOB
  74345. - MSG_PEEK = 0x02, /* Peek at incoming messages. */
  74346. -#define MSG_PEEK MSG_PEEK
  74347. - MSG_DONTROUTE = 0x04, /* Don't use local routing. */
  74348. -#define MSG_DONTROUTE MSG_DONTROUTE
  74349. -#ifdef __USE_GNU
  74350. - /* DECnet uses a different name. */
  74351. - MSG_TRYHARD = MSG_DONTROUTE,
  74352. -# define MSG_TRYHARD MSG_DONTROUTE
  74353. -#endif
  74354. - MSG_CTRUNC = 0x08, /* Control data lost before delivery. */
  74355. -#define MSG_CTRUNC MSG_CTRUNC
  74356. - MSG_PROXY = 0x10, /* Supply or ask second address. */
  74357. -#define MSG_PROXY MSG_PROXY
  74358. - MSG_TRUNC = 0x20,
  74359. -#define MSG_TRUNC MSG_TRUNC
  74360. - MSG_DONTWAIT = 0x40, /* Nonblocking IO. */
  74361. -#define MSG_DONTWAIT MSG_DONTWAIT
  74362. - MSG_EOR = 0x80, /* End of record. */
  74363. -#define MSG_EOR MSG_EOR
  74364. - MSG_WAITALL = 0x100, /* Wait for a full request. */
  74365. -#define MSG_WAITALL MSG_WAITALL
  74366. - MSG_FIN = 0x200,
  74367. -#define MSG_FIN MSG_FIN
  74368. - MSG_SYN = 0x400,
  74369. -#define MSG_SYN MSG_SYN
  74370. - MSG_CONFIRM = 0x800, /* Confirm path validity. */
  74371. -#define MSG_CONFIRM MSG_CONFIRM
  74372. - MSG_RST = 0x1000,
  74373. -#define MSG_RST MSG_RST
  74374. - MSG_ERRQUEUE = 0x2000, /* Fetch message from error queue. */
  74375. -#define MSG_ERRQUEUE MSG_ERRQUEUE
  74376. - MSG_NOSIGNAL = 0x4000, /* Do not generate SIGPIPE. */
  74377. -#define MSG_NOSIGNAL MSG_NOSIGNAL
  74378. - MSG_MORE = 0x8000 /* Sender will send more. */
  74379. -#define MSG_MORE MSG_MORE
  74380. - };
  74381. -
  74382. -
  74383. -/* Structure describing messages sent by
  74384. - `sendmsg' and received by `recvmsg'. */
  74385. -/* Note: do not change these members to match glibc; these match the
  74386. - SuSv3 spec already (e.g. msg_iovlen/msg_controllen).
  74387. - http://www.opengroup.org/onlinepubs/009695399/basedefs/sys/socket.h.html */
  74388. -/* Note: linux kernel uses __kernel_size_t (which is 8bytes on 64bit
  74389. - platforms, and 4bytes on 32bit platforms) for msg_iovlen/msg_controllen */
  74390. -struct msghdr
  74391. - {
  74392. - void *msg_name; /* Address to send to/receive from. */
  74393. - socklen_t msg_namelen; /* Length of address data. */
  74394. -
  74395. - struct iovec *msg_iov; /* Vector of data to send/receive into. */
  74396. -#if __WORDSIZE == 32
  74397. - int msg_iovlen; /* Number of elements in the vector. */
  74398. -#else
  74399. - size_t msg_iovlen; /* Number of elements in the vector. */
  74400. -#endif
  74401. -
  74402. - void *msg_control; /* Ancillary data (eg BSD filedesc passing). */
  74403. -#if __WORDSIZE == 32
  74404. - socklen_t msg_controllen; /* Ancillary data buffer length. */
  74405. -#else
  74406. - size_t msg_controllen; /* Ancillary data buffer length. */
  74407. -#endif
  74408. -
  74409. - int msg_flags; /* Flags on received message. */
  74410. - };
  74411. -
  74412. -/* Structure used for storage of ancillary data object information. */
  74413. -struct cmsghdr
  74414. - {
  74415. - size_t cmsg_len; /* Length of data in cmsg_data plus length
  74416. - of cmsghdr structure. */
  74417. - int cmsg_level; /* Originating protocol. */
  74418. - int cmsg_type; /* Protocol specific type. */
  74419. -#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
  74420. - __extension__ unsigned char __cmsg_data __flexarr; /* Ancillary data. */
  74421. -#endif
  74422. - };
  74423. -
  74424. -/* Ancillary data object manipulation macros. */
  74425. -#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
  74426. -# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
  74427. -#else
  74428. -# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
  74429. -#endif
  74430. -#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
  74431. -#define CMSG_FIRSTHDR(mhdr) \
  74432. - ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \
  74433. - ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL)
  74434. -#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
  74435. - & (size_t) ~(sizeof (size_t) - 1))
  74436. -#define CMSG_SPACE(len) (CMSG_ALIGN (len) \
  74437. - + CMSG_ALIGN (sizeof (struct cmsghdr)))
  74438. -#define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
  74439. -
  74440. -extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
  74441. - struct cmsghdr *__cmsg) __THROW;
  74442. -libc_hidden_proto(__cmsg_nxthdr)
  74443. -#ifdef __USE_EXTERN_INLINES
  74444. -# ifndef _EXTERN_INLINE
  74445. -# define _EXTERN_INLINE extern __inline
  74446. -# endif
  74447. -_EXTERN_INLINE struct cmsghdr *
  74448. -__NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg))
  74449. -{
  74450. - if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
  74451. - /* The kernel header does this so there may be a reason. */
  74452. - return 0;
  74453. -
  74454. - __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
  74455. - + CMSG_ALIGN (__cmsg->cmsg_len));
  74456. - if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control
  74457. - + __mhdr->msg_controllen)
  74458. - || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)
  74459. - > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
  74460. - /* No more entries. */
  74461. - return 0;
  74462. - return __cmsg;
  74463. -}
  74464. -#endif /* Use `extern inline'. */
  74465. -
  74466. -/* Socket level message types. This must match the definitions in
  74467. - <linux/socket.h>. */
  74468. -enum
  74469. - {
  74470. - SCM_RIGHTS = 0x01 /* Transfer file descriptors. */
  74471. -#define SCM_RIGHTS SCM_RIGHTS
  74472. -#ifdef __USE_BSD
  74473. - , SCM_CREDENTIALS = 0x02 /* Credentials passing. */
  74474. -# define SCM_CREDENTIALS SCM_CREDENTIALS
  74475. -#endif
  74476. - };
  74477. -
  74478. -/* User visible structure for SCM_CREDENTIALS message */
  74479. -
  74480. -struct ucred
  74481. -{
  74482. - pid_t pid; /* PID of sending process. */
  74483. - uid_t uid; /* UID of sending process. */
  74484. - gid_t gid; /* GID of sending process. */
  74485. -};
  74486. -
  74487. -/* Get socket manipulation related informations from kernel headers. */
  74488. -#ifndef __GLIBC__
  74489. -#define __GLIBC__ 2
  74490. -#include <asm/socket.h>
  74491. -#undef __GLIBC__
  74492. -#else
  74493. -#include <asm/socket.h>
  74494. -#endif
  74495. -
  74496. -
  74497. -/* Structure used to manipulate the SO_LINGER option. */
  74498. -struct linger
  74499. - {
  74500. - int l_onoff; /* Nonzero to linger on close. */
  74501. - int l_linger; /* Time to linger. */
  74502. - };
  74503. -
  74504. -/* Prefer socketcall over all these for sparc32,
  74505. - since it only has socketcall */
  74506. -#ifndef __arch64__
  74507. - #undef __NR_accept
  74508. - #undef __NR_bind
  74509. - #undef __NR_connect
  74510. - #undef __NR_getpeername
  74511. - #undef __NR_getsockname
  74512. - #undef __NR_getsockopt
  74513. - #undef __NR_listen
  74514. - #undef __NR_recv
  74515. - #undef __NR_recvfrom
  74516. - #undef __NR_recvmsg
  74517. - #undef __NR_send
  74518. - #undef __NR_sendmsg
  74519. - #undef __NR_sendto
  74520. - #undef __NR_setsockopt
  74521. - #undef __NR_shutdown
  74522. - #undef __NR_socket
  74523. - #undef __NR_socketpair
  74524. -#endif
  74525. -
  74526. -#endif /* bits/socket.h */
  74527. 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
  74528. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/socket_type.h 1970-01-01 01:00:00.000000000 +0100
  74529. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/socket_type.h 2014-06-02 17:40:34.638715439 +0200
  74530. @@ -0,0 +1,54 @@
  74531. +/* System-specific socket constants and types. Linux version.
  74532. + Copyright (C) 1991,1992,1994-2001,2004,2006 Free Software Foundation, Inc.
  74533. + This file is part of the GNU C Library.
  74534. +
  74535. + The GNU C Library is free software; you can redistribute it and/or
  74536. + modify it under the terms of the GNU Lesser General Public
  74537. + License as published by the Free Software Foundation; either
  74538. + version 2.1 of the License, or (at your option) any later version.
  74539. +
  74540. + The GNU C Library is distributed in the hope that it will be useful,
  74541. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  74542. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  74543. + Lesser General Public License for more details.
  74544. +
  74545. + You should have received a copy of the GNU Lesser General Public
  74546. + License along with the GNU C Library; if not, see
  74547. + <http://www.gnu.org/licenses/>. */
  74548. +
  74549. +#ifndef _SYS_SOCKET_H
  74550. +# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
  74551. +#endif
  74552. +
  74553. +/* Types of sockets. */
  74554. +enum __socket_type
  74555. +{
  74556. + SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
  74557. + byte streams. */
  74558. +#define SOCK_STREAM SOCK_STREAM
  74559. + SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
  74560. + of fixed maximum length. */
  74561. +#define SOCK_DGRAM SOCK_DGRAM
  74562. + SOCK_RAW = 3, /* Raw protocol interface. */
  74563. +#define SOCK_RAW SOCK_RAW
  74564. + SOCK_RDM = 4, /* Reliably-delivered messages. */
  74565. +#define SOCK_RDM SOCK_RDM
  74566. + SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
  74567. + datagrams of fixed maximum length. */
  74568. +#define SOCK_SEQPACKET SOCK_SEQPACKET
  74569. + SOCK_DCCP = 6, /* Datagram Congestion Control Protocol. */
  74570. +#define SOCK_DCCP SOCK_DCCP
  74571. + SOCK_PACKET = 10, /* Linux specific way of getting packets
  74572. + at the dev level. For writing rarp and
  74573. + other similar things on the user level. */
  74574. +#define SOCK_PACKET SOCK_PACKET
  74575. +
  74576. + /* Flags to be ORed into the type parameter of socket and socketpair. */
  74577. +
  74578. + SOCK_CLOEXEC = 0x400000, /* Atomically set close-on-exec flag for the
  74579. + new descriptor(s). */
  74580. +#define SOCK_CLOEXEC SOCK_CLOEXEC
  74581. + SOCK_NONBLOCK = 0x004000 /* Atomically mark descriptor(s) as
  74582. + non-blocking. */
  74583. +#define SOCK_NONBLOCK SOCK_NONBLOCK
  74584. +};
  74585. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/sparc/bits/stackinfo.h
  74586. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  74587. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/stackinfo.h 2014-06-02 17:40:34.638715439 +0200
  74588. @@ -12,9 +12,8 @@
  74589. Lesser General Public License for more details.
  74590. You should have received a copy of the GNU Lesser General Public
  74591. - License along with the GNU C Library; if not, write to the Free
  74592. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74593. - 02111-1307 USA. */
  74594. + License along with the GNU C Library; if not, see
  74595. + <http://www.gnu.org/licenses/>. */
  74596. /* This file contains a bit of information about the stack allocation
  74597. of the processor. */
  74598. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/stat.h uClibc-git/libc/sysdeps/linux/sparc/bits/stat.h
  74599. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  74600. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/stat.h 2014-06-02 17:40:34.638715439 +0200
  74601. @@ -12,9 +12,8 @@
  74602. Lesser General Public License for more details.
  74603. You should have received a copy of the GNU Lesser General Public
  74604. - License along with the GNU C Library; if not, write to the Free
  74605. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74606. - 02111-1307 USA. */
  74607. + License along with the GNU C Library; if not, see
  74608. + <http://www.gnu.org/licenses/>. */
  74609. #ifndef _SYS_STAT_H
  74610. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  74611. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/termios.h uClibc-git/libc/sysdeps/linux/sparc/bits/termios.h
  74612. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/termios.h 2012-05-15 09:20:09.000000000 +0200
  74613. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/termios.h 2014-06-02 17:40:34.638715439 +0200
  74614. @@ -14,9 +14,8 @@
  74615. Lesser General Public License for more details.
  74616. You should have received a copy of the GNU Lesser General Public
  74617. - License along with the GNU C Library; if not, write to the Free
  74618. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74619. - 02111-1307 USA. */
  74620. + License along with the GNU C Library; if not, see
  74621. + <http://www.gnu.org/licenses/>. */
  74622. #ifndef _TERMIOS_H
  74623. # error "Never include <bits/termios.h> directly; use <termios.h> instead."
  74624. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/typesizes.h uClibc-git/libc/sysdeps/linux/sparc/bits/typesizes.h
  74625. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
  74626. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/typesizes.h 2014-06-02 17:40:34.638715439 +0200
  74627. @@ -13,9 +13,8 @@
  74628. Lesser General Public License for more details.
  74629. You should have received a copy of the GNU Lesser General Public
  74630. - License along with the GNU C Library; if not, write to the Free
  74631. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74632. - 02111-1307 USA. */
  74633. + License along with the GNU C Library; if not, see
  74634. + <http://www.gnu.org/licenses/>. */
  74635. #ifndef _BITS_TYPES_H
  74636. # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
  74637. 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
  74638. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  74639. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/uClibc_arch_features.h 2014-06-02 17:40:34.638715439 +0200
  74640. @@ -11,8 +11,8 @@
  74641. /* can your target use syscall6() for mmap ? */
  74642. #define __UCLIBC_MMAP_HAS_6_ARGS__
  74643. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  74644. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  74645. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  74646. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  74647. /* does your target have a broken create_module() ? */
  74648. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  74649. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/brk.c uClibc-git/libc/sysdeps/linux/sparc/brk.c
  74650. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/brk.c 2012-05-15 09:20:09.000000000 +0200
  74651. +++ uClibc-git/libc/sysdeps/linux/sparc/brk.c 2014-06-02 17:40:34.638715439 +0200
  74652. @@ -13,9 +13,8 @@
  74653. Lesser General Public License for more details.
  74654. You should have received a copy of the GNU Lesser General Public
  74655. - License along with the GNU C Library; if not, write to the Free
  74656. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74657. - 02111-1307 USA. */
  74658. + License along with the GNU C Library; if not, see
  74659. + <http://www.gnu.org/licenses/>. */
  74660. #include <errno.h>
  74661. #include <unistd.h>
  74662. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/clone.S uClibc-git/libc/sysdeps/linux/sparc/clone.S
  74663. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/clone.S 2012-05-15 09:20:09.000000000 +0200
  74664. +++ uClibc-git/libc/sysdeps/linux/sparc/clone.S 2014-06-02 17:40:34.638715439 +0200
  74665. @@ -14,9 +14,8 @@
  74666. Lesser General Public License for more details.
  74667. You should have received a copy of the GNU Lesser General Public
  74668. - License along with the GNU C Library; if not, write to the Free
  74669. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74670. - 02111-1307 USA. */
  74671. + License along with the GNU C Library; if not, see
  74672. + <http://www.gnu.org/licenses/>. */
  74673. /* clone() is even more special than fork() as it mucks with stacks
  74674. and invokes a function in the right context after its all over. */
  74675. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/crt1.S uClibc-git/libc/sysdeps/linux/sparc/crt1.S
  74676. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/crt1.S 2012-05-15 09:20:09.000000000 +0200
  74677. +++ uClibc-git/libc/sysdeps/linux/sparc/crt1.S 2014-06-02 17:40:34.638715439 +0200
  74678. @@ -31,9 +31,8 @@
  74679. Lesser General Public License for more details.
  74680. You should have received a copy of the GNU Lesser General Public
  74681. - License along with the GNU C Library; if not, write to the Free
  74682. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74683. - 02111-1307 USA. */
  74684. + License along with the GNU C Library; if not, see
  74685. + <http://www.gnu.org/licenses/>. */
  74686. /* Originally based on glibc's sysdeps/sparc/sparc{32,64}/elf/start.S */
  74687. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/fork.S uClibc-git/libc/sysdeps/linux/sparc/fork.S
  74688. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/fork.S 2012-05-15 09:20:09.000000000 +0200
  74689. +++ uClibc-git/libc/sysdeps/linux/sparc/fork.S 2014-06-02 17:40:34.638715439 +0200
  74690. @@ -13,9 +13,8 @@
  74691. Lesser General Public License for more details.
  74692. You should have received a copy of the GNU Lesser General Public
  74693. - License along with the GNU C Library; if not, write to the Free
  74694. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74695. - 02111-1307 USA. */
  74696. + License along with the GNU C Library; if not, see
  74697. + <http://www.gnu.org/licenses/>. */
  74698. /* Code taken from glibc2.2.2/sysdeps/unix/sysv/linux/sparc/vfork.S */
  74699. @@ -23,11 +22,14 @@
  74700. #include <sys/syscall.h>
  74701. .text
  74702. -.global __libc_fork
  74703. -.type __libc_fork,%function
  74704. +.global fork
  74705. +#ifdef __UCLIBC_HAS_THREADS__
  74706. +.weak fork
  74707. +#endif
  74708. +.type fork,%function
  74709. .align 4
  74710. -__libc_fork:
  74711. +fork:
  74712. mov __NR_fork, %g1
  74713. ta 0x10
  74714. bcc,a 9000f
  74715. @@ -44,6 +46,8 @@
  74716. retl
  74717. and %o0, %o1, %o0
  74718. -.size __libc_fork,.-__libc_fork
  74719. -weak_alias(__libc_fork,fork)
  74720. -libc_hidden_weak(fork)
  74721. +.size fork,.-fork
  74722. +#ifdef __UCLIBC_HAS_THREADS__
  74723. +strong_alias(fork,__libc_fork)
  74724. +#endif
  74725. +libc_hidden_def(fork)
  74726. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/fpu_control.h uClibc-git/libc/sysdeps/linux/sparc/fpu_control.h
  74727. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  74728. +++ uClibc-git/libc/sysdeps/linux/sparc/fpu_control.h 2014-06-02 17:40:34.638715439 +0200
  74729. @@ -14,9 +14,8 @@
  74730. Lesser General Public License for more details.
  74731. You should have received a copy of the GNU Lesser General Public
  74732. - License along with the GNU C Library; if not, write to the Free
  74733. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74734. - 02111-1307 USA. */
  74735. + License along with the GNU C Library; if not, see
  74736. + <http://www.gnu.org/licenses/>. */
  74737. #ifndef _FPU_CONTROL_H
  74738. #define _FPU_CONTROL_H 1
  74739. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/sparc/jmpbuf-offsets.h
  74740. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  74741. +++ uClibc-git/libc/sysdeps/linux/sparc/jmpbuf-offsets.h 2014-06-02 17:40:34.638715439 +0200
  74742. @@ -0,0 +1,29 @@
  74743. +/* Private macros for accessing __jmp_buf contents. SPARC version.
  74744. + Copyright (C) 2006 Free Software Foundation, Inc.
  74745. + This file is part of the GNU C Library.
  74746. +
  74747. + The GNU C Library is free software; you can redistribute it and/or
  74748. + modify it under the terms of the GNU Lesser General Public
  74749. + License as published by the Free Software Foundation; either
  74750. + version 2.1 of the License, or (at your option) any later version.
  74751. +
  74752. + The GNU C Library is distributed in the hope that it will be useful,
  74753. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  74754. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  74755. + Lesser General Public License for more details.
  74756. +
  74757. + You should have received a copy of the GNU Lesser General Public
  74758. + License along with the GNU C Library; if not, see
  74759. + <http://www.gnu.org/licenses/>. */
  74760. +
  74761. +#include <bits/wordsize.h>
  74762. +
  74763. +#if __WORDSIZE == 64
  74764. +#define O_mask_was_saved 512
  74765. +#define O_gregs 32
  74766. +#define O_g1 (O_gregs + 4*8)
  74767. +#else
  74768. +#define JB_SP 0
  74769. +#define JB_FP 1
  74770. +#define JB_PC 2
  74771. +#endif
  74772. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/sparc/jmpbuf-unwind.h
  74773. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  74774. +++ uClibc-git/libc/sysdeps/linux/sparc/jmpbuf-unwind.h 2014-06-02 17:40:34.638715439 +0200
  74775. @@ -0,0 +1,31 @@
  74776. +/*
  74777. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  74778. + *
  74779. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  74780. + */
  74781. +#include <setjmp.h>
  74782. +#include <jmpbuf-offsets.h>
  74783. +
  74784. +#if __WORDSIZE == 64
  74785. +
  74786. +/* Test if longjmp to JMPBUF would unwind the frame
  74787. + containing a local variable at ADDRESS. */
  74788. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  74789. + ((unsigned long int) (address) < (jmpbuf)->uc_mcontext.mc_fp)
  74790. +
  74791. +#else
  74792. +
  74793. +/* Test if longjmp to JMPBUF would unwind the frame
  74794. + containing a local variable at ADDRESS. */
  74795. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  74796. + ((int) (address) < (jmpbuf)[JB_SP])
  74797. +
  74798. +#endif
  74799. +
  74800. +#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  74801. +#if defined(__arch64__)
  74802. +#include "sparc64/jmpbuf-unwind.h"
  74803. +#else
  74804. +#include "sparc32/jmpbuf-unwind.h"
  74805. +#endif
  74806. +#endif
  74807. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/__longjmp.S uClibc-git/libc/sysdeps/linux/sparc/__longjmp.S
  74808. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  74809. +++ uClibc-git/libc/sysdeps/linux/sparc/__longjmp.S 2014-06-02 17:40:34.610715283 +0200
  74810. @@ -12,16 +12,11 @@
  74811. Lesser General Public License for more details.
  74812. You should have received a copy of the GNU Lesser General Public
  74813. - License along with the GNU C Library; if not, write to the Free
  74814. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74815. - 02111-1307 USA. */
  74816. + License along with the GNU C Library; if not, see
  74817. + <http://www.gnu.org/licenses/>. */
  74818. -#include <features.h>
  74819. -#include <sys/syscall.h>
  74820. +#include <jmpbuf-offsets.h>
  74821. -#define _ASM 1
  74822. -#define _SETJMP_H
  74823. -#include <bits/setjmp.h>
  74824. #define ENV(base,reg) [%base + (reg * 4)]
  74825. #define ST_FLUSH_WINDOWS 3
  74826. #define RW_FP [%fp + 0x48]
  74827. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/Makefile.arch uClibc-git/libc/sysdeps/linux/sparc/Makefile.arch
  74828. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  74829. +++ uClibc-git/libc/sysdeps/linux/sparc/Makefile.arch 2014-06-02 17:40:34.610715283 +0200
  74830. @@ -5,25 +5,23 @@
  74831. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  74832. #
  74833. -CSRC := brk.c __syscall_error.c sigaction.c
  74834. +CSRC-y := brk.c __syscall_error.c sigaction.c
  74835. -SSRC := \
  74836. +SSRC-y := \
  74837. __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
  74838. syscall.S urem.S udiv.S umul.S sdiv.S rem.S pipe.S
  74839. -ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
  74840. -SSRC += fork.S vfork.S clone.S
  74841. -endif
  74842. +SSRC-$(if $(UCLIBC_HAS_THREADS_NATIVE),,y) += fork.S vfork.S clone.S
  74843. # check weather __LONG_DOUBLE_128__ is defined (long double support)
  74844. 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)
  74845. ifeq ($(UCLIBC_SPARC_HAS_LONG_DOUBLE),y)
  74846. -CSRC += $(foreach f, \
  74847. +CSRC-y += $(addprefix soft-fp/, \
  74848. q_div.c q_fle.c q_mul.c q_qtoll.c q_stoq.c \
  74849. mp_clz_tab.c q_dtoq.c q_flt.c q_neg.c q_qtos.c q_sub.c \
  74850. q_add.c q_feq.c q_fne.c q_qtod.c q_qtou.c q_ulltoq.c \
  74851. q_cmp.c q_fge.c q_itoq.c q_qtoull.c q_util.c \
  74852. - q_cmpe.c q_fgt.c q_lltoq.c q_qtoi.c q_sqrt.c q_utoq.c, soft-fp/$(f))
  74853. + q_cmpe.c q_fgt.c q_lltoq.c q_qtoi.c q_sqrt.c q_utoq.c)
  74854. else
  74855. -CSRC += qp_ops.c
  74856. +CSRC-y += qp_ops.c
  74857. endif
  74858. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/pipe.S uClibc-git/libc/sysdeps/linux/sparc/pipe.S
  74859. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/pipe.S 2012-05-15 09:20:09.000000000 +0200
  74860. +++ uClibc-git/libc/sysdeps/linux/sparc/pipe.S 2014-06-02 17:40:34.638715439 +0200
  74861. @@ -13,10 +13,9 @@
  74862. Lesser General Public License for more details.
  74863. You should have received a copy of the GNU Lesser General Public
  74864. - License along with the GNU C Library; if not, write to the Free
  74865. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74866. - 02111-1307 USA.
  74867. -
  74868. + License along with the GNU C Library; if not, see
  74869. + <http://www.gnu.org/licenses/>.
  74870. +
  74871. Ported to uClibc by:
  74872. Austin Foxley, Ceton Corporation <austinf@cetoncorp.com>
  74873. */
  74874. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/setjmp.S uClibc-git/libc/sysdeps/linux/sparc/setjmp.S
  74875. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  74876. +++ uClibc-git/libc/sysdeps/linux/sparc/setjmp.S 2014-06-02 17:40:34.638715439 +0200
  74877. @@ -12,15 +12,11 @@
  74878. Lesser General Public License for more details.
  74879. You should have received a copy of the GNU Lesser General Public
  74880. - License along with the GNU C Library; if not, write to the Free
  74881. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74882. - 02111-1307 USA. */
  74883. + License along with the GNU C Library; if not, see
  74884. + <http://www.gnu.org/licenses/>. */
  74885. -#include <sys/syscall.h>
  74886. +#include <jmpbuf-offsets.h>
  74887. -#define _ASM 1
  74888. -#define _SETJMP_H
  74889. -#include <bits/setjmp.h>
  74890. #define ST_FLUSH_WINDOWS 3
  74891. .global _setjmp
  74892. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sigaction.c uClibc-git/libc/sysdeps/linux/sparc/sigaction.c
  74893. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sigaction.c 2012-05-15 09:20:09.000000000 +0200
  74894. +++ uClibc-git/libc/sysdeps/linux/sparc/sigaction.c 2014-06-02 17:40:34.638715439 +0200
  74895. @@ -14,9 +14,8 @@
  74896. Lesser General Public License for more details.
  74897. You should have received a copy of the GNU Lesser General Public
  74898. - License along with the GNU C Library; if not, write to the Free
  74899. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74900. - 02111-1307 USA.
  74901. + License along with the GNU C Library; if not, see
  74902. + <http://www.gnu.org/licenses/>.
  74903. Ported to uClibc from glibc: 090520:
  74904. Jan Buchholz, KIP, Uni Heidelberg <jan.buchholz@kip.uni-heidelberg.de>
  74905. 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
  74906. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/double.h 2012-05-15 09:20:09.000000000 +0200
  74907. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/double.h 2014-06-02 17:40:34.638715439 +0200
  74908. @@ -27,9 +27,8 @@
  74909. Lesser General Public License for more details.
  74910. You should have received a copy of the GNU Lesser General Public
  74911. - License along with the GNU C Library; if not, write to the Free
  74912. - Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
  74913. - MA 02110-1301, USA. */
  74914. + License along with the GNU C Library; if not, see
  74915. + <http://www.gnu.org/licenses/>. */
  74916. #if _FP_W_TYPE_SIZE < 32
  74917. #error "Here's a nickel kid. Go buy yourself a real computer."
  74918. 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
  74919. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/extended.h 2012-05-15 09:20:09.000000000 +0200
  74920. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/extended.h 2014-06-02 17:40:34.638715439 +0200
  74921. @@ -24,9 +24,8 @@
  74922. Lesser General Public License for more details.
  74923. You should have received a copy of the GNU Lesser General Public
  74924. - License along with the GNU C Library; if not, write to the Free
  74925. - Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
  74926. - MA 02110-1301, USA. */
  74927. + License along with the GNU C Library; if not, see
  74928. + <http://www.gnu.org/licenses/>. */
  74929. #if _FP_W_TYPE_SIZE < 32
  74930. #error "Here's a nickel, kid. Go buy yourself a real computer."
  74931. 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
  74932. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/longlong.h 2012-05-15 09:20:09.000000000 +0200
  74933. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/longlong.h 2014-06-02 17:40:34.638715439 +0200
  74934. @@ -15,9 +15,8 @@
  74935. Lesser General Public License for more details.
  74936. You should have received a copy of the GNU Lesser General Public
  74937. - License along with the GNU C Library; if not, write to the Free
  74938. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74939. - 02111-1307 USA. */
  74940. + License along with the GNU C Library; if not, see
  74941. + <http://www.gnu.org/licenses/>. */
  74942. /* You have to define the following before including this file:
  74943. 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
  74944. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/mp_clz_tab.c 2012-05-15 09:20:09.000000000 +0200
  74945. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/mp_clz_tab.c 2014-06-02 17:40:34.638715439 +0200
  74946. @@ -14,9 +14,8 @@
  74947. Lesser General Public License for more details.
  74948. You should have received a copy of the GNU Lesser General Public
  74949. - License along with the GNU C Library; if not, write to the Free
  74950. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74951. - 02111-1307 USA. */
  74952. + License along with the GNU C Library; if not, see
  74953. + <http://www.gnu.org/licenses/>. */
  74954. #if 0
  74955. #include <gmp.h>
  74956. 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
  74957. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-1.h 2012-05-15 09:20:09.000000000 +0200
  74958. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-1.h 2014-06-02 17:40:34.638715439 +0200
  74959. @@ -27,9 +27,8 @@
  74960. Lesser General Public License for more details.
  74961. You should have received a copy of the GNU Lesser General Public
  74962. - License along with the GNU C Library; if not, write to the Free
  74963. - Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
  74964. - MA 02110-1301, USA. */
  74965. + License along with the GNU C Library; if not, see
  74966. + <http://www.gnu.org/licenses/>. */
  74967. #define _FP_FRAC_DECL_1(X) _FP_W_TYPE X##_f
  74968. #define _FP_FRAC_COPY_1(D,S) (D##_f = S##_f)
  74969. 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
  74970. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-2.h 2012-05-15 09:20:09.000000000 +0200
  74971. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-2.h 2014-06-02 17:40:34.638715439 +0200
  74972. @@ -27,9 +27,8 @@
  74973. Lesser General Public License for more details.
  74974. You should have received a copy of the GNU Lesser General Public
  74975. - License along with the GNU C Library; if not, write to the Free
  74976. - Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
  74977. - MA 02110-1301, USA. */
  74978. + License along with the GNU C Library; if not, see
  74979. + <http://www.gnu.org/licenses/>. */
  74980. #define _FP_FRAC_DECL_2(X) _FP_W_TYPE X##_f0, X##_f1
  74981. #define _FP_FRAC_COPY_2(D,S) (D##_f0 = S##_f0, D##_f1 = S##_f1)
  74982. 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
  74983. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-4.h 2012-05-15 09:20:09.000000000 +0200
  74984. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-4.h 2014-06-02 17:40:34.642715461 +0200
  74985. @@ -27,9 +27,8 @@
  74986. Lesser General Public License for more details.
  74987. You should have received a copy of the GNU Lesser General Public
  74988. - License along with the GNU C Library; if not, write to the Free
  74989. - Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
  74990. - MA 02110-1301, USA. */
  74991. + License along with the GNU C Library; if not, see
  74992. + <http://www.gnu.org/licenses/>. */
  74993. #define _FP_FRAC_DECL_4(X) _FP_W_TYPE X##_f[4]
  74994. #define _FP_FRAC_COPY_4(D,S) \
  74995. 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
  74996. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-8.h 2012-05-15 09:20:09.000000000 +0200
  74997. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-8.h 2014-06-02 17:40:34.642715461 +0200
  74998. @@ -26,9 +26,8 @@
  74999. Lesser General Public License for more details.
  75000. You should have received a copy of the GNU Lesser General Public
  75001. - License along with the GNU C Library; if not, write to the Free
  75002. - Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
  75003. - MA 02110-1301, USA. */
  75004. + License along with the GNU C Library; if not, see
  75005. + <http://www.gnu.org/licenses/>. */
  75006. /* We need just a few things from here for op-4, if we ever need some
  75007. other macros, they can be added. */
  75008. 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
  75009. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-common.h 2012-05-15 09:20:09.000000000 +0200
  75010. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-common.h 2014-06-02 17:40:34.642715461 +0200
  75011. @@ -26,9 +26,8 @@
  75012. Lesser General Public License for more details.
  75013. You should have received a copy of the GNU Lesser General Public
  75014. - License along with the GNU C Library; if not, write to the Free
  75015. - Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
  75016. - MA 02110-1301, USA. */
  75017. + License along with the GNU C Library; if not, see
  75018. + <http://www.gnu.org/licenses/>. */
  75019. #define _FP_DECL(wc, X) \
  75020. _FP_I_TYPE X##_c __attribute__((unused)), X##_s, X##_e; \
  75021. 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
  75022. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_add.c 2012-05-15 09:20:09.000000000 +0200
  75023. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_add.c 2014-06-02 17:40:34.642715461 +0200
  75024. @@ -16,9 +16,8 @@
  75025. Lesser General Public License for more details.
  75026. You should have received a copy of the GNU Lesser General Public
  75027. - License along with the GNU C Library; if not, write to the Free
  75028. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75029. - 02111-1307 USA. */
  75030. + License along with the GNU C Library; if not, see
  75031. + <http://www.gnu.org/licenses/>. */
  75032. #include "soft-fp.h"
  75033. #include "quad.h"
  75034. 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
  75035. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_cmp.c 2012-05-15 09:20:09.000000000 +0200
  75036. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_cmp.c 2014-06-02 17:40:34.642715461 +0200
  75037. @@ -16,9 +16,8 @@
  75038. Lesser General Public License for more details.
  75039. You should have received a copy of the GNU Lesser General Public
  75040. - License along with the GNU C Library; if not, write to the Free
  75041. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75042. - 02111-1307 USA. */
  75043. + License along with the GNU C Library; if not, see
  75044. + <http://www.gnu.org/licenses/>. */
  75045. #include "soft-fp.h"
  75046. #include "quad.h"
  75047. 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
  75048. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_cmpe.c 2012-05-15 09:20:09.000000000 +0200
  75049. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_cmpe.c 2014-06-02 17:40:34.642715461 +0200
  75050. @@ -17,9 +17,8 @@
  75051. Lesser General Public License for more details.
  75052. You should have received a copy of the GNU Lesser General Public
  75053. - License along with the GNU C Library; if not, write to the Free
  75054. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75055. - 02111-1307 USA. */
  75056. + License along with the GNU C Library; if not, see
  75057. + <http://www.gnu.org/licenses/>. */
  75058. #include "soft-fp.h"
  75059. #include "quad.h"
  75060. 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
  75061. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_div.c 2012-05-15 09:20:09.000000000 +0200
  75062. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_div.c 2014-06-02 17:40:34.642715461 +0200
  75063. @@ -16,9 +16,8 @@
  75064. Lesser General Public License for more details.
  75065. You should have received a copy of the GNU Lesser General Public
  75066. - License along with the GNU C Library; if not, write to the Free
  75067. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75068. - 02111-1307 USA. */
  75069. + License along with the GNU C Library; if not, see
  75070. + <http://www.gnu.org/licenses/>. */
  75071. #include "soft-fp.h"
  75072. #include "quad.h"
  75073. 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
  75074. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_dtoq.c 2012-05-15 09:20:09.000000000 +0200
  75075. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_dtoq.c 2014-06-02 17:40:34.642715461 +0200
  75076. @@ -16,9 +16,8 @@
  75077. Lesser General Public License for more details.
  75078. You should have received a copy of the GNU Lesser General Public
  75079. - License along with the GNU C Library; if not, write to the Free
  75080. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75081. - 02111-1307 USA. */
  75082. + License along with the GNU C Library; if not, see
  75083. + <http://www.gnu.org/licenses/>. */
  75084. #include "soft-fp.h"
  75085. #include "double.h"
  75086. 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
  75087. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_feq.c 2012-05-15 09:20:09.000000000 +0200
  75088. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_feq.c 2014-06-02 17:40:34.642715461 +0200
  75089. @@ -16,9 +16,8 @@
  75090. Lesser General Public License for more details.
  75091. You should have received a copy of the GNU Lesser General Public
  75092. - License along with the GNU C Library; if not, write to the Free
  75093. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75094. - 02111-1307 USA. */
  75095. + License along with the GNU C Library; if not, see
  75096. + <http://www.gnu.org/licenses/>. */
  75097. #include "soft-fp.h"
  75098. #include "quad.h"
  75099. 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
  75100. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_fge.c 2012-05-15 09:20:09.000000000 +0200
  75101. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_fge.c 2014-06-02 17:40:34.642715461 +0200
  75102. @@ -16,9 +16,8 @@
  75103. Lesser General Public License for more details.
  75104. You should have received a copy of the GNU Lesser General Public
  75105. - License along with the GNU C Library; if not, write to the Free
  75106. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75107. - 02111-1307 USA. */
  75108. + License along with the GNU C Library; if not, see
  75109. + <http://www.gnu.org/licenses/>. */
  75110. #include "soft-fp.h"
  75111. #include "quad.h"
  75112. 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
  75113. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_fgt.c 2012-05-15 09:20:09.000000000 +0200
  75114. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_fgt.c 2014-06-02 17:40:34.642715461 +0200
  75115. @@ -16,9 +16,8 @@
  75116. Lesser General Public License for more details.
  75117. You should have received a copy of the GNU Lesser General Public
  75118. - License along with the GNU C Library; if not, write to the Free
  75119. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75120. - 02111-1307 USA. */
  75121. + License along with the GNU C Library; if not, see
  75122. + <http://www.gnu.org/licenses/>. */
  75123. #include "soft-fp.h"
  75124. #include "quad.h"
  75125. 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
  75126. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_fle.c 2012-05-15 09:20:09.000000000 +0200
  75127. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_fle.c 2014-06-02 17:40:34.642715461 +0200
  75128. @@ -16,9 +16,8 @@
  75129. Lesser General Public License for more details.
  75130. You should have received a copy of the GNU Lesser General Public
  75131. - License along with the GNU C Library; if not, write to the Free
  75132. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75133. - 02111-1307 USA. */
  75134. + License along with the GNU C Library; if not, see
  75135. + <http://www.gnu.org/licenses/>. */
  75136. #include "soft-fp.h"
  75137. #include "quad.h"
  75138. 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
  75139. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_flt.c 2012-05-15 09:20:09.000000000 +0200
  75140. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_flt.c 2014-06-02 17:40:34.642715461 +0200
  75141. @@ -16,9 +16,8 @@
  75142. Lesser General Public License for more details.
  75143. You should have received a copy of the GNU Lesser General Public
  75144. - License along with the GNU C Library; if not, write to the Free
  75145. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75146. - 02111-1307 USA. */
  75147. + License along with the GNU C Library; if not, see
  75148. + <http://www.gnu.org/licenses/>. */
  75149. #include "soft-fp.h"
  75150. #include "quad.h"
  75151. 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
  75152. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_fne.c 2012-05-15 09:20:09.000000000 +0200
  75153. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_fne.c 2014-06-02 17:40:34.642715461 +0200
  75154. @@ -16,9 +16,8 @@
  75155. Lesser General Public License for more details.
  75156. You should have received a copy of the GNU Lesser General Public
  75157. - License along with the GNU C Library; if not, write to the Free
  75158. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75159. - 02111-1307 USA. */
  75160. + License along with the GNU C Library; if not, see
  75161. + <http://www.gnu.org/licenses/>. */
  75162. #include "soft-fp.h"
  75163. #include "quad.h"
  75164. 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
  75165. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_itoq.c 2012-05-15 09:20:09.000000000 +0200
  75166. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_itoq.c 2014-06-02 17:40:34.642715461 +0200
  75167. @@ -16,9 +16,8 @@
  75168. Lesser General Public License for more details.
  75169. You should have received a copy of the GNU Lesser General Public
  75170. - License along with the GNU C Library; if not, write to the Free
  75171. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75172. - 02111-1307 USA. */
  75173. + License along with the GNU C Library; if not, see
  75174. + <http://www.gnu.org/licenses/>. */
  75175. #include "soft-fp.h"
  75176. #include "quad.h"
  75177. 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
  75178. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_lltoq.c 2012-05-15 09:20:09.000000000 +0200
  75179. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_lltoq.c 2014-06-02 17:40:34.642715461 +0200
  75180. @@ -16,9 +16,8 @@
  75181. Lesser General Public License for more details.
  75182. You should have received a copy of the GNU Lesser General Public
  75183. - License along with the GNU C Library; if not, write to the Free
  75184. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75185. - 02111-1307 USA. */
  75186. + License along with the GNU C Library; if not, see
  75187. + <http://www.gnu.org/licenses/>. */
  75188. #include "soft-fp.h"
  75189. #include "quad.h"
  75190. 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
  75191. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_mul.c 2012-05-15 09:20:09.000000000 +0200
  75192. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_mul.c 2014-06-02 17:40:34.642715461 +0200
  75193. @@ -16,9 +16,8 @@
  75194. Lesser General Public License for more details.
  75195. You should have received a copy of the GNU Lesser General Public
  75196. - License along with the GNU C Library; if not, write to the Free
  75197. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75198. - 02111-1307 USA. */
  75199. + License along with the GNU C Library; if not, see
  75200. + <http://www.gnu.org/licenses/>. */
  75201. #include "soft-fp.h"
  75202. #include "quad.h"
  75203. 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
  75204. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_neg.c 2012-05-15 09:20:09.000000000 +0200
  75205. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_neg.c 2014-06-02 17:40:34.642715461 +0200
  75206. @@ -16,9 +16,8 @@
  75207. Lesser General Public License for more details.
  75208. You should have received a copy of the GNU Lesser General Public
  75209. - License along with the GNU C Library; if not, write to the Free
  75210. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75211. - 02111-1307 USA. */
  75212. + License along with the GNU C Library; if not, see
  75213. + <http://www.gnu.org/licenses/>. */
  75214. #include "soft-fp.h"
  75215. #include "quad.h"
  75216. 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
  75217. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtod.c 2012-05-15 09:20:09.000000000 +0200
  75218. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtod.c 2014-06-02 17:40:34.642715461 +0200
  75219. @@ -16,9 +16,8 @@
  75220. Lesser General Public License for more details.
  75221. You should have received a copy of the GNU Lesser General Public
  75222. - License along with the GNU C Library; if not, write to the Free
  75223. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75224. - 02111-1307 USA. */
  75225. + License along with the GNU C Library; if not, see
  75226. + <http://www.gnu.org/licenses/>. */
  75227. #include "soft-fp.h"
  75228. #include "double.h"
  75229. 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
  75230. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtoi.c 2012-05-15 09:20:09.000000000 +0200
  75231. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtoi.c 2014-06-02 17:40:34.642715461 +0200
  75232. @@ -16,9 +16,8 @@
  75233. Lesser General Public License for more details.
  75234. You should have received a copy of the GNU Lesser General Public
  75235. - License along with the GNU C Library; if not, write to the Free
  75236. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75237. - 02111-1307 USA. */
  75238. + License along with the GNU C Library; if not, see
  75239. + <http://www.gnu.org/licenses/>. */
  75240. #define FP_ROUNDMODE FP_RND_ZERO
  75241. #include "soft-fp.h"
  75242. 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
  75243. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtoll.c 2012-05-15 09:20:09.000000000 +0200
  75244. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtoll.c 2014-06-02 17:40:34.642715461 +0200
  75245. @@ -16,9 +16,8 @@
  75246. Lesser General Public License for more details.
  75247. You should have received a copy of the GNU Lesser General Public
  75248. - License along with the GNU C Library; if not, write to the Free
  75249. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75250. - 02111-1307 USA. */
  75251. + License along with the GNU C Library; if not, see
  75252. + <http://www.gnu.org/licenses/>. */
  75253. #define FP_ROUNDMODE FP_RND_ZERO
  75254. #include "soft-fp.h"
  75255. 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
  75256. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtos.c 2012-05-15 09:20:09.000000000 +0200
  75257. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtos.c 2014-06-02 17:40:34.642715461 +0200
  75258. @@ -16,9 +16,8 @@
  75259. Lesser General Public License for more details.
  75260. You should have received a copy of the GNU Lesser General Public
  75261. - License along with the GNU C Library; if not, write to the Free
  75262. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75263. - 02111-1307 USA. */
  75264. + License along with the GNU C Library; if not, see
  75265. + <http://www.gnu.org/licenses/>. */
  75266. #include "soft-fp.h"
  75267. #include "single.h"
  75268. 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
  75269. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtou.c 2012-05-15 09:20:09.000000000 +0200
  75270. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtou.c 2014-06-02 17:40:34.642715461 +0200
  75271. @@ -16,9 +16,8 @@
  75272. Lesser General Public License for more details.
  75273. You should have received a copy of the GNU Lesser General Public
  75274. - License along with the GNU C Library; if not, write to the Free
  75275. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75276. - 02111-1307 USA. */
  75277. + License along with the GNU C Library; if not, see
  75278. + <http://www.gnu.org/licenses/>. */
  75279. #define FP_ROUNDMODE FP_RND_ZERO
  75280. #include "soft-fp.h"
  75281. 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
  75282. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtoull.c 2012-05-15 09:20:09.000000000 +0200
  75283. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtoull.c 2014-06-02 17:40:34.642715461 +0200
  75284. @@ -16,9 +16,8 @@
  75285. Lesser General Public License for more details.
  75286. You should have received a copy of the GNU Lesser General Public
  75287. - License along with the GNU C Library; if not, write to the Free
  75288. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75289. - 02111-1307 USA. */
  75290. + License along with the GNU C Library; if not, see
  75291. + <http://www.gnu.org/licenses/>. */
  75292. #define FP_ROUNDMODE FP_RND_ZERO
  75293. #include "soft-fp.h"
  75294. 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
  75295. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_sqrt.c 2012-05-15 09:20:09.000000000 +0200
  75296. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_sqrt.c 2014-06-02 17:40:34.642715461 +0200
  75297. @@ -16,9 +16,8 @@
  75298. Lesser General Public License for more details.
  75299. You should have received a copy of the GNU Lesser General Public
  75300. - License along with the GNU C Library; if not, write to the Free
  75301. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75302. - 02111-1307 USA. */
  75303. + License along with the GNU C Library; if not, see
  75304. + <http://www.gnu.org/licenses/>. */
  75305. #include "soft-fp.h"
  75306. #include "quad.h"
  75307. 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
  75308. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_stoq.c 2012-05-15 09:20:09.000000000 +0200
  75309. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_stoq.c 2014-06-02 17:40:34.642715461 +0200
  75310. @@ -16,9 +16,8 @@
  75311. Lesser General Public License for more details.
  75312. You should have received a copy of the GNU Lesser General Public
  75313. - License along with the GNU C Library; if not, write to the Free
  75314. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75315. - 02111-1307 USA. */
  75316. + License along with the GNU C Library; if not, see
  75317. + <http://www.gnu.org/licenses/>. */
  75318. #include "soft-fp.h"
  75319. #include "single.h"
  75320. 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
  75321. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_sub.c 2012-05-15 09:20:09.000000000 +0200
  75322. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_sub.c 2014-06-02 17:40:34.642715461 +0200
  75323. @@ -16,9 +16,8 @@
  75324. Lesser General Public License for more details.
  75325. You should have received a copy of the GNU Lesser General Public
  75326. - License along with the GNU C Library; if not, write to the Free
  75327. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75328. - 02111-1307 USA. */
  75329. + License along with the GNU C Library; if not, see
  75330. + <http://www.gnu.org/licenses/>. */
  75331. #include "soft-fp.h"
  75332. #include "quad.h"
  75333. 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
  75334. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/quad.h 2012-05-15 09:20:09.000000000 +0200
  75335. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/quad.h 2014-06-02 17:40:34.662715572 +0200
  75336. @@ -27,9 +27,8 @@
  75337. Lesser General Public License for more details.
  75338. You should have received a copy of the GNU Lesser General Public
  75339. - License along with the GNU C Library; if not, write to the Free
  75340. - Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
  75341. - MA 02110-1301, USA. */
  75342. + License along with the GNU C Library; if not, see
  75343. + <http://www.gnu.org/licenses/>. */
  75344. #if _FP_W_TYPE_SIZE < 32
  75345. #error "Here's a nickel, kid. Go buy yourself a real computer."
  75346. 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
  75347. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_ulltoq.c 2012-05-15 09:20:09.000000000 +0200
  75348. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_ulltoq.c 2014-06-02 17:40:34.642715461 +0200
  75349. @@ -16,9 +16,8 @@
  75350. Lesser General Public License for more details.
  75351. You should have received a copy of the GNU Lesser General Public
  75352. - License along with the GNU C Library; if not, write to the Free
  75353. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75354. - 02111-1307 USA. */
  75355. + License along with the GNU C Library; if not, see
  75356. + <http://www.gnu.org/licenses/>. */
  75357. #include "soft-fp.h"
  75358. #include "quad.h"
  75359. 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
  75360. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_util.c 2012-05-15 09:20:09.000000000 +0200
  75361. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_util.c 2014-06-02 17:40:34.642715461 +0200
  75362. @@ -16,9 +16,8 @@
  75363. Lesser General Public License for more details.
  75364. You should have received a copy of the GNU Lesser General Public
  75365. - License along with the GNU C Library; if not, write to the Free
  75366. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75367. - 02111-1307 USA. */
  75368. + License along with the GNU C Library; if not, see
  75369. + <http://www.gnu.org/licenses/>. */
  75370. #include "soft-fp.h"
  75371. 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
  75372. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_utoq.c 2012-05-15 09:20:09.000000000 +0200
  75373. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_utoq.c 2014-06-02 17:40:34.662715572 +0200
  75374. @@ -16,9 +16,8 @@
  75375. Lesser General Public License for more details.
  75376. You should have received a copy of the GNU Lesser General Public
  75377. - License along with the GNU C Library; if not, write to the Free
  75378. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75379. - 02111-1307 USA. */
  75380. + License along with the GNU C Library; if not, see
  75381. + <http://www.gnu.org/licenses/>. */
  75382. #include "soft-fp.h"
  75383. #include "quad.h"
  75384. 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
  75385. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/sfp-machine.h 2012-05-15 09:20:09.000000000 +0200
  75386. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/sfp-machine.h 2014-06-02 17:40:34.662715572 +0200
  75387. @@ -17,9 +17,8 @@
  75388. Lesser General Public License for more details.
  75389. You should have received a copy of the GNU Lesser General Public
  75390. - License along with the GNU C Library; if not, write to the Free
  75391. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75392. - 02111-1307 USA. */
  75393. + License along with the GNU C Library; if not, see
  75394. + <http://www.gnu.org/licenses/>. */
  75395. #include <fpu_control.h>
  75396. #include <stdlib.h>
  75397. 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
  75398. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/single.h 2012-05-15 09:20:09.000000000 +0200
  75399. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/single.h 2014-06-02 17:40:34.662715572 +0200
  75400. @@ -27,9 +27,8 @@
  75401. Lesser General Public License for more details.
  75402. You should have received a copy of the GNU Lesser General Public
  75403. - License along with the GNU C Library; if not, write to the Free
  75404. - Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
  75405. - MA 02110-1301, USA. */
  75406. + License along with the GNU C Library; if not, see
  75407. + <http://www.gnu.org/licenses/>. */
  75408. #if _FP_W_TYPE_SIZE < 32
  75409. #error "Here's a nickel kid. Go buy yourself a real computer."
  75410. 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
  75411. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/soft-fp.h 2012-05-15 09:20:09.000000000 +0200
  75412. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/soft-fp.h 2014-06-02 17:40:34.662715572 +0200
  75413. @@ -27,9 +27,8 @@
  75414. Lesser General Public License for more details.
  75415. You should have received a copy of the GNU Lesser General Public
  75416. - License along with the GNU C Library; if not, write to the Free
  75417. - Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
  75418. - MA 02110-1301, USA. */
  75419. + License along with the GNU C Library; if not, see
  75420. + <http://www.gnu.org/licenses/>. */
  75421. #ifndef SOFT_FP_H
  75422. #define SOFT_FP_H
  75423. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sparcv9/clone.S uClibc-git/libc/sysdeps/linux/sparc/sparcv9/clone.S
  75424. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sparcv9/clone.S 2012-05-15 09:20:09.000000000 +0200
  75425. +++ uClibc-git/libc/sysdeps/linux/sparc/sparcv9/clone.S 2014-06-02 17:40:34.662715572 +0200
  75426. @@ -13,9 +13,8 @@
  75427. Lesser General Public License for more details.
  75428. You should have received a copy of the GNU Lesser General Public
  75429. - License along with the GNU C Library; if not, write to the Free
  75430. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75431. - 02111-1307 USA. */
  75432. + License along with the GNU C Library; if not, see
  75433. + <http://www.gnu.org/licenses/>. */
  75434. /* clone() is even more special than fork() as it mucks with stacks
  75435. and invokes a function in the right context after its all over. */
  75436. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/procfs.h uClibc-git/libc/sysdeps/linux/sparc/sys/procfs.h
  75437. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  75438. +++ uClibc-git/libc/sysdeps/linux/sparc/sys/procfs.h 2014-06-02 17:40:34.662715572 +0200
  75439. @@ -12,9 +12,8 @@
  75440. Lesser General Public License for more details.
  75441. You should have received a copy of the GNU Lesser General Public
  75442. - License along with the GNU C Library; if not, write to the Free
  75443. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75444. - 02111-1307 USA. */
  75445. + License along with the GNU C Library; if not, see
  75446. + <http://www.gnu.org/licenses/>. */
  75447. #ifndef _SYS_PROCFS_H
  75448. #define _SYS_PROCFS_H 1
  75449. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/ptrace.h uClibc-git/libc/sysdeps/linux/sparc/sys/ptrace.h
  75450. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
  75451. +++ uClibc-git/libc/sysdeps/linux/sparc/sys/ptrace.h 2014-06-02 17:40:34.662715572 +0200
  75452. @@ -13,9 +13,8 @@
  75453. Lesser General Public License for more details.
  75454. You should have received a copy of the GNU Lesser General Public
  75455. - License along with the GNU C Library; if not, write to the Free
  75456. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75457. - 02111-1307 USA. */
  75458. + License along with the GNU C Library; if not, see
  75459. + <http://www.gnu.org/licenses/>. */
  75460. #ifndef _SYS_PTRACE_H
  75461. #define _SYS_PTRACE_H 1
  75462. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/ucontext.h uClibc-git/libc/sysdeps/linux/sparc/sys/ucontext.h
  75463. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  75464. +++ uClibc-git/libc/sysdeps/linux/sparc/sys/ucontext.h 2014-06-02 17:40:34.662715572 +0200
  75465. @@ -12,9 +12,8 @@
  75466. Lesser General Public License for more details.
  75467. You should have received a copy of the GNU Lesser General Public
  75468. - License along with the GNU C Library; if not, write to the Free
  75469. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75470. - 02111-1307 USA. */
  75471. + License along with the GNU C Library; if not, see
  75472. + <http://www.gnu.org/licenses/>. */
  75473. #ifndef _SYS_UCONTEXT_H
  75474. #define _SYS_UCONTEXT_H 1
  75475. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/user.h uClibc-git/libc/sysdeps/linux/sparc/sys/user.h
  75476. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/user.h 2012-05-15 09:20:09.000000000 +0200
  75477. +++ uClibc-git/libc/sysdeps/linux/sparc/sys/user.h 2014-06-02 17:40:34.662715572 +0200
  75478. @@ -12,9 +12,8 @@
  75479. Lesser General Public License for more details.
  75480. You should have received a copy of the GNU Lesser General Public
  75481. - License along with the GNU C Library; if not, write to the Free
  75482. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75483. - 02111-1307 USA. */
  75484. + License along with the GNU C Library; if not, see
  75485. + <http://www.gnu.org/licenses/>. */
  75486. #ifndef _SYS_USER_H
  75487. #define _SYS_USER_H 1
  75488. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/syscall.S uClibc-git/libc/sysdeps/linux/sparc/syscall.S
  75489. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/syscall.S 2012-05-15 09:20:09.000000000 +0200
  75490. +++ uClibc-git/libc/sysdeps/linux/sparc/syscall.S 2014-06-02 17:40:34.666715593 +0200
  75491. @@ -12,9 +12,8 @@
  75492. Lesser General Public License for more details.
  75493. You should have received a copy of the GNU Lesser General Public
  75494. - License along with the GNU C Library; if not, write to the Free
  75495. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75496. - 02111-1307 USA. */
  75497. + License along with the GNU C Library; if not, see
  75498. + <http://www.gnu.org/licenses/>. */
  75499. #include <features.h>
  75500. #include <sys/syscall.h>
  75501. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/vfork.S uClibc-git/libc/sysdeps/linux/sparc/vfork.S
  75502. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/vfork.S 2012-05-15 09:20:09.000000000 +0200
  75503. +++ uClibc-git/libc/sysdeps/linux/sparc/vfork.S 2014-06-02 17:40:34.666715593 +0200
  75504. @@ -13,9 +13,8 @@
  75505. Lesser General Public License for more details.
  75506. You should have received a copy of the GNU Lesser General Public
  75507. - License along with the GNU C Library; if not, write to the Free
  75508. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75509. - 02111-1307 USA. */
  75510. + License along with the GNU C Library; if not, see
  75511. + <http://www.gnu.org/licenses/>. */
  75512. /* Code taken from glibc2.2.2/sysdeps/unix/sysv/linux/sparc/vfork.S */
  75513. @@ -52,4 +51,4 @@
  75514. .size __vfork,.-__vfork
  75515. weak_alias(__vfork,vfork)
  75516. -libc_hidden_weak(vfork)
  75517. +libc_hidden_def(vfork)
  75518. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/fcntl.h uClibc-git/libc/sysdeps/linux/v850/bits/fcntl.h
  75519. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  75520. +++ uClibc-git/libc/sysdeps/linux/v850/bits/fcntl.h 2014-06-02 17:40:34.666715593 +0200
  75521. @@ -13,9 +13,8 @@
  75522. Lesser General Public License for more details.
  75523. You should have received a copy of the GNU Lesser General Public
  75524. - License along with the GNU C Library; if not, write to the Free
  75525. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75526. - 02111-1307 USA. */
  75527. + License along with the GNU C Library; if not, see
  75528. + <http://www.gnu.org/licenses/>. */
  75529. #ifndef _FCNTL_H
  75530. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  75531. 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
  75532. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  75533. +++ uClibc-git/libc/sysdeps/linux/v850/bits/kernel_types.h 2014-06-02 17:40:34.666715593 +0200
  75534. @@ -41,6 +41,8 @@
  75535. typedef unsigned short __kernel_old_uid_t;
  75536. typedef unsigned short __kernel_old_gid_t;
  75537. typedef __kernel_dev_t __kernel_old_dev_t;
  75538. +typedef long __kernel_long_t;
  75539. +typedef unsigned long __kernel_ulong_t;
  75540. typedef struct {
  75541. #ifdef __USE_ALL
  75542. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/poll.h uClibc-git/libc/sysdeps/linux/v850/bits/poll.h
  75543. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/poll.h 2012-05-15 09:20:09.000000000 +0200
  75544. +++ uClibc-git/libc/sysdeps/linux/v850/bits/poll.h 2014-06-02 17:40:34.666715593 +0200
  75545. @@ -12,9 +12,8 @@
  75546. Lesser General Public License for more details.
  75547. You should have received a copy of the GNU Lesser General Public
  75548. - License along with the GNU C Library; if not, write to the Free
  75549. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75550. - 02111-1307 USA. */
  75551. + License along with the GNU C Library; if not, see
  75552. + <http://www.gnu.org/licenses/>. */
  75553. #ifndef _SYS_POLL_H
  75554. # error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
  75555. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/setjmp.h uClibc-git/libc/sysdeps/linux/v850/bits/setjmp.h
  75556. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  75557. +++ uClibc-git/libc/sysdeps/linux/v850/bits/setjmp.h 2014-06-02 17:40:34.666715593 +0200
  75558. @@ -18,7 +18,6 @@
  75559. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  75560. #endif
  75561. -#ifndef _ASM
  75562. typedef struct
  75563. {
  75564. /* Stack pointer. */
  75565. @@ -30,13 +29,5 @@
  75566. /* Callee-saved registers r2 and r20-r29. */
  75567. int __regs[11];
  75568. } __jmp_buf[1];
  75569. -#endif
  75570. -
  75571. -#define JB_SIZE (4 * 13)
  75572. -
  75573. -/* Test if longjmp to JMPBUF would unwind the frame
  75574. - containing a local variable at ADDRESS. */
  75575. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  75576. - ((void *) (address) < (void *) (jmpbuf)[0].__sp)
  75577. #endif /* bits/setjmp.h */
  75578. 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
  75579. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  75580. +++ uClibc-git/libc/sysdeps/linux/v850/bits/uClibc_arch_features.h 2014-06-02 17:40:34.666715593 +0200
  75581. @@ -10,10 +10,10 @@
  75582. #undef __UCLIBC_ABORT_INSTRUCTION__
  75583. /* can your target use syscall6() for mmap ? */
  75584. -#undef __UCLIBC_MMAP_HAS_6_ARGS__
  75585. +#define __UCLIBC_MMAP_HAS_6_ARGS__
  75586. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  75587. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  75588. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  75589. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  75590. /* does your target have a broken create_module() ? */
  75591. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  75592. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/wordsize.h uClibc-git/libc/sysdeps/linux/v850/bits/wordsize.h
  75593. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  75594. +++ uClibc-git/libc/sysdeps/linux/v850/bits/wordsize.h 2014-06-02 17:40:34.666715593 +0200
  75595. @@ -12,8 +12,7 @@
  75596. Lesser General Public License for more details.
  75597. You should have received a copy of the GNU Lesser General Public
  75598. - License along with the GNU C Library; if not, write to the Free
  75599. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75600. - 02111-1307 USA. */
  75601. + License along with the GNU C Library; if not, see
  75602. + <http://www.gnu.org/licenses/>. */
  75603. #define __WORDSIZE 32
  75604. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/v850/jmpbuf-offsets.h
  75605. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  75606. +++ uClibc-git/libc/sysdeps/linux/v850/jmpbuf-offsets.h 2014-06-02 17:40:34.666715593 +0200
  75607. @@ -0,0 +1,6 @@
  75608. +/*
  75609. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  75610. + *
  75611. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  75612. + */
  75613. +#define JB_SIZE (4 * 13)
  75614. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/v850/jmpbuf-unwind.h
  75615. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  75616. +++ uClibc-git/libc/sysdeps/linux/v850/jmpbuf-unwind.h 2014-06-02 17:40:34.666715593 +0200
  75617. @@ -0,0 +1,11 @@
  75618. +/*
  75619. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  75620. + *
  75621. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  75622. + */
  75623. +#include <setjmp.h>
  75624. +
  75625. +/* Test if longjmp to JMPBUF would unwind the frame
  75626. + containing a local variable at ADDRESS. */
  75627. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  75628. + ((void *) (address) < (void *) (jmpbuf)[0].__sp)
  75629. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/__longjmp.S uClibc-git/libc/sysdeps/linux/v850/__longjmp.S
  75630. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  75631. +++ uClibc-git/libc/sysdeps/linux/v850/__longjmp.S 2014-06-02 17:40:34.666715593 +0200
  75632. @@ -11,11 +11,6 @@
  75633. * Written by Miles Bader <miles@gnu.org>
  75634. */
  75635. -#include <features.h>
  75636. -#define _SETJMP_H
  75637. -#define _ASM
  75638. -#include <bits/setjmp.h>
  75639. -
  75640. #include <clinkage.h>
  75641. .text
  75642. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/Makefile uClibc-git/libc/sysdeps/linux/v850/Makefile
  75643. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/Makefile 2012-05-15 09:20:09.000000000 +0200
  75644. +++ uClibc-git/libc/sysdeps/linux/v850/Makefile 2014-06-02 17:40:34.666715593 +0200
  75645. @@ -20,7 +20,7 @@
  75646. SSRC := setjmp.S __longjmp.S vfork.S
  75647. SOBJ := $(patsubst %.S,%.o, $(SSRC))
  75648. -CSRC := mmap.c syscall.c clone.c
  75649. +CSRC := syscall.c clone.c
  75650. COBJ := $(patsubst %.c,%.o, $(CSRC))
  75651. OBJS := $(SOBJ) $(COBJ)
  75652. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/mmap.c uClibc-git/libc/sysdeps/linux/v850/mmap.c
  75653. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/mmap.c 2012-05-15 09:20:09.000000000 +0200
  75654. +++ uClibc-git/libc/sysdeps/linux/v850/mmap.c 1970-01-01 01:00:00.000000000 +0100
  75655. @@ -1,16 +0,0 @@
  75656. -/* Use new style mmap for v850 */
  75657. -/*
  75658. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  75659. - *
  75660. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  75661. - */
  75662. -
  75663. -#include <unistd.h>
  75664. -#include <errno.h>
  75665. -#include <sys/mman.h>
  75666. -#include <sys/syscall.h>
  75667. -
  75668. -
  75669. -_syscall6 (__ptr_t, mmap, __ptr_t, addr, size_t, len, int, prot,
  75670. - int, flags, int, fd, __off_t, offset)
  75671. -libc_hidden_def(mmap)
  75672. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/setjmp.S uClibc-git/libc/sysdeps/linux/v850/setjmp.S
  75673. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  75674. +++ uClibc-git/libc/sysdeps/linux/v850/setjmp.S 2014-06-02 17:40:34.666715593 +0200
  75675. @@ -11,10 +11,6 @@
  75676. * Written by Miles Bader <miles@gnu.org>
  75677. */
  75678. -#define _SETJMP_H
  75679. -#define _ASM
  75680. -#include <bits/setjmp.h>
  75681. -
  75682. #include <clinkage.h>
  75683. .text
  75684. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/sys/procfs.h uClibc-git/libc/sysdeps/linux/v850/sys/procfs.h
  75685. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  75686. +++ uClibc-git/libc/sysdeps/linux/v850/sys/procfs.h 2014-06-02 17:40:34.666715593 +0200
  75687. @@ -12,9 +12,8 @@
  75688. Lesser General Public License for more details.
  75689. You should have received a copy of the GNU Lesser General Public
  75690. - License along with the GNU C Library; if not, write to the Free
  75691. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75692. - 02111-1307 USA. */
  75693. + License along with the GNU C Library; if not, see
  75694. + <http://www.gnu.org/licenses/>. */
  75695. #ifndef _SYS_PROCFS_H
  75696. #define _SYS_PROCFS_H 1
  75697. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/sys/ptrace.h uClibc-git/libc/sysdeps/linux/v850/sys/ptrace.h
  75698. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
  75699. +++ uClibc-git/libc/sysdeps/linux/v850/sys/ptrace.h 2014-06-02 17:40:34.666715593 +0200
  75700. @@ -13,9 +13,8 @@
  75701. Lesser General Public License for more details.
  75702. You should have received a copy of the GNU Lesser General Public
  75703. - License along with the GNU C Library; if not, write to the Free
  75704. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75705. - 02111-1307 USA. */
  75706. + License along with the GNU C Library; if not, see
  75707. + <http://www.gnu.org/licenses/>. */
  75708. #ifndef _SYS_PTRACE_H
  75709. #define _SYS_PTRACE_H 1
  75710. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/sys/ucontext.h uClibc-git/libc/sysdeps/linux/v850/sys/ucontext.h
  75711. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  75712. +++ uClibc-git/libc/sysdeps/linux/v850/sys/ucontext.h 2014-06-02 17:40:34.666715593 +0200
  75713. @@ -12,9 +12,8 @@
  75714. Lesser General Public License for more details.
  75715. You should have received a copy of the GNU Lesser General Public
  75716. - License along with the GNU C Library; if not, write to the Free
  75717. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75718. - 02111-1307 USA. */
  75719. + License along with the GNU C Library; if not, see
  75720. + <http://www.gnu.org/licenses/>. */
  75721. #ifndef _SYS_UCONTEXT_H
  75722. #define _SYS_UCONTEXT_H 1
  75723. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/vfork.S uClibc-git/libc/sysdeps/linux/v850/vfork.S
  75724. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/vfork.S 2012-05-15 09:20:09.000000000 +0200
  75725. +++ uClibc-git/libc/sysdeps/linux/v850/vfork.S 2014-06-02 17:40:34.666715593 +0200
  75726. @@ -11,12 +11,7 @@
  75727. * Written by Miles Bader <miles@gnu.org>
  75728. */
  75729. -#include <features.h>
  75730. -#define _ERRNO_H 1
  75731. -#include <bits/errno.h>
  75732. -#define _SYSCALL_H
  75733. -#include <bits/sysnum.h>
  75734. -
  75735. +#include <sys/syscall.h>
  75736. #include <clinkage.h>
  75737. /* Clone the calling process, but without copying the whole address space.
  75738. @@ -24,8 +19,7 @@
  75739. replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
  75740. and the process ID of the new process to the old process. */
  75741. -.global C_SYMBOL_NAME(errno)
  75742. -
  75743. +/* this should be made hidden */
  75744. C_ENTRY (__vfork):
  75745. addi SYS_vfork, r0, r12
  75746. trap 0
  75747. @@ -39,4 +33,4 @@
  75748. jmp [lp] /* error return */
  75749. C_END(__vfork)
  75750. weak_alias(__vfork,vfork)
  75751. -libc_hidden_weak(vfork)
  75752. +libc_hidden_def(vfork)
  75753. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/fcntl.h uClibc-git/libc/sysdeps/linux/vax/bits/fcntl.h
  75754. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  75755. +++ uClibc-git/libc/sysdeps/linux/vax/bits/fcntl.h 2014-06-02 17:40:34.666715593 +0200
  75756. @@ -14,8 +14,7 @@
  75757. You should have received a copy of the GNU Library General Public
  75758. License along with the GNU C Library; see the file COPYING.LIB. If not,
  75759. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  75760. - Boston, MA 02111-1307, USA. */
  75761. + see <http://www.gnu.org/licenses/>. */
  75762. #ifndef _FCNTL_H
  75763. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  75764. 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
  75765. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/huge_val.h 1970-01-01 01:00:00.000000000 +0100
  75766. +++ uClibc-git/libc/sysdeps/linux/vax/bits/huge_val.h 2014-06-02 17:40:34.666715593 +0200
  75767. @@ -0,0 +1,25 @@
  75768. +/* `HUGE_VAL' constant for Vaxen.
  75769. + Used by <stdlib.h> and <math.h> functions for overflow.
  75770. + Copyright (C) 1992, 1996, 1997 Free Software Foundation, Inc.
  75771. + This file is part of the GNU C Library.
  75772. +
  75773. + The GNU C Library is free software; you can redistribute it and/or
  75774. + modify it under the terms of the GNU Lesser General Public
  75775. + License as published by the Free Software Foundation; either
  75776. + version 2.1 of the License, or (at your option) any later version.
  75777. +
  75778. + The GNU C Library is distributed in the hope that it will be useful,
  75779. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  75780. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  75781. + Lesser General Public License for more details.
  75782. +
  75783. + You should have received a copy of the GNU Lesser General Public
  75784. + License along with the GNU C Library; if not, see
  75785. + <http://www.gnu.org/licenses/>. */
  75786. +
  75787. +#ifndef _MATH_H
  75788. +# error "Never use <bits/huge_val.h> directly; include <math.h> instead."
  75789. +#endif
  75790. +
  75791. +
  75792. +#define HUGE_VAL 1.70141182460469227e38
  75793. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/ipc.h uClibc-git/libc/sysdeps/linux/vax/bits/ipc.h
  75794. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
  75795. +++ uClibc-git/libc/sysdeps/linux/vax/bits/ipc.h 2014-06-02 17:40:34.666715593 +0200
  75796. @@ -13,8 +13,7 @@
  75797. You should have received a copy of the GNU Library General Public
  75798. License along with the GNU C Library; see the file COPYING.LIB. If not,
  75799. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  75800. - Boston, MA 02111-1307, USA. */
  75801. + see <http://www.gnu.org/licenses/>. */
  75802. #ifndef _SYS_IPC_H
  75803. # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
  75804. 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
  75805. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/machine-gmon.h 2012-05-15 09:20:09.000000000 +0200
  75806. +++ uClibc-git/libc/sysdeps/linux/vax/bits/machine-gmon.h 1970-01-01 01:00:00.000000000 +0100
  75807. @@ -1,41 +0,0 @@
  75808. -/* i386-specific implementation of profiling support.
  75809. - Copyright (C) 1997, 2002 Free Software Foundation, Inc.
  75810. - This file is part of the GNU C Library.
  75811. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
  75812. -
  75813. - The GNU C Library is free software; you can redistribute it and/or
  75814. - modify it under the terms of the GNU Lesser General Public
  75815. - License as published by the Free Software Foundation; either
  75816. - version 2.1 of the License, or (at your option) any later version.
  75817. -
  75818. - The GNU C Library is distributed in the hope that it will be useful,
  75819. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  75820. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  75821. - Lesser General Public License for more details.
  75822. -
  75823. - You should have received a copy of the GNU Lesser General Public
  75824. - License along with the GNU C Library; if not, write to the Free
  75825. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75826. - 02111-1307 USA. */
  75827. -
  75828. -#include <sysdep.h>
  75829. -
  75830. -/* We need a special version of the `mcount' function since for ix86 it
  75831. - must not clobber any register. This has several reasons:
  75832. - - there is a bug in gcc as of version 2.7.2.2 which prohibits the
  75833. - use of profiling together with nested functions
  75834. - - the ELF `fixup' function uses GCC's regparm feature
  75835. - - some (future) systems might want to pass parameters in registers. */
  75836. -
  75837. -/* We must not pollute the global namespace. */
  75838. -#define mcount_internal __mcount_internal
  75839. -
  75840. -extern void mcount_internal (u_long frompc, u_long selfpc);
  75841. -
  75842. -#define _MCOUNT_DECL(frompc, selfpc) \
  75843. -void __attribute__ (( regparm (2) )) mcount_internal (u_long frompc, u_long selfpc)
  75844. -
  75845. -
  75846. -/* Define MCOUNT as empty since we have the implementation in another
  75847. - file. */
  75848. -#define MCOUNT
  75849. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/sem.h uClibc-git/libc/sysdeps/linux/vax/bits/sem.h
  75850. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
  75851. +++ uClibc-git/libc/sysdeps/linux/vax/bits/sem.h 2014-06-02 17:40:34.670715615 +0200
  75852. @@ -13,8 +13,7 @@
  75853. You should have received a copy of the GNU Library General Public
  75854. License along with the GNU C Library; see the file COPYING.LIB. If not,
  75855. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  75856. - Boston, MA 02111-1307, USA. */
  75857. + see <http://www.gnu.org/licenses/>. */
  75858. #ifndef _SYS_SEM_H
  75859. # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
  75860. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/setjmp.h uClibc-git/libc/sysdeps/linux/vax/bits/setjmp.h
  75861. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  75862. +++ uClibc-git/libc/sysdeps/linux/vax/bits/setjmp.h 2014-06-02 17:40:34.670715615 +0200
  75863. @@ -6,14 +6,8 @@
  75864. /* we want to save enough that we can use this to fool RET,
  75865. * So we basically save all of the CALLS stack frame. Plus regs. */
  75866. -#ifndef _ASM
  75867. typedef int __jmp_buf[16];
  75868. -#endif
  75869. -/* Test if longjmp to JMPBUF would unwind the frame
  75870. - containing a local variable at ADDRESS. */
  75871. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  75872. - ((void *) (address) < (void *) (jmpbuf[4]))
  75873. /*
  75874. jmp_buf layout. jmp_buf[0]
  75875. void *__cond; The condition handler
  75876. @@ -34,4 +28,3 @@
  75877. void *__rA; regs, r0->r11.
  75878. void *__rB; regs, r0->r11.
  75879. */
  75880. -
  75881. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/shm.h uClibc-git/libc/sysdeps/linux/vax/bits/shm.h
  75882. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  75883. +++ uClibc-git/libc/sysdeps/linux/vax/bits/shm.h 2014-06-02 17:40:34.670715615 +0200
  75884. @@ -13,8 +13,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. #ifndef _SYS_SHM_H
  75891. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  75892. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/sigcontext.h uClibc-git/libc/sysdeps/linux/vax/bits/sigcontext.h
  75893. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/sigcontext.h 2012-05-15 09:20:09.000000000 +0200
  75894. +++ uClibc-git/libc/sysdeps/linux/vax/bits/sigcontext.h 2014-06-02 17:40:34.670715615 +0200
  75895. @@ -13,8 +13,7 @@
  75896. You should have received a copy of the GNU Library General Public
  75897. License along with the GNU C Library; see the file COPYING.LIB. If not,
  75898. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  75899. - Boston, MA 02111-1307, USA. */
  75900. + see <http://www.gnu.org/licenses/>. */
  75901. #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
  75902. # error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
  75903. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/statfs.h uClibc-git/libc/sysdeps/linux/vax/bits/statfs.h
  75904. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/statfs.h 2012-05-15 09:20:09.000000000 +0200
  75905. +++ uClibc-git/libc/sysdeps/linux/vax/bits/statfs.h 1970-01-01 01:00:00.000000000 +0100
  75906. @@ -1,61 +0,0 @@
  75907. -/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
  75908. - This file is part of the GNU C Library.
  75909. -
  75910. - The GNU C Library is free software; you can redistribute it and/or
  75911. - modify it under the terms of the GNU Library General Public License as
  75912. - published by the Free Software Foundation; either version 2 of the
  75913. - License, or (at your option) any later version.
  75914. -
  75915. - The GNU C Library is distributed in the hope that it will be useful,
  75916. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  75917. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  75918. - Library General Public License for more details.
  75919. -
  75920. - You should have received a copy of the GNU Library General Public
  75921. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  75922. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  75923. - Boston, MA 02111-1307, USA. */
  75924. -
  75925. -#ifndef _SYS_STATFS_H
  75926. -# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
  75927. -#endif
  75928. -
  75929. -#include <bits/types.h> /* for __fsid_t and __fsblkcnt_t*/
  75930. -
  75931. -struct statfs
  75932. - {
  75933. - int f_type;
  75934. - int f_bsize;
  75935. -#ifndef __USE_FILE_OFFSET64
  75936. - __fsblkcnt_t f_blocks;
  75937. - __fsblkcnt_t f_bfree;
  75938. - __fsblkcnt_t f_bavail;
  75939. - __fsfilcnt_t f_files;
  75940. - __fsfilcnt_t f_ffree;
  75941. -#else
  75942. - __fsblkcnt64_t f_blocks;
  75943. - __fsblkcnt64_t f_bfree;
  75944. - __fsblkcnt64_t f_bavail;
  75945. - __fsfilcnt64_t f_files;
  75946. - __fsfilcnt64_t f_ffree;
  75947. -#endif
  75948. - __fsid_t f_fsid;
  75949. - int f_namelen;
  75950. - int f_spare[6];
  75951. - };
  75952. -
  75953. -#ifdef __USE_LARGEFILE64
  75954. -struct statfs64
  75955. - {
  75956. - int f_type;
  75957. - int f_bsize;
  75958. - __fsblkcnt64_t f_blocks;
  75959. - __fsblkcnt64_t f_bfree;
  75960. - __fsblkcnt64_t f_bavail;
  75961. - __fsfilcnt64_t f_files;
  75962. - __fsfilcnt64_t f_ffree;
  75963. - __fsid_t f_fsid;
  75964. - int f_namelen;
  75965. - int f_spare[6];
  75966. - };
  75967. -#endif
  75968. 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
  75969. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  75970. +++ uClibc-git/libc/sysdeps/linux/vax/bits/uClibc_arch_features.h 2014-06-02 17:40:34.670715615 +0200
  75971. @@ -11,8 +11,8 @@
  75972. /* can your target use syscall6() for mmap ? */
  75973. #define __UCLIBC_MMAP_HAS_6_ARGS__
  75974. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  75975. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  75976. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  75977. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  75978. /* does your target have a broken create_module() ? */
  75979. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  75980. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/wordsize.h uClibc-git/libc/sysdeps/linux/vax/bits/wordsize.h
  75981. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  75982. +++ uClibc-git/libc/sysdeps/linux/vax/bits/wordsize.h 2014-06-02 17:40:34.670715615 +0200
  75983. @@ -13,7 +13,6 @@
  75984. You should have received a copy of the GNU Library General Public
  75985. License along with the GNU C Library; see the file COPYING.LIB. If not,
  75986. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  75987. - Boston, MA 02111-1307, USA. */
  75988. + see <http://www.gnu.org/licenses/>. */
  75989. #define __WORDSIZE 32
  75990. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/brk.c uClibc-git/libc/sysdeps/linux/vax/brk.c
  75991. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/brk.c 2012-05-15 09:20:09.000000000 +0200
  75992. +++ uClibc-git/libc/sysdeps/linux/vax/brk.c 2014-06-02 17:40:34.670715615 +0200
  75993. @@ -13,9 +13,8 @@
  75994. Lesser General Public License for more details.
  75995. You should have received a copy of the GNU Lesser General Public
  75996. - License along with the GNU C Library; if not, write to the Free
  75997. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75998. - 02111-1307 USA. */
  75999. + License along with the GNU C Library; if not, see
  76000. + <http://www.gnu.org/licenses/>. */
  76001. #include <errno.h>
  76002. #include <unistd.h>
  76003. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/clone.S uClibc-git/libc/sysdeps/linux/vax/clone.S
  76004. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/clone.S 2012-05-15 09:20:09.000000000 +0200
  76005. +++ uClibc-git/libc/sysdeps/linux/vax/clone.S 2014-06-02 17:40:34.670715615 +0200
  76006. @@ -12,8 +12,7 @@
  76007. You should have received a copy of the GNU Library General Public
  76008. License along with the GNU C Library; see the file COPYING.LIB. If not,
  76009. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  76010. - Boston, MA 02111-1307, USA. */
  76011. + see <http://www.gnu.org/licenses/>. */
  76012. /* clone() is even more special than fork() as it mucks with stacks
  76013. and invokes a function in the right context after its all over. */
  76014. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/vax/jmpbuf-unwind.h
  76015. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  76016. +++ uClibc-git/libc/sysdeps/linux/vax/jmpbuf-unwind.h 2014-06-02 17:40:34.682715682 +0200
  76017. @@ -0,0 +1,11 @@
  76018. +/*
  76019. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  76020. + *
  76021. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  76022. + */
  76023. +#include <setjmp.h>
  76024. +
  76025. +/* Test if longjmp to JMPBUF would unwind the frame
  76026. + containing a local variable at ADDRESS. */
  76027. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  76028. + ((void *) (address) < (void *) (jmpbuf[4]))
  76029. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/Makefile.arch uClibc-git/libc/sysdeps/linux/vax/Makefile.arch
  76030. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  76031. +++ uClibc-git/libc/sysdeps/linux/vax/Makefile.arch 2014-06-02 17:40:34.666715593 +0200
  76032. @@ -6,5 +6,5 @@
  76033. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  76034. #
  76035. -CSRC := brk.c mmap.c
  76036. -SSRC := __longjmp.S setjmp.S _setjmp.S clone.S
  76037. +CSRC-y := brk.c
  76038. +SSRC-y := __longjmp.S setjmp.S _setjmp.S clone.S
  76039. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/mmap.c uClibc-git/libc/sysdeps/linux/vax/mmap.c
  76040. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/mmap.c 2012-05-15 09:20:09.000000000 +0200
  76041. +++ uClibc-git/libc/sysdeps/linux/vax/mmap.c 1970-01-01 01:00:00.000000000 +0100
  76042. @@ -1,10 +0,0 @@
  76043. -
  76044. -#include <unistd.h>
  76045. -#include <sys/mman.h>
  76046. -#include <errno.h>
  76047. -#include <sys/syscall.h>
  76048. -
  76049. -_syscall6 (void *, mmap, void *, start, size_t, length, int, prot, int, flags,
  76050. - int, fd, off_t, offset)
  76051. -libc_hidden_def(mmap)
  76052. -
  76053. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/sys/procfs.h uClibc-git/libc/sysdeps/linux/vax/sys/procfs.h
  76054. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  76055. +++ uClibc-git/libc/sysdeps/linux/vax/sys/procfs.h 2014-06-02 17:40:34.682715682 +0200
  76056. @@ -12,9 +12,8 @@
  76057. Lesser General Public License for more details.
  76058. You should have received a copy of the GNU Lesser General Public
  76059. - License along with the GNU C Library; if not, write to the Free
  76060. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76061. - 02111-1307 USA. */
  76062. + License along with the GNU C Library; if not, see
  76063. + <http://www.gnu.org/licenses/>. */
  76064. #ifndef _SYS_PROCFS_H
  76065. #define _SYS_PROCFS_H 1
  76066. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/sys/ucontext.h uClibc-git/libc/sysdeps/linux/vax/sys/ucontext.h
  76067. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  76068. +++ uClibc-git/libc/sysdeps/linux/vax/sys/ucontext.h 2014-06-02 17:40:34.682715682 +0200
  76069. @@ -12,9 +12,8 @@
  76070. Lesser General Public License for more details.
  76071. You should have received a copy of the GNU Lesser General Public
  76072. - License along with the GNU C Library; if not, write to the Free
  76073. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76074. - 02111-1307 USA. */
  76075. + License along with the GNU C Library; if not, see
  76076. + <http://www.gnu.org/licenses/>. */
  76077. /* Don't rely on this, the interface is currently messed up and may need to
  76078. be broken to be fixed. */
  76079. 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
  76080. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  76081. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/atomic.h 2014-06-02 17:40:34.682715682 +0200
  76082. @@ -13,9 +13,8 @@
  76083. Lesser General Public License for more details.
  76084. You should have received a copy of the GNU Lesser General Public
  76085. - License along with the GNU C Library; if not, write to the Free
  76086. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76087. - 02111-1307 USA. */
  76088. + License along with the GNU C Library; if not, see
  76089. + <http://www.gnu.org/licenses/>. */
  76090. #include <stdint.h>
  76091. 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
  76092. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/byteswap.h 2012-05-15 09:20:09.000000000 +0200
  76093. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/byteswap.h 2014-06-02 17:40:34.682715682 +0200
  76094. @@ -13,9 +13,8 @@
  76095. Lesser General Public License for more details.
  76096. You should have received a copy of the GNU Lesser General Public
  76097. - License along with the GNU C Library; if not, write to the Free
  76098. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76099. - 02111-1307 USA. */
  76100. + License along with the GNU C Library; if not, see
  76101. + <http://www.gnu.org/licenses/>. */
  76102. #ifndef _ASM_BITS_BYTESWAP_H
  76103. #define _ASM_BITS_BYTESWAP_H 1
  76104. 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
  76105. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/environments.h 2012-05-15 09:20:09.000000000 +0200
  76106. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/environments.h 2014-06-02 17:40:34.682715682 +0200
  76107. @@ -12,9 +12,8 @@
  76108. Lesser General Public License for more details.
  76109. You should have received a copy of the GNU Lesser General Public
  76110. - License along with the GNU C Library; if not, write to the Free
  76111. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76112. - 02111-1307 USA. */
  76113. + License along with the GNU C Library; if not, see
  76114. + <http://www.gnu.org/licenses/>. */
  76115. #ifndef _UNISTD_H
  76116. # error "Never include this file directly. Use <unistd.h> instead"
  76117. 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
  76118. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  76119. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/fcntl.h 2014-06-02 17:40:34.682715682 +0200
  76120. @@ -13,9 +13,8 @@
  76121. Lesser General Public License for more details.
  76122. You should have received a copy of the GNU Lesser General Public
  76123. - License along with the GNU C Library; if not, write to the Free
  76124. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76125. - 02111-1307 USA. */
  76126. + License along with the GNU C Library; if not, see
  76127. + <http://www.gnu.org/licenses/>. */
  76128. #ifndef _FCNTL_H
  76129. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  76130. 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
  76131. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  76132. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/fenv.h 2014-06-02 17:40:34.686715704 +0200
  76133. @@ -12,9 +12,8 @@
  76134. Lesser General Public License for more details.
  76135. You should have received a copy of the GNU Lesser General Public
  76136. - License along with the GNU C Library; if not, write to the Free
  76137. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76138. - 02111-1307 USA. */
  76139. + License along with the GNU C Library; if not, see
  76140. + <http://www.gnu.org/licenses/>. */
  76141. #ifndef _FENV_H
  76142. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  76143. @@ -89,9 +88,9 @@
  76144. fenv_t;
  76145. /* If the default argument is used we use this value. */
  76146. -#define FE_DFL_ENV ((__const fenv_t *) -1)
  76147. +#define FE_DFL_ENV ((const fenv_t *) -1)
  76148. #ifdef __USE_GNU
  76149. /* Floating-point environment where none of the exception is masked. */
  76150. -# define FE_NOMASK_ENV ((__const fenv_t *) -2)
  76151. +# define FE_NOMASK_ENV ((const fenv_t *) -2)
  76152. #endif
  76153. 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
  76154. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  76155. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/kernel_types.h 2014-06-02 17:40:34.686715704 +0200
  76156. @@ -40,6 +40,8 @@
  76157. typedef unsigned short __kernel_old_uid_t;
  76158. typedef unsigned short __kernel_old_gid_t;
  76159. typedef __kernel_dev_t __kernel_old_dev_t;
  76160. +typedef long __kernel_long_t;
  76161. +typedef unsigned long __kernel_ulong_t;
  76162. typedef long long __kernel_loff_t;
  76163. typedef struct {
  76164. 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
  76165. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  76166. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/mathdef.h 2014-06-02 17:40:34.686715704 +0200
  76167. @@ -12,9 +12,8 @@
  76168. Lesser General Public License for more details.
  76169. You should have received a copy of the GNU Lesser General Public
  76170. - License along with the GNU C Library; if not, write to the Free
  76171. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76172. - 02111-1307 USA. */
  76173. + License along with the GNU C Library; if not, see
  76174. + <http://www.gnu.org/licenses/>. */
  76175. #if !defined _MATH_H && !defined _COMPLEX_H
  76176. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  76177. 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
  76178. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/mathinline.h 2012-05-15 09:20:09.000000000 +0200
  76179. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/mathinline.h 2014-06-02 17:40:34.686715704 +0200
  76180. @@ -14,9 +14,8 @@
  76181. Lesser General Public License for more details.
  76182. You should have received a copy of the GNU Lesser General Public
  76183. - License along with the GNU C Library; if not, write to the Free
  76184. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76185. - 02111-1307 USA. */
  76186. + License along with the GNU C Library; if not, see
  76187. + <http://www.gnu.org/licenses/>. */
  76188. #ifndef _MATH_H
  76189. # error "Never use <bits/mathinline.h> directly; include <math.h> instead."
  76190. 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
  76191. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
  76192. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/msq.h 2014-06-02 17:40:34.686715704 +0200
  76193. @@ -12,9 +12,8 @@
  76194. Lesser General Public License for more details.
  76195. You should have received a copy of the GNU Lesser General Public
  76196. - License along with the GNU C Library; if not, write to the Free
  76197. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76198. - 02111-1307 USA. */
  76199. + License along with the GNU C Library; if not, see
  76200. + <http://www.gnu.org/licenses/>. */
  76201. #ifndef _SYS_MSG_H
  76202. # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
  76203. 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
  76204. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
  76205. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/sem.h 2014-06-02 17:40:34.686715704 +0200
  76206. @@ -12,9 +12,8 @@
  76207. Lesser General Public License for more details.
  76208. You should have received a copy of the GNU Lesser General Public
  76209. - License along with the GNU C Library; if not, write to the Free
  76210. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76211. - 02111-1307 USA. */
  76212. + License along with the GNU C Library; if not, see
  76213. + <http://www.gnu.org/licenses/>. */
  76214. #ifndef _SYS_SEM_H
  76215. # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
  76216. 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
  76217. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  76218. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/setjmp.h 2014-06-02 17:40:34.686715704 +0200
  76219. @@ -1,4 +1,4 @@
  76220. -/* Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
  76221. +/* Copyright (C) 2001,2002,2003,2005,2006 Free Software Foundation, Inc.
  76222. This file is part of the GNU C Library.
  76223. The GNU C Library is free software; you can redistribute it and/or
  76224. @@ -12,13 +12,12 @@
  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. /* Define the machine-dependent type `jmp_buf'. x86-64 version. */
  76233. #ifndef _BITS_SETJMP_H
  76234. -#define _BITS_SETJMP_H 1
  76235. +#define _BITS_SETJMP_H 1
  76236. #if !defined _SETJMP_H && !defined _PTHREAD_H
  76237. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  76238. @@ -27,52 +26,9 @@
  76239. #include <bits/wordsize.h>
  76240. #if __WORDSIZE == 64
  76241. -
  76242. -/* We only need to save callee-saved registers plus stackpointer and
  76243. - program counter. */
  76244. -# if defined __USE_MISC || defined _ASM
  76245. -# define JB_RBX 0
  76246. -# define JB_RBP 1
  76247. -# define JB_R12 2
  76248. -# define JB_R13 3
  76249. -# define JB_R14 4
  76250. -# define JB_R15 5
  76251. -# define JB_RSP 6
  76252. -# define JB_PC 7
  76253. -# define JB_SIZE (8*8)
  76254. -# endif
  76255. -
  76256. -#else
  76257. -
  76258. -# if defined __USE_MISC || defined _ASM
  76259. -# define JB_BX 0
  76260. -# define JB_SI 1
  76261. -# define JB_DI 2
  76262. -# define JB_BP 3
  76263. -# define JB_SP 4
  76264. -# define JB_PC 5
  76265. -# define JB_SIZE 24
  76266. -# endif
  76267. -
  76268. -#endif
  76269. -
  76270. -#ifndef _ASM
  76271. -
  76272. -# if __WORDSIZE == 64
  76273. typedef long int __jmp_buf[8];
  76274. -# else
  76275. +#else
  76276. typedef int __jmp_buf[6];
  76277. -# endif
  76278. -
  76279. -/* Test if longjmp to JMPBUF would unwind the frame
  76280. - containing a local variable at ADDRESS. */
  76281. -# if __WORDSIZE == 64
  76282. -# define _JMPBUF_UNWINDS(jmpbuf, address) \
  76283. - ((void *) (address) < (void *) (jmpbuf)[JB_RSP])
  76284. -# else
  76285. -# define _JMPBUF_UNWINDS(jmpbuf, address) \
  76286. - ((void *) (address) < (void *) (jmpbuf)[JB_SP])
  76287. -# endif
  76288. #endif
  76289. -#endif /* bits/setjmp.h */
  76290. +#endif /* bits/setjmp.h */
  76291. 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
  76292. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  76293. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/shm.h 2014-06-02 17:40:34.686715704 +0200
  76294. @@ -13,9 +13,8 @@
  76295. Lesser General Public License for more details.
  76296. You should have received a copy of the GNU Lesser General Public
  76297. - License along with the GNU C Library; if not, write to the Free
  76298. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76299. - 02111-1307 USA. */
  76300. + License along with the GNU C Library; if not, see
  76301. + <http://www.gnu.org/licenses/>. */
  76302. #ifndef _SYS_SHM_H
  76303. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  76304. 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
  76305. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/sigcontext.h 2012-05-15 09:20:09.000000000 +0200
  76306. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/sigcontext.h 2014-06-02 17:40:34.686715704 +0200
  76307. @@ -12,9 +12,8 @@
  76308. Lesser General Public License for more details.
  76309. You should have received a copy of the GNU Lesser General Public
  76310. - License along with the GNU C Library; if not, write to the Free
  76311. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76312. - 02111-1307 USA. */
  76313. + License along with the GNU C Library; if not, see
  76314. + <http://www.gnu.org/licenses/>. */
  76315. #ifndef _BITS_SIGCONTEXT_H
  76316. #define _BITS_SIGCONTEXT_H 1
  76317. 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
  76318. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  76319. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/sigcontextinfo.h 2014-06-02 17:40:34.686715704 +0200
  76320. @@ -12,9 +12,8 @@
  76321. Lesser General Public License for more details.
  76322. You should have received a copy of the GNU Lesser General Public
  76323. - License along with the GNU C Library; if not, write to the Free
  76324. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76325. - 02111-1307 USA. */
  76326. + License along with the GNU C Library; if not, see
  76327. + <http://www.gnu.org/licenses/>. */
  76328. #define SIGCONTEXT siginfo_t *_si, struct ucontext *
  76329. #define SIGCONTEXT_EXTRA_ARGS _si,
  76330. 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
  76331. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  76332. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/stackinfo.h 2014-06-02 17:40:34.686715704 +0200
  76333. @@ -12,9 +12,8 @@
  76334. Lesser General Public License for more details.
  76335. You should have received a copy of the GNU Lesser General Public
  76336. - License along with the GNU C Library; if not, write to the Free
  76337. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76338. - 02111-1307 USA. */
  76339. + License along with the GNU C Library; if not, see
  76340. + <http://www.gnu.org/licenses/>. */
  76341. /* This file contains a bit of information about the stack allocation
  76342. of the processor. */
  76343. 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
  76344. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  76345. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/stat.h 2014-06-02 17:40:34.686715704 +0200
  76346. @@ -12,9 +12,8 @@
  76347. Lesser General Public License for more details.
  76348. You should have received a copy of the GNU Lesser General Public
  76349. - License along with the GNU C Library; if not, write to the Free
  76350. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76351. - 02111-1307 USA. */
  76352. + License along with the GNU C Library; if not, see
  76353. + <http://www.gnu.org/licenses/>. */
  76354. #ifndef _SYS_STAT_H
  76355. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  76356. 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
  76357. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  76358. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/uClibc_arch_features.h 2014-06-02 17:40:34.686715704 +0200
  76359. @@ -11,8 +11,8 @@
  76360. /* can your target use syscall6() for mmap ? */
  76361. #define __UCLIBC_MMAP_HAS_6_ARGS__
  76362. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  76363. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  76364. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  76365. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  76366. /* does your target have a broken create_module() ? */
  76367. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  76368. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/brk.c uClibc-git/libc/sysdeps/linux/x86_64/brk.c
  76369. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/brk.c 2012-05-15 09:20:09.000000000 +0200
  76370. +++ uClibc-git/libc/sysdeps/linux/x86_64/brk.c 2014-06-02 17:40:34.686715704 +0200
  76371. @@ -13,9 +13,8 @@
  76372. Lesser General Public License for more details.
  76373. You should have received a copy of the GNU Lesser General Public
  76374. - License along with the GNU C Library; if not, write to the Free
  76375. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76376. - 02111-1307 USA. */
  76377. + License along with the GNU C Library; if not, see
  76378. + <http://www.gnu.org/licenses/>. */
  76379. #include <errno.h>
  76380. #include <unistd.h>
  76381. 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
  76382. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
  76383. +++ uClibc-git/libc/sysdeps/linux/x86_64/bsd-setjmp.S 2014-06-02 17:40:34.686715704 +0200
  76384. @@ -13,14 +13,8 @@
  76385. Lesser General Public License for more details.
  76386. You should have received a copy of the GNU Lesser General Public
  76387. - License along with the GNU C Library; if not, write to the Free
  76388. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76389. - 02111-1307 USA. */
  76390. -
  76391. -#define _ASM
  76392. -#define _SETJMP_H
  76393. -#include <bits/setjmp.h>
  76394. -#include <sysdep.h>
  76395. + License along with the GNU C Library; if not, see
  76396. + <http://www.gnu.org/licenses/>. */
  76397. .global setjmp
  76398. .type setjmp,%function
  76399. 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
  76400. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
  76401. +++ uClibc-git/libc/sysdeps/linux/x86_64/bsd-_setjmp.S 2014-06-02 17:40:34.686715704 +0200
  76402. @@ -13,9 +13,8 @@
  76403. Lesser General Public License for more details.
  76404. You should have received a copy of the GNU Lesser General Public
  76405. - License along with the GNU C Library; if not, write to the Free
  76406. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76407. - 02111-1307 USA. */
  76408. + License along with the GNU C Library; if not, see
  76409. + <http://www.gnu.org/licenses/>. */
  76410. /* This just does a tail-call to `__sigsetjmp (ARG, 0)'.
  76411. We cannot do it in C because it must be a tail-call, so frame-unwinding
  76412. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/clone.S uClibc-git/libc/sysdeps/linux/x86_64/clone.S
  76413. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/clone.S 2012-05-15 09:20:09.000000000 +0200
  76414. +++ uClibc-git/libc/sysdeps/linux/x86_64/clone.S 2014-06-02 17:40:34.686715704 +0200
  76415. @@ -12,9 +12,8 @@
  76416. Lesser General Public License for more details.
  76417. You should have received a copy of the GNU Lesser General Public
  76418. - License along with the GNU C Library; if not, write to the Free
  76419. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76420. - 02111-1307 USA. */
  76421. + License along with the GNU C Library; if not, see
  76422. + <http://www.gnu.org/licenses/>. */
  76423. /* clone() is even more special than fork() as it mucks with stacks
  76424. and invokes a function in the right context after its all over. */
  76425. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/crt1.S uClibc-git/libc/sysdeps/linux/x86_64/crt1.S
  76426. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/crt1.S 2012-05-15 09:20:09.000000000 +0200
  76427. +++ uClibc-git/libc/sysdeps/linux/x86_64/crt1.S 2014-06-02 17:40:34.686715704 +0200
  76428. @@ -31,9 +31,8 @@
  76429. Lesser General Public License for more details.
  76430. You should have received a copy of the GNU Lesser General Public
  76431. - License along with the GNU C Library; if not, write to the Free
  76432. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76433. - 02111-1307 USA. */
  76434. + License along with the GNU C Library; if not, see
  76435. + <http://www.gnu.org/licenses/>. */
  76436. /* Originally based on glibc's sysdeps/x86_64/elf/start.S */
  76437. 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
  76438. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  76439. +++ uClibc-git/libc/sysdeps/linux/x86_64/fpu_control.h 2014-06-02 17:40:34.686715704 +0200
  76440. @@ -14,9 +14,8 @@
  76441. Lesser General Public License for more details.
  76442. You should have received a copy of the GNU Lesser General Public
  76443. - License along with the GNU C Library; if not, write to the Free
  76444. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76445. - 02111-1307 USA. */
  76446. + License along with the GNU C Library; if not, see
  76447. + <http://www.gnu.org/licenses/>. */
  76448. #ifndef _FPU_CONTROL_H
  76449. #define _FPU_CONTROL_H 1
  76450. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/getcontext.S uClibc-git/libc/sysdeps/linux/x86_64/getcontext.S
  76451. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/getcontext.S 1970-01-01 01:00:00.000000000 +0100
  76452. +++ uClibc-git/libc/sysdeps/linux/x86_64/getcontext.S 2014-06-02 17:40:34.686715704 +0200
  76453. @@ -0,0 +1,88 @@
  76454. +/* Save current context.
  76455. + Copyright (C) 2002-2012 Free Software Foundation, Inc.
  76456. + This file is part of the GNU C Library.
  76457. + Contributed by Andreas Jaeger <aj@suse.de>, 2002.
  76458. +
  76459. + The GNU C Library is free software; you can redistribute it and/or
  76460. + modify it under the terms of the GNU Lesser General Public
  76461. + License as published by the Free Software Foundation; either
  76462. + version 2.1 of the License, or (at your option) any later version.
  76463. +
  76464. + The GNU C Library is distributed in the hope that it will be useful,
  76465. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  76466. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  76467. + Lesser General Public License for more details.
  76468. +
  76469. + You should have received a copy of the GNU Lesser General Public
  76470. + License along with the GNU C Library; if not, see
  76471. + <http://www.gnu.org/licenses/>. */
  76472. +
  76473. +#include <sysdep.h>
  76474. +
  76475. +#include "ucontext_i.h"
  76476. +
  76477. +/* int __getcontext (ucontext_t *ucp)
  76478. +
  76479. + Saves the machine context in UCP such that when it is activated,
  76480. + it appears as if __getcontext() returned again.
  76481. +
  76482. + This implementation is intended to be used for *synchronous* context
  76483. + switches only. Therefore, it does not have to save anything
  76484. + other than the PRESERVED state. */
  76485. +
  76486. +
  76487. +ENTRY(__getcontext)
  76488. + /* Save the preserved registers, the registers used for passing
  76489. + args, and the return address. */
  76490. + movq %rbx, oRBX(%rdi)
  76491. + movq %rbp, oRBP(%rdi)
  76492. + movq %r12, oR12(%rdi)
  76493. + movq %r13, oR13(%rdi)
  76494. + movq %r14, oR14(%rdi)
  76495. + movq %r15, oR15(%rdi)
  76496. +
  76497. + movq %rdi, oRDI(%rdi)
  76498. + movq %rsi, oRSI(%rdi)
  76499. + movq %rdx, oRDX(%rdi)
  76500. + movq %rcx, oRCX(%rdi)
  76501. + movq %r8, oR8(%rdi)
  76502. + movq %r9, oR9(%rdi)
  76503. +
  76504. + movq (%rsp), %rcx
  76505. + movq %rcx, oRIP(%rdi)
  76506. + leaq 8(%rsp), %rcx /* Exclude the return address. */
  76507. + movq %rcx, oRSP(%rdi)
  76508. +
  76509. + /* We have separate floating-point register content memory on the
  76510. + stack. We use the __fpregs_mem block in the context. Set the
  76511. + links up correctly. */
  76512. +
  76513. + leaq oFPREGSMEM(%rdi), %rcx
  76514. + movq %rcx, oFPREGS(%rdi)
  76515. + /* Save the floating-point environment. */
  76516. + fnstenv (%rcx)
  76517. + fldenv (%rcx)
  76518. + stmxcsr oMXCSR(%rdi)
  76519. +
  76520. + /* Save the current signal mask with
  76521. + rt_sigprocmask (SIG_BLOCK, NULL, set,_NSIG/8). */
  76522. + leaq oSIGMASK(%rdi), %rdx
  76523. + xorl %esi,%esi
  76524. +#if SIG_BLOCK == 0
  76525. + xorl %edi, %edi
  76526. +#else
  76527. + movl $SIG_BLOCK, %edi
  76528. +#endif
  76529. + movl $_NSIG8,%r10d
  76530. + movl $__NR_rt_sigprocmask, %eax
  76531. + syscall
  76532. + cmpq $-4095, %rax /* Check %rax for error. */
  76533. + jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
  76534. +
  76535. + /* All done, return 0 for success. */
  76536. + xorl %eax, %eax
  76537. +L(pseudo_end):
  76538. + ret
  76539. +PSEUDO_END(__getcontext)
  76540. +
  76541. +weak_alias (__getcontext, getcontext)
  76542. 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
  76543. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  76544. +++ uClibc-git/libc/sysdeps/linux/x86_64/jmpbuf-offsets.h 2014-06-02 17:40:34.686715704 +0200
  76545. @@ -0,0 +1,45 @@
  76546. +/* Private macros for accessing __jmp_buf contents. x86-64 version.
  76547. + Copyright (C) 2006 Free Software Foundation, Inc.
  76548. + This file is part of the GNU C Library.
  76549. +
  76550. + The GNU C Library is free software; you can redistribute it and/or
  76551. + modify it under the terms of the GNU Lesser General Public
  76552. + License as published by the Free Software Foundation; either
  76553. + version 2.1 of the License, or (at your option) any later version.
  76554. +
  76555. + The GNU C Library is distributed in the hope that it will be useful,
  76556. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  76557. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  76558. + Lesser General Public License for more details.
  76559. +
  76560. + You should have received a copy of the GNU Lesser General Public
  76561. + License along with the GNU C Library; if not, see
  76562. + <http://www.gnu.org/licenses/>. */
  76563. +
  76564. +#include <bits/wordsize.h>
  76565. +
  76566. +#if __WORDSIZE == 64
  76567. +
  76568. +/* We only need to save callee-saved registers plus stackpointer and
  76569. + program counter. */
  76570. +# define JB_RBX 0
  76571. +# define JB_RBP 1
  76572. +# define JB_R12 2
  76573. +# define JB_R13 3
  76574. +# define JB_R14 4
  76575. +# define JB_R15 5
  76576. +# define JB_RSP 6
  76577. +# define JB_PC 7
  76578. +# define JB_SIZE (8*8)
  76579. +
  76580. +#else
  76581. +
  76582. +# define JB_BX 0
  76583. +# define JB_SI 1
  76584. +# define JB_DI 2
  76585. +# define JB_BP 3
  76586. +# define JB_SP 4
  76587. +# define JB_PC 5
  76588. +# define JB_SIZE 24
  76589. +
  76590. +#endif
  76591. 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
  76592. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  76593. +++ uClibc-git/libc/sysdeps/linux/x86_64/jmpbuf-unwind.h 2014-06-02 17:40:34.686715704 +0200
  76594. @@ -0,0 +1,28 @@
  76595. +/*
  76596. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  76597. + *
  76598. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  76599. + */
  76600. +#include <setjmp.h>
  76601. +#include <jmpbuf-offsets.h>
  76602. +
  76603. +/* Test if longjmp to JMPBUF would unwind the frame
  76604. + containing a local variable at ADDRESS. */
  76605. +#if __WORDSIZE == 64
  76606. +# define _JMPBUF_UNWINDS(jmpbuf, address) \
  76607. + ((void *) (address) < (void *) (jmpbuf)[JB_RSP])
  76608. +#else
  76609. +# define _JMPBUF_UNWINDS(jmpbuf, address) \
  76610. + ((void *) (address) < (void *) (jmpbuf)[JB_SP])
  76611. +#endif
  76612. +
  76613. +#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  76614. +#include <stdint.h>
  76615. +#include <unwind.h>
  76616. +
  76617. +#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
  76618. + _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
  76619. +
  76620. +#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  76621. + ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_RSP] - (_adj))
  76622. +#endif
  76623. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/__longjmp.S uClibc-git/libc/sysdeps/linux/x86_64/__longjmp.S
  76624. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  76625. +++ uClibc-git/libc/sysdeps/linux/x86_64/__longjmp.S 2014-06-02 17:40:34.682715682 +0200
  76626. @@ -12,14 +12,10 @@
  76627. Lesser General Public License for more details.
  76628. You should have received a copy of the GNU Lesser General Public
  76629. - License along with the GNU C Library; if not, write to the Free
  76630. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76631. - 02111-1307 USA. */
  76632. + License along with the GNU C Library; if not, see
  76633. + <http://www.gnu.org/licenses/>. */
  76634. -#include <features.h>
  76635. -#define _ASM
  76636. -#define _SETJMP_H
  76637. -#include <bits/setjmp.h>
  76638. +#include <jmpbuf-offsets.h>
  76639. /* Jump to the position specified by ENV, causing the
  76640. setjmp call there to return VAL, or 1 if VAL is 0.
  76641. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/makecontext.c uClibc-git/libc/sysdeps/linux/x86_64/makecontext.c
  76642. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/makecontext.c 1970-01-01 01:00:00.000000000 +0100
  76643. +++ uClibc-git/libc/sysdeps/linux/x86_64/makecontext.c 2014-06-02 17:40:34.686715704 +0200
  76644. @@ -0,0 +1,121 @@
  76645. +/* Create new context.
  76646. + Copyright (C) 2002, 2004, 2005, 2008 Free Software Foundation, Inc.
  76647. + This file is part of the GNU C Library.
  76648. + Contributed by Andreas Jaeger <aj@suse.de>, 2002.
  76649. +
  76650. + The GNU C Library is free software; you can redistribute it and/or
  76651. + modify it under the terms of the GNU Lesser General Public
  76652. + License as published by the Free Software Foundation; either
  76653. + version 2.1 of the License, or (at your option) any later version.
  76654. +
  76655. + The GNU C Library is distributed in the hope that it will be useful,
  76656. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  76657. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  76658. + Lesser General Public License for more details.
  76659. +
  76660. + You should have received a copy of the GNU Lesser General Public
  76661. + License along with the GNU C Library; if not, see
  76662. + <http://www.gnu.org/licenses/>. */
  76663. +
  76664. +#include <sysdep.h>
  76665. +#include <stdarg.h>
  76666. +#include <stdint.h>
  76667. +#include <ucontext.h>
  76668. +
  76669. +#include "ucontext_i.h"
  76670. +
  76671. +/* This implementation can handle any ARGC value but only
  76672. + normal integer parameters.
  76673. + makecontext sets up a stack and the registers for the
  76674. + user context. The stack looks like this:
  76675. + +-----------------------+
  76676. + | next context |
  76677. + +-----------------------+
  76678. + | parameter 7-n |
  76679. + +-----------------------+
  76680. + | trampoline address |
  76681. + %rsp -> +-----------------------+
  76682. +
  76683. + The registers are set up like this:
  76684. + %rdi,%rsi,%rdx,%rcx,%r8,%r9: parameter 1 to 6
  76685. + %rbx : address of next context
  76686. + %rsp : stack pointer.
  76687. +*/
  76688. +
  76689. +/* XXX: This implementation currently only handles integer arguments.
  76690. + To handle long int and pointer arguments the va_arg arguments needs
  76691. + to be changed to long and also the stdlib/tst-setcontext.c file needs
  76692. + to be changed to pass long arguments to makecontext. */
  76693. +
  76694. +
  76695. +void
  76696. +__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
  76697. +{
  76698. + extern void __start_context (void);
  76699. + greg_t *sp;
  76700. + unsigned int idx_uc_link;
  76701. + va_list ap;
  76702. + int i;
  76703. +
  76704. + /* Generate room on stack for parameter if needed and uc_link. */
  76705. + sp = (greg_t *) ((uintptr_t) ucp->uc_stack.ss_sp
  76706. + + ucp->uc_stack.ss_size);
  76707. + sp -= (argc > 6 ? argc - 6 : 0) + 1;
  76708. + /* Align stack and make space for trampoline address. */
  76709. + sp = (greg_t *) ((((uintptr_t) sp) & -16L) - 8);
  76710. +
  76711. + idx_uc_link = (argc > 6 ? argc - 6 : 0) + 1;
  76712. +
  76713. + /* Setup context ucp. */
  76714. + /* Address to jump to. */
  76715. + ucp->uc_mcontext.gregs[REG_RIP] = (uintptr_t) func;
  76716. + /* Setup rbx.*/
  76717. + ucp->uc_mcontext.gregs[REG_RBX] = (uintptr_t) &sp[idx_uc_link];
  76718. + ucp->uc_mcontext.gregs[REG_RSP] = (uintptr_t) sp;
  76719. +
  76720. + /* Setup stack. */
  76721. + sp[0] = (uintptr_t) &__start_context;
  76722. + sp[idx_uc_link] = (uintptr_t) ucp->uc_link;
  76723. +
  76724. + va_start (ap, argc);
  76725. + /* Handle arguments.
  76726. +
  76727. + The standard says the parameters must all be int values. This is
  76728. + an historic accident and would be done differently today. For
  76729. + x86-64 all integer values are passed as 64-bit values and
  76730. + therefore extending the API to copy 64-bit values instead of
  76731. + 32-bit ints makes sense. It does not break existing
  76732. + functionality and it does not violate the standard which says
  76733. + that passing non-int values means undefined behavior. */
  76734. + for (i = 0; i < argc; ++i)
  76735. + switch (i)
  76736. + {
  76737. + case 0:
  76738. + ucp->uc_mcontext.gregs[REG_RDI] = va_arg (ap, greg_t);
  76739. + break;
  76740. + case 1:
  76741. + ucp->uc_mcontext.gregs[REG_RSI] = va_arg (ap, greg_t);
  76742. + break;
  76743. + case 2:
  76744. + ucp->uc_mcontext.gregs[REG_RDX] = va_arg (ap, greg_t);
  76745. + break;
  76746. + case 3:
  76747. + ucp->uc_mcontext.gregs[REG_RCX] = va_arg (ap, greg_t);
  76748. + break;
  76749. + case 4:
  76750. + ucp->uc_mcontext.gregs[REG_R8] = va_arg (ap, greg_t);
  76751. + break;
  76752. + case 5:
  76753. + ucp->uc_mcontext.gregs[REG_R9] = va_arg (ap, greg_t);
  76754. + break;
  76755. + default:
  76756. + /* Put value on stack. */
  76757. + sp[i - 5] = va_arg (ap, greg_t);
  76758. + break;
  76759. + }
  76760. + va_end (ap);
  76761. +
  76762. +}
  76763. +
  76764. +
  76765. +weak_alias (__makecontext, makecontext)
  76766. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/Makefile.arch uClibc-git/libc/sysdeps/linux/x86_64/Makefile.arch
  76767. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  76768. +++ uClibc-git/libc/sysdeps/linux/x86_64/Makefile.arch 2014-06-02 17:40:34.682715682 +0200
  76769. @@ -5,18 +5,15 @@
  76770. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  76771. #
  76772. -CSRC := brk.c __syscall_error.c sigaction.c mmap.c
  76773. +CSRC-y := brk.c __syscall_error.c sigaction.c
  76774. -SSRC := \
  76775. +SSRC-y := \
  76776. __longjmp.S setjmp.S syscall.S bsd-setjmp.S bsd-_setjmp.S
  76777. -ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
  76778. -SSRC += vfork.S clone.S
  76779. -endif
  76780. -
  76781. +SSRC-$(if $(UCLIBC_HAS_THREADS_NATIVE),,y) += vfork.S clone.S
  76782. +ARCH_OBJ_FILTEROUT-$(UCLIBC_LINUX_SPECIFIC) := sched_getcpu.c
  76783. ifeq ($(UCLIBC_LINUX_SPECIFIC),y)
  76784. -ARCH_OBJ_FILTEROUT = sched_getcpu.c
  76785. -ifeq ($(UCLIBC_HAS_TLS),y)
  76786. -SSRC += sched_getcpu.S
  76787. -endif
  76788. +SSRC-$(UCLIBC_HAS_TLS) += sched_getcpu.S
  76789. endif
  76790. +CSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += makecontext.c
  76791. +SSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += setcontext.S getcontext.S swapcontext.S __start_context.S
  76792. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/mmap.c uClibc-git/libc/sysdeps/linux/x86_64/mmap.c
  76793. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/mmap.c 2012-05-15 09:20:09.000000000 +0200
  76794. +++ uClibc-git/libc/sysdeps/linux/x86_64/mmap.c 1970-01-01 01:00:00.000000000 +0100
  76795. @@ -1,19 +0,0 @@
  76796. -/* vi: set sw=4 ts=4: */
  76797. -/*
  76798. - * mmap() for uClibc/x86_64
  76799. - *
  76800. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  76801. - * Copyright (C) 2005 by Mike Frysinger <vapier@gentoo.org>
  76802. - *
  76803. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  76804. - */
  76805. -
  76806. -#include <errno.h>
  76807. -#include <unistd.h>
  76808. -#include <sys/mman.h>
  76809. -#include <sys/syscall.h>
  76810. -
  76811. -
  76812. -_syscall6(void *, mmap, void *, start, size_t, length, int, prot,
  76813. - int, flags, int, fd, off_t, offset)
  76814. -libc_hidden_def(mmap)
  76815. 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
  76816. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sched_getcpu.S 2012-05-15 09:20:09.000000000 +0200
  76817. +++ uClibc-git/libc/sysdeps/linux/x86_64/sched_getcpu.S 2014-06-02 17:40:34.686715704 +0200
  76818. @@ -12,9 +12,8 @@
  76819. Lesser General Public License for more details.
  76820. You should have received a copy of the GNU Lesser General Public
  76821. - License along with the GNU C Library; if not, write to the Free
  76822. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76823. - 02111-1307 USA. */
  76824. + License along with the GNU C Library; if not, see
  76825. + <http://www.gnu.org/licenses/>. */
  76826. #include <sysdep.h>
  76827. #include <tls.h>
  76828. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/setcontext.S uClibc-git/libc/sysdeps/linux/x86_64/setcontext.S
  76829. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/setcontext.S 1970-01-01 01:00:00.000000000 +0100
  76830. +++ uClibc-git/libc/sysdeps/linux/x86_64/setcontext.S 2014-06-02 17:40:34.686715704 +0200
  76831. @@ -0,0 +1,103 @@
  76832. +/* Install given context.
  76833. + Copyright (C) 2002-2012 Free Software Foundation, Inc.
  76834. + This file is part of the GNU C Library.
  76835. + Contributed by Andreas Jaeger <aj@suse.de>, 2002.
  76836. +
  76837. + The GNU C Library is free software; you can redistribute it and/or
  76838. + modify it under the terms of the GNU Lesser General Public
  76839. + License as published by the Free Software Foundation; either
  76840. + version 2.1 of the License, or (at your option) any later version.
  76841. +
  76842. + The GNU C Library is distributed in the hope that it will be useful,
  76843. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  76844. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  76845. + Lesser General Public License for more details.
  76846. +
  76847. + You should have received a copy of the GNU Lesser General Public
  76848. + License along with the GNU C Library; if not, see
  76849. + <http://www.gnu.org/licenses/>. */
  76850. +
  76851. +#include <sysdep.h>
  76852. +
  76853. +#include "ucontext_i.h"
  76854. +
  76855. +
  76856. +/* int __setcontext (const ucontext_t *ucp)
  76857. +
  76858. + Restores the machine context in UCP and thereby resumes execution
  76859. + in that context.
  76860. +
  76861. + This implementation is intended to be used for *synchronous* context
  76862. + switches only. Therefore, it does not have to restore anything
  76863. + other than the PRESERVED state. */
  76864. +
  76865. +ENTRY(__setcontext)
  76866. + /* Save argument since syscall will destroy it. */
  76867. + pushq %rdi
  76868. + cfi_adjust_cfa_offset(8)
  76869. +
  76870. + /* Set the signal mask with
  76871. + rt_sigprocmask (SIG_SETMASK, mask, NULL, _NSIG/8). */
  76872. + leaq oSIGMASK(%rdi), %rsi
  76873. + xorl %edx, %edx
  76874. + movl $SIG_SETMASK, %edi
  76875. + movl $_NSIG8,%r10d
  76876. + movl $__NR_rt_sigprocmask, %eax
  76877. + syscall
  76878. + popq %rdi /* Reload %rdi, adjust stack. */
  76879. + cfi_adjust_cfa_offset(-8)
  76880. + cmpq $-4095, %rax /* Check %rax for error. */
  76881. + jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
  76882. +
  76883. + /* Restore the floating-point context. Not the registers, only the
  76884. + rest. */
  76885. + movq oFPREGS(%rdi), %rcx
  76886. + fldenv (%rcx)
  76887. + ldmxcsr oMXCSR(%rdi)
  76888. +
  76889. +
  76890. + /* Load the new stack pointer, the preserved registers and
  76891. + registers used for passing args. */
  76892. + cfi_def_cfa(%rdi, 0)
  76893. + cfi_offset(%rbx,oRBX)
  76894. + cfi_offset(%rbp,oRBP)
  76895. + cfi_offset(%r12,oR12)
  76896. + cfi_offset(%r13,oR13)
  76897. + cfi_offset(%r14,oR14)
  76898. + cfi_offset(%r15,oR15)
  76899. + cfi_offset(%rsp,oRSP)
  76900. + cfi_offset(%rip,oRIP)
  76901. +
  76902. + movq oRSP(%rdi), %rsp
  76903. + movq oRBX(%rdi), %rbx
  76904. + movq oRBP(%rdi), %rbp
  76905. + movq oR12(%rdi), %r12
  76906. + movq oR13(%rdi), %r13
  76907. + movq oR14(%rdi), %r14
  76908. + movq oR15(%rdi), %r15
  76909. +
  76910. + /* The following ret should return to the address set with
  76911. + getcontext. Therefore push the address on the stack. */
  76912. + movq oRIP(%rdi), %rcx
  76913. + pushq %rcx
  76914. +
  76915. + movq oRSI(%rdi), %rsi
  76916. + movq oRDX(%rdi), %rdx
  76917. + movq oRCX(%rdi), %rcx
  76918. + movq oR8(%rdi), %r8
  76919. + movq oR9(%rdi), %r9
  76920. +
  76921. + /* Setup finally %rdi. */
  76922. + movq oRDI(%rdi), %rdi
  76923. +
  76924. + /* End FDE here, we fall into another context. */
  76925. + cfi_endproc
  76926. + cfi_startproc
  76927. +
  76928. + /* Clear rax to indicate success. */
  76929. + xorl %eax, %eax
  76930. +L(pseudo_end):
  76931. + ret
  76932. +PSEUDO_END(__setcontext)
  76933. +
  76934. +weak_alias (__setcontext, setcontext)
  76935. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/setjmp.S uClibc-git/libc/sysdeps/linux/x86_64/setjmp.S
  76936. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  76937. +++ uClibc-git/libc/sysdeps/linux/x86_64/setjmp.S 2014-06-02 17:40:34.686715704 +0200
  76938. @@ -13,14 +13,10 @@
  76939. Lesser General Public License for more details.
  76940. You should have received a copy of the GNU Lesser General Public
  76941. - License along with the GNU C Library; if not, write to the Free
  76942. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76943. - 02111-1307 USA. */
  76944. + License along with the GNU C Library; if not, see
  76945. + <http://www.gnu.org/licenses/>. */
  76946. -#define _ASM
  76947. -#define _SETJMP_H
  76948. -#include <bits/setjmp.h>
  76949. -#include <sysdep.h>
  76950. +#include <jmpbuf-offsets.h>
  76951. .global __sigsetjmp
  76952. .type __sigsetjmp,%function
  76953. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sigaction.c uClibc-git/libc/sysdeps/linux/x86_64/sigaction.c
  76954. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sigaction.c 2012-05-15 09:20:09.000000000 +0200
  76955. +++ uClibc-git/libc/sysdeps/linux/x86_64/sigaction.c 2014-06-13 18:29:20.838293415 +0200
  76956. @@ -13,9 +13,8 @@
  76957. Lesser General Public License for more details.
  76958. You should have received a copy of the GNU Lesser General Public
  76959. - License along with the GNU C Library; if not, write to the Free
  76960. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76961. - 02111-1307 USA. */
  76962. + License along with the GNU C Library; if not, see
  76963. + <http://www.gnu.org/licenses/>. */
  76964. #include <errno.h>
  76965. @@ -30,9 +29,6 @@
  76966. /* We do not globally define the SA_RESTORER flag so do it here. */
  76967. #define SA_RESTORER 0x04000000
  76968. -extern __typeof(sigaction) __libc_sigaction;
  76969. -
  76970. -
  76971. #ifdef __NR_rt_sigaction
  76972. /* Using the hidden attribute here does not change the code but it
  76973. @@ -115,11 +111,19 @@
  76974. signal handlers work right. Important are both the names
  76975. (__restore_rt) and the exact instruction sequence.
  76976. If you ever feel the need to make any changes, please notify the
  76977. - appropriate GDB maintainer. */
  76978. + appropriate GDB maintainer.
  76979. +
  76980. + The unwind information starts a byte before __restore_rt, so that
  76981. + it is found when unwinding, to get an address the unwinder assumes
  76982. + will be in the middle of a call instruction. See the Linux kernel
  76983. + (the i386 vsyscall, in particular) for an explanation of the complex
  76984. + unwind information used here in order to get the traditional CFA.
  76985. + */
  76986. #define RESTORE(name, syscall) RESTORE2(name, syscall)
  76987. #define RESTORE2(name, syscall) \
  76988. __asm__ ( \
  76989. + "nop\n" \
  76990. ".text\n" \
  76991. "__" #name ":\n" \
  76992. " movq $" #syscall ", %rax\n" \
  76993. 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
  76994. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/__start_context.S 1970-01-01 01:00:00.000000000 +0100
  76995. +++ uClibc-git/libc/sysdeps/linux/x86_64/__start_context.S 2014-06-02 17:40:34.682715682 +0200
  76996. @@ -0,0 +1,49 @@
  76997. +/* Copyright (C) 2002-2012 Free Software Foundation, Inc.
  76998. + This file is part of the GNU C Library.
  76999. + Contributed by Andreas Jaeger <aj@suse.de>, 2002.
  77000. +
  77001. + The GNU C Library is free software; you can redistribute it and/or
  77002. + modify it under the terms of the GNU Lesser General Public
  77003. + License as published by the Free Software Foundation; either
  77004. + version 2.1 of the License, or (at your option) any later version.
  77005. +
  77006. + The GNU C Library is distributed in the hope that it will be useful,
  77007. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  77008. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  77009. + Lesser General Public License for more details.
  77010. +
  77011. + You should have received a copy of the GNU Lesser General Public
  77012. + License along with the GNU C Library; if not, see
  77013. + <http://www.gnu.org/licenses/>. */
  77014. +
  77015. +#include <sysdep.h>
  77016. +
  77017. +/* This is the helper code which gets called if a function which is
  77018. + registered with 'makecontext' returns. In this case we have to
  77019. + install the context listed in the uc_link element of the context
  77020. + 'makecontext' manipulated at the time of the 'makecontext' call.
  77021. + If the pointer is NULL the process must terminate. */
  77022. +
  77023. +
  77024. +ENTRY(__start_context)
  77025. + /* This removes the parameters passed to the function given to
  77026. + 'makecontext' from the stack. RBX contains the address
  77027. + on the stack pointer for the next context. */
  77028. + movq %rbx, %rsp
  77029. +
  77030. + popq %rdi /* This is the next context. */
  77031. + cfi_adjust_cfa_offset(-8)
  77032. + testq %rdi, %rdi
  77033. + je 2f /* If it is zero exit. */
  77034. +
  77035. + call JUMPTARGET(__setcontext)
  77036. + /* If this returns (which can happen if the syscall fails) we'll
  77037. + exit the program with the return error value (-1). */
  77038. + movq %rax,%rdi
  77039. +
  77040. +2:
  77041. + call HIDDEN_JUMPTARGET(exit)
  77042. + /* The 'exit' call should never return. In case it does cause
  77043. + the process to terminate. */
  77044. + hlt
  77045. +END(__start_context)
  77046. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/swapcontext.S uClibc-git/libc/sysdeps/linux/x86_64/swapcontext.S
  77047. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/swapcontext.S 1970-01-01 01:00:00.000000000 +0100
  77048. +++ uClibc-git/libc/sysdeps/linux/x86_64/swapcontext.S 2014-06-02 17:40:34.686715704 +0200
  77049. @@ -0,0 +1,121 @@
  77050. +/* Save current context and install the given one.
  77051. + Copyright (C) 2002-2012 Free Software Foundation, Inc.
  77052. + This file is part of the GNU C Library.
  77053. + Contributed by Andreas Jaeger <aj@suse.de>, 2002.
  77054. +
  77055. + The GNU C Library is free software; you can redistribute it and/or
  77056. + modify it under the terms of the GNU Lesser General Public
  77057. + License as published by the Free Software Foundation; either
  77058. + version 2.1 of the License, or (at your option) any later version.
  77059. +
  77060. + The GNU C Library is distributed in the hope that it will be useful,
  77061. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  77062. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  77063. + Lesser General Public License for more details.
  77064. +
  77065. + You should have received a copy of the GNU Lesser General Public
  77066. + License along with the GNU C Library; if not, see
  77067. + <http://www.gnu.org/licenses/>. */
  77068. +
  77069. +#include <sysdep.h>
  77070. +
  77071. +#include "ucontext_i.h"
  77072. +
  77073. +
  77074. +/* int __swapcontext (ucontext_t *oucp, const ucontext_t *ucp);
  77075. +
  77076. + Saves the machine context in oucp such that when it is activated,
  77077. + it appears as if __swapcontextt() returned again, restores the
  77078. + machine context in ucp and thereby resumes execution in that
  77079. + context.
  77080. +
  77081. + This implementation is intended to be used for *synchronous* context
  77082. + switches only. Therefore, it does not have to save anything
  77083. + other than the PRESERVED state. */
  77084. +
  77085. +ENTRY(__swapcontext)
  77086. + /* Save the preserved registers, the registers used for passing args,
  77087. + and the return address. */
  77088. + movq %rbx, oRBX(%rdi)
  77089. + movq %rbp, oRBP(%rdi)
  77090. + movq %r12, oR12(%rdi)
  77091. + movq %r13, oR13(%rdi)
  77092. + movq %r14, oR14(%rdi)
  77093. + movq %r15, oR15(%rdi)
  77094. +
  77095. + movq %rdi, oRDI(%rdi)
  77096. + movq %rsi, oRSI(%rdi)
  77097. + movq %rdx, oRDX(%rdi)
  77098. + movq %rcx, oRCX(%rdi)
  77099. + movq %r8, oR8(%rdi)
  77100. + movq %r9, oR9(%rdi)
  77101. +
  77102. + movq (%rsp), %rcx
  77103. + movq %rcx, oRIP(%rdi)
  77104. + leaq 8(%rsp), %rcx /* Exclude the return address. */
  77105. + movq %rcx, oRSP(%rdi)
  77106. +
  77107. + /* We have separate floating-point register content memory on the
  77108. + stack. We use the __fpregs_mem block in the context. Set the
  77109. + links up correctly. */
  77110. + leaq oFPREGSMEM(%rdi), %rcx
  77111. + movq %rcx, oFPREGS(%rdi)
  77112. + /* Save the floating-point environment. */
  77113. + fnstenv (%rcx)
  77114. + stmxcsr oMXCSR(%rdi)
  77115. +
  77116. +
  77117. + /* The syscall destroys some registers, save them. */
  77118. + movq %rsi, %r12
  77119. +
  77120. + /* Save the current signal mask and install the new one with
  77121. + rt_sigprocmask (SIG_BLOCK, newset, oldset,_NSIG/8). */
  77122. + leaq oSIGMASK(%rdi), %rdx
  77123. + leaq oSIGMASK(%rsi), %rsi
  77124. + movl $SIG_SETMASK, %edi
  77125. + movl $_NSIG8,%r10d
  77126. + movl $__NR_rt_sigprocmask, %eax
  77127. + syscall
  77128. + cmpq $-4095, %rax /* Check %rax for error. */
  77129. + jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
  77130. +
  77131. + /* Restore destroyed registers. */
  77132. + movq %r12, %rsi
  77133. +
  77134. + /* Restore the floating-point context. Not the registers, only the
  77135. + rest. */
  77136. + movq oFPREGS(%rsi), %rcx
  77137. + fldenv (%rcx)
  77138. + ldmxcsr oMXCSR(%rsi)
  77139. +
  77140. + /* Load the new stack pointer and the preserved registers. */
  77141. + movq oRSP(%rsi), %rsp
  77142. + movq oRBX(%rsi), %rbx
  77143. + movq oRBP(%rsi), %rbp
  77144. + movq oR12(%rsi), %r12
  77145. + movq oR13(%rsi), %r13
  77146. + movq oR14(%rsi), %r14
  77147. + movq oR15(%rsi), %r15
  77148. +
  77149. + /* The following ret should return to the address set with
  77150. + getcontext. Therefore push the address on the stack. */
  77151. + movq oRIP(%rsi), %rcx
  77152. + pushq %rcx
  77153. +
  77154. + /* Setup registers used for passing args. */
  77155. + movq oRDI(%rsi), %rdi
  77156. + movq oRDX(%rsi), %rdx
  77157. + movq oRCX(%rsi), %rcx
  77158. + movq oR8(%rsi), %r8
  77159. + movq oR9(%rsi), %r9
  77160. +
  77161. + /* Setup finally %rsi. */
  77162. + movq oRSI(%rsi), %rsi
  77163. +
  77164. + /* Clear rax to indicate success. */
  77165. + xorl %eax, %eax
  77166. +L(pseudo_end):
  77167. + ret
  77168. +PSEUDO_END(__swapcontext)
  77169. +
  77170. +weak_alias (__swapcontext, swapcontext)
  77171. 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
  77172. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/debugreg.h 2012-05-15 09:20:09.000000000 +0200
  77173. +++ uClibc-git/libc/sysdeps/linux/x86_64/sys/debugreg.h 2014-06-02 17:40:34.686715704 +0200
  77174. @@ -12,9 +12,8 @@
  77175. Lesser General Public License for more details.
  77176. You should have received a copy of the GNU Lesser General Public
  77177. - License along with the GNU C Library; if not, write to the Free
  77178. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77179. - 02111-1307 USA. */
  77180. + License along with the GNU C Library; if not, see
  77181. + <http://www.gnu.org/licenses/>. */
  77182. #ifndef _SYS_DEBUGREG_H
  77183. #define _SYS_DEBUGREG_H 1
  77184. 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
  77185. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/io.h 2012-05-15 09:20:09.000000000 +0200
  77186. +++ uClibc-git/libc/sysdeps/linux/x86_64/sys/io.h 2014-06-02 17:40:34.686715704 +0200
  77187. @@ -12,9 +12,8 @@
  77188. Lesser General Public License for more details.
  77189. You should have received a copy of the GNU Lesser General Public
  77190. - License along with the GNU C Library; if not, write to the Free
  77191. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77192. - 02111-1307 USA. */
  77193. + License along with the GNU C Library; if not, see
  77194. + <http://www.gnu.org/licenses/>. */
  77195. #ifndef _SYS_IO_H
  77196. #define _SYS_IO_H 1
  77197. @@ -23,6 +22,7 @@
  77198. __BEGIN_DECLS
  77199. +#if defined __UCLIBC_LINUX_SPECIFIC__
  77200. /* If TURN_ON is TRUE, request for permission to do direct i/o on the
  77201. port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
  77202. permission off for that range. This call requires root privileges.
  77203. @@ -32,12 +32,12 @@
  77204. E.g., Linux/Alpha for Alpha PCs supports this. */
  77205. extern int ioperm (unsigned long int __from, unsigned long int __num,
  77206. int __turn_on) __THROW;
  77207. -libc_hidden_proto(ioperm)
  77208. /* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to
  77209. access any I/O port is granted. This call requires root
  77210. privileges. */
  77211. extern int iopl (int __level) __THROW;
  77212. +#endif /* __UCLIBC_LINUX_SPECIFIC__ */
  77213. #if defined __GNUC__ && __GNUC__ >= 2
  77214. 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
  77215. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/perm.h 2012-05-15 09:20:09.000000000 +0200
  77216. +++ uClibc-git/libc/sysdeps/linux/x86_64/sys/perm.h 2014-06-02 17:40:34.686715704 +0200
  77217. @@ -12,9 +12,8 @@
  77218. Lesser General Public License for more details.
  77219. You should have received a copy of the GNU Lesser General Public
  77220. - License along with the GNU C Library; if not, write to the Free
  77221. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77222. - 02111-1307 USA. */
  77223. + License along with the GNU C Library; if not, see
  77224. + <http://www.gnu.org/licenses/>. */
  77225. #ifndef _SYS_PERM_H
  77226. @@ -26,7 +25,6 @@
  77227. /* Set port input/output permissions. */
  77228. extern int ioperm (unsigned long int __from, unsigned long int __num,
  77229. int __turn_on) __THROW;
  77230. -libc_hidden_proto(ioperm)
  77231. /* Change I/O privilege level. */
  77232. 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
  77233. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  77234. +++ uClibc-git/libc/sysdeps/linux/x86_64/sys/procfs.h 2014-06-02 17:40:34.686715704 +0200
  77235. @@ -12,9 +12,8 @@
  77236. Lesser General Public License for more details.
  77237. You should have received a copy of the GNU Lesser General Public
  77238. - License along with the GNU C Library; if not, write to the Free
  77239. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77240. - 02111-1307 USA. */
  77241. + License along with the GNU C Library; if not, see
  77242. + <http://www.gnu.org/licenses/>. */
  77243. #ifndef _SYS_PROCFS_H
  77244. #define _SYS_PROCFS_H 1
  77245. 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
  77246. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/reg.h 2012-05-15 09:20:09.000000000 +0200
  77247. +++ uClibc-git/libc/sysdeps/linux/x86_64/sys/reg.h 2014-06-02 17:40:34.686715704 +0200
  77248. @@ -12,9 +12,8 @@
  77249. Lesser General Public License for more details.
  77250. You should have received a copy of the GNU Lesser General Public
  77251. - License along with the GNU C Library; if not, write to the Free
  77252. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77253. - 02111-1307 USA. */
  77254. + License along with the GNU C Library; if not, see
  77255. + <http://www.gnu.org/licenses/>. */
  77256. #ifndef _SYS_REG_H
  77257. #define _SYS_REG_H 1
  77258. 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
  77259. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  77260. +++ uClibc-git/libc/sysdeps/linux/x86_64/sys/ucontext.h 2014-06-02 17:40:34.686715704 +0200
  77261. @@ -12,9 +12,8 @@
  77262. Lesser General Public License for more details.
  77263. You should have received a copy of the GNU Lesser General Public
  77264. - License along with the GNU C Library; if not, write to the Free
  77265. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77266. - 02111-1307 USA. */
  77267. + License along with the GNU C Library; if not, see
  77268. + <http://www.gnu.org/licenses/>. */
  77269. #ifndef _SYS_UCONTEXT_H
  77270. #define _SYS_UCONTEXT_H 1
  77271. 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
  77272. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/user.h 2012-05-15 09:20:09.000000000 +0200
  77273. +++ uClibc-git/libc/sysdeps/linux/x86_64/sys/user.h 2014-06-02 17:40:34.686715704 +0200
  77274. @@ -12,9 +12,8 @@
  77275. Lesser General Public License for more details.
  77276. You should have received a copy of the GNU Lesser General Public
  77277. - License along with the GNU C Library; if not, write to the Free
  77278. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77279. - 02111-1307 USA. */
  77280. + License along with the GNU C Library; if not, see
  77281. + <http://www.gnu.org/licenses/>. */
  77282. #ifndef _SYS_USER_H
  77283. #define _SYS_USER_H 1
  77284. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/syscall.S uClibc-git/libc/sysdeps/linux/x86_64/syscall.S
  77285. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/syscall.S 2012-05-15 09:20:09.000000000 +0200
  77286. +++ uClibc-git/libc/sysdeps/linux/x86_64/syscall.S 2014-06-02 17:40:34.686715704 +0200
  77287. @@ -12,9 +12,8 @@
  77288. Lesser General Public License for more details.
  77289. You should have received a copy of the GNU Lesser General Public
  77290. - License along with the GNU C Library; if not, write to the Free
  77291. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77292. - 02111-1307 USA. */
  77293. + License along with the GNU C Library; if not, see
  77294. + <http://www.gnu.org/licenses/>. */
  77295. /* Please consult the file sysdeps/unix/sysv/linux/x86-64/sysdep.h for
  77296. more information about the value -4095 used below. */
  77297. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sysdep.h uClibc-git/libc/sysdeps/linux/x86_64/sysdep.h
  77298. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  77299. +++ uClibc-git/libc/sysdeps/linux/x86_64/sysdep.h 2014-06-02 17:40:34.686715704 +0200
  77300. @@ -12,9 +12,8 @@
  77301. Lesser General Public License for more details.
  77302. You should have received a copy of the GNU Lesser General Public
  77303. - License along with the GNU C Library; if not, write to the Free
  77304. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77305. - 02111-1307 USA. */
  77306. + License along with the GNU C Library; if not, see
  77307. + <http://www.gnu.org/licenses/>. */
  77308. #ifndef _LINUX_X86_64_SYSDEP_H
  77309. #define _LINUX_X86_64_SYSDEP_H 1
  77310. @@ -183,8 +182,6 @@
  77311. # define PSEUDO_END_ERRVAL(name) \
  77312. END (name)
  77313. -# define ret_ERRVAL ret
  77314. -
  77315. # ifndef __PIC__
  77316. # define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */
  77317. # elif defined(RTLD_PRIVATE_ERRNO)
  77318. 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
  77319. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/ucontext_i.sym 1970-01-01 01:00:00.000000000 +0100
  77320. +++ uClibc-git/libc/sysdeps/linux/x86_64/ucontext_i.sym 2014-06-02 17:40:34.686715704 +0200
  77321. @@ -0,0 +1,37 @@
  77322. +#include <stddef.h>
  77323. +#include <signal.h>
  77324. +#include <sys/ucontext.h>
  77325. +
  77326. +--
  77327. +
  77328. +SIG_BLOCK
  77329. +SIG_SETMASK
  77330. +
  77331. +_NSIG8 (_NSIG / 8)
  77332. +
  77333. +#define ucontext(member) offsetof (ucontext_t, member)
  77334. +#define mcontext(member) ucontext (uc_mcontext.member)
  77335. +#define mreg(reg) mcontext (gregs[REG_##reg])
  77336. +
  77337. +oRBP mreg (RBP)
  77338. +oRSP mreg (RSP)
  77339. +oRBX mreg (RBX)
  77340. +oR8 mreg (R8)
  77341. +oR9 mreg (R9)
  77342. +oR10 mreg (R10)
  77343. +oR11 mreg (R11)
  77344. +oR12 mreg (R12)
  77345. +oR13 mreg (R13)
  77346. +oR14 mreg (R14)
  77347. +oR15 mreg (R15)
  77348. +oRDI mreg (RDI)
  77349. +oRSI mreg (RSI)
  77350. +oRDX mreg (RDX)
  77351. +oRAX mreg (RAX)
  77352. +oRCX mreg (RCX)
  77353. +oRIP mreg (RIP)
  77354. +oEFL mreg (EFL)
  77355. +oFPREGS mcontext (fpregs)
  77356. +oSIGMASK ucontext (uc_sigmask)
  77357. +oFPREGSMEM ucontext (__fpregs_mem)
  77358. +oMXCSR ucontext (__fpregs_mem.mxcsr)
  77359. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/vfork.S uClibc-git/libc/sysdeps/linux/x86_64/vfork.S
  77360. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/vfork.S 2012-05-15 09:20:09.000000000 +0200
  77361. +++ uClibc-git/libc/sysdeps/linux/x86_64/vfork.S 2014-06-02 17:40:34.686715704 +0200
  77362. @@ -12,9 +12,8 @@
  77363. Lesser General Public License for more details.
  77364. You should have received a copy of the GNU Lesser General Public
  77365. - License along with the GNU C Library; if not, write to the Free
  77366. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77367. - 02111-1307 USA. */
  77368. + License along with the GNU C Library; if not, see
  77369. + <http://www.gnu.org/licenses/>. */
  77370. #include <sys/syscall.h>
  77371. @@ -63,4 +62,4 @@
  77372. .size __vfork,.-__vfork
  77373. weak_alias(__vfork,vfork)
  77374. -libc_hidden_weak(vfork)
  77375. +libc_hidden_def(vfork)
  77376. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/atomic.h uClibc-git/libc/sysdeps/linux/xtensa/bits/atomic.h
  77377. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/atomic.h 1970-01-01 01:00:00.000000000 +0100
  77378. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/atomic.h 2014-06-02 17:40:34.690715726 +0200
  77379. @@ -0,0 +1,232 @@
  77380. +/* Copyright (C) 2012 Free Software Foundation, Inc.
  77381. + This file is part of the GNU C Library.
  77382. +
  77383. + The GNU C Library is free software; you can redistribute it and/or
  77384. + modify it under the terms of the GNU Lesser General Public
  77385. + License as published by the Free Software Foundation; either
  77386. + version 2.1 of the License, or (at your option) any later version.
  77387. +
  77388. + The GNU C Library is distributed in the hope that it will be useful,
  77389. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  77390. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  77391. + Lesser General Public License for more details.
  77392. +
  77393. + You should have received a copy of the GNU Lesser General Public
  77394. + License along with the GNU C Library; if not, see
  77395. + <http://www.gnu.org/licenses/>. */
  77396. +
  77397. +#ifndef _BITS_ATOMIC_H
  77398. +#define _BITS_ATOMIC_H 1
  77399. +
  77400. +#include <inttypes.h>
  77401. +
  77402. +typedef int32_t atomic32_t;
  77403. +typedef uint32_t uatomic32_t;
  77404. +typedef int_fast32_t atomic_fast32_t;
  77405. +typedef uint_fast32_t uatomic_fast32_t;
  77406. +
  77407. +typedef int64_t atomic64_t;
  77408. +typedef uint64_t uatomic64_t;
  77409. +typedef int_fast64_t atomic_fast64_t;
  77410. +typedef uint_fast64_t uatomic_fast64_t;
  77411. +
  77412. +typedef intptr_t atomicptr_t;
  77413. +typedef uintptr_t uatomicptr_t;
  77414. +typedef intmax_t atomic_max_t;
  77415. +typedef uintmax_t uatomic_max_t;
  77416. +
  77417. +
  77418. +/* Xtensa has only a 32-bit form of a store-conditional instruction. */
  77419. +
  77420. +#define __arch_compare_and_exchange_bool_8_acq(mem, newval, oldval) \
  77421. + (abort (), 0)
  77422. +
  77423. +#define __arch_compare_and_exchange_bool_16_acq(mem, newval, oldval) \
  77424. + (abort (), 0)
  77425. +
  77426. +#define __arch_compare_and_exchange_bool_8_rel(mem, newval, oldval) \
  77427. + (abort (), 0)
  77428. +
  77429. +#define __arch_compare_and_exchange_bool_16_rel(mem, newval, oldval) \
  77430. + (abort (), 0)
  77431. +
  77432. +/* Atomically store NEWVAL in *MEM if *MEM is equal to OLDVAL.
  77433. + Return the old *MEM value. */
  77434. +
  77435. +#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
  77436. + ({__typeof__(*(mem)) __tmp, __value; \
  77437. + __asm__ __volatile__( \
  77438. + "1: l32i %1, %2, 0 \n" \
  77439. + " bne %1, %4, 2f \n" \
  77440. + " wsr %1, SCOMPARE1 \n" \
  77441. + " mov %0, %1 \n" \
  77442. + " mov %1, %3 \n" \
  77443. + " s32c1i %1, %2, 0 \n" \
  77444. + " bne %0, %1, 1b \n" \
  77445. + "2: \n" \
  77446. + : "=&a" (__value), "=&a" (__tmp) \
  77447. + : "a" (mem), "a" (newval), "a" (oldval) \
  77448. + : "memory" ); \
  77449. + __tmp; \
  77450. + })
  77451. +
  77452. +/* Atomically store NEWVAL in *MEM if *MEM is equal to OLDVAL.
  77453. + Return zero if *MEM was changed or non-zero if no exchange happened. */
  77454. +
  77455. +#define __arch_compare_and_exchange_bool_32_acq(mem, newval, oldval) \
  77456. + ({__typeof__(*(mem)) __tmp, __value; \
  77457. + __asm__ __volatile__( \
  77458. + "1: l32i %0, %2, 0 \n" \
  77459. + " sub %1, %4, %0 \n" \
  77460. + " bnez %1, 2f \n" \
  77461. + " wsr %0, SCOMPARE1 \n" \
  77462. + " mov %1, %3 \n" \
  77463. + " s32c1i %1, %2, 0 \n" \
  77464. + " bne %0, %1, 1b \n" \
  77465. + " movi %1, 0 \n" \
  77466. + "2: \n" \
  77467. + : "=&a" (__value), "=&a" (__tmp) \
  77468. + : "a" (mem), "a" (newval), "a" (oldval) \
  77469. + : "memory" ); \
  77470. + __tmp != 0; \
  77471. + })
  77472. +
  77473. +/* Store NEWVALUE in *MEM and return the old value. */
  77474. +
  77475. +#define __arch_exchange_32_acq(mem, newval) \
  77476. + ({__typeof__(*(mem)) __tmp, __value; \
  77477. + __asm__ __volatile__( \
  77478. + "1: l32i %0, %2, 0 \n" \
  77479. + " wsr %0, SCOMPARE1 \n" \
  77480. + " mov %1, %3 \n" \
  77481. + " s32c1i %1, %2, 0 \n" \
  77482. + " bne %0, %1, 1b \n" \
  77483. + : "=&a" (__value), "=&a" (__tmp) \
  77484. + : "a" (mem), "a" (newval) \
  77485. + : "memory" ); \
  77486. + __tmp; \
  77487. + })
  77488. +
  77489. +/* Add VALUE to *MEM and return the old value of *MEM. */
  77490. +
  77491. +#define __arch_atomic_exchange_and_add_32(mem, value) \
  77492. + ({__typeof__(*(mem)) __tmp, __value; \
  77493. + __asm__ __volatile__( \
  77494. + "1: l32i %0, %2, 0 \n" \
  77495. + " wsr %0, SCOMPARE1 \n" \
  77496. + " add %1, %0, %3 \n" \
  77497. + " s32c1i %1, %2, 0 \n" \
  77498. + " bne %0, %1, 1b \n" \
  77499. + : "=&a" (__value), "=&a" (__tmp) \
  77500. + : "a" (mem), "a" (value) \
  77501. + : "memory" ); \
  77502. + __tmp; \
  77503. + })
  77504. +
  77505. +/* Subtract VALUE from *MEM and return the old value of *MEM. */
  77506. +
  77507. +#define __arch_atomic_exchange_and_sub_32(mem, value) \
  77508. + ({__typeof__(*(mem)) __tmp, __value; \
  77509. + __asm__ __volatile__( \
  77510. + "1: l32i %0, %2, 0 \n" \
  77511. + " wsr %0, SCOMPARE1 \n" \
  77512. + " sub %1, %0, %3 \n" \
  77513. + " s32c1i %1, %2, 0 \n" \
  77514. + " bne %0, %1, 1b \n" \
  77515. + : "=&a" (__value), "=&a" (__tmp) \
  77516. + : "a" (mem), "a" (value) \
  77517. + : "memory" ); \
  77518. + __tmp; \
  77519. + })
  77520. +
  77521. +/* Decrement *MEM if it is > 0, and return the old value. */
  77522. +
  77523. +#define __arch_atomic_decrement_if_positive_32(mem) \
  77524. + ({__typeof__(*(mem)) __tmp, __value; \
  77525. + __asm__ __volatile__( \
  77526. + "1: l32i %0, %2, 0 \n" \
  77527. + " blti %0, 1, 2f \n" \
  77528. + " wsr %0, SCOMPARE1 \n" \
  77529. + " addi %1, %0, -1 \n" \
  77530. + " s32c1i %1, %2, 0 \n" \
  77531. + " bne %0, %1, 1b \n" \
  77532. + "2: \n" \
  77533. + : "=&a" (__value), "=&a" (__tmp) \
  77534. + : "a" (mem) \
  77535. + : "memory" ); \
  77536. + __value; \
  77537. + })
  77538. +
  77539. +
  77540. +/* These are the preferred public interfaces: */
  77541. +
  77542. +#define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
  77543. + ({ \
  77544. + if (sizeof (*mem) != 4) \
  77545. + abort(); \
  77546. + __arch_compare_and_exchange_val_32_acq(mem, newval, oldval); \
  77547. + })
  77548. +
  77549. +#define atomic_exchange_acq(mem, newval) \
  77550. + ({ \
  77551. + if (sizeof(*(mem)) != 4) \
  77552. + abort(); \
  77553. + __arch_exchange_32_acq(mem, newval); \
  77554. + })
  77555. +
  77556. +#define atomic_exchange_and_add(mem, newval) \
  77557. + ({ \
  77558. + if (sizeof(*(mem)) != 4) \
  77559. + abort(); \
  77560. + __arch_atomic_exchange_and_add_32(mem, newval); \
  77561. + })
  77562. +
  77563. +#define atomic_exchange_and_sub(mem, newval) \
  77564. + ({ \
  77565. + if (sizeof(*(mem)) != 4) \
  77566. + abort(); \
  77567. + __arch_atomic_exchange_and_sub_32(mem, newval); \
  77568. + })
  77569. +
  77570. +#define atomic_decrement_if_positive(mem) \
  77571. + ({ \
  77572. + if (sizeof(*(mem)) != 4) \
  77573. + abort(); \
  77574. + __arch_atomic_decrement_if_positive_32(mem); \
  77575. + })
  77576. +
  77577. +
  77578. +# define __arch_compare_and_exchange_bool_64_acq(mem, newval, oldval) \
  77579. + (abort (), 0)
  77580. +
  77581. +# define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
  77582. + (abort (), (__typeof (*mem)) 0)
  77583. +
  77584. +# define __arch_compare_and_exchange_bool_64_rel(mem, newval, oldval) \
  77585. + (abort (), 0)
  77586. +
  77587. +# define __arch_compare_and_exchange_val_64_rel(mem, newval, oldval) \
  77588. + (abort (), (__typeof (*mem)) 0)
  77589. +
  77590. +# define __arch_atomic_exchange_64_acq(mem, value) \
  77591. + ({ abort (); (*mem) = (value); })
  77592. +
  77593. +# define __arch_atomic_exchange_64_rel(mem, value) \
  77594. + ({ abort (); (*mem) = (value); })
  77595. +
  77596. +# define __arch_atomic_exchange_and_add_64(mem, value) \
  77597. + ({ abort (); (*mem) = (value); })
  77598. +
  77599. +# define __arch_atomic_increment_val_64(mem) \
  77600. + ({ abort (); (*mem)++; })
  77601. +
  77602. +# define __arch_atomic_decrement_val_64(mem) \
  77603. + ({ abort (); (*mem)--; })
  77604. +
  77605. +# define __arch_atomic_decrement_if_positive_64(mem) \
  77606. + ({ abort (); (*mem)--; })
  77607. +
  77608. +
  77609. +
  77610. +#endif /* _BITS_ATOMIC_H */
  77611. +
  77612. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/fcntl.h uClibc-git/libc/sysdeps/linux/xtensa/bits/fcntl.h
  77613. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  77614. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/fcntl.h 2014-06-02 17:40:34.690715726 +0200
  77615. @@ -14,9 +14,8 @@
  77616. Lesser General Public License for more details.
  77617. You should have received a copy of the GNU Lesser General Public
  77618. - License along with the GNU C Library; if not, write to the Free
  77619. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77620. - Boston, MA 02110-1301, USA. */
  77621. + License along with the GNU C Library; if not, see
  77622. + <http://www.gnu.org/licenses/>. */
  77623. #ifndef _FCNTL_H
  77624. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  77625. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/ipc.h uClibc-git/libc/sysdeps/linux/xtensa/bits/ipc.h
  77626. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
  77627. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/ipc.h 2014-06-02 17:40:34.690715726 +0200
  77628. @@ -12,9 +12,8 @@
  77629. Lesser General Public License for more details.
  77630. You should have received a copy of the GNU Lesser General Public
  77631. - License along with the GNU C Library; if not, write to the Free
  77632. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77633. - Boston, MA 02110-1301, USA. */
  77634. + License along with the GNU C Library; if not, see
  77635. + <http://www.gnu.org/licenses/>. */
  77636. #ifndef _SYS_IPC_H
  77637. # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
  77638. 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
  77639. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  77640. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/kernel_types.h 2014-06-02 17:40:34.690715726 +0200
  77641. @@ -33,6 +33,8 @@
  77642. typedef unsigned short __kernel_old_uid_t;
  77643. typedef unsigned short __kernel_old_gid_t;
  77644. typedef unsigned short __kernel_old_dev_t;
  77645. +typedef long __kernel_long_t;
  77646. +typedef unsigned long __kernel_ulong_t;
  77647. typedef long long __kernel_loff_t;
  77648. /* Beginning in 2.6 kernels, which is the first version that includes the
  77649. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/mathdef.h uClibc-git/libc/sysdeps/linux/xtensa/bits/mathdef.h
  77650. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  77651. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/mathdef.h 2014-06-02 17:40:34.690715726 +0200
  77652. @@ -13,9 +13,8 @@
  77653. Lesser General Public License for more details.
  77654. You should have received a copy of the GNU Lesser General Public
  77655. - License along with the GNU C Library; if not, write to the Free
  77656. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77657. - Boston, MA 02110-1301, USA. */
  77658. + License along with the GNU C Library; if not, see
  77659. + <http://www.gnu.org/licenses/>. */
  77660. #if !defined _MATH_H && !defined _COMPLEX_H
  77661. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  77662. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/mman.h uClibc-git/libc/sysdeps/linux/xtensa/bits/mman.h
  77663. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/mman.h 2012-05-15 09:20:09.000000000 +0200
  77664. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/mman.h 2014-06-02 17:40:34.690715726 +0200
  77665. @@ -13,9 +13,8 @@
  77666. Lesser General Public License for more details.
  77667. You should have received a copy of the GNU Lesser General Public
  77668. - License along with the GNU C Library; if not, write to the Free
  77669. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77670. - Boston, MA 02110-1301, USA. */
  77671. + License along with the GNU C Library; if not, see
  77672. + <http://www.gnu.org/licenses/>. */
  77673. #ifndef _SYS_MMAN_H
  77674. # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
  77675. @@ -64,7 +63,7 @@
  77676. # define MAP_NORESERVE 0x0400 /* Don't check for reservations. */
  77677. # define MAP_POPULATE 0x10000 /* Populate (prefault) pagetables. */
  77678. # define MAP_NONBLOCK 0x20000 /* Do not block on IO. */
  77679. -# define MAP_UNINITIALIZE 0x4000000 /* For anonymous mmap, memory could
  77680. +# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could
  77681. be uninitialized. */
  77682. #endif
  77683. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/msq.h uClibc-git/libc/sysdeps/linux/xtensa/bits/msq.h
  77684. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
  77685. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/msq.h 2014-06-02 17:40:34.690715726 +0200
  77686. @@ -12,9 +12,8 @@
  77687. Lesser General Public License for more details.
  77688. You should have received a copy of the GNU Lesser General Public
  77689. - License along with the GNU C Library; if not, write to the Free
  77690. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77691. - Boston, MA 02110-1301, USA. */
  77692. + License along with the GNU C Library; if not, see
  77693. + <http://www.gnu.org/licenses/>. */
  77694. #ifndef _SYS_MSG_H
  77695. # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
  77696. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/setjmp.h uClibc-git/libc/sysdeps/linux/xtensa/bits/setjmp.h
  77697. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  77698. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/setjmp.h 2014-06-02 17:40:34.690715726 +0200
  77699. @@ -12,9 +12,8 @@
  77700. Lesser General Public License for more details.
  77701. You should have received a copy of the GNU Lesser General Public
  77702. - License along with the GNU C Library; if not, write to the Free
  77703. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77704. - Boston, MA 02110-1301, USA. */
  77705. + License along with the GNU C Library; if not, see
  77706. + <http://www.gnu.org/licenses/>. */
  77707. /* Define the machine-dependent type `jmp_buf'. Xtensa version. */
  77708. #ifndef _BITS_SETJMP_H
  77709. @@ -30,17 +29,6 @@
  77710. subsequent alloca in proc moves $sp), and the return address within
  77711. proc. Everything else is saved on the stack in the normal save areas. */
  77712. -#ifndef _ASM
  77713. typedef int __jmp_buf[17];
  77714. -#endif
  77715. -
  77716. -#define JB_SP 1
  77717. -#define JB_PC 16
  77718. -
  77719. -/* Test if longjmp to JMPBUF would unwind the frame containing a local
  77720. - variable at ADDRESS. */
  77721. -
  77722. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  77723. - ((void *) (address) < (void *) (jmpbuf)[JB_SP])
  77724. #endif /* bits/setjmp.h */
  77725. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/shm.h uClibc-git/libc/sysdeps/linux/xtensa/bits/shm.h
  77726. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  77727. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/shm.h 2014-06-02 17:40:34.706715815 +0200
  77728. @@ -13,9 +13,8 @@
  77729. Lesser General Public License for more details.
  77730. You should have received a copy of the GNU Lesser General Public
  77731. - License along with the GNU C Library; if not, write to the Free
  77732. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77733. - Boston, MA 02110-1301, USA. */
  77734. + License along with the GNU C Library; if not, see
  77735. + <http://www.gnu.org/licenses/>. */
  77736. #ifndef _SYS_SHM_H
  77737. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  77738. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/sigcontext.h uClibc-git/libc/sysdeps/linux/xtensa/bits/sigcontext.h
  77739. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/sigcontext.h 1970-01-01 01:00:00.000000000 +0100
  77740. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/sigcontext.h 2014-06-02 17:40:34.706715815 +0200
  77741. @@ -0,0 +1,40 @@
  77742. +/* Copyright (C) 2012 Free Software Foundation, Inc.
  77743. + This file is part of the GNU C Library.
  77744. +
  77745. + The GNU C Library is free software; you can redistribute it and/or
  77746. + modify it under the terms of the GNU Lesser General Public
  77747. + License as published by the Free Software Foundation; either
  77748. + version 2.1 of the License, or (at your option) any later version.
  77749. +
  77750. + The GNU C Library is distributed in the hope that it will be useful,
  77751. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  77752. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  77753. + Lesser General Public License for more details.
  77754. +
  77755. + You should have received a copy of the GNU Lesser General Public
  77756. + License along with the GNU C Library; if not, see
  77757. + <http://www.gnu.org/licenses/>. */
  77758. +
  77759. +#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
  77760. +# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
  77761. +#endif
  77762. +
  77763. +#ifndef _BITS_SIGCONTEXT_H
  77764. +#define _BITS_SIGCONTEXT_H 1
  77765. +
  77766. +struct sigcontext
  77767. +{
  77768. + unsigned long sc_pc;
  77769. + unsigned long sc_ps;
  77770. + unsigned long sc_lbeg;
  77771. + unsigned long sc_lend;
  77772. + unsigned long sc_lcount;
  77773. + unsigned long sc_sar;
  77774. + unsigned long sc_acclo;
  77775. + unsigned long sc_acchi;
  77776. + unsigned long sc_a[16];
  77777. + void *sc_xtregs;
  77778. +};
  77779. +
  77780. +#endif /* _BITS_SIGCONTEXT_H */
  77781. +
  77782. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/xtensa/bits/sigcontextinfo.h
  77783. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  77784. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/sigcontextinfo.h 2014-06-02 17:40:34.706715815 +0200
  77785. @@ -12,9 +12,8 @@
  77786. Lesser General Public License for more details.
  77787. You should have received a copy of the GNU Lesser General Public
  77788. - License along with the GNU C Library; if not, write to the Free
  77789. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77790. - Boston, MA 02110-1301, USA. */
  77791. + License along with the GNU C Library; if not, see
  77792. + <http://www.gnu.org/licenses/>. */
  77793. /* Also see register-dump.h, where we spill live registers to the
  77794. stack so that we can trace the stack backward. */
  77795. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/xtensa/bits/stackinfo.h
  77796. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  77797. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/stackinfo.h 2014-06-02 17:40:34.706715815 +0200
  77798. @@ -12,9 +12,8 @@
  77799. Lesser General Public License for more details.
  77800. You should have received a copy of the GNU Lesser General Public
  77801. - License along with the GNU C Library; if not, write to the Free
  77802. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77803. - Boston, MA 02110-1301, USA. */
  77804. + License along with the GNU C Library; if not, see
  77805. + <http://www.gnu.org/licenses/>. */
  77806. /* This file contains a bit of information about the stack allocation
  77807. of the processor. */
  77808. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/stat.h uClibc-git/libc/sysdeps/linux/xtensa/bits/stat.h
  77809. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  77810. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/stat.h 2014-06-02 17:40:34.706715815 +0200
  77811. @@ -12,9 +12,8 @@
  77812. Lesser General Public License for more details.
  77813. You should have received a copy of the GNU Lesser General Public
  77814. - License along with the GNU C Library; if not, write to the Free
  77815. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77816. - Boston, MA 02110-1301, USA. */
  77817. + License along with the GNU C Library; if not, see
  77818. + <http://www.gnu.org/licenses/>. */
  77819. #ifndef _SYS_STAT_H
  77820. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  77821. 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
  77822. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  77823. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/uClibc_arch_features.h 2014-06-02 17:40:34.706715815 +0200
  77824. @@ -11,8 +11,8 @@
  77825. /* can your target use syscall6() for mmap ? */
  77826. #define __UCLIBC_MMAP_HAS_6_ARGS__
  77827. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  77828. -#define __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  77829. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  77830. +#define __UCLIBC_SYSCALL_ALIGN_64BIT__
  77831. /* does your target have a broken create_module() ? */
  77832. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  77833. 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
  77834. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
  77835. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/uClibc_page.h 1970-01-01 01:00:00.000000000 +0100
  77836. @@ -1,31 +0,0 @@
  77837. -/* Copyright (C) 2004 Erik Andersen
  77838. - *
  77839. - * This library is free software; you can redistribute it and/or
  77840. - * modify it under the terms of the GNU Lesser General Public
  77841. - * License as published by the Free Software Foundation; either
  77842. - * version 2.1 of the License, or (at your option) any later version.
  77843. - *
  77844. - * The GNU C Library is distributed in the hope that it will be useful,
  77845. - * but WITHOUT ANY WARRANTY; without even the implied warranty of
  77846. - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  77847. - * Lesser General Public License for more details.
  77848. - *
  77849. - * You should have received a copy of the GNU Lesser General Public
  77850. - * License along with the GNU C Library; if not, write to the Free
  77851. - * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77852. - * 02111-1307 USA.
  77853. - */
  77854. -
  77855. -/* Supply an architecture specific value for PAGE_SIZE and friends. */
  77856. -
  77857. -#ifndef _UCLIBC_PAGE_H
  77858. -#define _UCLIBC_PAGE_H
  77859. -
  77860. -#include <bits/xtensa-config.h>
  77861. -
  77862. -/* PAGE_SHIFT determines the page size -- in this case 4096 */
  77863. -#define PAGE_SHIFT XCHAL_MMU_MIN_PTE_PAGE_SIZE
  77864. -#define PAGE_SIZE (1UL << PAGE_SHIFT)
  77865. -#define PAGE_MASK (~(PAGE_SIZE-1))
  77866. -
  77867. -#endif /* _UCLIBC_PAGE_H */
  77868. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/wordsize.h uClibc-git/libc/sysdeps/linux/xtensa/bits/wordsize.h
  77869. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  77870. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/wordsize.h 2014-06-02 17:40:34.706715815 +0200
  77871. @@ -12,8 +12,7 @@
  77872. Lesser General Public License for more details.
  77873. You should have received a copy of the GNU Lesser General Public
  77874. - License along with the GNU C Library; if not, write to the Free
  77875. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77876. - 02111-1307 USA. */
  77877. + License along with the GNU C Library; if not, see
  77878. + <http://www.gnu.org/licenses/>. */
  77879. #define __WORDSIZE 32
  77880. 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
  77881. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/xtensa-config.h 2012-05-15 09:20:09.000000000 +0200
  77882. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/xtensa-config.h 2014-06-02 17:40:34.706715815 +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. #ifndef XTENSA_CONFIG_H
  77892. #define XTENSA_CONFIG_H
  77893. @@ -44,10 +43,4 @@
  77894. #undef XCHAL_NUM_AREGS
  77895. #define XCHAL_NUM_AREGS 64
  77896. -/* Set a default page size. This is currently needed when bootstrapping
  77897. - the runtime linker. See comments in dl-machine.h where this is used. */
  77898. -
  77899. -#undef XCHAL_MMU_MIN_PTE_PAGE_SIZE
  77900. -#define XCHAL_MMU_MIN_PTE_PAGE_SIZE 12
  77901. -
  77902. #endif /* !XTENSA_CONFIG_H */
  77903. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/brk.c uClibc-git/libc/sysdeps/linux/xtensa/brk.c
  77904. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/brk.c 2012-05-15 09:20:09.000000000 +0200
  77905. +++ uClibc-git/libc/sysdeps/linux/xtensa/brk.c 2014-06-02 17:40:34.722715903 +0200
  77906. @@ -13,9 +13,8 @@
  77907. Lesser General Public License for more details.
  77908. You should have received a copy of the GNU Lesser General Public
  77909. - License along with the GNU C Library; if not, write to the Free
  77910. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77911. - Boston, MA 02110-1301, USA. */
  77912. + License along with the GNU C Library; if not, see
  77913. + <http://www.gnu.org/licenses/>. */
  77914. #include <errno.h>
  77915. #include <unistd.h>
  77916. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/clone.S uClibc-git/libc/sysdeps/linux/xtensa/clone.S
  77917. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/clone.S 2012-05-15 09:20:09.000000000 +0200
  77918. +++ uClibc-git/libc/sysdeps/linux/xtensa/clone.S 2014-06-02 17:40:34.722715903 +0200
  77919. @@ -11,9 +11,8 @@
  77920. Lesser General Public License for more details.
  77921. You should have received a copy of the GNU Lesser General Public
  77922. - License along with the GNU C Library; if not, write to the Free
  77923. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77924. - Boston, MA 02110-1301, USA. */
  77925. + License along with the GNU C Library; if not, see
  77926. + <http://www.gnu.org/licenses/>. */
  77927. /* clone is even more special than fork as it mucks with stacks
  77928. and invokes a function in the right context after it's all over. */
  77929. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/crt1.S uClibc-git/libc/sysdeps/linux/xtensa/crt1.S
  77930. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/crt1.S 2012-05-15 09:20:09.000000000 +0200
  77931. +++ uClibc-git/libc/sysdeps/linux/xtensa/crt1.S 2014-06-02 17:40:34.722715903 +0200
  77932. @@ -30,9 +30,8 @@
  77933. Lesser General Public License for more details.
  77934. You should have received a copy of the GNU Lesser General Public
  77935. - License along with the GNU C Library; if not, write to the Free
  77936. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77937. - Boston, MA 02110-1301, USA. */
  77938. + License along with the GNU C Library; if not, see
  77939. + <http://www.gnu.org/licenses/>. */
  77940. #include <features.h>
  77941. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/fork.c uClibc-git/libc/sysdeps/linux/xtensa/fork.c
  77942. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/fork.c 2012-05-15 09:20:09.000000000 +0200
  77943. +++ uClibc-git/libc/sysdeps/linux/xtensa/fork.c 2014-06-02 17:40:34.726715926 +0200
  77944. @@ -7,19 +7,19 @@
  77945. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  77946. */
  77947. -#include <unistd.h>
  77948. -#include <sys/syscall.h>
  77949. -#define _SIGNAL_H
  77950. -#include <bits/signum.h>
  77951. /* Xtensa doesn't provide a 'fork' system call, so we use 'clone'. */
  77952. +#include <sys/syscall.h>
  77953. -extern __typeof(fork) __libc_fork;
  77954. +#if defined __NR_clone && defined __ARCH_USE_MMU__
  77955. +# include <unistd.h>
  77956. +# include <signal.h>
  77957. +# include <cancel.h>
  77958. -libc_hidden_proto(fork)
  77959. -pid_t __libc_fork(void)
  77960. +pid_t fork(void)
  77961. {
  77962. return (pid_t) INLINE_SYSCALL(clone, 2, SIGCHLD, 0);
  77963. }
  77964. -weak_alias(__libc_fork, fork)
  77965. -libc_hidden_weak(fork)
  77966. +lt_strong_alias(fork)
  77967. +lt_libc_hidden(fork)
  77968. +#endif
  77969. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/xtensa/jmpbuf-offsets.h
  77970. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  77971. +++ uClibc-git/libc/sysdeps/linux/xtensa/jmpbuf-offsets.h 2014-06-02 17:40:34.726715926 +0200
  77972. @@ -0,0 +1,20 @@
  77973. +/* Private macros for accessing __jmp_buf contents. Xtensa version.
  77974. + Copyright (C) 2006 Free Software Foundation, Inc.
  77975. + This file is part of the GNU C Library.
  77976. +
  77977. + The GNU C Library is free software; you can redistribute it and/or
  77978. + modify it under the terms of the GNU Lesser General Public
  77979. + License as published by the Free Software Foundation; either
  77980. + version 2.1 of the License, or (at your option) any later version.
  77981. +
  77982. + The GNU C Library is distributed in the hope that it will be useful,
  77983. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  77984. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  77985. + Lesser General Public License for more details.
  77986. +
  77987. + You should have received a copy of the GNU Lesser General Public
  77988. + License along with the GNU C Library; if not, see
  77989. + <http://www.gnu.org/licenses/>. */
  77990. +
  77991. +#define JB_SP 1
  77992. +#define JB_PC 16
  77993. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/xtensa/jmpbuf-unwind.h
  77994. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  77995. +++ uClibc-git/libc/sysdeps/linux/xtensa/jmpbuf-unwind.h 2014-06-02 17:40:34.726715926 +0200
  77996. @@ -0,0 +1,25 @@
  77997. +/* Copyright (C) 1997, 1998, 2007 Free Software Foundation, Inc.
  77998. + This file is part of the GNU C Library.
  77999. +
  78000. + The GNU C Library is free software; you can redistribute it and/or
  78001. + modify it under the terms of the GNU Lesser General Public
  78002. + License as published by the Free Software Foundation; either
  78003. + version 2.1 of the License, or (at your option) any later version.
  78004. +
  78005. + The GNU C Library is distributed in the hope that it will be useful,
  78006. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  78007. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  78008. + Lesser General Public License for more details.
  78009. +
  78010. + You should have received a copy of the GNU Lesser General Public
  78011. + License along with the GNU C Library; if not, see
  78012. + <http://www.gnu.org/licenses/>. */
  78013. +
  78014. +/* Test if longjmp to JMPBUF would unwind the frame containing a local
  78015. + variable at ADDRESS. */
  78016. +
  78017. +#include <setjmp.h>
  78018. +#include <jmpbuf-offsets.h>
  78019. +
  78020. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  78021. + ((void *) (address) < (void *) (jmpbuf)[JB_SP])
  78022. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/__longjmp.S uClibc-git/libc/sysdeps/linux/xtensa/__longjmp.S
  78023. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  78024. +++ uClibc-git/libc/sysdeps/linux/xtensa/__longjmp.S 2014-06-02 17:40:34.686715704 +0200
  78025. @@ -14,9 +14,8 @@
  78026. Lesser General Public License for more details.
  78027. You should have received a copy of the GNU Lesser General Public
  78028. - License along with the GNU C Library; if not, write to the Free
  78029. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  78030. - Boston, MA 02110-1301, USA. */
  78031. + License along with the GNU C Library; if not, see
  78032. + <http://www.gnu.org/licenses/>. */
  78033. /* This implementation relies heavily on the Xtensa register window
  78034. mechanism. Setjmp flushes all the windows except its own to the
  78035. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/Makefile.arch uClibc-git/libc/sysdeps/linux/xtensa/Makefile.arch
  78036. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  78037. +++ uClibc-git/libc/sysdeps/linux/xtensa/Makefile.arch 2014-06-02 17:40:34.686715704 +0200
  78038. @@ -5,11 +5,7 @@
  78039. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  78040. #
  78041. -CSRC := brk.c fork.c pread_write.c sigaction.c __syscall_error.c
  78042. +CSRC-y := brk.c fork.c sigaction.c __syscall_error.c
  78043. -ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y)
  78044. - CSRC += posix_fadvise.c posix_fadvise64.c
  78045. -endif
  78046. -
  78047. -SSRC := bsd-_setjmp.S bsd-setjmp.S setjmp.S clone.S \
  78048. +SSRC-y := bsd-_setjmp.S bsd-setjmp.S setjmp.S clone.S \
  78049. sigrestorer.S syscall.S mmap.S windowspill.S __longjmp.S vfork.S
  78050. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/mmap.S uClibc-git/libc/sysdeps/linux/xtensa/mmap.S
  78051. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/mmap.S 2012-05-15 09:20:09.000000000 +0200
  78052. +++ uClibc-git/libc/sysdeps/linux/xtensa/mmap.S 2014-06-02 17:40:34.726715926 +0200
  78053. @@ -12,9 +12,8 @@
  78054. Lesser General Public License for more details.
  78055. You should have received a copy of the GNU Lesser General Public
  78056. - License along with the GNU C Library; if not, write to the Free
  78057. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  78058. - Boston, MA 02110-1301, USA. */
  78059. + License along with the GNU C Library; if not, see
  78060. + <http://www.gnu.org/licenses/>. */
  78061. #include "sysdep.h"
  78062. #include <sys/syscall.h>
  78063. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/posix_fadvise64.c uClibc-git/libc/sysdeps/linux/xtensa/posix_fadvise64.c
  78064. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/posix_fadvise64.c 2012-05-15 09:20:09.000000000 +0200
  78065. +++ uClibc-git/libc/sysdeps/linux/xtensa/posix_fadvise64.c 1970-01-01 01:00:00.000000000 +0100
  78066. @@ -1,39 +0,0 @@
  78067. -/* vi: set sw=4 ts=4: */
  78068. -/*
  78069. - * posix_fadvise64() for Xtensa uClibc
  78070. - *
  78071. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  78072. - * Copyright (C) 2007 Tensilica Inc.
  78073. - *
  78074. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  78075. - */
  78076. -
  78077. -#include <features.h>
  78078. -#include <unistd.h>
  78079. -#include <errno.h>
  78080. -#include <endian.h>
  78081. -#include <stdint.h>
  78082. -#include <sys/types.h>
  78083. -#include <sys/syscall.h>
  78084. -#include <fcntl.h>
  78085. -
  78086. -#ifdef __UCLIBC_HAS_LFS__
  78087. -
  78088. -int posix_fadvise64 (int fd, __off64_t offset, __off64_t len, int advice)
  78089. -{
  78090. -#ifdef __NR_fadvise64_64
  78091. - INTERNAL_SYSCALL_DECL (err);
  78092. - int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd, advice,
  78093. - __LONG_LONG_PAIR ((long) (offset >> 32),
  78094. - (long) offset),
  78095. - __LONG_LONG_PAIR ((long) (len >> 32),
  78096. - (long) len));
  78097. - if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
  78098. - return 0;
  78099. - return INTERNAL_SYSCALL_ERRNO (ret, err);
  78100. -#else
  78101. - return ENOSYS;
  78102. -#endif
  78103. -}
  78104. -
  78105. -#endif /* __UCLIBC_HAS_LFS__ */
  78106. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/posix_fadvise.c uClibc-git/libc/sysdeps/linux/xtensa/posix_fadvise.c
  78107. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/posix_fadvise.c 2012-05-15 09:20:09.000000000 +0200
  78108. +++ uClibc-git/libc/sysdeps/linux/xtensa/posix_fadvise.c 1970-01-01 01:00:00.000000000 +0100
  78109. @@ -1,29 +0,0 @@
  78110. -/* vi: set sw=4 ts=4: */
  78111. -/*
  78112. - * posix_fadvise() for Xtensa uClibc
  78113. - *
  78114. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  78115. - * Copyright (C) 2007 Tensilica Inc.
  78116. - *
  78117. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  78118. - */
  78119. -
  78120. -#include <sys/syscall.h>
  78121. -#include <fcntl.h>
  78122. -
  78123. -int posix_fadvise (int fd, off_t offset, off_t len, int advice)
  78124. -{
  78125. -#ifdef __NR_fadvise64_64
  78126. - INTERNAL_SYSCALL_DECL (err);
  78127. - int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd, advice,
  78128. - __LONG_LONG_PAIR ((long) (offset >> 31),
  78129. - (long) offset),
  78130. - __LONG_LONG_PAIR ((long) (len >> 31),
  78131. - (long) len));
  78132. - if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
  78133. - return 0;
  78134. - return INTERNAL_SYSCALL_ERRNO (ret, err);
  78135. -#else
  78136. - return ENOSYS;
  78137. -#endif
  78138. -}
  78139. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/pread_write.c uClibc-git/libc/sysdeps/linux/xtensa/pread_write.c
  78140. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/pread_write.c 2012-05-15 09:20:09.000000000 +0200
  78141. +++ uClibc-git/libc/sysdeps/linux/xtensa/pread_write.c 1970-01-01 01:00:00.000000000 +0100
  78142. @@ -1,189 +0,0 @@
  78143. -/* vi: set sw=4 ts=4: */
  78144. -/*
  78145. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  78146. - *
  78147. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  78148. - */
  78149. -/*
  78150. - * Based in part on the files
  78151. - * ./sysdeps/unix/sysv/linux/pwrite.c,
  78152. - * ./sysdeps/unix/sysv/linux/pread.c,
  78153. - * sysdeps/posix/pread.c
  78154. - * sysdeps/posix/pwrite.c
  78155. - * from GNU libc 2.2.5, but reworked considerably...
  78156. - */
  78157. -
  78158. -#include <sys/syscall.h>
  78159. -#include <unistd.h>
  78160. -#include <stdint.h>
  78161. -#include <endian.h>
  78162. -
  78163. -extern __typeof(pread) __libc_pread;
  78164. -extern __typeof(pwrite) __libc_pwrite;
  78165. -#ifdef __UCLIBC_HAS_LFS__
  78166. -extern __typeof(pread64) __libc_pread64;
  78167. -extern __typeof(pwrite64) __libc_pwrite64;
  78168. -#endif
  78169. -
  78170. -#include <bits/kernel_types.h>
  78171. -
  78172. -#ifdef __NR_pread
  78173. -
  78174. -# define __NR___syscall_pread __NR_pread
  78175. -/* On Xtensa, 64-bit values are aligned in even/odd register pairs. */
  78176. -static __inline__ _syscall6(ssize_t, __syscall_pread, int, fd, void *, buf,
  78177. - size_t, count, int, pad, off_t, offset_hi, off_t, offset_lo)
  78178. -
  78179. -ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
  78180. -{
  78181. - return __syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR(offset >> 31, offset));
  78182. -}
  78183. -weak_alias(__libc_pread,pread)
  78184. -
  78185. -# ifdef __UCLIBC_HAS_LFS__
  78186. -ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
  78187. -{
  78188. - uint32_t low = offset & 0xffffffff;
  78189. - uint32_t high = offset >> 32;
  78190. - return __syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR(high, low));
  78191. -}
  78192. -weak_alias(__libc_pread64,pread64)
  78193. -# endif /* __UCLIBC_HAS_LFS__ */
  78194. -
  78195. -#endif /* __NR_pread */
  78196. -
  78197. -#ifdef __NR_pwrite
  78198. -
  78199. -# define __NR___syscall_pwrite __NR_pwrite
  78200. -/* On Xtensa, 64-bit values are aligned in even/odd register pairs. */
  78201. -static __inline__ _syscall6(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
  78202. - size_t, count, int, pad, off_t, offset_hi, off_t, offset_lo)
  78203. -
  78204. -ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
  78205. -{
  78206. - return __syscall_pwrite(fd, buf, count, 0, __LONG_LONG_PAIR(offset >> 31, offset));
  78207. -}
  78208. -weak_alias(__libc_pwrite,pwrite)
  78209. -
  78210. -# ifdef __UCLIBC_HAS_LFS__
  78211. -ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
  78212. -{
  78213. - uint32_t low = offset & 0xffffffff;
  78214. - uint32_t high = offset >> 32;
  78215. - return __syscall_pwrite(fd, buf, count, 0, __LONG_LONG_PAIR(high, low));
  78216. -}
  78217. -weak_alias(__libc_pwrite64,pwrite64)
  78218. -# endif /* __UCLIBC_HAS_LFS__ */
  78219. -#endif /* __NR_pwrite */
  78220. -
  78221. -#if ! defined __NR_pread || ! defined __NR_pwrite
  78222. -
  78223. -static ssize_t __fake_pread_write(int fd, void *buf,
  78224. - size_t count, off_t offset, int do_pwrite)
  78225. -{
  78226. - int save_errno;
  78227. - ssize_t result;
  78228. - off_t old_offset;
  78229. -
  78230. - /* Since we must not change the file pointer preserve the
  78231. - * value so that we can restore it later. */
  78232. - if ((old_offset=lseek(fd, 0, SEEK_CUR)) == (off_t) -1)
  78233. - return -1;
  78234. -
  78235. - /* Set to wanted position. */
  78236. - if (lseek(fd, offset, SEEK_SET) == (off_t) -1)
  78237. - return -1;
  78238. -
  78239. - if (do_pwrite == 1) {
  78240. - /* Write the data. */
  78241. - result = write(fd, buf, count);
  78242. - } else {
  78243. - /* Read the data. */
  78244. - result = read(fd, buf, count);
  78245. - }
  78246. -
  78247. - /* Now we have to restore the position. If this fails we
  78248. - * have to return this as an error. */
  78249. - save_errno = errno;
  78250. - if (lseek(fd, old_offset, SEEK_SET) == (off_t) -1)
  78251. - {
  78252. - if (result == -1)
  78253. - __set_errno(save_errno);
  78254. - return -1;
  78255. - }
  78256. - __set_errno(save_errno);
  78257. - return(result);
  78258. -}
  78259. -
  78260. -# ifdef __UCLIBC_HAS_LFS__
  78261. -
  78262. -static ssize_t __fake_pread_write64(int fd, void *buf,
  78263. - size_t count, off64_t offset, int do_pwrite)
  78264. -{
  78265. - int save_errno;
  78266. - ssize_t result;
  78267. - off64_t old_offset;
  78268. -
  78269. - /* Since we must not change the file pointer preserve the
  78270. - * value so that we can restore it later. */
  78271. - if ((old_offset=lseek64(fd, 0, SEEK_CUR)) == (off64_t) -1)
  78272. - return -1;
  78273. -
  78274. - /* Set to wanted position. */
  78275. - if (lseek64(fd, offset, SEEK_SET) == (off64_t) -1)
  78276. - return -1;
  78277. -
  78278. - if (do_pwrite == 1) {
  78279. - /* Write the data. */
  78280. - result = write(fd, buf, count);
  78281. - } else {
  78282. - /* Read the data. */
  78283. - result = read(fd, buf, count);
  78284. - }
  78285. -
  78286. - /* Now we have to restore the position. */
  78287. - save_errno = errno;
  78288. - if (lseek64(fd, old_offset, SEEK_SET) == (off64_t) -1) {
  78289. - if (result == -1)
  78290. - __set_errno (save_errno);
  78291. - return -1;
  78292. - }
  78293. - __set_errno (save_errno);
  78294. - return result;
  78295. -}
  78296. -# endif /* __UCLIBC_HAS_LFS__ */
  78297. -#endif /* ! defined __NR_pread || ! defined __NR_pwrite */
  78298. -
  78299. -#ifndef __NR_pread
  78300. -ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
  78301. -{
  78302. - return __fake_pread_write(fd, buf, count, offset, 0);
  78303. -}
  78304. -weak_alias(__libc_pread,pread)
  78305. -
  78306. -# ifdef __UCLIBC_HAS_LFS__
  78307. -ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
  78308. -{
  78309. - return __fake_pread_write64(fd, buf, count, offset, 0);
  78310. -}
  78311. -weak_alias(__libc_pread64,pread64)
  78312. -# endif /* __UCLIBC_HAS_LFS__ */
  78313. -#endif /* ! __NR_pread */
  78314. -
  78315. -#ifndef __NR_pwrite
  78316. -ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
  78317. -{
  78318. - /* we won't actually be modifying the buffer,
  78319. - *just cast it to get rid of warnings */
  78320. - return __fake_pread_write(fd, (void*)buf, count, offset, 1);
  78321. -}
  78322. -weak_alias(__libc_pwrite,pwrite)
  78323. -
  78324. -# ifdef __UCLIBC_HAS_LFS__
  78325. -ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
  78326. -{
  78327. - return __fake_pread_write64(fd, (void*)buf, count, offset, 1);
  78328. -}
  78329. -weak_alias(__libc_pwrite64,pwrite64)
  78330. -# endif /* __UCLIBC_HAS_LFS__ */
  78331. -#endif /* ! __NR_pwrite */
  78332. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/setjmp.S uClibc-git/libc/sysdeps/linux/xtensa/setjmp.S
  78333. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  78334. +++ uClibc-git/libc/sysdeps/linux/xtensa/setjmp.S 2014-06-02 17:40:34.726715926 +0200
  78335. @@ -13,9 +13,8 @@
  78336. Lesser General Public License for more details.
  78337. You should have received a copy of the GNU Lesser General Public
  78338. - License along with the GNU C Library; if not, write to the Free
  78339. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  78340. - Boston, MA 02110-1301, USA. */
  78341. + License along with the GNU C Library; if not, see
  78342. + <http://www.gnu.org/licenses/>. */
  78343. /* This implementation relies heavily on the Xtensa register window
  78344. mechanism. Setjmp flushes all the windows except its own to the
  78345. @@ -25,24 +24,52 @@
  78346. then sets things up so that it will return to the right place,
  78347. using a window underflow to automatically restore the registers.
  78348. - Note that it would probably be sufficient to only copy the
  78349. - registers from setjmp's caller into jmp_buf. However, we also copy
  78350. - the save area located at the stack pointer of setjmp's caller.
  78351. - This save area will typically remain intact until the longjmp call.
  78352. - The one exception is when there is an intervening alloca in
  78353. - setjmp's caller. This is certainly an unusual situation and is
  78354. - likely to cause problems in any case (the storage allocated on the
  78355. - stack cannot be safely accessed following the longjmp). As bad as
  78356. - it is, on most systems this situation would not necessarily lead to
  78357. - a catastrophic failure. If we did not preserve the extra save area
  78358. - on Xtensa, however, it would. When setjmp's caller returns after a
  78359. - longjmp, there will be a window underflow; an invalid return
  78360. - address or stack pointer in the save area will almost certainly
  78361. - lead to a crash. Keeping a copy of the extra save area in the
  78362. - jmp_buf avoids this with only a small additional cost. If setjmp
  78363. - and longjmp are ever time-critical, this could be removed. */
  78364. + Note that we also save the area located just below the stack pointer
  78365. + of the caller. This save area could get overwritten by alloca
  78366. + following the call to setjmp. The alloca moves the stack pointer
  78367. + to allocate memory on the stack. This newly allocated memory
  78368. + includes(!) the original save area (alloca copies the save area
  78369. + before it moves that stack pointer).
  78370. +
  78371. +
  78372. + previous caller SP -> |------------------------------| <-----+
  78373. + | caller-2 registers a0-a3 | | p
  78374. + |------------------------------| | o
  78375. + | caller registers a4-a8/a12 | | i
  78376. + |------------------------------| | n
  78377. + | caller local stack | | t
  78378. + caller SP -> |------------------------------| <-+ | s
  78379. + | caller-1 registers a0-a3 | -:---+
  78380. + callee (setjmp) SP -> |==============================| |
  78381. + | caller registers a0-a3 | --+
  78382. + |------------------------------|
  78383. +
  78384. + In case of an alloca, registers a0-a3 of the previous caller (caller-1)
  78385. + are copied (*), and the original location get likely overwritten.
  78386. +
  78387. + previous caller SP -> |------------------------------| <-----+
  78388. + | caller-2 registers a0-a3 | | p
  78389. + |------------------------------| | o
  78390. + | caller registers a4-a8/a12 | | i
  78391. + |------------------------------| | n
  78392. + | caller local stack | | t
  78393. + caller SP before alloca-> |------------------------------| | s
  78394. + | alloca area (overwrites old | |
  78395. + | copy of caller-1 registers) | |
  78396. + caller SP after alloca -> |------------------------------| <-+ |
  78397. + | caller-1 registers a0-a3 (*) | -:---+
  78398. + callee (setjmp) SP -> |==============================| |
  78399. + | caller registers a0-a3 | --+
  78400. + |------------------------------|
  78401. +
  78402. + So, when longcall returns to the original caller SP, it also needs
  78403. + to restore the save area below the SP.
  78404. +
  78405. + */
  78406. #include "sysdep.h"
  78407. +
  78408. +/* NOTE: The ENTRY macro must allocate exactly 16 bytes (entry a1, 16) */
  78409. /* int setjmp (a2 = jmp_buf env) */
  78410. @@ -57,8 +84,7 @@
  78411. j 1f
  78412. END (setjmp)
  78413. -/* int __sigsetjmp (a2 = jmp_buf env,
  78414. - a3 = int savemask) */
  78415. +/* int __sigsetjmp (a2 = jmp_buf env, a3 = int savemask) */
  78416. ENTRY (__sigsetjmp)
  78417. 1:
  78418. @@ -66,61 +92,56 @@
  78419. movi a4, __window_spill
  78420. callx4 a4
  78421. - /* Preserve the second argument (savemask) in a15. The selection
  78422. - of a15 is arbitrary, except it's otherwise unused. There is no
  78423. - risk of triggering a window overflow since we just returned
  78424. - from __window_spill(). */
  78425. - mov a15, a3
  78426. -
  78427. - /* Copy the register save area at (sp - 16). */
  78428. - addi a5, a1, -16
  78429. - l32i a3, a5, 0
  78430. - l32i a4, a5, 4
  78431. - s32i a3, a2, 0
  78432. - s32i a4, a2, 4
  78433. - l32i a3, a5, 8
  78434. - l32i a4, a5, 12
  78435. - s32i a3, a2, 8
  78436. - s32i a4, a2, 12
  78437. -
  78438. - /* Copy 0-8 words from the register overflow area. */
  78439. - extui a3, a0, 30, 2
  78440. - blti a3, 2, .Lendsj
  78441. - l32i a7, a1, 4
  78442. - slli a4, a3, 4
  78443. - sub a5, a7, a4
  78444. - addi a6, a2, 16
  78445. - addi a7, a7, -16 /* a7 = end of register overflow area */
  78446. + /* Copy the caller register a0-a3 at (sp - 16) to jmpbuf. */
  78447. + addi a7, a1, -16
  78448. + l32i a4, a7, 0
  78449. + l32i a5, a7, 4
  78450. + s32i a4, a2, 0
  78451. + s32i a5, a2, 4
  78452. + l32i a4, a7, 8
  78453. + l32i a5, a7, 12
  78454. + s32i a4, a2, 8
  78455. + s32i a5, a2, 12
  78456. +
  78457. + /* Copy the caller registers a4-a8/a12 from the overflow area. */
  78458. + /* Note that entry moved the SP by 16B, so SP of caller-1 is at 4(sp) */
  78459. + extui a7, a0, 30, 2
  78460. + blti a7, 2, .Lendsj
  78461. + l32i a8, a1, 4 /* a8: SP of 'caller-1' */
  78462. + slli a4, a7, 4
  78463. + sub a6, a8, a4
  78464. + addi a5, a2, 16
  78465. + addi a8, a8, -16 /* a8: end of register overflow area */
  78466. .Lsjloop:
  78467. - l32i a3, a5, 0
  78468. - l32i a4, a5, 4
  78469. - s32i a3, a6, 0
  78470. - s32i a4, a6, 4
  78471. - l32i a3, a5, 8
  78472. - l32i a4, a5, 12
  78473. - s32i a3, a6, 8
  78474. - s32i a4, a6, 12
  78475. - addi a5, a5, 16
  78476. + l32i a7, a6, 0
  78477. + l32i a4, a6, 4
  78478. + s32i a7, a5, 0
  78479. + s32i a4, a5, 4
  78480. + l32i a7, a6, 8
  78481. + l32i a4, a6, 12
  78482. + s32i a7, a5, 8
  78483. + s32i a4, a5, 12
  78484. + addi a5, a6, 16
  78485. addi a6, a6, 16
  78486. - blt a5, a7, .Lsjloop
  78487. + blt a6, a8, .Lsjloop
  78488. .Lendsj:
  78489. - /* Copy the register save area at sp. */
  78490. - l32i a3, a1, 0
  78491. - l32i a4, a1, 4
  78492. - s32i a3, a2, 48
  78493. - s32i a4, a2, 52
  78494. - l32i a3, a1, 8
  78495. - l32i a4, a1, 12
  78496. - s32i a3, a2, 56
  78497. - s32i a4, a2, 60
  78498. + /* Copy previous caller registers (this is assuming 'entry a1,16') */
  78499. + l32i a4, a1, 0
  78500. + l32i a5, a1, 4
  78501. + s32i a4, a2, 48
  78502. + s32i a5, a2, 52
  78503. + l32i a4, a1, 8
  78504. + l32i a5, a1, 12
  78505. + s32i a4, a2, 56
  78506. + s32i a5, a2, 60
  78507. /* Save the return address, including the window size bits. */
  78508. s32i a0, a2, 64
  78509. - /* a2 still addresses jmp_buf. a15 contains savemask. */
  78510. + /* a2 still points to jmp_buf. a3 contains savemask. */
  78511. mov a6, a2
  78512. - mov a7, a15
  78513. + mov a7, a3
  78514. movi a3, __sigjmp_save
  78515. callx4 a3
  78516. mov a2, a6
  78517. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/procfs.h uClibc-git/libc/sysdeps/linux/xtensa/sys/procfs.h
  78518. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  78519. +++ uClibc-git/libc/sysdeps/linux/xtensa/sys/procfs.h 2014-06-02 17:40:34.726715926 +0200
  78520. @@ -12,9 +12,8 @@
  78521. Lesser General Public License for more details.
  78522. You should have received a copy of the GNU Lesser General Public
  78523. - License along with the GNU C Library; if not, write to the Free
  78524. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  78525. - Boston, MA 02110-1301, USA. */
  78526. + License along with the GNU C Library; if not, see
  78527. + <http://www.gnu.org/licenses/>. */
  78528. #ifndef _SYS_PROCFS_H
  78529. #define _SYS_PROCFS_H 1
  78530. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/ptrace.h uClibc-git/libc/sysdeps/linux/xtensa/sys/ptrace.h
  78531. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
  78532. +++ uClibc-git/libc/sysdeps/linux/xtensa/sys/ptrace.h 1970-01-01 01:00:00.000000000 +0100
  78533. @@ -1,156 +0,0 @@
  78534. -/* `ptrace' debugger support interface. Linux version.
  78535. - Copyright (C) 1996, 1997, 1998, 1999, 2000, 2007
  78536. - Free Software Foundation, Inc.
  78537. - This file is part of the GNU C Library.
  78538. -
  78539. - The GNU C Library is free software; you can redistribute it and/or
  78540. - modify it under the terms of the GNU Lesser General Public
  78541. - License as published by the Free Software Foundation; either
  78542. - version 2.1 of the License, or (at your option) any later version.
  78543. -
  78544. - The GNU C Library is distributed in the hope that it will be useful,
  78545. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  78546. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  78547. - Lesser General Public License for more details.
  78548. -
  78549. - You should have received a copy of the GNU Lesser General Public
  78550. - License along with the GNU C Library; if not, write to the Free
  78551. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  78552. - Boston, MA 02110-1301, USA. */
  78553. -
  78554. -#ifndef _SYS_PTRACE_H
  78555. -#define _SYS_PTRACE_H 1
  78556. -
  78557. -#include <features.h>
  78558. -
  78559. -/* Kludge away careless namespace pollution from the kernel. */
  78560. -
  78561. -#undef PTRACE_GETREGS
  78562. -#undef PTRACE_SETREGS
  78563. -#undef PTRACE_GETFPREGS
  78564. -#undef PTRACE_SETFPREGS
  78565. -#undef PTRACE_GETFPREGSIZE
  78566. -
  78567. -
  78568. -__BEGIN_DECLS
  78569. -
  78570. -/* Type of the REQUEST argument to `ptrace.' */
  78571. -enum __ptrace_request
  78572. -{
  78573. - /* Indicate that the process making this request should be traced.
  78574. - All signals received by this process can be intercepted by its
  78575. - parent, and its parent can use the other `ptrace' requests. */
  78576. - PTRACE_TRACEME = 0,
  78577. -#define PT_TRACE_ME PTRACE_TRACEME
  78578. -
  78579. - /* Return the word in the process's text space at address ADDR. */
  78580. - PTRACE_PEEKTEXT = 1,
  78581. -#define PT_READ_I PTRACE_PEEKTEXT
  78582. -
  78583. - /* Return the word in the process's data space at address ADDR. */
  78584. - PTRACE_PEEKDATA = 2,
  78585. -#define PT_READ_D PTRACE_PEEKDATA
  78586. -
  78587. - /* Return the word in the process's user area at offset ADDR. */
  78588. - PTRACE_PEEKUSER = 3,
  78589. -#define PT_READ_U PTRACE_PEEKUSER
  78590. -
  78591. - /* Write the word DATA into the process's text space at address ADDR. */
  78592. - PTRACE_POKETEXT = 4,
  78593. -#define PT_WRITE_I PTRACE_POKETEXT
  78594. -
  78595. - /* Write the word DATA into the process's data space at address ADDR. */
  78596. - PTRACE_POKEDATA = 5,
  78597. -#define PT_WRITE_D PTRACE_POKEDATA
  78598. -
  78599. - /* Write the word DATA into the process's user area at offset ADDR. */
  78600. - PTRACE_POKEUSER = 6,
  78601. -#define PT_WRITE_U PTRACE_POKEUSER
  78602. -
  78603. - /* Continue the process. */
  78604. - PTRACE_CONT = 7,
  78605. -#define PT_CONTINUE PTRACE_CONT
  78606. -
  78607. - /* Kill the process. */
  78608. - PTRACE_KILL = 8,
  78609. -#define PT_KILL PTRACE_KILL
  78610. -
  78611. - /* Single step the process.
  78612. - This is not supported on all machines. */
  78613. - PTRACE_SINGLESTEP = 9,
  78614. -#define PT_STEP PTRACE_SINGLESTEP
  78615. -
  78616. - /* Get all general purpose registers used by a processes.
  78617. - This is not supported on all machines. */
  78618. - PTRACE_GETREGS = 12,
  78619. -#define PT_GETREGS PTRACE_GETREGS
  78620. -
  78621. - /* Set all general purpose registers used by a processes.
  78622. - This is not supported on all machines. */
  78623. - PTRACE_SETREGS = 13,
  78624. -#define PT_SETREGS PTRACE_SETREGS
  78625. -
  78626. - /* Get all floating point registers used by a processes.
  78627. - This is not supported on all machines. */
  78628. - PTRACE_GETFPREGS = 14,
  78629. -#define PT_GETFPREGS PTRACE_GETFPREGS
  78630. -
  78631. - /* Set all floating point registers used by a processes.
  78632. - This is not supported on all machines. */
  78633. - PTRACE_SETFPREGS = 15,
  78634. -#define PT_SETFPREGS PTRACE_SETFPREGS
  78635. -
  78636. - /* Attach to a process that is already running. */
  78637. - PTRACE_ATTACH = 16,
  78638. -#define PT_ATTACH PTRACE_ATTACH
  78639. -
  78640. - /* Detach from a process attached to with PTRACE_ATTACH. */
  78641. - PTRACE_DETACH = 17,
  78642. -#define PT_DETACH PTRACE_DETACH
  78643. -
  78644. - /* Get size required for the buffer holding the floating point registers.
  78645. - This is not supported on all machines. */
  78646. - PTRACE_GETFPREGSIZE = 18,
  78647. -#define PT_GETFPREGSIZE PTRACE_GETFPREGSIZE
  78648. -
  78649. - /* Continue and stop at the next (return from) syscall. */
  78650. - PTRACE_SYSCALL = 24
  78651. -#define PT_SYSCALL PTRACE_SYSCALL
  78652. -};
  78653. -
  78654. -/* Options set using PTRACE_SETOPTIONS. */
  78655. -enum __ptrace_setoptions {
  78656. - PTRACE_O_TRACESYSGOOD = 0x00000001,
  78657. - PTRACE_O_TRACEFORK = 0x00000002,
  78658. - PTRACE_O_TRACEVFORK = 0x00000004,
  78659. - PTRACE_O_TRACECLONE = 0x00000008,
  78660. - PTRACE_O_TRACEEXEC = 0x00000010,
  78661. - PTRACE_O_TRACEVFORKDONE = 0x00000020,
  78662. - PTRACE_O_TRACEEXIT = 0x00000040,
  78663. - PTRACE_O_MASK = 0x0000007f
  78664. -};
  78665. -
  78666. -/* Wait extended result codes for the above trace options. */
  78667. -enum __ptrace_eventcodes {
  78668. - PTRACE_EVENT_FORK = 1,
  78669. - PTRACE_EVENT_VFORK = 2,
  78670. - PTRACE_EVENT_CLONE = 3,
  78671. - PTRACE_EVENT_EXEC = 4,
  78672. - PTRACE_EVENT_VFORK_DONE = 5,
  78673. - PTRACE_EVENT_EXIT = 6
  78674. -};
  78675. -
  78676. -/* Perform process tracing functions. REQUEST is one of the values
  78677. - above, and determines the action to be taken.
  78678. - For all requests except PTRACE_TRACEME, PID specifies the process to be
  78679. - traced.
  78680. -
  78681. - PID and the other arguments described above for the various requests should
  78682. - appear (those that are used for the particular request) as:
  78683. - pid_t PID, void *ADDR, int DATA, void *ADDR2
  78684. - after REQUEST. */
  78685. -extern long int ptrace (enum __ptrace_request __request, ...) __THROW;
  78686. -
  78687. -__END_DECLS
  78688. -
  78689. -#endif /* _SYS_PTRACE_H */
  78690. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/ucontext.h uClibc-git/libc/sysdeps/linux/xtensa/sys/ucontext.h
  78691. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  78692. +++ uClibc-git/libc/sysdeps/linux/xtensa/sys/ucontext.h 2014-06-02 17:40:34.726715926 +0200
  78693. @@ -12,9 +12,8 @@
  78694. Lesser General Public License for more details.
  78695. You should have received a copy of the GNU Lesser General Public
  78696. - License along with the GNU C Library; if not, write to the Free
  78697. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  78698. - Boston, MA 02110-1301, USA. */
  78699. + License along with the GNU C Library; if not, see
  78700. + <http://www.gnu.org/licenses/>. */
  78701. #ifndef _SYS_UCONTEXT_H
  78702. #define _SYS_UCONTEXT_H 1
  78703. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/user.h uClibc-git/libc/sysdeps/linux/xtensa/sys/user.h
  78704. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/user.h 1970-01-01 01:00:00.000000000 +0100
  78705. +++ uClibc-git/libc/sysdeps/linux/xtensa/sys/user.h 2014-06-02 17:40:34.726715926 +0200
  78706. @@ -0,0 +1,20 @@
  78707. +/*
  78708. + * include/asm-xtensa/user.h
  78709. + *
  78710. + * Xtensa Processor version.
  78711. + *
  78712. + * This file is subject to the terms and conditions of the GNU General Public
  78713. + * License. See the file "COPYING" in the main directory of this archive
  78714. + * for more details.
  78715. + *
  78716. + * Copyright (C) 2001 - 2005 Tensilica Inc.
  78717. + */
  78718. +
  78719. +#ifndef _XTENSA_USER_H
  78720. +#define _XTENSA_USER_H
  78721. +
  78722. +/* This file usually defines a 'struct user' structure. However, it it only
  78723. + * used for a.out file, which are not supported on Xtensa.
  78724. + */
  78725. +
  78726. +#endif /* _XTENSA_USER_H */
  78727. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/syscall.S uClibc-git/libc/sysdeps/linux/xtensa/syscall.S
  78728. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/syscall.S 2012-05-15 09:20:09.000000000 +0200
  78729. +++ uClibc-git/libc/sysdeps/linux/xtensa/syscall.S 2014-06-02 17:40:34.726715926 +0200
  78730. @@ -12,9 +12,8 @@
  78731. Lesser General Public License for more details.
  78732. You should have received a copy of the GNU Lesser General Public
  78733. - License along with the GNU C Library; if not, write to the Free
  78734. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  78735. - Boston, MA 02110-1301, USA. */
  78736. + License along with the GNU C Library; if not, see
  78737. + <http://www.gnu.org/licenses/>. */
  78738. #include "sysdep.h"
  78739. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sysdep.h uClibc-git/libc/sysdeps/linux/xtensa/sysdep.h
  78740. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  78741. +++ uClibc-git/libc/sysdeps/linux/xtensa/sysdep.h 2014-06-02 17:40:34.726715926 +0200
  78742. @@ -13,9 +13,10 @@
  78743. Lesser General Public License for more details.
  78744. You should have received a copy of the GNU Lesser General Public
  78745. - License along with the GNU C Library; if not, write to the Free
  78746. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  78747. - Boston, MA 02110-1301, USA. */
  78748. + License along with the GNU C Library; if not, see
  78749. + <http://www.gnu.org/licenses/>. */
  78750. +
  78751. +#include <sys/syscall.h>
  78752. #ifdef __ASSEMBLER__
  78753. @@ -38,6 +39,16 @@
  78754. entry sp, FRAMESIZE; \
  78755. CALL_MCOUNT
  78756. +#define HIDDEN_ENTRY(name) \
  78757. + ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(name); \
  78758. + .hidden C_SYMBOL_NAME(name); \
  78759. + ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name), @function); \
  78760. + .align ALIGNARG(2); \
  78761. + LITERAL_POSITION; \
  78762. + C_LABEL(name) \
  78763. + entry sp, FRAMESIZE; \
  78764. + CALL_MCOUNT
  78765. +
  78766. #undef END
  78767. #define END(name) ASM_SIZE_DIRECTIVE(name)
  78768. @@ -112,6 +123,7 @@
  78769. #define PSEUDO_END_ERRVAL(name) \
  78770. END (name)
  78771. +#undef ret_ERRVAL
  78772. #define ret_ERRVAL retw
  78773. #if defined RTLD_PRIVATE_ERRNO
  78774. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/vfork.S uClibc-git/libc/sysdeps/linux/xtensa/vfork.S
  78775. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/vfork.S 2012-05-15 09:20:09.000000000 +0200
  78776. +++ uClibc-git/libc/sysdeps/linux/xtensa/vfork.S 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., 51 Franklin Street - Fifth Floor,
  78782. - Boston, MA 02110-1301, USA. */
  78783. + License along with the GNU C Library; if not, see
  78784. + <http://www.gnu.org/licenses/>. */
  78785. #include "sysdep.h"
  78786. #include <sys/syscall.h>
  78787. @@ -49,7 +48,7 @@
  78788. /* pid_t vfork(void);
  78789. Implemented as __clone_syscall(CLONE_VFORK | CLONE_VM | SIGCHLD, 0) */
  78790. -ENTRY (__vfork)
  78791. +HIDDEN_ENTRY (__vfork)
  78792. movi a6, .Ljumptable
  78793. extui a2, a0, 30, 2 /* call-size: call4/8/12 = 1/2/3 */
  78794. @@ -165,6 +164,5 @@
  78795. .Lpseudo_end:
  78796. retw
  78797. -libc_hidden_def (__vfork)
  78798. -
  78799. weak_alias (__vfork, vfork)
  78800. +libc_hidden_def(vfork)
  78801. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/windowspill.S uClibc-git/libc/sysdeps/linux/xtensa/windowspill.S
  78802. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/windowspill.S 2012-05-15 09:20:09.000000000 +0200
  78803. +++ uClibc-git/libc/sysdeps/linux/xtensa/windowspill.S 2014-06-02 17:40:34.726715926 +0200
  78804. @@ -13,9 +13,8 @@
  78805. Lesser General Public License for more details.
  78806. You should have received a copy of the GNU Lesser General Public
  78807. - License along with the GNU C Library; if not, write to the Free
  78808. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  78809. - Boston, MA 02110-1301, USA. */
  78810. + License along with the GNU C Library; if not, see
  78811. + <http://www.gnu.org/licenses/>. */
  78812. #include <bits/xtensa-config.h>
  78813. diff -Nur uClibc-0.9.33.2/libc/termios/cfmakeraw.c uClibc-git/libc/termios/cfmakeraw.c
  78814. --- uClibc-0.9.33.2/libc/termios/cfmakeraw.c 2012-05-15 09:20:09.000000000 +0200
  78815. +++ uClibc-git/libc/termios/cfmakeraw.c 2014-06-02 17:40:34.726715926 +0200
  78816. @@ -12,9 +12,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 <termios.h>
  78825. diff -Nur uClibc-0.9.33.2/libc/termios/cfsetspeed.c uClibc-git/libc/termios/cfsetspeed.c
  78826. --- uClibc-0.9.33.2/libc/termios/cfsetspeed.c 2012-05-15 09:20:09.000000000 +0200
  78827. +++ uClibc-git/libc/termios/cfsetspeed.c 2014-06-02 17:40:34.726715926 +0200
  78828. @@ -12,9 +12,8 @@
  78829. Lesser General Public License for more details.
  78830. You should have received a copy of the GNU Lesser General Public
  78831. - License along with the GNU C Library; if not, write to the Free
  78832. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78833. - 02111-1307 USA. */
  78834. + License along with the GNU C Library; if not, see
  78835. + <http://www.gnu.org/licenses/>. */
  78836. #include <termios.h>
  78837. #include <errno.h>
  78838. diff -Nur uClibc-0.9.33.2/libc/termios/isatty.c uClibc-git/libc/termios/isatty.c
  78839. --- uClibc-0.9.33.2/libc/termios/isatty.c 2012-05-15 09:20:09.000000000 +0200
  78840. +++ uClibc-git/libc/termios/isatty.c 2014-06-02 17:40:34.726715926 +0200
  78841. @@ -12,9 +12,8 @@
  78842. Lesser General Public License for more details.
  78843. You should have received a copy of the GNU Lesser General Public
  78844. - License along with the GNU C Library; if not, write to the Free
  78845. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78846. - 02111-1307 USA. */
  78847. + License along with the GNU C Library; if not, see
  78848. + <http://www.gnu.org/licenses/>. */
  78849. #include <unistd.h>
  78850. #include <termios.h>
  78851. diff -Nur uClibc-0.9.33.2/libc/termios/kernel_termios.h uClibc-git/libc/termios/kernel_termios.h
  78852. --- uClibc-0.9.33.2/libc/termios/kernel_termios.h 2012-05-15 09:20:09.000000000 +0200
  78853. +++ uClibc-git/libc/termios/kernel_termios.h 2014-06-02 17:40:34.726715926 +0200
  78854. @@ -12,9 +12,8 @@
  78855. Lesser General Public License for more details.
  78856. You should have received a copy of the GNU Lesser General Public
  78857. - License along with the GNU C Library; if not, write to the Free
  78858. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78859. - 02111-1307 USA. */
  78860. + License along with the GNU C Library; if not, see
  78861. + <http://www.gnu.org/licenses/>. */
  78862. #ifndef _KERNEL_TERMIOS_H
  78863. #define _KERNEL_TERMIOS_H 1
  78864. diff -Nur uClibc-0.9.33.2/libc/termios/speed.c uClibc-git/libc/termios/speed.c
  78865. --- uClibc-0.9.33.2/libc/termios/speed.c 2012-05-15 09:20:09.000000000 +0200
  78866. +++ uClibc-git/libc/termios/speed.c 2014-06-02 17:40:34.726715926 +0200
  78867. @@ -14,9 +14,8 @@
  78868. Lesser General Public License for more details.
  78869. You should have received a copy of the GNU Lesser General Public
  78870. - License along with the GNU C Library; if not, write to the Free
  78871. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78872. - 02111-1307 USA. */
  78873. + License along with the GNU C Library; if not, see
  78874. + <http://www.gnu.org/licenses/>. */
  78875. #include <stddef.h>
  78876. #include <errno.h>
  78877. diff -Nur uClibc-0.9.33.2/libc/termios/tcdrain.c uClibc-git/libc/termios/tcdrain.c
  78878. --- uClibc-0.9.33.2/libc/termios/tcdrain.c 2012-05-15 09:20:09.000000000 +0200
  78879. +++ uClibc-git/libc/termios/tcdrain.c 2014-06-02 17:40:34.726715926 +0200
  78880. @@ -12,9 +12,8 @@
  78881. Lesser General Public License for more details.
  78882. You should have received a copy of the GNU Lesser General Public
  78883. - License along with the GNU C Library; if not, write to the Free
  78884. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78885. - 02111-1307 USA. */
  78886. + License along with the GNU C Library; if not, see
  78887. + <http://www.gnu.org/licenses/>. */
  78888. #include <errno.h>
  78889. #include <termios.h>
  78890. diff -Nur uClibc-0.9.33.2/libc/termios/tcflow.c uClibc-git/libc/termios/tcflow.c
  78891. --- uClibc-0.9.33.2/libc/termios/tcflow.c 2012-05-15 09:20:09.000000000 +0200
  78892. +++ uClibc-git/libc/termios/tcflow.c 2014-06-02 17:40:34.726715926 +0200
  78893. @@ -13,9 +13,8 @@
  78894. Lesser General Public License for more details.
  78895. You should have received a copy of the GNU Lesser General Public
  78896. - License along with the GNU C Library; if not, write to the Free
  78897. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78898. - 02111-1307 USA. */
  78899. + License along with the GNU C Library; if not, see
  78900. + <http://www.gnu.org/licenses/>. */
  78901. #include <errno.h>
  78902. #include <termios.h>
  78903. diff -Nur uClibc-0.9.33.2/libc/termios/tcflush.c uClibc-git/libc/termios/tcflush.c
  78904. --- uClibc-0.9.33.2/libc/termios/tcflush.c 2012-05-15 09:20:09.000000000 +0200
  78905. +++ uClibc-git/libc/termios/tcflush.c 2014-06-02 17:40:34.726715926 +0200
  78906. @@ -13,9 +13,8 @@
  78907. Lesser General Public License for more details.
  78908. You should have received a copy of the GNU Lesser General Public
  78909. - License along with the GNU C Library; if not, write to the Free
  78910. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78911. - 02111-1307 USA. */
  78912. + License along with the GNU C Library; if not, see
  78913. + <http://www.gnu.org/licenses/>. */
  78914. #include <errno.h>
  78915. #include <termios.h>
  78916. diff -Nur uClibc-0.9.33.2/libc/termios/tcgetattr.c uClibc-git/libc/termios/tcgetattr.c
  78917. --- uClibc-0.9.33.2/libc/termios/tcgetattr.c 2012-05-15 09:20:09.000000000 +0200
  78918. +++ uClibc-git/libc/termios/tcgetattr.c 2014-06-02 17:40:34.726715926 +0200
  78919. @@ -12,9 +12,8 @@
  78920. Lesser General Public License for more details.
  78921. You should have received a copy of the GNU Lesser General Public
  78922. - License along with the GNU C Library; if not, write to the Free
  78923. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78924. - 02111-1307 USA. */
  78925. + License along with the GNU C Library; if not, see
  78926. + <http://www.gnu.org/licenses/>. */
  78927. #include <features.h>
  78928. #include <string.h>
  78929. diff -Nur uClibc-0.9.33.2/libc/termios/tcgetpgrp.c uClibc-git/libc/termios/tcgetpgrp.c
  78930. --- uClibc-0.9.33.2/libc/termios/tcgetpgrp.c 2012-05-15 09:20:09.000000000 +0200
  78931. +++ uClibc-git/libc/termios/tcgetpgrp.c 2014-06-02 17:40:34.726715926 +0200
  78932. @@ -12,9 +12,8 @@
  78933. Lesser General Public License for more details.
  78934. You should have received a copy of the GNU Lesser General Public
  78935. - License along with the GNU C Library; if not, write to the Free
  78936. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78937. - 02111-1307 USA. */
  78938. + License along with the GNU C Library; if not, see
  78939. + <http://www.gnu.org/licenses/>. */
  78940. #include <sys/ioctl.h>
  78941. #include <errno.h>
  78942. diff -Nur uClibc-0.9.33.2/libc/termios/tcgetsid.c uClibc-git/libc/termios/tcgetsid.c
  78943. --- uClibc-0.9.33.2/libc/termios/tcgetsid.c 2012-05-15 09:20:09.000000000 +0200
  78944. +++ uClibc-git/libc/termios/tcgetsid.c 2014-06-02 17:40:34.726715926 +0200
  78945. @@ -12,9 +12,8 @@
  78946. Lesser General Public License for more details.
  78947. You should have received a copy of the GNU Lesser General Public
  78948. - License along with the GNU C Library; if not, write to the Free
  78949. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78950. - 02111-1307 USA. */
  78951. + License along with the GNU C Library; if not, see
  78952. + <http://www.gnu.org/licenses/>. */
  78953. #include <errno.h>
  78954. #include <termios.h>
  78955. diff -Nur uClibc-0.9.33.2/libc/termios/tcsendbrk.c uClibc-git/libc/termios/tcsendbrk.c
  78956. --- uClibc-0.9.33.2/libc/termios/tcsendbrk.c 2012-05-15 09:20:09.000000000 +0200
  78957. +++ uClibc-git/libc/termios/tcsendbrk.c 2014-06-02 17:40:34.726715926 +0200
  78958. @@ -13,9 +13,8 @@
  78959. Lesser General Public License for more details.
  78960. You should have received a copy of the GNU Lesser General Public
  78961. - License along with the GNU C Library; if not, write to the Free
  78962. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78963. - 02111-1307 USA. */
  78964. + License along with the GNU C Library; if not, see
  78965. + <http://www.gnu.org/licenses/>. */
  78966. #include <errno.h>
  78967. #include <stddef.h>
  78968. diff -Nur uClibc-0.9.33.2/libc/termios/tcsetattr.c uClibc-git/libc/termios/tcsetattr.c
  78969. --- uClibc-0.9.33.2/libc/termios/tcsetattr.c 2012-05-15 09:20:09.000000000 +0200
  78970. +++ uClibc-git/libc/termios/tcsetattr.c 2014-06-02 17:40:34.726715926 +0200
  78971. @@ -12,9 +12,8 @@
  78972. Lesser General Public License for more details.
  78973. You should have received a copy of the GNU Lesser General Public
  78974. - License along with the GNU C Library; if not, write to the Free
  78975. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78976. - 02111-1307 USA. */
  78977. + License along with the GNU C Library; if not, see
  78978. + <http://www.gnu.org/licenses/>. */
  78979. #include <errno.h>
  78980. #include <string.h>
  78981. diff -Nur uClibc-0.9.33.2/libc/termios/tcsetpgrp.c uClibc-git/libc/termios/tcsetpgrp.c
  78982. --- uClibc-0.9.33.2/libc/termios/tcsetpgrp.c 2012-05-15 09:20:09.000000000 +0200
  78983. +++ uClibc-git/libc/termios/tcsetpgrp.c 2014-06-02 17:40:34.726715926 +0200
  78984. @@ -12,9 +12,8 @@
  78985. Lesser General Public License for more details.
  78986. You should have received a copy of the GNU Lesser General Public
  78987. - License along with the GNU C Library; if not, write to the Free
  78988. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78989. - 02111-1307 USA. */
  78990. + License along with the GNU C Library; if not, see
  78991. + <http://www.gnu.org/licenses/>. */
  78992. #include <sys/types.h>
  78993. #include <sys/ioctl.h>
  78994. diff -Nur uClibc-0.9.33.2/libc/unistd/confstr.c uClibc-git/libc/unistd/confstr.c
  78995. --- uClibc-0.9.33.2/libc/unistd/confstr.c 2012-05-15 09:20:09.000000000 +0200
  78996. +++ uClibc-git/libc/unistd/confstr.c 2014-06-02 17:40:34.726715926 +0200
  78997. @@ -13,9 +13,8 @@
  78998. Lesser General Public License for more details.
  78999. You should have received a copy of the GNU Lesser General Public
  79000. - License along with the GNU C Library; if not, write to the Free
  79001. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79002. - 02111-1307 USA. */
  79003. + License along with the GNU C Library; if not, see
  79004. + <http://www.gnu.org/licenses/>. */
  79005. #include <stddef.h>
  79006. #include <errno.h>
  79007. diff -Nur uClibc-0.9.33.2/libc/unistd/daemon.c uClibc-git/libc/unistd/daemon.c
  79008. --- uClibc-0.9.33.2/libc/unistd/daemon.c 2012-05-15 09:20:09.000000000 +0200
  79009. +++ uClibc-git/libc/unistd/daemon.c 2014-06-02 17:40:34.726715926 +0200
  79010. @@ -118,7 +118,7 @@
  79011. {
  79012. struct STAT st;
  79013. - if ((fd = open_not_cancel(_PATH_DEVNULL, O_RDWR, 0)) != -1
  79014. + if ((fd = open_not_cancel_2(_PATH_DEVNULL, O_RDWR)) != -1
  79015. && (__builtin_expect (FSTAT (fd, &st), 0) == 0))
  79016. {
  79017. if (__builtin_expect (S_ISCHR (st.st_mode), 1) != 0) {
  79018. diff -Nur uClibc-0.9.33.2/libc/unistd/exec.c uClibc-git/libc/unistd/exec.c
  79019. --- uClibc-0.9.33.2/libc/unistd/exec.c 2012-05-15 09:20:09.000000000 +0200
  79020. +++ uClibc-git/libc/unistd/exec.c 2014-06-02 17:40:34.726715926 +0200
  79021. @@ -32,6 +32,8 @@
  79022. /**********************************************************************/
  79023. #define EXEC_FUNC_COMMON 0
  79024. #define EXEC_FUNC_EXECVP 1
  79025. +#define EXEC_FUNC_EXECVPE 2
  79026. +
  79027. #if defined(__ARCH_USE_MMU__)
  79028. /* We have an MMU, so use alloca() to grab space for buffers and arg lists. */
  79029. @@ -58,6 +60,7 @@
  79030. * execle(a) -> execve(-)
  79031. * execv(-) -> execve(-)
  79032. * execvp(a) -> execve(-)
  79033. + * execvpe(a) -> execve(-)
  79034. */
  79035. # define EXEC_ALLOC_SIZE(VAR) /* nothing to do */
  79036. @@ -68,7 +71,7 @@
  79037. # ifdef L___exec_alloc
  79038. -void attribute_hidden *__exec_alloc(size_t size, int func)
  79039. +void *__exec_alloc(size_t size, int func)
  79040. {
  79041. static void *common_cache, *execvp_cache;
  79042. static size_t common_size, execvp_size;
  79043. @@ -135,7 +138,7 @@
  79044. /**********************************************************************/
  79045. #ifdef L_execv
  79046. -int execv(__const char *path, char *__const argv[])
  79047. +int execv(const char *path, char *const argv[])
  79048. {
  79049. return execve(path, argv, __environ);
  79050. }
  79051. @@ -219,15 +222,18 @@
  79052. #endif
  79053. /**********************************************************************/
  79054. -#ifdef L_execvp
  79055. +#if defined (L_execvp) || defined(L_execvpe)
  79056. /* Use a default path that matches glibc behavior, since SUSv3 says
  79057. * this is implementation-defined. The default is current working dir,
  79058. * /bin, and then /usr/bin. */
  79059. static const char default_path[] = ":/bin:/usr/bin";
  79060. -
  79061. +#if defined (L_execvp)
  79062. int execvp(const char *path, char *const argv[])
  79063. +#elif defined (L_execvpe)
  79064. +int execvpe(const char *path, char *const argv[], char *const envp[])
  79065. +#endif
  79066. {
  79067. char *buf = NULL;
  79068. char *p;
  79069. @@ -245,7 +251,11 @@
  79070. }
  79071. if (strchr(path, '/')) {
  79072. +#if defined (L_execvp)
  79073. execve(path, argv, __environ);
  79074. +#elif defined (L_execvpe)
  79075. + execve(path, argv, envp);
  79076. +#endif
  79077. if (errno == ENOEXEC) {
  79078. char **nargv;
  79079. EXEC_ALLOC_SIZE(size2) /* Do NOT add a semicolon! */
  79080. @@ -254,11 +264,19 @@
  79081. /* Need the dimension - 1. We omit counting the trailing
  79082. * NULL but we actually omit the first entry. */
  79083. for (n=0 ; argv[n] ; n++) {}
  79084. +#if defined (L_execvp)
  79085. nargv = (char **) EXEC_ALLOC((n+2) * sizeof(char *), size2, EXEC_FUNC_EXECVP);
  79086. +#elif defined (L_execvpe)
  79087. + nargv = (char **) EXEC_ALLOC((n+2) * sizeof(char *), size2, EXEC_FUNC_EXECVPE);
  79088. +#endif
  79089. nargv[0] = argv[0];
  79090. nargv[1] = (char *)path;
  79091. memcpy(nargv+2, argv+1, n*sizeof(char *));
  79092. +#if defined (L_execvp)
  79093. execve("/bin/sh", nargv, __environ);
  79094. +#elif defined (L_execvpe)
  79095. + execve("/bin/sh", nargv, envp);
  79096. +#endif
  79097. EXEC_FREE(nargv, size2);
  79098. }
  79099. } else {
  79100. @@ -277,8 +295,11 @@
  79101. return -1;
  79102. }
  79103. len = (FILENAME_MAX - 1) - plen;
  79104. -
  79105. +#if defined (L_execvp)
  79106. buf = EXEC_ALLOC(FILENAME_MAX, size, EXEC_FUNC_EXECVP);
  79107. +#elif defined (L_execvpe)
  79108. + buf = EXEC_ALLOC(FILENAME_MAX, size, EXEC_FUNC_EXECVPE);
  79109. +#endif
  79110. {
  79111. int seen_small = 0;
  79112. s0 = buf + len;
  79113. @@ -300,8 +321,11 @@
  79114. s[plen-1] = '/';
  79115. }
  79116. +#if defined (L_execvp)
  79117. execve(s, argv, __environ);
  79118. -
  79119. +#elif defined (L_execvpe)
  79120. + execve(s, argv, envp);
  79121. +#endif
  79122. seen_small = 1;
  79123. if (errno == ENOEXEC) {
  79124. @@ -325,7 +349,11 @@
  79125. return -1;
  79126. }
  79127. +#if defined (L_execvp)
  79128. libc_hidden_def(execvp)
  79129. -
  79130. +#elif defined (L_execvpe)
  79131. +libc_hidden_def(execvpe)
  79132. #endif
  79133. +
  79134. +#endif /* #if defined (L_execvp) || defined(L_execvpe) */
  79135. /**********************************************************************/
  79136. diff -Nur uClibc-0.9.33.2/libc/unistd/execvpe.c uClibc-git/libc/unistd/execvpe.c
  79137. --- uClibc-0.9.33.2/libc/unistd/execvpe.c 1970-01-01 01:00:00.000000000 +0100
  79138. +++ uClibc-git/libc/unistd/execvpe.c 2014-06-02 17:40:34.730715948 +0200
  79139. @@ -0,0 +1,7 @@
  79140. +/* Copyright (C) 2011-2013 Hennning Heinold <heinold@inf.fu-berlin.de>
  79141. + *
  79142. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  79143. + */
  79144. +
  79145. +#define L_execvpe
  79146. +#include "exec.c"
  79147. diff -Nur uClibc-0.9.33.2/libc/unistd/fpathconf.c uClibc-git/libc/unistd/fpathconf.c
  79148. --- uClibc-0.9.33.2/libc/unistd/fpathconf.c 2012-05-15 09:20:09.000000000 +0200
  79149. +++ uClibc-git/libc/unistd/fpathconf.c 2014-06-02 17:40:34.730715948 +0200
  79150. @@ -13,9 +13,8 @@
  79151. Lesser General Public License for more details.
  79152. You should have received a copy of the GNU Lesser General Public
  79153. - License along with the GNU C Library; if not, write to the Free
  79154. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79155. - 02111-1307 USA. */
  79156. + License along with the GNU C Library; if not, see
  79157. + <http://www.gnu.org/licenses/>. */
  79158. #include <errno.h>
  79159. #include <unistd.h>
  79160. diff -Nur uClibc-0.9.33.2/libc/unistd/getopt.c uClibc-git/libc/unistd/getopt.c
  79161. --- uClibc-0.9.33.2/libc/unistd/getopt.c 2012-05-15 09:20:09.000000000 +0200
  79162. +++ uClibc-git/libc/unistd/getopt.c 2014-06-02 17:40:34.730715948 +0200
  79163. @@ -17,9 +17,8 @@
  79164. Lesser General Public License for more details.
  79165. You should have received a copy of the GNU Lesser General Public
  79166. - License along with the GNU C Library; if not, write to the Free
  79167. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79168. - 02111-1307 USA. */
  79169. + License along with the GNU C Library; if not, see
  79170. + <http://www.gnu.org/licenses/>. */
  79171. /*
  79172. * Modified for uClibc by Manuel Novoa III on 1/5/01.
  79173. @@ -36,9 +35,6 @@
  79174. # include <config.h>
  79175. #endif
  79176. -#define __FORCE_GLIBC
  79177. -#include <features.h>
  79178. -
  79179. #include <stdio.h>
  79180. /* Comment out all this code if we are using the GNU C Library, and are not
  79181. @@ -62,7 +58,7 @@
  79182. /* This needs to come after some library #include
  79183. to get __GNU_LIBRARY__ defined. */
  79184. -#ifdef __GNU_LIBRARY__
  79185. +#if defined __GNU_LIBRARY__ || defined __UCLIBC__
  79186. /* Don't include stdlib.h for non-GNU C libraries because some of them
  79187. contain conflicting prototypes for getopt. */
  79188. # include <stdlib.h>
  79189. @@ -75,22 +71,12 @@
  79190. # include <unixlib.h>
  79191. #endif
  79192. -#if !defined __UCLIBC__ && !defined __UCLIBC_HAS_GETTEXT_AWARENESS__
  79193. #ifdef _LIBC
  79194. # include <libintl.h>
  79195. #else
  79196. # include "gettext.h"
  79197. # define _(msgid) gettext (msgid)
  79198. #endif
  79199. -#else
  79200. -#ifdef __UCLIBC_MJN3_ONLY__
  79201. -#warning TODO: Enable gettext awareness.
  79202. -#endif /* __UCLIBC_MJN3_ONLY__ */
  79203. -
  79204. -#undef _
  79205. -#define _(X) X
  79206. -
  79207. -#endif
  79208. /* Treat '-W foo' the same as the long option '--foo',
  79209. * disabled for the moment since it costs about 2k... */
  79210. @@ -161,7 +147,7 @@
  79211. static struct _getopt_data getopt_data;
  79212. -#ifndef __GNU_LIBRARY__
  79213. +#if !defined __GNU_LIBRARY__ && !defined __UCLIBC__
  79214. /* Avoid depending on library functions or files
  79215. whose names are inconsistent. */
  79216. @@ -235,7 +221,7 @@
  79217. d->__nonoption_flags_len = d->__nonoption_flags_max_len = 0;
  79218. else
  79219. {
  79220. - memset (__mempcpy (new_str, __getopt_nonoption_flags,
  79221. + memset (mempcpy (new_str, __getopt_nonoption_flags,
  79222. d->__nonoption_flags_max_len),
  79223. '\0', top + 1 - d->__nonoption_flags_max_len);
  79224. d->__nonoption_flags_max_len = top + 1;
  79225. @@ -341,7 +327,7 @@
  79226. if (__getopt_nonoption_flags == NULL)
  79227. d->__nonoption_flags_max_len = -1;
  79228. else
  79229. - memset (__mempcpy (__getopt_nonoption_flags, orig_str, len),
  79230. + memset (mempcpy (__getopt_nonoption_flags, orig_str, len),
  79231. '\0', d->__nonoption_flags_max_len - len);
  79232. }
  79233. }
  79234. diff -Nur uClibc-0.9.33.2/libc/unistd/getopt_int.h uClibc-git/libc/unistd/getopt_int.h
  79235. --- uClibc-0.9.33.2/libc/unistd/getopt_int.h 2012-05-15 09:20:09.000000000 +0200
  79236. +++ uClibc-git/libc/unistd/getopt_int.h 2014-06-02 17:40:34.730715948 +0200
  79237. @@ -14,9 +14,8 @@
  79238. Lesser General Public License for more details.
  79239. You should have received a copy of the GNU Lesser General Public
  79240. - License along with the GNU C Library; if not, write to the Free
  79241. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79242. - 02111-1307 USA. */
  79243. + License along with the GNU C Library; if not, see
  79244. + <http://www.gnu.org/licenses/>. */
  79245. #ifndef _GETOPT_INT_H
  79246. #define _GETOPT_INT_H 1
  79247. diff -Nur uClibc-0.9.33.2/libc/unistd/getopt-susv3.c uClibc-git/libc/unistd/getopt-susv3.c
  79248. --- uClibc-0.9.33.2/libc/unistd/getopt-susv3.c 2012-05-15 09:20:09.000000000 +0200
  79249. +++ uClibc-git/libc/unistd/getopt-susv3.c 2014-06-02 17:40:34.730715948 +0200
  79250. @@ -22,14 +22,7 @@
  79251. #include <string.h>
  79252. #include <stdio.h>
  79253. #include <getopt.h>
  79254. -
  79255. -
  79256. -#ifdef __UCLIBC_MJN3_ONLY__
  79257. -#warning TODO: Enable gettext awareness.
  79258. -#endif /* __UCLIBC_MJN3_ONLY__ */
  79259. -
  79260. -#undef _
  79261. -#define _(X) X
  79262. +#include <libintl.h>
  79263. #ifdef __BCC__
  79264. static const char missing[] = "option requires an argument";
  79265. diff -Nur uClibc-0.9.33.2/libc/unistd/getpass.c uClibc-git/libc/unistd/getpass.c
  79266. --- uClibc-0.9.33.2/libc/unistd/getpass.c 2012-05-15 09:20:09.000000000 +0200
  79267. +++ uClibc-git/libc/unistd/getpass.c 2014-06-02 17:40:34.730715948 +0200
  79268. @@ -12,9 +12,8 @@
  79269. Lesser General Public License for more details.
  79270. You should have received a copy of the GNU Lesser General Public
  79271. - License along with the GNU C Library; if not, write to the Free
  79272. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79273. - 02111-1307 USA. */
  79274. + License along with the GNU C Library; if not, see
  79275. + <http://www.gnu.org/licenses/>. */
  79276. #include <stdio.h>
  79277. #include <string.h>
  79278. diff -Nur uClibc-0.9.33.2/libc/unistd/getsubopt.c uClibc-git/libc/unistd/getsubopt.c
  79279. --- uClibc-0.9.33.2/libc/unistd/getsubopt.c 2012-05-15 09:20:09.000000000 +0200
  79280. +++ uClibc-git/libc/unistd/getsubopt.c 2014-06-02 17:40:34.730715948 +0200
  79281. @@ -14,9 +14,8 @@
  79282. Lesser General Public License for more details.
  79283. You should have received a copy of the GNU Lesser General Public
  79284. - License along with the GNU C Library; if not, write to the Free
  79285. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79286. - 02111-1307 USA. */
  79287. + License along with the GNU C Library; if not, see
  79288. + <http://www.gnu.org/licenses/>. */
  79289. #include <stdlib.h>
  79290. #include <string.h>
  79291. diff -Nur uClibc-0.9.33.2/libc/unistd/Makefile.in uClibc-git/libc/unistd/Makefile.in
  79292. --- uClibc-0.9.33.2/libc/unistd/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  79293. +++ uClibc-git/libc/unistd/Makefile.in 2014-06-02 17:40:34.726715926 +0200
  79294. @@ -10,39 +10,21 @@
  79295. UNISTD_DIR := $(top_srcdir)libc/unistd
  79296. UNISTD_OUT := $(top_builddir)libc/unistd
  79297. -CSRC := $(notdir $(wildcard $(UNISTD_DIR)/*.c))
  79298. -# multi source
  79299. -CSRC := $(filter-out exec.c,$(CSRC))
  79300. -
  79301. -ifeq ($(ARCH_USE_MMU),y)
  79302. -CSRC := $(filter-out __exec_alloc.c,$(CSRC))
  79303. -endif
  79304. -
  79305. -ifeq ($(UCLIBC_HAS_GNU_GETOPT),y)
  79306. -CSRC := $(filter-out getopt-susv3.c getopt_long-simple.c,$(CSRC))
  79307. -else
  79308. -CSRC := $(filter-out getopt.c,$(CSRC))
  79309. -ifneq ($(UCLIBC_HAS_GETOPT_LONG),y)
  79310. -CSRC := $(filter-out getopt_long-simple.c,$(CSRC))
  79311. -endif
  79312. -endif
  79313. -
  79314. -ifeq ($(UCLIBC_HAS_GNU_GETSUBOPT),y)
  79315. -CSRC := $(filter-out getsubopt-susv3.c,$(CSRC))
  79316. -else
  79317. -CSRC := $(filter-out getsubopt.c,$(CSRC))
  79318. -endif
  79319. -
  79320. -ifneq ($(UCLIBC_SUSV3_LEGACY),y)
  79321. -CSRC := $(filter-out ualarm.c usleep.c,$(CSRC))
  79322. -endif
  79323. -
  79324. -ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
  79325. -CSRC := $(filter-out sleep.c,$(CSRC))
  79326. -endif
  79327. +CSRC-y := $(notdir $(wildcard $(UNISTD_DIR)/*.c))
  79328. +OMIT-y := exec.c # multi source
  79329. +OMIT-$(ARCH_USE_MMU) += __exec_alloc.c
  79330. +OMIT-$(if $(UCLIBC_SUSV3_LEGACY),,y) += ualarm.c usleep.c
  79331. +#OMIT-$(UCLIBC_HAS_THREADS_NATIVE) += sleep.c
  79332. +
  79333. +# XXX: GNU_GETOPT comes with getopt_long unconditionally, which is wrong
  79334. +GO_LONG := $(if $(UCLIBC_HAS_GNU_GETOPT),getopt_long-simple.c)
  79335. +OMIT-y += $(if $(UCLIBC_HAS_GNU_GETOPT),getopt-susv3.c $(GO_LONG),getopt.c)
  79336. +OMIT-y += $(if $(UCLIBC_HAS_GNU_GETSUBOPT),getsubopt-susv3.c,getsubopt.c)
  79337. -UNISTD_SRC := $(patsubst %.c,$(UNISTD_DIR)/%.c,$(CSRC))
  79338. -UNISTD_OBJ := $(patsubst %.c,$(UNISTD_OUT)/%.o,$(CSRC))
  79339. +CSRC-y := $(filter-out $(OMIT-y),$(CSRC-y))
  79340. +
  79341. +UNISTD_SRC := $(patsubst %.c,$(UNISTD_DIR)/%.c,$(CSRC-y))
  79342. +UNISTD_OBJ := $(patsubst %.c,$(UNISTD_OUT)/%.o,$(CSRC-y))
  79343. libc-y += $(UNISTD_OBJ)
  79344. diff -Nur uClibc-0.9.33.2/libc/unistd/pathconf.c uClibc-git/libc/unistd/pathconf.c
  79345. --- uClibc-0.9.33.2/libc/unistd/pathconf.c 2012-05-15 09:20:09.000000000 +0200
  79346. +++ uClibc-git/libc/unistd/pathconf.c 2014-06-02 17:40:34.730715948 +0200
  79347. @@ -13,9 +13,8 @@
  79348. Lesser General Public License for more details.
  79349. You should have received a copy of the GNU Lesser General Public
  79350. - License along with the GNU C Library; if not, write to the Free
  79351. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79352. - 02111-1307 USA. */
  79353. + License along with the GNU C Library; if not, see
  79354. + <http://www.gnu.org/licenses/>. */
  79355. /* pathconf -- adjusted for busybox */
  79356. diff -Nur uClibc-0.9.33.2/libc/unistd/sleep.c uClibc-git/libc/unistd/sleep.c
  79357. --- uClibc-0.9.33.2/libc/unistd/sleep.c 2012-05-15 09:20:09.000000000 +0200
  79358. +++ uClibc-git/libc/unistd/sleep.c 2014-06-02 17:40:34.730715948 +0200
  79359. @@ -15,8 +15,7 @@
  79360. You should have received a copy of the GNU Library General Public
  79361. License along with the GNU C Library; see the file COPYING.LIB. If not,
  79362. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  79363. - Boston, MA 02111-1307, USA. */
  79364. + see <http://www.gnu.org/licenses/>. */
  79365. #include <errno.h>
  79366. #include <time.h>
  79367. @@ -99,6 +98,7 @@
  79368. /* This is not necessary but some buggy programs depend on this. */
  79369. if (seconds == 0) {
  79370. # ifdef CANCELLATION_P
  79371. + int cancelhandling;
  79372. CANCELLATION_P (THREAD_SELF);
  79373. # endif
  79374. return 0;
  79375. diff -Nur uClibc-0.9.33.2/libc/unistd/sysconf.c uClibc-git/libc/unistd/sysconf.c
  79376. --- uClibc-0.9.33.2/libc/unistd/sysconf.c 2012-05-15 09:20:09.000000000 +0200
  79377. +++ uClibc-git/libc/unistd/sysconf.c 2014-06-02 17:40:34.730715948 +0200
  79378. @@ -14,11 +14,11 @@
  79379. You should have received a copy of the GNU Library General Public
  79380. License along with the GNU C Library; see the file COPYING.LIB. If not,
  79381. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  79382. - Boston, MA 02111-1307, USA. */
  79383. + see <http://www.gnu.org/licenses/>. */
  79384. #define _XOPEN_SOURCE 500
  79385. #include <features.h>
  79386. +#include <ctype.h>
  79387. #include <errno.h>
  79388. #include <limits.h>
  79389. #include <grp.h>
  79390. @@ -981,20 +981,9 @@
  79391. #endif
  79392. case _SC_MONOTONIC_CLOCK:
  79393. -#ifdef __NR_clock_getres
  79394. - /* Check using the clock_getres system call. */
  79395. -# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  79396. - {
  79397. - struct timespec ts;
  79398. - INTERNAL_SYSCALL_DECL (err);
  79399. - int r;
  79400. - r = INTERNAL_SYSCALL (clock_getres, err, 2, CLOCK_MONOTONIC, &ts);
  79401. - return INTERNAL_SYSCALL_ERROR_P (r, err) ? -1 : _POSIX_VERSION;
  79402. - }
  79403. -# elif defined __UCLIBC_HAS_REALTIME__
  79404. +#if defined __UCLIBC_HAS_REALTIME__ && defined __NR_clock_getres
  79405. if (clock_getres(CLOCK_MONOTONIC, NULL) >= 0)
  79406. return _POSIX_VERSION;
  79407. -# endif
  79408. #endif
  79409. RETURN_NEG_1;
  79410. diff -Nur uClibc-0.9.33.2/libcrypt/crypt.c uClibc-git/libcrypt/crypt.c
  79411. --- uClibc-0.9.33.2/libcrypt/crypt.c 2012-05-15 09:20:09.000000000 +0200
  79412. +++ uClibc-git/libcrypt/crypt.c 2014-06-02 17:40:34.742716014 +0200
  79413. @@ -5,7 +5,6 @@
  79414. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  79415. */
  79416. -#define __FORCE_GLIBC
  79417. #include <unistd.h>
  79418. #include <crypt.h>
  79419. #include "libcrypt.h"
  79420. diff -Nur uClibc-0.9.33.2/libcrypt/crypt_stub.c uClibc-git/libcrypt/crypt_stub.c
  79421. --- uClibc-0.9.33.2/libcrypt/crypt_stub.c 2012-05-15 09:20:09.000000000 +0200
  79422. +++ uClibc-git/libcrypt/crypt_stub.c 2014-06-02 17:40:34.742716014 +0200
  79423. @@ -5,7 +5,6 @@
  79424. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  79425. */
  79426. -#define __FORCE_GLIBC
  79427. #include <crypt.h>
  79428. #include <unistd.h>
  79429. #include "libcrypt.h"
  79430. diff -Nur uClibc-0.9.33.2/libcrypt/des.c uClibc-git/libcrypt/des.c
  79431. --- uClibc-0.9.33.2/libcrypt/des.c 2012-05-15 09:20:09.000000000 +0200
  79432. +++ uClibc-git/libcrypt/des.c 2014-06-02 17:40:34.742716014 +0200
  79433. @@ -56,7 +56,6 @@
  79434. * alignment).
  79435. */
  79436. -#define __FORCE_GLIBC
  79437. #include <sys/cdefs.h>
  79438. #include <sys/types.h>
  79439. #include <sys/param.h>
  79440. diff -Nur uClibc-0.9.33.2/libcrypt/sha256.c uClibc-git/libcrypt/sha256.c
  79441. --- uClibc-0.9.33.2/libcrypt/sha256.c 2012-05-15 09:20:09.000000000 +0200
  79442. +++ uClibc-git/libcrypt/sha256.c 2014-06-02 17:40:34.742716014 +0200
  79443. @@ -14,9 +14,8 @@
  79444. Lesser General Public License for more details.
  79445. You should have received a copy of the GNU Lesser General Public
  79446. - License along with the GNU C Library; if not, write to the Free
  79447. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79448. - 02111-1307 USA. */
  79449. + License along with the GNU C Library; if not, see
  79450. + <http://www.gnu.org/licenses/>. */
  79451. /* Written by Ulrich Drepper <drepper@redhat.com>, 2007. */
  79452. diff -Nur uClibc-0.9.33.2/libcrypt/sha256-crypt.c uClibc-git/libcrypt/sha256-crypt.c
  79453. --- uClibc-0.9.33.2/libcrypt/sha256-crypt.c 2012-05-15 09:20:09.000000000 +0200
  79454. +++ uClibc-git/libcrypt/sha256-crypt.c 2014-06-02 17:40:34.742716014 +0200
  79455. @@ -14,9 +14,8 @@
  79456. Lesser General Public License for more details.
  79457. You should have received a copy of the GNU Lesser General Public
  79458. - License along with the GNU C Library; if not, write to the Free
  79459. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79460. - 02111-1307 USA. */
  79461. + License along with the GNU C Library; if not, see
  79462. + <http://www.gnu.org/licenses/>. */
  79463. #include <assert.h>
  79464. #include <errno.h>
  79465. diff -Nur uClibc-0.9.33.2/libcrypt/sha256.h uClibc-git/libcrypt/sha256.h
  79466. --- uClibc-0.9.33.2/libcrypt/sha256.h 2012-05-15 09:20:09.000000000 +0200
  79467. +++ uClibc-git/libcrypt/sha256.h 2014-06-02 17:40:34.742716014 +0200
  79468. @@ -14,9 +14,8 @@
  79469. Lesser General Public License for more details.
  79470. You should have received a copy of the GNU Lesser General Public
  79471. - License along with the GNU C Library; if not, write to the Free
  79472. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79473. - 02111-1307 USA. */
  79474. + License along with the GNU C Library; if not, see
  79475. + <http://www.gnu.org/licenses/>. */
  79476. #ifndef _SHA256_H
  79477. #define _SHA256_H 1
  79478. diff -Nur uClibc-0.9.33.2/libcrypt/sha512.c uClibc-git/libcrypt/sha512.c
  79479. --- uClibc-0.9.33.2/libcrypt/sha512.c 2012-05-15 09:20:09.000000000 +0200
  79480. +++ uClibc-git/libcrypt/sha512.c 2014-06-02 17:40:34.742716014 +0200
  79481. @@ -14,9 +14,8 @@
  79482. Lesser General Public License for more details.
  79483. You should have received a copy of the GNU Lesser General Public
  79484. - License along with the GNU C Library; if not, write to the Free
  79485. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79486. - 02111-1307 USA. */
  79487. + License along with the GNU C Library; if not, see
  79488. + <http://www.gnu.org/licenses/>. */
  79489. /* Written by Ulrich Drepper <drepper@redhat.com>, 2007. */
  79490. diff -Nur uClibc-0.9.33.2/libcrypt/sha512-crypt.c uClibc-git/libcrypt/sha512-crypt.c
  79491. --- uClibc-0.9.33.2/libcrypt/sha512-crypt.c 2012-05-15 09:20:09.000000000 +0200
  79492. +++ uClibc-git/libcrypt/sha512-crypt.c 2014-06-02 17:40:34.742716014 +0200
  79493. @@ -14,9 +14,8 @@
  79494. Lesser General Public License for more details.
  79495. You should have received a copy of the GNU Lesser General Public
  79496. - License along with the GNU C Library; if not, write to the Free
  79497. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79498. - 02111-1307 USA. */
  79499. + License along with the GNU C Library; if not, see
  79500. + <http://www.gnu.org/licenses/>. */
  79501. #include <assert.h>
  79502. #include <errno.h>
  79503. diff -Nur uClibc-0.9.33.2/libcrypt/sha512.h uClibc-git/libcrypt/sha512.h
  79504. --- uClibc-0.9.33.2/libcrypt/sha512.h 2012-05-15 09:20:09.000000000 +0200
  79505. +++ uClibc-git/libcrypt/sha512.h 2014-06-02 17:40:34.742716014 +0200
  79506. @@ -14,9 +14,8 @@
  79507. Lesser General Public License for more details.
  79508. You should have received a copy of the GNU Lesser General Public
  79509. - License along with the GNU C Library; if not, write to the Free
  79510. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79511. - 02111-1307 USA. */
  79512. + License along with the GNU C Library; if not, see
  79513. + <http://www.gnu.org/licenses/>. */
  79514. #ifndef _SHA512_H
  79515. #define _SHA512_H 1
  79516. diff -Nur uClibc-0.9.33.2/libm/carg.c uClibc-git/libm/carg.c
  79517. --- uClibc-0.9.33.2/libm/carg.c 2012-05-15 09:20:09.000000000 +0200
  79518. +++ uClibc-git/libm/carg.c 2014-06-02 17:40:34.742716014 +0200
  79519. @@ -14,9 +14,8 @@
  79520. Lesser General Public License for more details.
  79521. You should have received a copy of the GNU Lesser General Public
  79522. - License along with the GNU C Library; if not, write to the Free
  79523. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79524. - 02111-1307 USA. */
  79525. + License along with the GNU C Library; if not, see
  79526. + <http://www.gnu.org/licenses/>. */
  79527. #include <complex.h>
  79528. #include <math.h>
  79529. diff -Nur uClibc-0.9.33.2/libm/e_acos.c uClibc-git/libm/e_acos.c
  79530. --- uClibc-0.9.33.2/libm/e_acos.c 2012-05-15 09:20:09.000000000 +0200
  79531. +++ uClibc-git/libm/e_acos.c 2014-06-02 17:40:34.742716014 +0200
  79532. @@ -52,7 +52,7 @@
  79533. qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */
  79534. qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */
  79535. -double attribute_hidden __ieee754_acos(double x)
  79536. +double __ieee754_acos(double x)
  79537. {
  79538. double z,p,q,r,w,s,c,df;
  79539. int32_t hx,ix;
  79540. diff -Nur uClibc-0.9.33.2/libm/e_acosh.c uClibc-git/libm/e_acosh.c
  79541. --- uClibc-0.9.33.2/libm/e_acosh.c 2012-05-15 09:20:09.000000000 +0200
  79542. +++ uClibc-git/libm/e_acosh.c 2014-06-02 17:40:34.742716014 +0200
  79543. @@ -30,7 +30,7 @@
  79544. one = 1.0,
  79545. ln2 = 6.93147180559945286227e-01; /* 0x3FE62E42, 0xFEFA39EF */
  79546. -double attribute_hidden __ieee754_acosh(double x)
  79547. +double __ieee754_acosh(double x)
  79548. {
  79549. double t;
  79550. int32_t hx;
  79551. diff -Nur uClibc-0.9.33.2/libm/e_asin.c uClibc-git/libm/e_asin.c
  79552. --- uClibc-0.9.33.2/libm/e_asin.c 2012-05-15 09:20:09.000000000 +0200
  79553. +++ uClibc-git/libm/e_asin.c 2014-06-02 17:40:34.742716014 +0200
  79554. @@ -60,7 +60,7 @@
  79555. qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */
  79556. qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */
  79557. -double attribute_hidden __ieee754_asin(double x)
  79558. +double __ieee754_asin(double x)
  79559. {
  79560. double t=0.0,w,p,q,c,r,s;
  79561. int32_t hx,ix;
  79562. diff -Nur uClibc-0.9.33.2/libm/e_atan2.c uClibc-git/libm/e_atan2.c
  79563. --- uClibc-0.9.33.2/libm/e_atan2.c 2012-05-15 09:20:09.000000000 +0200
  79564. +++ uClibc-git/libm/e_atan2.c 2014-06-02 17:40:34.742716014 +0200
  79565. @@ -47,7 +47,7 @@
  79566. pi = 3.1415926535897931160E+00, /* 0x400921FB, 0x54442D18 */
  79567. pi_lo = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */
  79568. -double attribute_hidden __ieee754_atan2(double y, double x)
  79569. +double __ieee754_atan2(double y, double x)
  79570. {
  79571. double z;
  79572. int32_t k,m,hx,hy,ix,iy;
  79573. diff -Nur uClibc-0.9.33.2/libm/e_atanh.c uClibc-git/libm/e_atanh.c
  79574. --- uClibc-0.9.33.2/libm/e_atanh.c 2012-05-15 09:20:09.000000000 +0200
  79575. +++ uClibc-git/libm/e_atanh.c 2014-06-02 17:40:34.742716014 +0200
  79576. @@ -34,7 +34,7 @@
  79577. static const double zero = 0.0;
  79578. -double attribute_hidden __ieee754_atanh(double x)
  79579. +double __ieee754_atanh(double x)
  79580. {
  79581. double t;
  79582. int32_t hx,ix;
  79583. diff -Nur uClibc-0.9.33.2/libm/e_cosh.c uClibc-git/libm/e_cosh.c
  79584. --- uClibc-0.9.33.2/libm/e_cosh.c 2012-05-15 09:20:09.000000000 +0200
  79585. +++ uClibc-git/libm/e_cosh.c 2014-06-02 17:40:34.742716014 +0200
  79586. @@ -35,7 +35,7 @@
  79587. static const double one = 1.0, half=0.5, huge = 1.0e300;
  79588. -double attribute_hidden __ieee754_cosh(double x)
  79589. +double __ieee754_cosh(double x)
  79590. {
  79591. double t,w;
  79592. int32_t ix;
  79593. diff -Nur uClibc-0.9.33.2/libm/e_exp.c uClibc-git/libm/e_exp.c
  79594. --- uClibc-0.9.33.2/libm/e_exp.c 2012-05-15 09:20:09.000000000 +0200
  79595. +++ uClibc-git/libm/e_exp.c 2014-06-02 17:40:34.742716014 +0200
  79596. @@ -93,7 +93,7 @@
  79597. P4 = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */
  79598. P5 = 4.13813679705723846039e-08; /* 0x3E663769, 0x72BEA4D0 */
  79599. -double attribute_hidden __ieee754_exp(double x) /* default IEEE double exp */
  79600. +double __ieee754_exp(double x) /* default IEEE double exp */
  79601. {
  79602. double y;
  79603. double hi = 0.0;
  79604. diff -Nur uClibc-0.9.33.2/libm/e_fmod.c uClibc-git/libm/e_fmod.c
  79605. --- uClibc-0.9.33.2/libm/e_fmod.c 2012-05-15 09:20:09.000000000 +0200
  79606. +++ uClibc-git/libm/e_fmod.c 2014-06-02 17:40:34.742716014 +0200
  79607. @@ -20,7 +20,7 @@
  79608. static const double one = 1.0, Zero[] = {0.0, -0.0,};
  79609. -double attribute_hidden __ieee754_fmod(double x, double y)
  79610. +double __ieee754_fmod(double x, double y)
  79611. {
  79612. int32_t n,hx,hy,hz,ix,iy,sx,i;
  79613. u_int32_t lx,ly,lz;
  79614. diff -Nur uClibc-0.9.33.2/libm/e_hypot.c uClibc-git/libm/e_hypot.c
  79615. --- uClibc-0.9.33.2/libm/e_hypot.c 2012-05-15 09:20:09.000000000 +0200
  79616. +++ uClibc-git/libm/e_hypot.c 2014-06-02 17:40:34.742716014 +0200
  79617. @@ -44,9 +44,9 @@
  79618. #include "math.h"
  79619. #include "math_private.h"
  79620. -double attribute_hidden __ieee754_hypot(double x, double y)
  79621. +double __ieee754_hypot(double x, double y)
  79622. {
  79623. - double a=x,b=y,t1,t2,y1,y2,w;
  79624. + double a=x,b=y,t1,t2,_y1,y2,w;
  79625. int32_t j,k,ha,hb;
  79626. GET_HIGH_WORD(ha,x);
  79627. @@ -100,13 +100,13 @@
  79628. w = __ieee754_sqrt(t1*t1-(b*(-b)-t2*(a+t1)));
  79629. } else {
  79630. a = a+a;
  79631. - y1 = 0;
  79632. - SET_HIGH_WORD(y1,hb);
  79633. - y2 = b - y1;
  79634. + _y1 = 0;
  79635. + SET_HIGH_WORD(_y1,hb);
  79636. + y2 = b - _y1;
  79637. t1 = 0;
  79638. SET_HIGH_WORD(t1,ha+0x00100000);
  79639. t2 = a - t1;
  79640. - w = __ieee754_sqrt(t1*y1-(w*(-w)-(t1*y2+t2*b)));
  79641. + w = __ieee754_sqrt(t1*_y1-(w*(-w)-(t1*y2+t2*b)));
  79642. }
  79643. if(k!=0) {
  79644. u_int32_t high;
  79645. diff -Nur uClibc-0.9.33.2/libm/e_j0.c uClibc-git/libm/e_j0.c
  79646. --- uClibc-0.9.33.2/libm/e_j0.c 2012-05-15 09:20:09.000000000 +0200
  79647. +++ uClibc-git/libm/e_j0.c 2014-06-02 17:40:34.742716014 +0200
  79648. @@ -76,7 +76,7 @@
  79649. static const double zero = 0.0;
  79650. -double attribute_hidden __ieee754_j0(double x)
  79651. +double __ieee754_j0(double x)
  79652. {
  79653. double z, s,c,ss,cc,r,u,v;
  79654. int32_t hx,ix;
  79655. @@ -153,7 +153,7 @@
  79656. v03 = 2.59150851840457805467e-07, /* 0x3E91642D, 0x7FF202FD */
  79657. v04 = 4.41110311332675467403e-10; /* 0x3DFE5018, 0x3BD6D9EF */
  79658. -double attribute_hidden __ieee754_y0(double x)
  79659. +double __ieee754_y0(double x)
  79660. {
  79661. double z, s,c,ss,cc,u,v;
  79662. int32_t hx,ix,lx;
  79663. diff -Nur uClibc-0.9.33.2/libm/e_j1.c uClibc-git/libm/e_j1.c
  79664. --- uClibc-0.9.33.2/libm/e_j1.c 2012-05-15 09:20:09.000000000 +0200
  79665. +++ uClibc-git/libm/e_j1.c 2014-06-02 17:40:34.746716036 +0200
  79666. @@ -77,7 +77,7 @@
  79667. static const double zero = 0.0;
  79668. -double attribute_hidden __ieee754_j1(double x)
  79669. +double __ieee754_j1(double x)
  79670. {
  79671. double z, s,c,ss,cc,r,u,v,y;
  79672. int32_t hx,ix;
  79673. @@ -150,7 +150,7 @@
  79674. 1.66559246207992079114e-11, /* 0x3DB25039, 0xDACA772A */
  79675. };
  79676. -double attribute_hidden __ieee754_y1(double x)
  79677. +double __ieee754_y1(double x)
  79678. {
  79679. double z, s,c,ss,cc,u,v;
  79680. int32_t hx,ix,lx;
  79681. diff -Nur uClibc-0.9.33.2/libm/e_jn.c uClibc-git/libm/e_jn.c
  79682. --- uClibc-0.9.33.2/libm/e_jn.c 2012-05-15 09:20:09.000000000 +0200
  79683. +++ uClibc-git/libm/e_jn.c 2014-06-02 17:40:34.746716036 +0200
  79684. @@ -45,7 +45,7 @@
  79685. static const double zero = 0.00000000000000000000e+00;
  79686. -double attribute_hidden __ieee754_jn(int n, double x)
  79687. +double __ieee754_jn(int n, double x)
  79688. {
  79689. int32_t i,hx,ix,lx, sgn;
  79690. double a, b, temp=0, di;
  79691. @@ -217,7 +217,7 @@
  79692. strong_alias(__ieee754_jn, jn)
  79693. #endif
  79694. -double attribute_hidden __ieee754_yn(int n, double x)
  79695. +double __ieee754_yn(int n, double x)
  79696. {
  79697. int32_t i,hx,ix,lx;
  79698. int32_t sign;
  79699. diff -Nur uClibc-0.9.33.2/libm/e_lgamma_r.c uClibc-git/libm/e_lgamma_r.c
  79700. --- uClibc-0.9.33.2/libm/e_lgamma_r.c 2012-05-15 09:20:09.000000000 +0200
  79701. +++ uClibc-git/libm/e_lgamma_r.c 2014-06-02 17:40:34.746716036 +0200
  79702. @@ -197,7 +197,7 @@
  79703. return -y;
  79704. }
  79705. -double attribute_hidden __ieee754_lgamma_r(double x, int *signgamp)
  79706. +double __ieee754_lgamma_r(double x, int *signgamp)
  79707. {
  79708. double t,y,z,nadj=0,p,p1,p2,p3,q,r,w;
  79709. int i,hx,lx,ix;
  79710. @@ -314,11 +314,12 @@
  79711. #else
  79712. strong_alias(__ieee754_lgamma_r, lgamma_r)
  79713. #endif
  79714. +libm_hidden_def(lgamma_r)
  79715. /* __ieee754_lgamma(x)
  79716. * Return the logarithm of the Gamma function of x.
  79717. */
  79718. -double attribute_hidden __ieee754_lgamma(double x)
  79719. +double __ieee754_lgamma(double x)
  79720. {
  79721. return __ieee754_lgamma_r(x, &signgam);
  79722. }
  79723. @@ -358,6 +359,7 @@
  79724. strong_alias(__ieee754_lgamma_r, gamma_r)
  79725. strong_alias(__ieee754_lgamma, gamma)
  79726. #endif
  79727. +libm_hidden_def(gamma)
  79728. /* double tgamma(double x)
  79729. diff -Nur uClibc-0.9.33.2/libm/e_log10.c uClibc-git/libm/e_log10.c
  79730. --- uClibc-0.9.33.2/libm/e_log10.c 2012-05-15 09:20:09.000000000 +0200
  79731. +++ uClibc-git/libm/e_log10.c 2014-06-02 17:40:34.746716036 +0200
  79732. @@ -53,7 +53,7 @@
  79733. static const double zero = 0.0;
  79734. -double attribute_hidden __ieee754_log10(double x)
  79735. +double __ieee754_log10(double x)
  79736. {
  79737. double y,z;
  79738. int32_t i,k,hx;
  79739. diff -Nur uClibc-0.9.33.2/libm/e_log2.c uClibc-git/libm/e_log2.c
  79740. --- uClibc-0.9.33.2/libm/e_log2.c 2012-05-15 09:20:09.000000000 +0200
  79741. +++ uClibc-git/libm/e_log2.c 2014-06-02 17:40:34.746716036 +0200
  79742. @@ -116,3 +116,4 @@
  79743. }
  79744. }
  79745. strong_alias(__ieee754_log2,log2)
  79746. +libm_hidden_def(log2)
  79747. diff -Nur uClibc-0.9.33.2/libm/e_log.c uClibc-git/libm/e_log.c
  79748. --- uClibc-0.9.33.2/libm/e_log.c 2012-05-15 09:20:09.000000000 +0200
  79749. +++ uClibc-git/libm/e_log.c 2014-06-02 17:40:34.746716036 +0200
  79750. @@ -77,7 +77,7 @@
  79751. static const double zero = 0.0;
  79752. -double attribute_hidden __ieee754_log(double x)
  79753. +double __ieee754_log(double x)
  79754. {
  79755. double hfsq,f,s,z,R,w,t1,t2,dk;
  79756. int32_t k,hx,i,j;
  79757. diff -Nur uClibc-0.9.33.2/libm/e_pow.c uClibc-git/libm/e_pow.c
  79758. --- uClibc-0.9.33.2/libm/e_pow.c 2012-05-15 09:20:09.000000000 +0200
  79759. +++ uClibc-git/libm/e_pow.c 2014-06-02 17:40:34.746716036 +0200
  79760. @@ -91,10 +91,10 @@
  79761. ivln2_h = 1.44269502162933349609e+00, /* 0x3FF71547, 0x60000000 =24b 1/ln2*/
  79762. ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/
  79763. -double attribute_hidden __ieee754_pow(double x, double y)
  79764. +double __ieee754_pow(double x, double y)
  79765. {
  79766. double z,ax,z_h,z_l,p_h,p_l;
  79767. - double y1,t1,t2,r,s,t,u,v,w;
  79768. + double _y1,t1,t2,r,s,t,u,v,w;
  79769. int32_t i,j,k,yisint,n;
  79770. int32_t hx,hy,ix,iy;
  79771. u_int32_t lx,ly;
  79772. @@ -249,10 +249,10 @@
  79773. s = -one;/* (-ve)**(odd int) */
  79774. /* split up y into y1+y2 and compute (y1+y2)*(t1+t2) */
  79775. - y1 = y;
  79776. - SET_LOW_WORD(y1,0);
  79777. - p_l = (y-y1)*t1+y*t2;
  79778. - p_h = y1*t1;
  79779. + _y1 = y;
  79780. + SET_LOW_WORD(_y1,0);
  79781. + p_l = (y-_y1)*t1+y*t2;
  79782. + p_h = _y1*t1;
  79783. z = p_l+p_h;
  79784. EXTRACT_WORDS(j,i,z);
  79785. if (j>=0x40900000) { /* z >= 1024 */
  79786. diff -Nur uClibc-0.9.33.2/libm/e_remainder.c uClibc-git/libm/e_remainder.c
  79787. --- uClibc-0.9.33.2/libm/e_remainder.c 2012-05-15 09:20:09.000000000 +0200
  79788. +++ uClibc-git/libm/e_remainder.c 2014-06-02 17:40:34.746716036 +0200
  79789. @@ -23,7 +23,7 @@
  79790. static const double zero = 0.0;
  79791. -double attribute_hidden __ieee754_remainder(double x, double p)
  79792. +double __ieee754_remainder(double x, double p)
  79793. {
  79794. int32_t hx,hp;
  79795. u_int32_t sx,lx,lp;
  79796. diff -Nur uClibc-0.9.33.2/libm/e_rem_pio2.c uClibc-git/libm/e_rem_pio2.c
  79797. --- uClibc-0.9.33.2/libm/e_rem_pio2.c 2012-05-15 09:20:09.000000000 +0200
  79798. +++ uClibc-git/libm/e_rem_pio2.c 2014-06-02 17:40:34.746716036 +0200
  79799. @@ -66,7 +66,7 @@
  79800. pio2_3 = 2.02226624871116645580e-21, /* 0x3BA3198A, 0x2E000000 */
  79801. pio2_3t = 8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */
  79802. -int32_t attribute_hidden __ieee754_rem_pio2(double x, double *y)
  79803. +int32_t __ieee754_rem_pio2(double x, double *y)
  79804. {
  79805. double z=0.0,w,t,r,fn;
  79806. double tx[3];
  79807. diff -Nur uClibc-0.9.33.2/libm/e_scalb.c uClibc-git/libm/e_scalb.c
  79808. --- uClibc-0.9.33.2/libm/e_scalb.c 2012-05-15 09:20:09.000000000 +0200
  79809. +++ uClibc-git/libm/e_scalb.c 2014-06-02 17:40:34.746716036 +0200
  79810. @@ -19,7 +19,7 @@
  79811. #include "math_private.h"
  79812. #include <errno.h>
  79813. -double attribute_hidden __ieee754_scalb(double x, double fn)
  79814. +double __ieee754_scalb(double x, double fn)
  79815. {
  79816. if (isnan(x)||isnan(fn)) return x*fn;
  79817. if (!isfinite(fn)) {
  79818. @@ -55,5 +55,6 @@
  79819. #else
  79820. strong_alias(__ieee754_scalb, scalb)
  79821. #endif
  79822. +libm_hidden_def(scalb)
  79823. #endif /* UCLIBC_SUSV3_LEGACY */
  79824. diff -Nur uClibc-0.9.33.2/libm/e_sinh.c uClibc-git/libm/e_sinh.c
  79825. --- uClibc-0.9.33.2/libm/e_sinh.c 2012-05-15 09:20:09.000000000 +0200
  79826. +++ uClibc-git/libm/e_sinh.c 2014-06-02 17:40:34.746716036 +0200
  79827. @@ -32,7 +32,7 @@
  79828. static const double one = 1.0, shuge = 1.0e307;
  79829. -double attribute_hidden __ieee754_sinh(double x)
  79830. +double __ieee754_sinh(double x)
  79831. {
  79832. double t,w,h;
  79833. int32_t ix,jx;
  79834. diff -Nur uClibc-0.9.33.2/libm/e_sqrt.c uClibc-git/libm/e_sqrt.c
  79835. --- uClibc-0.9.33.2/libm/e_sqrt.c 2012-05-15 09:20:09.000000000 +0200
  79836. +++ uClibc-git/libm/e_sqrt.c 2014-06-02 17:40:34.746716036 +0200
  79837. @@ -84,7 +84,7 @@
  79838. static const double one = 1.0, tiny = 1.0e-300;
  79839. -double attribute_hidden __ieee754_sqrt(double x)
  79840. +double __ieee754_sqrt(double x)
  79841. {
  79842. double z;
  79843. int32_t sign = (int)0x80000000;
  79844. diff -Nur uClibc-0.9.33.2/libm/i386/fclrexcpt.c uClibc-git/libm/i386/fclrexcpt.c
  79845. --- uClibc-0.9.33.2/libm/i386/fclrexcpt.c 2012-05-15 09:20:09.000000000 +0200
  79846. +++ uClibc-git/libm/i386/fclrexcpt.c 2014-06-02 17:40:34.746716036 +0200
  79847. @@ -14,9 +14,8 @@
  79848. Lesser General Public License for more details.
  79849. You should have received a copy of the GNU Lesser General Public
  79850. - License along with the GNU C Library; if not, write to the Free
  79851. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79852. - 02111-1307 USA. */
  79853. + License along with the GNU C Library; if not, see
  79854. + <http://www.gnu.org/licenses/>. */
  79855. #include <fenv.h>
  79856. #include <unistd.h>
  79857. diff -Nur uClibc-0.9.33.2/libm/i386/fedisblxcpt.c uClibc-git/libm/i386/fedisblxcpt.c
  79858. --- uClibc-0.9.33.2/libm/i386/fedisblxcpt.c 2012-05-15 09:20:09.000000000 +0200
  79859. +++ uClibc-git/libm/i386/fedisblxcpt.c 2014-06-02 17:40:34.746716036 +0200
  79860. @@ -14,9 +14,8 @@
  79861. Lesser General Public License for more details.
  79862. You should have received a copy of the GNU Lesser General Public
  79863. - License along with the GNU C Library; if not, write to the Free
  79864. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79865. - 02111-1307 USA. */
  79866. + License along with the GNU C Library; if not, see
  79867. + <http://www.gnu.org/licenses/>. */
  79868. #include <fenv.h>
  79869. #include <unistd.h>
  79870. diff -Nur uClibc-0.9.33.2/libm/i386/feenablxcpt.c uClibc-git/libm/i386/feenablxcpt.c
  79871. --- uClibc-0.9.33.2/libm/i386/feenablxcpt.c 2012-05-15 09:20:09.000000000 +0200
  79872. +++ uClibc-git/libm/i386/feenablxcpt.c 2014-06-02 17:40:34.746716036 +0200
  79873. @@ -14,9 +14,8 @@
  79874. Lesser General Public License for more details.
  79875. You should have received a copy of the GNU Lesser General Public
  79876. - License along with the GNU C Library; if not, write to the Free
  79877. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79878. - 02111-1307 USA. */
  79879. + License along with the GNU C Library; if not, see
  79880. + <http://www.gnu.org/licenses/>. */
  79881. #include <fenv.h>
  79882. #include <unistd.h>
  79883. diff -Nur uClibc-0.9.33.2/libm/i386/fegetenv.c uClibc-git/libm/i386/fegetenv.c
  79884. --- uClibc-0.9.33.2/libm/i386/fegetenv.c 2012-05-15 09:20:09.000000000 +0200
  79885. +++ uClibc-git/libm/i386/fegetenv.c 2014-06-02 17:40:34.746716036 +0200
  79886. @@ -14,9 +14,8 @@
  79887. Lesser General Public License for more details.
  79888. You should have received a copy of the GNU Lesser General Public
  79889. - License along with the GNU C Library; if not, write to the Free
  79890. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79891. - 02111-1307 USA. */
  79892. + License along with the GNU C Library; if not, see
  79893. + <http://www.gnu.org/licenses/>. */
  79894. #include <fenv.h>
  79895. diff -Nur uClibc-0.9.33.2/libm/i386/fegetexcept.c uClibc-git/libm/i386/fegetexcept.c
  79896. --- uClibc-0.9.33.2/libm/i386/fegetexcept.c 2012-05-15 09:20:09.000000000 +0200
  79897. +++ uClibc-git/libm/i386/fegetexcept.c 2014-06-02 17:40:34.754716080 +0200
  79898. @@ -14,9 +14,8 @@
  79899. Lesser General Public License for more details.
  79900. You should have received a copy of the GNU Lesser General Public
  79901. - License along with the GNU C Library; if not, write to the Free
  79902. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79903. - 02111-1307 USA. */
  79904. + License along with the GNU C Library; if not, see
  79905. + <http://www.gnu.org/licenses/>. */
  79906. #include <fenv.h>
  79907. diff -Nur uClibc-0.9.33.2/libm/i386/fegetround.c uClibc-git/libm/i386/fegetround.c
  79908. --- uClibc-0.9.33.2/libm/i386/fegetround.c 2012-05-15 09:20:09.000000000 +0200
  79909. +++ uClibc-git/libm/i386/fegetround.c 2014-06-02 17:40:34.758716102 +0200
  79910. @@ -14,9 +14,8 @@
  79911. Lesser General Public License for more details.
  79912. You should have received a copy of the GNU Lesser General Public
  79913. - License along with the GNU C Library; if not, write to the Free
  79914. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79915. - 02111-1307 USA. */
  79916. + License along with the GNU C Library; if not, see
  79917. + <http://www.gnu.org/licenses/>. */
  79918. #include <fenv.h>
  79919. diff -Nur uClibc-0.9.33.2/libm/i386/feholdexcpt.c uClibc-git/libm/i386/feholdexcpt.c
  79920. --- uClibc-0.9.33.2/libm/i386/feholdexcpt.c 2012-05-15 09:20:09.000000000 +0200
  79921. +++ uClibc-git/libm/i386/feholdexcpt.c 2014-06-02 17:40:34.762716125 +0200
  79922. @@ -15,9 +15,8 @@
  79923. Lesser General Public License for more details.
  79924. You should have received a copy of the GNU Lesser General Public
  79925. - License along with the GNU C Library; if not, write to the Free
  79926. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79927. - 02111-1307 USA. */
  79928. + License along with the GNU C Library; if not, see
  79929. + <http://www.gnu.org/licenses/>. */
  79930. #include <fenv.h>
  79931. #include <unistd.h>
  79932. diff -Nur uClibc-0.9.33.2/libm/i386/fesetenv.c uClibc-git/libm/i386/fesetenv.c
  79933. --- uClibc-0.9.33.2/libm/i386/fesetenv.c 2012-05-15 09:20:09.000000000 +0200
  79934. +++ uClibc-git/libm/i386/fesetenv.c 2014-06-02 17:40:34.762716125 +0200
  79935. @@ -14,9 +14,8 @@
  79936. Lesser General Public License for more details.
  79937. You should have received a copy of the GNU Lesser General Public
  79938. - License along with the GNU C Library; if not, write to the Free
  79939. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79940. - 02111-1307 USA. */
  79941. + License along with the GNU C Library; if not, see
  79942. + <http://www.gnu.org/licenses/>. */
  79943. #include <fenv.h>
  79944. #include <assert.h>
  79945. diff -Nur uClibc-0.9.33.2/libm/i386/fesetround.c uClibc-git/libm/i386/fesetround.c
  79946. --- uClibc-0.9.33.2/libm/i386/fesetround.c 2012-05-15 09:20:09.000000000 +0200
  79947. +++ uClibc-git/libm/i386/fesetround.c 2014-06-02 17:40:34.766716147 +0200
  79948. @@ -14,9 +14,8 @@
  79949. Lesser General Public License for more details.
  79950. You should have received a copy of the GNU Lesser General Public
  79951. - License along with the GNU C Library; if not, write to the Free
  79952. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79953. - 02111-1307 USA. */
  79954. + License along with the GNU C Library; if not, see
  79955. + <http://www.gnu.org/licenses/>. */
  79956. #include <fenv.h>
  79957. #include <unistd.h>
  79958. diff -Nur uClibc-0.9.33.2/libm/i386/feupdateenv.c uClibc-git/libm/i386/feupdateenv.c
  79959. --- uClibc-0.9.33.2/libm/i386/feupdateenv.c 2012-05-15 09:20:09.000000000 +0200
  79960. +++ uClibc-git/libm/i386/feupdateenv.c 2014-06-02 17:40:34.766716147 +0200
  79961. @@ -14,9 +14,8 @@
  79962. Lesser General Public License for more details.
  79963. You should have received a copy of the GNU Lesser General Public
  79964. - License along with the GNU C Library; if not, write to the Free
  79965. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79966. - 02111-1307 USA. */
  79967. + License along with the GNU C Library; if not, see
  79968. + <http://www.gnu.org/licenses/>. */
  79969. #include <fenv.h>
  79970. #include <unistd.h>
  79971. diff -Nur uClibc-0.9.33.2/libm/i386/fgetexcptflg.c uClibc-git/libm/i386/fgetexcptflg.c
  79972. --- uClibc-0.9.33.2/libm/i386/fgetexcptflg.c 2012-05-15 09:20:09.000000000 +0200
  79973. +++ uClibc-git/libm/i386/fgetexcptflg.c 2014-06-02 17:40:34.766716147 +0200
  79974. @@ -14,9 +14,8 @@
  79975. Lesser General Public License for more details.
  79976. You should have received a copy of the GNU Lesser General Public
  79977. - License along with the GNU C Library; if not, write to the Free
  79978. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79979. - 02111-1307 USA. */
  79980. + License along with the GNU C Library; if not, see
  79981. + <http://www.gnu.org/licenses/>. */
  79982. #include <fenv.h>
  79983. diff -Nur uClibc-0.9.33.2/libm/i386/fraiseexcpt.c uClibc-git/libm/i386/fraiseexcpt.c
  79984. --- uClibc-0.9.33.2/libm/i386/fraiseexcpt.c 2012-05-15 09:20:09.000000000 +0200
  79985. +++ uClibc-git/libm/i386/fraiseexcpt.c 2014-06-02 17:40:34.770716169 +0200
  79986. @@ -14,9 +14,8 @@
  79987. Lesser General Public License for more details.
  79988. You should have received a copy of the GNU Lesser General Public
  79989. - License along with the GNU C Library; if not, write to the Free
  79990. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79991. - 02111-1307 USA. */
  79992. + License along with the GNU C Library; if not, see
  79993. + <http://www.gnu.org/licenses/>. */
  79994. #include <fenv.h>
  79995. #include <math.h>
  79996. diff -Nur uClibc-0.9.33.2/libm/i386/fsetexcptflg.c uClibc-git/libm/i386/fsetexcptflg.c
  79997. --- uClibc-0.9.33.2/libm/i386/fsetexcptflg.c 2012-05-15 09:20:09.000000000 +0200
  79998. +++ uClibc-git/libm/i386/fsetexcptflg.c 2014-06-02 17:40:34.770716169 +0200
  79999. @@ -14,9 +14,8 @@
  80000. Lesser General Public License for more details.
  80001. You should have received a copy of the GNU Lesser General Public
  80002. - License along with the GNU C Library; if not, write to the Free
  80003. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80004. - 02111-1307 USA. */
  80005. + License along with the GNU C Library; if not, see
  80006. + <http://www.gnu.org/licenses/>. */
  80007. #include <fenv.h>
  80008. #include <math.h>
  80009. diff -Nur uClibc-0.9.33.2/libm/i386/ftestexcept.c uClibc-git/libm/i386/ftestexcept.c
  80010. --- uClibc-0.9.33.2/libm/i386/ftestexcept.c 2012-05-15 09:20:09.000000000 +0200
  80011. +++ uClibc-git/libm/i386/ftestexcept.c 2014-06-02 17:40:34.770716169 +0200
  80012. @@ -14,9 +14,8 @@
  80013. Lesser General Public License for more details.
  80014. You should have received a copy of the GNU Lesser General Public
  80015. - License along with the GNU C Library; if not, write to the Free
  80016. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80017. - 02111-1307 USA. */
  80018. + License along with the GNU C Library; if not, see
  80019. + <http://www.gnu.org/licenses/>. */
  80020. #include <fenv.h>
  80021. #include <unistd.h>
  80022. diff -Nur uClibc-0.9.33.2/libm/k_cos.c uClibc-git/libm/k_cos.c
  80023. --- uClibc-0.9.33.2/libm/k_cos.c 2012-05-15 09:20:09.000000000 +0200
  80024. +++ uClibc-git/libm/k_cos.c 2014-06-02 17:40:34.770716169 +0200
  80025. @@ -56,7 +56,7 @@
  80026. C5 = 2.08757232129817482790e-09, /* 0x3E21EE9E, 0xBDB4B1C4 */
  80027. C6 = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */
  80028. -double attribute_hidden __kernel_cos(double x, double y)
  80029. +double __kernel_cos(double x, double y)
  80030. {
  80031. double a,hz,z,r,qx;
  80032. int32_t ix;
  80033. diff -Nur uClibc-0.9.33.2/libm/k_rem_pio2.c uClibc-git/libm/k_rem_pio2.c
  80034. --- uClibc-0.9.33.2/libm/k_rem_pio2.c 2012-05-15 09:20:09.000000000 +0200
  80035. +++ uClibc-git/libm/k_rem_pio2.c 2014-06-02 17:40:34.770716169 +0200
  80036. @@ -147,7 +147,7 @@
  80037. two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */
  80038. twon24 = 5.96046447753906250000e-08; /* 0x3E700000, 0x00000000 */
  80039. -int attribute_hidden __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec, const int32_t *ipio2)
  80040. +int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec, const int32_t *ipio2)
  80041. {
  80042. int32_t jz,jx,jv,jp,jk,carry,n,iq[20],i,j,k,m,q0,ih;
  80043. double z,fw,f[20],fq[20],q[20];
  80044. diff -Nur uClibc-0.9.33.2/libm/k_sin.c uClibc-git/libm/k_sin.c
  80045. --- uClibc-0.9.33.2/libm/k_sin.c 2012-05-15 09:20:09.000000000 +0200
  80046. +++ uClibc-git/libm/k_sin.c 2014-06-02 17:40:34.770716169 +0200
  80047. @@ -49,7 +49,7 @@
  80048. S5 = -2.50507602534068634195e-08, /* 0xBE5AE5E6, 0x8A2B9CEB */
  80049. S6 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */
  80050. -double attribute_hidden __kernel_sin(double x, double y, int iy)
  80051. +double __kernel_sin(double x, double y, int iy)
  80052. {
  80053. double z,r,v;
  80054. int32_t ix;
  80055. diff -Nur uClibc-0.9.33.2/libm/k_standard.c uClibc-git/libm/k_standard.c
  80056. --- uClibc-0.9.33.2/libm/k_standard.c 2012-05-15 09:20:09.000000000 +0200
  80057. +++ uClibc-git/libm/k_standard.c 2014-06-02 17:40:34.770716169 +0200
  80058. @@ -598,6 +598,7 @@
  80059. errno = EDOM;
  80060. }
  80061. break;
  80062. +# ifdef __UCLIBC_SUSV3_LEGACY__
  80063. case 32:
  80064. case 132:
  80065. /* scalb overflow; SVID also returns +-HUGE_VAL */
  80066. @@ -622,6 +623,7 @@
  80067. errno = ERANGE;
  80068. }
  80069. break;
  80070. +# endif
  80071. case 34:
  80072. case 134:
  80073. /* j0(|x|>X_TLOSS) */
  80074. diff -Nur uClibc-0.9.33.2/libm/k_tan.c uClibc-git/libm/k_tan.c
  80075. --- uClibc-0.9.33.2/libm/k_tan.c 2012-05-15 09:20:09.000000000 +0200
  80076. +++ uClibc-git/libm/k_tan.c 2014-06-02 17:40:34.770716169 +0200
  80077. @@ -66,7 +66,7 @@
  80078. 2.59073051863633712884e-05, /* 0x3EFB2A70, 0x74BF7AD4 */
  80079. };
  80080. -double attribute_hidden __kernel_tan(double x, double y, int iy)
  80081. +double __kernel_tan(double x, double y, int iy)
  80082. {
  80083. double z,r,v,w,s;
  80084. int32_t ix,hx;
  80085. diff -Nur uClibc-0.9.33.2/libm/metag/fclrexcpt.c uClibc-git/libm/metag/fclrexcpt.c
  80086. --- uClibc-0.9.33.2/libm/metag/fclrexcpt.c 1970-01-01 01:00:00.000000000 +0100
  80087. +++ uClibc-git/libm/metag/fclrexcpt.c 2014-06-02 17:40:34.770716169 +0200
  80088. @@ -0,0 +1,44 @@
  80089. +/* Clear given exceptions in current floating-point environment.
  80090. + Copyright (C) 2013 Imagination Technologies Ltd.
  80091. + This file is part of the GNU C Library.
  80092. +
  80093. + The GNU C Library is free software; you can redistribute it and/or
  80094. + modify it under the terms of the GNU Lesser General Public
  80095. + License as published by the Free Software Foundation; either
  80096. + version 2.1 of the License, or (at your option) any later version.
  80097. +
  80098. + The GNU C Library is distributed in the hope that it will be useful,
  80099. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80100. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80101. + Lesser General Public License for more details.
  80102. +
  80103. + You should have received a copy of the GNU Lesser General Public
  80104. + License along with the GNU C Library; if not, write to the Free
  80105. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80106. + 02111-1307 USA. */
  80107. +
  80108. +#include <fenv.h>
  80109. +#include <unistd.h>
  80110. +
  80111. +#include "internal.h"
  80112. +
  80113. +int
  80114. +feclearexcept (int excepts)
  80115. +{
  80116. + unsigned int temp;
  80117. +
  80118. + /* Get the current exceptions. */
  80119. + __asm__ ("MOV %0,TXDEFR" : "=r" (temp));
  80120. +
  80121. + /* Mask out unsupported bits/exceptions. */
  80122. + excepts &= FE_ALL_EXCEPT;
  80123. +
  80124. + excepts <<= 16;
  80125. +
  80126. + temp &= ~excepts;
  80127. +
  80128. + metag_set_fpu_flags(temp);
  80129. +
  80130. + /* Success. */
  80131. + return 0;
  80132. +}
  80133. diff -Nur uClibc-0.9.33.2/libm/metag/fedisblxcpt.c uClibc-git/libm/metag/fedisblxcpt.c
  80134. --- uClibc-0.9.33.2/libm/metag/fedisblxcpt.c 1970-01-01 01:00:00.000000000 +0100
  80135. +++ uClibc-git/libm/metag/fedisblxcpt.c 2014-06-02 17:40:34.770716169 +0200
  80136. @@ -0,0 +1,40 @@
  80137. +/* Disable floating-point exceptions.
  80138. + Copyright (C) 2013 Imagination Technologies Ltd.
  80139. + This file is part of the GNU C Library.
  80140. +
  80141. + The GNU C Library is free software; you can redistribute it and/or
  80142. + modify it under the terms of the GNU Lesser General Public
  80143. + License as published by the Free Software Foundation; either
  80144. + version 2.1 of the License, or (at your option) any later version.
  80145. +
  80146. + The GNU C Library is distributed in the hope that it will be useful,
  80147. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80148. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80149. + Lesser General Public License for more details.
  80150. +
  80151. + You should have received a copy of the GNU Lesser General Public
  80152. + License along with the GNU C Library; if not, write to the Free
  80153. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80154. + 02111-1307 USA. */
  80155. +
  80156. +#include <fenv.h>
  80157. +#include <unistd.h>
  80158. +
  80159. +#include "internal.h"
  80160. +
  80161. +int
  80162. +fedisableexcept (int excepts)
  80163. +{
  80164. + unsigned int old_exc;
  80165. +
  80166. + /* Get the current control word. */
  80167. + __asm__ ("MOV %0,TXDEFR" : "=r" (old_exc));
  80168. +
  80169. + old_exc &= FE_ALL_EXCEPT;
  80170. +
  80171. + excepts = old_exc & ~excepts;
  80172. +
  80173. + metag_set_fpu_flags(excepts);
  80174. +
  80175. + return old_exc;
  80176. +}
  80177. diff -Nur uClibc-0.9.33.2/libm/metag/feenablxcpt.c uClibc-git/libm/metag/feenablxcpt.c
  80178. --- uClibc-0.9.33.2/libm/metag/feenablxcpt.c 1970-01-01 01:00:00.000000000 +0100
  80179. +++ uClibc-git/libm/metag/feenablxcpt.c 2014-06-02 17:40:34.770716169 +0200
  80180. @@ -0,0 +1,40 @@
  80181. +/* Enable floating-point exceptions.
  80182. + Copyright (C) 2013 Imagination Technologies Ltd.
  80183. + This file is part of the GNU C Library.
  80184. +
  80185. + The GNU C Library is free software; you can redistribute it and/or
  80186. + modify it under the terms of the GNU Lesser General Public
  80187. + License as published by the Free Software Foundation; either
  80188. + version 2.1 of the License, or (at your option) any later version.
  80189. +
  80190. + The GNU C Library is distributed in the hope that it will be useful,
  80191. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80192. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80193. + Lesser General Public License for more details.
  80194. +
  80195. + You should have received a copy of the GNU Lesser General Public
  80196. + License along with the GNU C Library; if not, write to the Free
  80197. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80198. + 02111-1307 USA. */
  80199. +
  80200. +#include <fenv.h>
  80201. +#include <unistd.h>
  80202. +
  80203. +#include "internal.h"
  80204. +
  80205. +int
  80206. +feenableexcept (int excepts)
  80207. +{
  80208. + unsigned int old_exc;
  80209. +
  80210. + /* Get the current control word. */
  80211. + __asm__ ("MOV %0,TXDEFR" : "=r" (old_exc));
  80212. +
  80213. + old_exc &= FE_ALL_EXCEPT;
  80214. +
  80215. + excepts |= old_exc;
  80216. +
  80217. + metag_set_fpu_flags(excepts);
  80218. +
  80219. + return old_exc;
  80220. +}
  80221. diff -Nur uClibc-0.9.33.2/libm/metag/fegetenv.c uClibc-git/libm/metag/fegetenv.c
  80222. --- uClibc-0.9.33.2/libm/metag/fegetenv.c 1970-01-01 01:00:00.000000000 +0100
  80223. +++ uClibc-git/libm/metag/fegetenv.c 2014-06-02 17:40:34.770716169 +0200
  80224. @@ -0,0 +1,36 @@
  80225. +/* Store current floating-point environment.
  80226. + Copyright (C) 2013 Imagination Technologies Ltd.
  80227. + This file is part of the GNU C Library.
  80228. +
  80229. + The GNU C Library is free software; you can redistribute it and/or
  80230. + modify it under the terms of the GNU Lesser General Public
  80231. + License as published by the Free Software Foundation; either
  80232. + version 2.1 of the License, or (at your option) any later version.
  80233. +
  80234. + The GNU C Library is distributed in the hope that it will be useful,
  80235. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80236. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80237. + Lesser General Public License for more details.
  80238. +
  80239. + You should have received a copy of the GNU Lesser General Public
  80240. + License along with the GNU C Library; if not, write to the Free
  80241. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80242. + 02111-1307 USA. */
  80243. +
  80244. +#include <fenv.h>
  80245. +
  80246. +int
  80247. +fegetenv (fenv_t *envp)
  80248. +{
  80249. + unsigned int txdefr;
  80250. + unsigned int txmode;
  80251. +
  80252. + __asm__ ("MOV %0,TXDEFR" : "=r" (txdefr));
  80253. + __asm__ ("MOV %0,TXMODE" : "=r" (txmode));
  80254. +
  80255. + envp->txdefr = txdefr;
  80256. + envp->txmode = txmode;
  80257. +
  80258. + /* Success. */
  80259. + return 0;
  80260. +}
  80261. diff -Nur uClibc-0.9.33.2/libm/metag/fegetexcept.c uClibc-git/libm/metag/fegetexcept.c
  80262. --- uClibc-0.9.33.2/libm/metag/fegetexcept.c 1970-01-01 01:00:00.000000000 +0100
  80263. +++ uClibc-git/libm/metag/fegetexcept.c 2014-06-02 17:40:34.770716169 +0200
  80264. @@ -0,0 +1,31 @@
  80265. +/* Get enabled floating-point exceptions.
  80266. + Copyright (C) 2013 Imagination Technologies Ltd.
  80267. + This file is part of the GNU C Library.
  80268. +
  80269. + The GNU C Library is free software; you can redistribute it and/or
  80270. + modify it under the terms of the GNU Lesser General Public
  80271. + License as published by the Free Software Foundation; either
  80272. + version 2.1 of the License, or (at your option) any later version.
  80273. +
  80274. + The GNU C Library is distributed in the hope that it will be useful,
  80275. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80276. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80277. + Lesser General Public License for more details.
  80278. +
  80279. + You should have received a copy of the GNU Lesser General Public
  80280. + License along with the GNU C Library; if not, write to the Free
  80281. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80282. + 02111-1307 USA. */
  80283. +
  80284. +#include <fenv.h>
  80285. +
  80286. +int
  80287. +fegetexcept (void)
  80288. +{
  80289. + unsigned int exc;
  80290. +
  80291. + /* Get the current control word. */
  80292. + __asm__ ("MOV %0,TXDEFR" : "=r" (exc));
  80293. +
  80294. + return exc & FE_ALL_EXCEPT;
  80295. +}
  80296. diff -Nur uClibc-0.9.33.2/libm/metag/fegetround.c uClibc-git/libm/metag/fegetround.c
  80297. --- uClibc-0.9.33.2/libm/metag/fegetround.c 1970-01-01 01:00:00.000000000 +0100
  80298. +++ uClibc-git/libm/metag/fegetround.c 2014-06-02 17:40:34.770716169 +0200
  80299. @@ -0,0 +1,30 @@
  80300. +/* Return current rounding direction.
  80301. + Copyright (C) 2013 Imagination Technologies Ltd.
  80302. + This file is part of the GNU C Library.
  80303. +
  80304. + The GNU C Library is free software; you can redistribute it and/or
  80305. + modify it under the terms of the GNU Lesser General Public
  80306. + License as published by the Free Software Foundation; either
  80307. + version 2.1 of the License, or (at your option) any later version.
  80308. +
  80309. + The GNU C Library is distributed in the hope that it will be useful,
  80310. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80311. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80312. + Lesser General Public License for more details.
  80313. +
  80314. + You should have received a copy of the GNU Lesser General Public
  80315. + License along with the GNU C Library; if not, write to the Free
  80316. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80317. + 02111-1307 USA. */
  80318. +
  80319. +#include <fenv.h>
  80320. +
  80321. +int
  80322. +fegetround (void)
  80323. +{
  80324. + unsigned int txmode;
  80325. +
  80326. + __asm__ ("MOV %0,TXMODE" : "=r" (txmode));
  80327. +
  80328. + return (txmode >> 16) & 0x3;
  80329. +}
  80330. diff -Nur uClibc-0.9.33.2/libm/metag/feholdexcpt.c uClibc-git/libm/metag/feholdexcpt.c
  80331. --- uClibc-0.9.33.2/libm/metag/feholdexcpt.c 1970-01-01 01:00:00.000000000 +0100
  80332. +++ uClibc-git/libm/metag/feholdexcpt.c 2014-06-02 17:40:34.770716169 +0200
  80333. @@ -0,0 +1,41 @@
  80334. +/* Store current floating-point environment and clear exceptions.
  80335. + Copyright (C) 2013 Imagination Technologies Ltd.
  80336. + Free Software Foundation, Inc.
  80337. + This file is part of the GNU C Library.
  80338. +
  80339. + The GNU C Library is free software; you can redistribute it and/or
  80340. + modify it under the terms of the GNU Lesser General Public
  80341. + License as published by the Free Software Foundation; either
  80342. + version 2.1 of the License, or (at your option) any later version.
  80343. +
  80344. + The GNU C Library is distributed in the hope that it will be useful,
  80345. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80346. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80347. + Lesser General Public License for more details.
  80348. +
  80349. + You should have received a copy of the GNU Lesser General Public
  80350. + License along with the GNU C Library; if not, write to the Free
  80351. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80352. + 02111-1307 USA. */
  80353. +
  80354. +#include <fenv.h>
  80355. +#include <unistd.h>
  80356. +
  80357. +#include "internal.h"
  80358. +
  80359. +int
  80360. +feholdexcept (fenv_t *envp)
  80361. +{
  80362. + unsigned int txdefr;
  80363. + unsigned int txmode;
  80364. +
  80365. + __asm__ ("MOV %0,TXDEFR" : "=r" (txdefr));
  80366. + __asm__ ("MOV %0,TXMODE" : "=r" (txmode));
  80367. +
  80368. + envp->txdefr = txdefr;
  80369. + envp->txmode = txmode;
  80370. +
  80371. + metag_set_fpu_flags(0);
  80372. +
  80373. + return 0;
  80374. +}
  80375. diff -Nur uClibc-0.9.33.2/libm/metag/fesetenv.c uClibc-git/libm/metag/fesetenv.c
  80376. --- uClibc-0.9.33.2/libm/metag/fesetenv.c 1970-01-01 01:00:00.000000000 +0100
  80377. +++ uClibc-git/libm/metag/fesetenv.c 2014-06-02 17:40:34.770716169 +0200
  80378. @@ -0,0 +1,60 @@
  80379. +/* Install given floating-point environment.
  80380. + Copyright (C) 2013 Imagination Technologies Ltd.
  80381. + This file is part of the GNU C Library.
  80382. +
  80383. + The GNU C Library is free software; you can redistribute it and/or
  80384. + modify it under the terms of the GNU Lesser General Public
  80385. + License as published by the Free Software Foundation; either
  80386. + version 2.1 of the License, or (at your option) any later version.
  80387. +
  80388. + The GNU C Library is distributed in the hope that it will be useful,
  80389. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80390. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80391. + Lesser General Public License for more details.
  80392. +
  80393. + You should have received a copy of the GNU Lesser General Public
  80394. + License along with the GNU C Library; if not, write to the Free
  80395. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80396. + 02111-1307 USA. */
  80397. +
  80398. +#include <fenv.h>
  80399. +#include <assert.h>
  80400. +
  80401. +#include "internal.h"
  80402. +
  80403. +libm_hidden_proto(fesetenv)
  80404. +
  80405. +int
  80406. +fesetenv (const fenv_t *envp)
  80407. +{
  80408. + unsigned int exc;
  80409. + unsigned int txmode;
  80410. +
  80411. + __asm__ ("MOV %0,TXMODE" : "=r" (txmode));
  80412. +
  80413. + /* Clear rounding mode bits (round to nearest). */
  80414. + txmode &= ~(0x3 << 16);
  80415. +
  80416. + if (envp == FE_DFL_ENV)
  80417. + {
  80418. + exc = 0;
  80419. + }
  80420. + else if (envp == FE_NOMASK_ENV)
  80421. + {
  80422. + exc = 0x1f;
  80423. + }
  80424. + else
  80425. + {
  80426. + exc = envp->txdefr & (FE_ALL_EXCEPT | (FE_ALL_EXCEPT << 16));
  80427. + /* Write rounding mode and guard bit. */
  80428. + txmode |= (0x1 << 18 ) | (envp->txmode & (0x3 << 16));
  80429. + }
  80430. +
  80431. + __asm__ ("MOV TXMODE,%0" : : "r" (txmode));
  80432. +
  80433. + metag_set_fpu_flags(exc);
  80434. +
  80435. + /* Success. */
  80436. + return 0;
  80437. +}
  80438. +libm_hidden_def(fesetenv)
  80439. diff -Nur uClibc-0.9.33.2/libm/metag/fesetround.c uClibc-git/libm/metag/fesetround.c
  80440. --- uClibc-0.9.33.2/libm/metag/fesetround.c 1970-01-01 01:00:00.000000000 +0100
  80441. +++ uClibc-git/libm/metag/fesetround.c 2014-06-02 17:40:34.770716169 +0200
  80442. @@ -0,0 +1,41 @@
  80443. +/* Set current rounding direction.
  80444. + Copyright (C) 2013 Imagination Technologies Ltd.
  80445. + This file is part of the GNU C Library.
  80446. +
  80447. + The GNU C Library is free software; you can redistribute it and/or
  80448. + modify it under the terms of the GNU Lesser General Public
  80449. + License as published by the Free Software Foundation; either
  80450. + version 2.1 of the License, or (at your option) any later version.
  80451. +
  80452. + The GNU C Library is distributed in the hope that it will be useful,
  80453. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80454. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80455. + Lesser General Public License for more details.
  80456. +
  80457. + You should have received a copy of the GNU Lesser General Public
  80458. + License along with the GNU C Library; if not, write to the Free
  80459. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80460. + 02111-1307 USA. */
  80461. +
  80462. +#include <fenv.h>
  80463. +#include <unistd.h>
  80464. +
  80465. +int
  80466. +fesetround (int round)
  80467. +{
  80468. + unsigned int txmode;
  80469. +
  80470. + if ((round & ~0x3) != 0)
  80471. + /* ROUND is no valid rounding mode. */
  80472. + return 1;
  80473. +
  80474. + __asm__ ("MOV %0,TXMODE" : "=r" (txmode));
  80475. +
  80476. + txmode &= ~(0x3 << 16);
  80477. + /* Write rounding mode and guard bit. */
  80478. + txmode |= (0x1 << 18 ) | (round << 16);
  80479. +
  80480. + __asm__ ("MOV TXMODE,%0" : : "r" (txmode));
  80481. +
  80482. + return 0;
  80483. +}
  80484. diff -Nur uClibc-0.9.33.2/libm/metag/feupdateenv.c uClibc-git/libm/metag/feupdateenv.c
  80485. --- uClibc-0.9.33.2/libm/metag/feupdateenv.c 1970-01-01 01:00:00.000000000 +0100
  80486. +++ uClibc-git/libm/metag/feupdateenv.c 2014-06-02 17:40:34.774716191 +0200
  80487. @@ -0,0 +1,45 @@
  80488. +/* Install given floating-point environment and raise exceptions.
  80489. + Copyright (C) 2013 Imagination Technologies Ltd.
  80490. + This file is part of the GNU C Library.
  80491. +
  80492. + The GNU C Library is free software; you can redistribute it and/or
  80493. + modify it under the terms of the GNU Lesser General Public
  80494. + License as published by the Free Software Foundation; either
  80495. + version 2.1 of the License, or (at your option) any later version.
  80496. +
  80497. + The GNU C Library is distributed in the hope that it will be useful,
  80498. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80499. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80500. + Lesser General Public License for more details.
  80501. +
  80502. + You should have received a copy of the GNU Lesser General Public
  80503. + License along with the GNU C Library; if not, write to the Free
  80504. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80505. + 02111-1307 USA. */
  80506. +
  80507. +#include <fenv.h>
  80508. +#include <unistd.h>
  80509. +
  80510. +libm_hidden_proto(fesetenv)
  80511. +libm_hidden_proto(feraiseexcept)
  80512. +
  80513. +int
  80514. +feupdateenv (const fenv_t *envp)
  80515. +{
  80516. + unsigned int temp;
  80517. +
  80518. + /* Save current exceptions. */
  80519. + __asm__ ("MOV %0,TXDEFR" : "=r" (temp));
  80520. +
  80521. + temp >>= 16;
  80522. + temp &= FE_ALL_EXCEPT;
  80523. +
  80524. + /* Install new environment. */
  80525. + fesetenv (envp);
  80526. +
  80527. + /* Raise the saved exception. */
  80528. + feraiseexcept ((int) temp);
  80529. +
  80530. + /* Success. */
  80531. + return 0;
  80532. +}
  80533. diff -Nur uClibc-0.9.33.2/libm/metag/fgetexcptflg.c uClibc-git/libm/metag/fgetexcptflg.c
  80534. --- uClibc-0.9.33.2/libm/metag/fgetexcptflg.c 1970-01-01 01:00:00.000000000 +0100
  80535. +++ uClibc-git/libm/metag/fgetexcptflg.c 2014-06-02 17:40:34.774716191 +0200
  80536. @@ -0,0 +1,34 @@
  80537. +/* Store current representation for exceptions.
  80538. + Copyright (C) 2013 Imagination Technologies Ltd.
  80539. + This file is part of the GNU C Library.
  80540. +
  80541. + The GNU C Library is free software; you can redistribute it and/or
  80542. + modify it under the terms of the GNU Lesser General Public
  80543. + License as published by the Free Software Foundation; either
  80544. + version 2.1 of the License, or (at your option) any later version.
  80545. +
  80546. + The GNU C Library is distributed in the hope that it will be useful,
  80547. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80548. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80549. + Lesser General Public License for more details.
  80550. +
  80551. + You should have received a copy of the GNU Lesser General Public
  80552. + License along with the GNU C Library; if not, write to the Free
  80553. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80554. + 02111-1307 USA. */
  80555. +
  80556. +#include <fenv.h>
  80557. +
  80558. +int
  80559. +fegetexceptflag (fexcept_t *flagp, int excepts)
  80560. +{
  80561. + unsigned int temp;
  80562. +
  80563. + /* Get the current exceptions. */
  80564. + __asm__ ("MOV %0,TXDEFR" : "=r" (temp));
  80565. +
  80566. + *flagp = temp & excepts & FE_ALL_EXCEPT;
  80567. +
  80568. + /* Success. */
  80569. + return 0;
  80570. +}
  80571. diff -Nur uClibc-0.9.33.2/libm/metag/fraiseexcpt.c uClibc-git/libm/metag/fraiseexcpt.c
  80572. --- uClibc-0.9.33.2/libm/metag/fraiseexcpt.c 1970-01-01 01:00:00.000000000 +0100
  80573. +++ uClibc-git/libm/metag/fraiseexcpt.c 2014-06-02 17:40:34.774716191 +0200
  80574. @@ -0,0 +1,92 @@
  80575. +/* Raise given exceptions.
  80576. + Copyright (C) 2013 Imagination Technologies Ltd.
  80577. + This file is part of the GNU C Library.
  80578. +
  80579. + The GNU C Library is free software; you can redistribute it and/or
  80580. + modify it under the terms of the GNU Lesser General Public
  80581. + License as published by the Free Software Foundation; either
  80582. + version 2.1 of the License, or (at your option) any later version.
  80583. +
  80584. + The GNU C Library is distributed in the hope that it will be useful,
  80585. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80586. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80587. + Lesser General Public License for more details.
  80588. +
  80589. + You should have received a copy of the GNU Lesser General Public
  80590. + License along with the GNU C Library; if not, write to the Free
  80591. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80592. + 02111-1307 USA. */
  80593. +
  80594. +#include <fenv.h>
  80595. +#include <math.h>
  80596. +
  80597. +libm_hidden_proto(feraiseexcept)
  80598. +
  80599. +int
  80600. +feraiseexcept (int excepts)
  80601. +{
  80602. + /* Raise exceptions represented by EXPECTS. But we must raise only
  80603. + one signal at a time. It is important that if the overflow/underflow
  80604. + exception and the inexact exception are given at the same time,
  80605. + the overflow/underflow exception follows the inexact exception. */
  80606. +
  80607. + /* First: invalid exception. */
  80608. + if ((FE_INVALID & excepts) != 0)
  80609. + {
  80610. + /* Reciprocal square root of a negative number is invalid. */
  80611. + __asm__ volatile(
  80612. + "F MOV FX.0,#0xc000 ! -2\n"
  80613. + "F RSQ FX.1,FX.0\n"
  80614. + );
  80615. + }
  80616. +
  80617. + /* Next: division by zero. */
  80618. + if ((FE_DIVBYZERO & excepts) != 0)
  80619. + {
  80620. + __asm__ volatile(
  80621. + "F MOV FX.0,#0\n"
  80622. + "F RCP FX.1,FX.0\n"
  80623. + );
  80624. + }
  80625. +
  80626. + /* Next: overflow. */
  80627. + if ((FE_OVERFLOW & excepts) != 0)
  80628. + {
  80629. + /* Adding a large number in single precision can cause overflow. */
  80630. + __asm__ volatile(
  80631. + " MOVT D0.0,#0x7f7f\n"
  80632. + " ADD D0.0,D0.0,#0xffff\n"
  80633. + "F MOV FX.0,D0.0\n"
  80634. + "F ADD FX.1,FX.0,FX.0\n"
  80635. + );
  80636. + }
  80637. +
  80638. + /* Next: underflow. */
  80639. + if ((FE_UNDERFLOW & excepts) != 0)
  80640. + {
  80641. + /* Multiplying a small value by 0.5 will cause an underflow. */
  80642. + __asm__ volatile(
  80643. + " MOV D0.0,#1\n"
  80644. + "F MOV FX.0,D0.0\n"
  80645. + " MOVT D0.0,#0x3f00\n"
  80646. + "F MOV FX.1,D0.0\n"
  80647. + "F MUL FX.2,FX.1,FX.0\n"
  80648. + );
  80649. + }
  80650. +
  80651. + /* Last: inexact. */
  80652. + if ((FE_INEXACT & excepts) != 0)
  80653. + {
  80654. + /* Converting a small single precision value to half precision
  80655. + can cause an inexact exception. */
  80656. + __asm__ volatile(
  80657. + " MOV D0.0,#0x0001\n"
  80658. + "F MOV FX.0,D0.0\n"
  80659. + "F FTOH FX.1,FX.0\n"
  80660. + );
  80661. + }
  80662. +
  80663. + /* Success. */
  80664. + return 0;
  80665. +}
  80666. +libm_hidden_def(feraiseexcept)
  80667. diff -Nur uClibc-0.9.33.2/libm/metag/fsetexcptflg.c uClibc-git/libm/metag/fsetexcptflg.c
  80668. --- uClibc-0.9.33.2/libm/metag/fsetexcptflg.c 1970-01-01 01:00:00.000000000 +0100
  80669. +++ uClibc-git/libm/metag/fsetexcptflg.c 2014-06-02 17:40:34.774716191 +0200
  80670. @@ -0,0 +1,44 @@
  80671. +/* Set floating-point environment exception handling.
  80672. + Copyright (C) 2013 Imagination Technologies Ltd.
  80673. + This file is part of the GNU C Library.
  80674. +
  80675. + The GNU C Library is free software; you can redistribute it and/or
  80676. + modify it under the terms of the GNU Lesser General Public
  80677. + License as published by the Free Software Foundation; either
  80678. + version 2.1 of the License, or (at your option) any later version.
  80679. +
  80680. + The GNU C Library is distributed in the hope that it will be useful,
  80681. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80682. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80683. + Lesser General Public License for more details.
  80684. +
  80685. + You should have received a copy of the GNU Lesser General Public
  80686. + License along with the GNU C Library; if not, write to the Free
  80687. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80688. + 02111-1307 USA. */
  80689. +
  80690. +#include <fenv.h>
  80691. +#include <math.h>
  80692. +#include <unistd.h>
  80693. +
  80694. +#include "internal.h"
  80695. +
  80696. +int
  80697. +fesetexceptflag (const fexcept_t *flagp, int excepts)
  80698. +{
  80699. + unsigned int temp;
  80700. +
  80701. + /* Get the current exceptions. */
  80702. + __asm__ ("MOV %0,TXDEFR" : "=r" (temp));
  80703. +
  80704. + excepts &= FE_ALL_EXCEPT;
  80705. + excepts <<= 16;
  80706. +
  80707. + temp &= ~excepts;
  80708. + temp |= *flagp & excepts;
  80709. +
  80710. + metag_set_fpu_flags(temp);
  80711. +
  80712. + /* Success. */
  80713. + return 0;
  80714. +}
  80715. diff -Nur uClibc-0.9.33.2/libm/metag/ftestexcept.c uClibc-git/libm/metag/ftestexcept.c
  80716. --- uClibc-0.9.33.2/libm/metag/ftestexcept.c 1970-01-01 01:00:00.000000000 +0100
  80717. +++ uClibc-git/libm/metag/ftestexcept.c 2014-06-02 17:40:34.774716191 +0200
  80718. @@ -0,0 +1,32 @@
  80719. +/* Test exception in current environment.
  80720. + Copyright (C) 2013 Imagination Technologies Ltd.
  80721. + This file is part of the GNU C Library.
  80722. +
  80723. + The GNU C Library is free software; you can redistribute it and/or
  80724. + modify it under the terms of the GNU Lesser General Public
  80725. + License as published by the Free Software Foundation; either
  80726. + version 2.1 of the License, or (at your option) any later version.
  80727. +
  80728. + The GNU C Library is distributed in the hope that it will be useful,
  80729. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80730. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80731. + Lesser General Public License for more details.
  80732. +
  80733. + You should have received a copy of the GNU Lesser General Public
  80734. + License along with the GNU C Library; if not, write to the Free
  80735. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80736. + 02111-1307 USA. */
  80737. +
  80738. +#include <fenv.h>
  80739. +#include <unistd.h>
  80740. +
  80741. +int
  80742. +fetestexcept (int excepts)
  80743. +{
  80744. + unsigned int temp;
  80745. +
  80746. + /* Get the current exceptions. */
  80747. + __asm__ ("MOV %0,TXDEFR" : "=r" (temp));
  80748. +
  80749. + return (temp >> 16) & excepts & FE_ALL_EXCEPT;
  80750. +}
  80751. diff -Nur uClibc-0.9.33.2/libm/metag/internal.h uClibc-git/libm/metag/internal.h
  80752. --- uClibc-0.9.33.2/libm/metag/internal.h 1970-01-01 01:00:00.000000000 +0100
  80753. +++ uClibc-git/libm/metag/internal.h 2014-06-02 17:40:34.774716191 +0200
  80754. @@ -0,0 +1,7 @@
  80755. +/*
  80756. + * Copyright (C) 2013 Imagination Technologies Ltd.
  80757. + *
  80758. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  80759. + */
  80760. +
  80761. +void metag_set_fpu_flags(unsigned int flags);
  80762. diff -Nur uClibc-0.9.33.2/libm/metag/Makefile.arch uClibc-git/libm/metag/Makefile.arch
  80763. --- uClibc-0.9.33.2/libm/metag/Makefile.arch 1970-01-01 01:00:00.000000000 +0100
  80764. +++ uClibc-git/libm/metag/Makefile.arch 2014-06-02 17:40:34.770716169 +0200
  80765. @@ -0,0 +1,23 @@
  80766. +# Makefile for uClibc
  80767. +#
  80768. +# Copyright (c) 2013 Imagination Technologies Ltd.
  80769. +#
  80770. +# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  80771. +#
  80772. +
  80773. +ifeq ($(UCLIBC_HAS_FENV),y)
  80774. +ifeq ($(CONFIG_META_2_1),y)
  80775. +libm_ARCH_SRC:=$(wildcard $(libm_ARCH_DIR)/*.c)
  80776. +libm_ARCH_OBJ:=$(patsubst $(libm_ARCH_DIR)/%.c,$(libm_ARCH_OUT)/%.o,$(libm_ARCH_SRC))
  80777. +CFLAGS-libm += -Wa,-mfpu=metac21
  80778. +endif
  80779. +endif
  80780. +
  80781. +libm_ARCH_OBJS:=$(libm_ARCH_OBJ)
  80782. +
  80783. +ifeq ($(DOPIC),y)
  80784. +libm-a-y+=$(libm_ARCH_OBJS:.o=.os)
  80785. +else
  80786. +libm-a-y+=$(libm_ARCH_OBJS)
  80787. +endif
  80788. +libm-so-y+=$(libm_ARCH_OBJS:.o=.os)
  80789. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fclrexcpt.c uClibc-git/libm/powerpc/e500/fpu/fclrexcpt.c
  80790. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fclrexcpt.c 2012-05-15 09:20:09.000000000 +0200
  80791. +++ uClibc-git/libm/powerpc/e500/fpu/fclrexcpt.c 2014-06-02 17:40:34.794716302 +0200
  80792. @@ -13,9 +13,8 @@
  80793. Lesser General Public License for more details.
  80794. You should have received a copy of the GNU Lesser General Public
  80795. - License along with the GNU C Library; if not, write to the Free
  80796. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80797. - 02111-1307 USA. */
  80798. + License along with the GNU C Library; if not, see
  80799. + <http://www.gnu.org/licenses/>. */
  80800. #include "fenv_libc.h"
  80801. #undef feclearexcept
  80802. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fedisblxcpt.c uClibc-git/libm/powerpc/e500/fpu/fedisblxcpt.c
  80803. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fedisblxcpt.c 2012-05-15 09:20:09.000000000 +0200
  80804. +++ uClibc-git/libm/powerpc/e500/fpu/fedisblxcpt.c 2014-06-02 17:40:34.794716302 +0200
  80805. @@ -14,9 +14,8 @@
  80806. Lesser General Public License for more details.
  80807. You should have received a copy of the GNU Lesser General Public
  80808. - License along with the GNU C Library; if not, write to the Free
  80809. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80810. - 02111-1307 USA. */
  80811. + License along with the GNU C Library; if not, see
  80812. + <http://www.gnu.org/licenses/>. */
  80813. #include "fenv_libc.h"
  80814. #include <syscall.h>
  80815. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/feenablxcpt.c uClibc-git/libm/powerpc/e500/fpu/feenablxcpt.c
  80816. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/feenablxcpt.c 2012-05-15 09:20:09.000000000 +0200
  80817. +++ uClibc-git/libm/powerpc/e500/fpu/feenablxcpt.c 2014-06-02 17:40:34.794716302 +0200
  80818. @@ -14,9 +14,8 @@
  80819. Lesser General Public License for more details.
  80820. You should have received a copy of the GNU Lesser General Public
  80821. - License along with the GNU C Library; if not, write to the Free
  80822. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80823. - 02111-1307 USA. */
  80824. + License along with the GNU C Library; if not, see
  80825. + <http://www.gnu.org/licenses/>. */
  80826. #include "fenv_libc.h"
  80827. #include <syscall.h>
  80828. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fegetenv.c uClibc-git/libm/powerpc/e500/fpu/fegetenv.c
  80829. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fegetenv.c 2012-05-15 09:20:09.000000000 +0200
  80830. +++ uClibc-git/libm/powerpc/e500/fpu/fegetenv.c 2014-06-02 17:40:34.794716302 +0200
  80831. @@ -14,9 +14,8 @@
  80832. Lesser General Public License for more details.
  80833. You should have received a copy of the GNU Lesser General Public
  80834. - License along with the GNU C Library; if not, write to the Free
  80835. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80836. - 02111-1307 USA. */
  80837. + License along with the GNU C Library; if not, see
  80838. + <http://www.gnu.org/licenses/>. */
  80839. #include "fenv_libc.h"
  80840. #include <syscall.h>
  80841. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fegetexcept.c uClibc-git/libm/powerpc/e500/fpu/fegetexcept.c
  80842. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fegetexcept.c 2012-05-15 09:20:09.000000000 +0200
  80843. +++ uClibc-git/libm/powerpc/e500/fpu/fegetexcept.c 2014-06-02 17:40:34.794716302 +0200
  80844. @@ -14,9 +14,8 @@
  80845. Lesser General Public License for more details.
  80846. You should have received a copy of the GNU Lesser General Public
  80847. - License along with the GNU C Library; if not, write to the Free
  80848. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80849. - 02111-1307 USA. */
  80850. + License along with the GNU C Library; if not, see
  80851. + <http://www.gnu.org/licenses/>. */
  80852. #include "fenv_libc.h"
  80853. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fegetround.c uClibc-git/libm/powerpc/e500/fpu/fegetround.c
  80854. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fegetround.c 2012-05-15 09:20:09.000000000 +0200
  80855. +++ uClibc-git/libm/powerpc/e500/fpu/fegetround.c 2014-06-02 17:40:34.794716302 +0200
  80856. @@ -14,9 +14,8 @@
  80857. Lesser General Public License for more details.
  80858. You should have received a copy of the GNU Lesser General Public
  80859. - License along with the GNU C Library; if not, write to the Free
  80860. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80861. - 02111-1307 USA. */
  80862. + License along with the GNU C Library; if not, see
  80863. + <http://www.gnu.org/licenses/>. */
  80864. #include "fenv_libc.h"
  80865. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/feholdexcpt.c uClibc-git/libm/powerpc/e500/fpu/feholdexcpt.c
  80866. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/feholdexcpt.c 2012-05-15 09:20:09.000000000 +0200
  80867. +++ uClibc-git/libm/powerpc/e500/fpu/feholdexcpt.c 2014-06-02 17:40:34.794716302 +0200
  80868. @@ -14,9 +14,8 @@
  80869. Lesser General Public License for more details.
  80870. You should have received a copy of the GNU Lesser General Public
  80871. - License along with the GNU C Library; if not, write to the Free
  80872. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80873. - 02111-1307 USA. */
  80874. + License along with the GNU C Library; if not, see
  80875. + <http://www.gnu.org/licenses/>. */
  80876. #include "fenv_libc.h"
  80877. #include <syscall.h>
  80878. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fe_nomask.c uClibc-git/libm/powerpc/e500/fpu/fe_nomask.c
  80879. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fe_nomask.c 2012-05-15 09:20:09.000000000 +0200
  80880. +++ uClibc-git/libm/powerpc/e500/fpu/fe_nomask.c 2014-06-02 17:40:34.794716302 +0200
  80881. @@ -13,9 +13,8 @@
  80882. Lesser General Public License for more details.
  80883. You should have received a copy of the GNU Lesser General Public
  80884. - License along with the GNU C Library; if not, write to the Free
  80885. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80886. - 02111-1307 USA. */
  80887. + License along with the GNU C Library; if not, see
  80888. + <http://www.gnu.org/licenses/>. */
  80889. #include <fenv.h>
  80890. #include <errno.h>
  80891. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fenv_const.c uClibc-git/libm/powerpc/e500/fpu/fenv_const.c
  80892. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fenv_const.c 2012-05-15 09:20:09.000000000 +0200
  80893. +++ uClibc-git/libm/powerpc/e500/fpu/fenv_const.c 2014-06-02 17:40:34.794716302 +0200
  80894. @@ -14,9 +14,8 @@
  80895. Lesser General Public License for more details.
  80896. You should have received a copy of the GNU Lesser General Public
  80897. - License along with the GNU C Library; if not, write to the Free
  80898. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80899. - 02111-1307 USA. */
  80900. + License along with the GNU C Library; if not, see
  80901. + <http://www.gnu.org/licenses/>. */
  80902. /* If the default argument is used we use this value. */
  80903. const unsigned long long __fe_dfl_env __attribute__ ((aligned (8))) =
  80904. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fenv_libc.h uClibc-git/libm/powerpc/e500/fpu/fenv_libc.h
  80905. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fenv_libc.h 2012-05-15 09:20:09.000000000 +0200
  80906. +++ uClibc-git/libm/powerpc/e500/fpu/fenv_libc.h 2014-06-02 17:40:34.794716302 +0200
  80907. @@ -14,9 +14,8 @@
  80908. Lesser General Public License for more details.
  80909. You should have received a copy of the GNU Lesser General Public
  80910. - License along with the GNU C Library; if not, write to the Free
  80911. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80912. - 02111-1307 USA. */
  80913. + License along with the GNU C Library; if not, see
  80914. + <http://www.gnu.org/licenses/>. */
  80915. #ifndef _FENV_LIBC_H
  80916. #define _FENV_LIBC_H 1
  80917. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fesetenv.c uClibc-git/libm/powerpc/e500/fpu/fesetenv.c
  80918. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fesetenv.c 2012-05-15 09:20:09.000000000 +0200
  80919. +++ uClibc-git/libm/powerpc/e500/fpu/fesetenv.c 2014-06-02 17:40:34.794716302 +0200
  80920. @@ -13,9 +13,8 @@
  80921. Lesser General Public License for more details.
  80922. You should have received a copy of the GNU Lesser General Public
  80923. - License along with the GNU C Library; if not, write to the Free
  80924. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80925. - 02111-1307 USA. */
  80926. + License along with the GNU C Library; if not, see
  80927. + <http://www.gnu.org/licenses/>. */
  80928. #include "fenv_libc.h"
  80929. #include <syscall.h>
  80930. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fesetround.c uClibc-git/libm/powerpc/e500/fpu/fesetround.c
  80931. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fesetround.c 2012-05-15 09:20:09.000000000 +0200
  80932. +++ uClibc-git/libm/powerpc/e500/fpu/fesetround.c 2014-06-02 17:40:34.794716302 +0200
  80933. @@ -14,9 +14,8 @@
  80934. Lesser General Public License for more details.
  80935. You should have received a copy of the GNU Lesser General Public
  80936. - License along with the GNU C Library; if not, write to the Free
  80937. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80938. - 02111-1307 USA. */
  80939. + License along with the GNU C Library; if not, see
  80940. + <http://www.gnu.org/licenses/>. */
  80941. #include "fenv_libc.h"
  80942. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/feupdateenv.c uClibc-git/libm/powerpc/e500/fpu/feupdateenv.c
  80943. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/feupdateenv.c 2012-05-15 09:20:09.000000000 +0200
  80944. +++ uClibc-git/libm/powerpc/e500/fpu/feupdateenv.c 2014-06-02 17:40:34.794716302 +0200
  80945. @@ -14,9 +14,8 @@
  80946. Lesser General Public License for more details.
  80947. You should have received a copy of the GNU Lesser General Public
  80948. - License along with the GNU C Library; if not, write to the Free
  80949. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80950. - 02111-1307 USA. */
  80951. + License along with the GNU C Library; if not, see
  80952. + <http://www.gnu.org/licenses/>. */
  80953. #include "fenv_libc.h"
  80954. #include <syscall.h>
  80955. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fgetexcptflg.c uClibc-git/libm/powerpc/e500/fpu/fgetexcptflg.c
  80956. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fgetexcptflg.c 2012-05-15 09:20:09.000000000 +0200
  80957. +++ uClibc-git/libm/powerpc/e500/fpu/fgetexcptflg.c 2014-06-02 17:40:34.794716302 +0200
  80958. @@ -14,9 +14,8 @@
  80959. Lesser General Public License for more details.
  80960. You should have received a copy of the GNU Lesser General Public
  80961. - License along with the GNU C Library; if not, write to the Free
  80962. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80963. - 02111-1307 USA. */
  80964. + License along with the GNU C Library; if not, see
  80965. + <http://www.gnu.org/licenses/>. */
  80966. #include "fenv_libc.h"
  80967. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fraiseexcpt.c uClibc-git/libm/powerpc/e500/fpu/fraiseexcpt.c
  80968. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fraiseexcpt.c 2012-05-15 09:20:09.000000000 +0200
  80969. +++ uClibc-git/libm/powerpc/e500/fpu/fraiseexcpt.c 2014-06-02 17:40:34.794716302 +0200
  80970. @@ -14,9 +14,8 @@
  80971. Lesser General Public License for more details.
  80972. You should have received a copy of the GNU Lesser General Public
  80973. - License along with the GNU C Library; if not, write to the Free
  80974. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80975. - 02111-1307 USA. */
  80976. + License along with the GNU C Library; if not, see
  80977. + <http://www.gnu.org/licenses/>. */
  80978. #include "fenv_libc.h"
  80979. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fsetexcptflg.c uClibc-git/libm/powerpc/e500/fpu/fsetexcptflg.c
  80980. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fsetexcptflg.c 2012-05-15 09:20:09.000000000 +0200
  80981. +++ uClibc-git/libm/powerpc/e500/fpu/fsetexcptflg.c 2014-06-02 17:40:34.794716302 +0200
  80982. @@ -13,9 +13,8 @@
  80983. Lesser General Public License for more details.
  80984. You should have received a copy of the GNU Lesser General Public
  80985. - License along with the GNU C Library; if not, write to the Free
  80986. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80987. - 02111-1307 USA. */
  80988. + License along with the GNU C Library; if not, see
  80989. + <http://www.gnu.org/licenses/>. */
  80990. #include "fenv_libc.h"
  80991. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/ftestexcept.c uClibc-git/libm/powerpc/e500/fpu/ftestexcept.c
  80992. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/ftestexcept.c 2012-05-15 09:20:09.000000000 +0200
  80993. +++ uClibc-git/libm/powerpc/e500/fpu/ftestexcept.c 2014-06-02 17:40:34.794716302 +0200
  80994. @@ -14,9 +14,8 @@
  80995. Lesser General Public License for more details.
  80996. You should have received a copy of the GNU Lesser General Public
  80997. - License along with the GNU C Library; if not, write to the Free
  80998. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80999. - 02111-1307 USA. */
  81000. + License along with the GNU C Library; if not, see
  81001. + <http://www.gnu.org/licenses/>. */
  81002. #include "fenv_libc.h"
  81003. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/spe-raise.c uClibc-git/libm/powerpc/e500/spe-raise.c
  81004. --- uClibc-0.9.33.2/libm/powerpc/e500/spe-raise.c 2012-05-15 09:20:09.000000000 +0200
  81005. +++ uClibc-git/libm/powerpc/e500/spe-raise.c 2014-06-02 17:40:34.794716302 +0200
  81006. @@ -13,9 +13,8 @@
  81007. Lesser General Public License for more details.
  81008. You should have received a copy of the GNU Lesser General Public
  81009. - License along with the GNU C Library; if not, write to the Free
  81010. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81011. - 02111-1307 USA. */
  81012. + License along with the GNU C Library; if not, see
  81013. + <http://www.gnu.org/licenses/>. */
  81014. #include "fpu/fenv_libc.h"
  81015. diff -Nur uClibc-0.9.33.2/libm/s_ceil.c uClibc-git/libm/s_ceil.c
  81016. --- uClibc-0.9.33.2/libm/s_ceil.c 2012-05-15 09:20:09.000000000 +0200
  81017. +++ uClibc-git/libm/s_ceil.c 2014-06-02 17:40:34.794716302 +0200
  81018. @@ -28,35 +28,35 @@
  81019. double ceil(double x)
  81020. {
  81021. - int32_t i0,i1,j0;
  81022. + int32_t i0,i1,_j0;
  81023. u_int32_t i,j;
  81024. EXTRACT_WORDS(i0,i1,x);
  81025. - j0 = ((i0>>20)&0x7ff)-0x3ff;
  81026. - if(j0<20) {
  81027. - if(j0<0) { /* raise inexact if x != 0 */
  81028. + _j0 = ((i0>>20)&0x7ff)-0x3ff;
  81029. + if(_j0<20) {
  81030. + if(_j0<0) { /* raise inexact if x != 0 */
  81031. if(huge+x>0.0) {/* return 0*sign(x) if |x|<1 */
  81032. if(i0<0) {i0=0x80000000;i1=0;}
  81033. else if((i0|i1)!=0) { i0=0x3ff00000;i1=0;}
  81034. }
  81035. } else {
  81036. - i = (0x000fffff)>>j0;
  81037. + i = (0x000fffff)>>_j0;
  81038. if(((i0&i)|i1)==0) return x; /* x is integral */
  81039. if(huge+x>0.0) { /* raise inexact flag */
  81040. - if(i0>0) i0 += (0x00100000)>>j0;
  81041. + if(i0>0) i0 += (0x00100000)>>_j0;
  81042. i0 &= (~i); i1=0;
  81043. }
  81044. }
  81045. - } else if (j0>51) {
  81046. - if(j0==0x400) return x+x; /* inf or NaN */
  81047. + } else if (_j0>51) {
  81048. + if(_j0==0x400) return x+x; /* inf or NaN */
  81049. else return x; /* x is integral */
  81050. } else {
  81051. - i = ((u_int32_t)(0xffffffff))>>(j0-20);
  81052. + i = ((u_int32_t)(0xffffffff))>>(_j0-20);
  81053. if((i1&i)==0) return x; /* x is integral */
  81054. if(huge+x>0.0) { /* raise inexact flag */
  81055. if(i0>0) {
  81056. - if(j0==20) i0+=1;
  81057. + if(_j0==20) i0+=1;
  81058. else {
  81059. - j = i1 + (1<<(52-j0));
  81060. + j = i1 + (1<<(52-_j0));
  81061. if(j<i1) i0+=1; /* got a carry */
  81062. i1 = j;
  81063. }
  81064. diff -Nur uClibc-0.9.33.2/libm/s_floor.c uClibc-git/libm/s_floor.c
  81065. --- uClibc-0.9.33.2/libm/s_floor.c 2012-05-15 09:20:09.000000000 +0200
  81066. +++ uClibc-git/libm/s_floor.c 2014-06-02 17:40:34.818716434 +0200
  81067. @@ -28,36 +28,36 @@
  81068. double floor(double x)
  81069. {
  81070. - int32_t i0,i1,j0;
  81071. + int32_t i0,i1,_j0;
  81072. u_int32_t i,j;
  81073. EXTRACT_WORDS(i0,i1,x);
  81074. - j0 = ((i0>>20)&0x7ff)-0x3ff;
  81075. - if(j0<20) {
  81076. - if(j0<0) { /* raise inexact if x != 0 */
  81077. + _j0 = ((i0>>20)&0x7ff)-0x3ff;
  81078. + if(_j0<20) {
  81079. + if(_j0<0) { /* raise inexact if x != 0 */
  81080. if(huge+x>0.0) {/* return 0*sign(x) if |x|<1 */
  81081. if(i0>=0) {i0=i1=0;}
  81082. else if(((i0&0x7fffffff)|i1)!=0)
  81083. { i0=0xbff00000;i1=0;}
  81084. }
  81085. } else {
  81086. - i = (0x000fffff)>>j0;
  81087. + i = (0x000fffff)>>_j0;
  81088. if(((i0&i)|i1)==0) return x; /* x is integral */
  81089. if(huge+x>0.0) { /* raise inexact flag */
  81090. - if(i0<0) i0 += (0x00100000)>>j0;
  81091. + if(i0<0) i0 += (0x00100000)>>_j0;
  81092. i0 &= (~i); i1=0;
  81093. }
  81094. }
  81095. - } else if (j0>51) {
  81096. - if(j0==0x400) return x+x; /* inf or NaN */
  81097. + } else if (_j0>51) {
  81098. + if(_j0==0x400) return x+x; /* inf or NaN */
  81099. else return x; /* x is integral */
  81100. } else {
  81101. - i = ((u_int32_t)(0xffffffff))>>(j0-20);
  81102. + i = ((u_int32_t)(0xffffffff))>>(_j0-20);
  81103. if((i1&i)==0) return x; /* x is integral */
  81104. if(huge+x>0.0) { /* raise inexact flag */
  81105. if(i0<0) {
  81106. - if(j0==20) i0+=1;
  81107. + if(_j0==20) i0+=1;
  81108. else {
  81109. - j = i1+(1<<(52-j0));
  81110. + j = i1+(1<<(52-_j0));
  81111. if(j<i1) i0 +=1 ; /* got a carry */
  81112. i1=j;
  81113. }
  81114. diff -Nur uClibc-0.9.33.2/libm/s_fma.c uClibc-git/libm/s_fma.c
  81115. --- uClibc-0.9.33.2/libm/s_fma.c 2012-05-15 09:20:09.000000000 +0200
  81116. +++ uClibc-git/libm/s_fma.c 2014-06-02 17:40:34.818716434 +0200
  81117. @@ -14,9 +14,8 @@
  81118. Lesser General Public License for more details.
  81119. You should have received a copy of the GNU Lesser General Public
  81120. - License along with the GNU C Library; if not, write to the Free
  81121. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81122. - 02111-1307 USA. */
  81123. + License along with the GNU C Library; if not, see
  81124. + <http://www.gnu.org/licenses/>. */
  81125. #include <math.h>
  81126. diff -Nur uClibc-0.9.33.2/libm/s_fpclassify.c uClibc-git/libm/s_fpclassify.c
  81127. --- uClibc-0.9.33.2/libm/s_fpclassify.c 2012-05-15 09:20:09.000000000 +0200
  81128. +++ uClibc-git/libm/s_fpclassify.c 2014-06-02 17:40:34.818716434 +0200
  81129. @@ -14,9 +14,8 @@
  81130. Lesser General Public License for more details.
  81131. You should have received a copy of the GNU Lesser General Public
  81132. - License along with the GNU C Library; if not, write to the Free
  81133. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81134. - 02111-1307 USA. */
  81135. + License along with the GNU C Library; if not, see
  81136. + <http://www.gnu.org/licenses/>. */
  81137. #include <math.h>
  81138. diff -Nur uClibc-0.9.33.2/libm/s_fpclassifyf.c uClibc-git/libm/s_fpclassifyf.c
  81139. --- uClibc-0.9.33.2/libm/s_fpclassifyf.c 2012-05-15 09:20:09.000000000 +0200
  81140. +++ uClibc-git/libm/s_fpclassifyf.c 2014-06-02 17:40:34.818716434 +0200
  81141. @@ -14,9 +14,8 @@
  81142. Lesser General Public License for more details.
  81143. You should have received a copy of the GNU Lesser General Public
  81144. - License along with the GNU C Library; if not, write to the Free
  81145. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81146. - 02111-1307 USA. */
  81147. + License along with the GNU C Library; if not, see
  81148. + <http://www.gnu.org/licenses/>. */
  81149. #include <math.h>
  81150. #include "math_private.h"
  81151. diff -Nur uClibc-0.9.33.2/libm/s_llrint.c uClibc-git/libm/s_llrint.c
  81152. --- uClibc-0.9.33.2/libm/s_llrint.c 2012-05-15 09:20:09.000000000 +0200
  81153. +++ uClibc-git/libm/s_llrint.c 2014-06-02 17:40:34.822716457 +0200
  81154. @@ -15,9 +15,8 @@
  81155. Lesser General Public License for more details.
  81156. You should have received a copy of the GNU Lesser General Public
  81157. - License along with the GNU C Library; if not, write to the Free
  81158. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81159. - 02111-1307 USA. */
  81160. + License along with the GNU C Library; if not, see
  81161. + <http://www.gnu.org/licenses/>. */
  81162. #include <features.h>
  81163. /* Prevent math.h from defining a colliding inline */
  81164. @@ -34,7 +33,7 @@
  81165. long long int
  81166. llrint (double x)
  81167. {
  81168. - int32_t j0;
  81169. + int32_t _j0;
  81170. u_int32_t i1, i0;
  81171. long long int result;
  81172. volatile double w;
  81173. @@ -42,39 +41,39 @@
  81174. int sx;
  81175. EXTRACT_WORDS (i0, i1, x);
  81176. - j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81177. + _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81178. sx = i0 >> 31;
  81179. i0 &= 0xfffff;
  81180. i0 |= 0x100000;
  81181. - if (j0 < 20)
  81182. + if (_j0 < 20)
  81183. {
  81184. w = two52[sx] + x;
  81185. t = w - two52[sx];
  81186. EXTRACT_WORDS (i0, i1, t);
  81187. - j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81188. + _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81189. i0 &= 0xfffff;
  81190. i0 |= 0x100000;
  81191. - result = (j0 < 0 ? 0 : i0 >> (20 - j0));
  81192. + result = (_j0 < 0 ? 0 : i0 >> (20 - _j0));
  81193. }
  81194. - else if (j0 < (int32_t) (8 * sizeof (long long int)) - 1)
  81195. + else if (_j0 < (int32_t) (8 * sizeof (long long int)) - 1)
  81196. {
  81197. - if (j0 >= 52)
  81198. - result = (((long long int) i0 << 32) | i1) << (j0 - 52);
  81199. + if (_j0 >= 52)
  81200. + result = (((long long int) i0 << 32) | i1) << (_j0 - 52);
  81201. else
  81202. {
  81203. w = two52[sx] + x;
  81204. t = w - two52[sx];
  81205. EXTRACT_WORDS (i0, i1, t);
  81206. - j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81207. + _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81208. i0 &= 0xfffff;
  81209. i0 |= 0x100000;
  81210. - if (j0 == 20)
  81211. + if (_j0 == 20)
  81212. result = (long long int) i0;
  81213. else
  81214. - result = ((long long int) i0 << (j0 - 20)) | (i1 >> (52 - j0));
  81215. + result = ((long long int) i0 << (_j0 - 20)) | (i1 >> (52 - _j0));
  81216. }
  81217. }
  81218. else
  81219. diff -Nur uClibc-0.9.33.2/libm/s_llround.c uClibc-git/libm/s_llround.c
  81220. --- uClibc-0.9.33.2/libm/s_llround.c 2012-05-15 09:20:09.000000000 +0200
  81221. +++ uClibc-git/libm/s_llround.c 2014-06-02 17:40:34.822716457 +0200
  81222. @@ -14,9 +14,8 @@
  81223. Lesser General Public License for more details.
  81224. You should have received a copy of the GNU Lesser General Public
  81225. - License along with the GNU C Library; if not, write to the Free
  81226. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81227. - 02111-1307 USA. */
  81228. + License along with the GNU C Library; if not, see
  81229. + <http://www.gnu.org/licenses/>. */
  81230. #include <math.h>
  81231. #include "math_private.h"
  81232. @@ -24,42 +23,42 @@
  81233. long long int
  81234. llround (double x)
  81235. {
  81236. - int32_t j0;
  81237. + int32_t _j0;
  81238. u_int32_t i1, i0;
  81239. long long int result;
  81240. int sign;
  81241. EXTRACT_WORDS (i0, i1, x);
  81242. - j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81243. + _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81244. sign = (i0 & 0x80000000) != 0 ? -1 : 1;
  81245. i0 &= 0xfffff;
  81246. i0 |= 0x100000;
  81247. - if (j0 < 20)
  81248. + if (_j0 < 20)
  81249. {
  81250. - if (j0 < 0)
  81251. - return j0 < -1 ? 0 : sign;
  81252. + if (_j0 < 0)
  81253. + return _j0 < -1 ? 0 : sign;
  81254. else
  81255. {
  81256. - i0 += 0x80000 >> j0;
  81257. + i0 += 0x80000 >> _j0;
  81258. - result = i0 >> (20 - j0);
  81259. + result = i0 >> (20 - _j0);
  81260. }
  81261. }
  81262. - else if (j0 < (int32_t) (8 * sizeof (long long int)) - 1)
  81263. + else if (_j0 < (int32_t) (8 * sizeof (long long int)) - 1)
  81264. {
  81265. - if (j0 >= 52)
  81266. - result = (((long long int) i0 << 32) | i1) << (j0 - 52);
  81267. + if (_j0 >= 52)
  81268. + result = (((long long int) i0 << 32) | i1) << (_j0 - 52);
  81269. else
  81270. {
  81271. - u_int32_t j = i1 + (0x80000000 >> (j0 - 20));
  81272. + u_int32_t j = i1 + (0x80000000 >> (_j0 - 20));
  81273. if (j < i1)
  81274. ++i0;
  81275. - if (j0 == 20)
  81276. + if (_j0 == 20)
  81277. result = (long long int) i0;
  81278. else
  81279. - result = ((long long int) i0 << (j0 - 20)) | (j >> (52 - j0));
  81280. + result = ((long long int) i0 << (_j0 - 20)) | (j >> (52 - _j0));
  81281. }
  81282. }
  81283. else
  81284. diff -Nur uClibc-0.9.33.2/libm/s_lrint.c uClibc-git/libm/s_lrint.c
  81285. --- uClibc-0.9.33.2/libm/s_lrint.c 2012-05-15 09:20:09.000000000 +0200
  81286. +++ uClibc-git/libm/s_lrint.c 2014-06-02 17:40:34.822716457 +0200
  81287. @@ -15,9 +15,8 @@
  81288. Lesser General Public License for more details.
  81289. You should have received a copy of the GNU Lesser General Public
  81290. - License along with the GNU C Library; if not, write to the Free
  81291. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81292. - 02111-1307 USA. */
  81293. + License along with the GNU C Library; if not, see
  81294. + <http://www.gnu.org/licenses/>. */
  81295. #include <features.h>
  81296. /* Prevent math.h from defining a colliding inline */
  81297. @@ -35,7 +34,7 @@
  81298. long int
  81299. lrint (double x)
  81300. {
  81301. - int32_t j0;
  81302. + int32_t _j0;
  81303. u_int32_t i0,i1;
  81304. volatile double w;
  81305. double t;
  81306. @@ -43,44 +42,44 @@
  81307. int sx;
  81308. EXTRACT_WORDS (i0, i1, x);
  81309. - j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81310. + _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81311. sx = i0 >> 31;
  81312. i0 &= 0xfffff;
  81313. i0 |= 0x100000;
  81314. - if (j0 < 20)
  81315. + if (_j0 < 20)
  81316. {
  81317. - if (j0 < -1)
  81318. + if (_j0 < -1)
  81319. return 0;
  81320. else
  81321. {
  81322. w = two52[sx] + x;
  81323. t = w - two52[sx];
  81324. EXTRACT_WORDS (i0, i1, t);
  81325. - j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81326. + _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81327. i0 &= 0xfffff;
  81328. i0 |= 0x100000;
  81329. - result = i0 >> (20 - j0);
  81330. + result = i0 >> (20 - _j0);
  81331. }
  81332. }
  81333. - else if (j0 < (int32_t) (8 * sizeof (long int)) - 1)
  81334. + else if (_j0 < (int32_t) (8 * sizeof (long int)) - 1)
  81335. {
  81336. - if (j0 >= 52)
  81337. - result = ((long int) i0 << (j0 - 20)) | (i1 << (j0 - 52));
  81338. + if (_j0 >= 52)
  81339. + result = ((long int) i0 << (_j0 - 20)) | (i1 << (_j0 - 52));
  81340. else
  81341. {
  81342. w = two52[sx] + x;
  81343. t = w - two52[sx];
  81344. EXTRACT_WORDS (i0, i1, t);
  81345. - j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81346. + _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81347. i0 &= 0xfffff;
  81348. i0 |= 0x100000;
  81349. - if (j0 == 20)
  81350. + if (_j0 == 20)
  81351. result = (long int) i0;
  81352. else
  81353. - result = ((long int) i0 << (j0 - 20)) | (i1 >> (52 - j0));
  81354. + result = ((long int) i0 << (_j0 - 20)) | (i1 >> (52 - _j0));
  81355. }
  81356. }
  81357. else
  81358. diff -Nur uClibc-0.9.33.2/libm/s_lround.c uClibc-git/libm/s_lround.c
  81359. --- uClibc-0.9.33.2/libm/s_lround.c 2012-05-15 09:20:09.000000000 +0200
  81360. +++ uClibc-git/libm/s_lround.c 2014-06-02 17:40:34.822716457 +0200
  81361. @@ -14,9 +14,8 @@
  81362. Lesser General Public License for more details.
  81363. You should have received a copy of the GNU Lesser General Public
  81364. - License along with the GNU C Library; if not, write to the Free
  81365. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81366. - 02111-1307 USA. */
  81367. + License along with the GNU C Library; if not, see
  81368. + <http://www.gnu.org/licenses/>. */
  81369. #include <math.h>
  81370. #include "math_private.h"
  81371. @@ -24,42 +23,42 @@
  81372. long int
  81373. lround (double x)
  81374. {
  81375. - int32_t j0;
  81376. + int32_t _j0;
  81377. u_int32_t i1, i0;
  81378. long int result;
  81379. int sign;
  81380. EXTRACT_WORDS (i0, i1, x);
  81381. - j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81382. + _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81383. sign = (i0 & 0x80000000) != 0 ? -1 : 1;
  81384. i0 &= 0xfffff;
  81385. i0 |= 0x100000;
  81386. - if (j0 < 20)
  81387. + if (_j0 < 20)
  81388. {
  81389. - if (j0 < 0)
  81390. - return j0 < -1 ? 0 : sign;
  81391. + if (_j0 < 0)
  81392. + return _j0 < -1 ? 0 : sign;
  81393. else
  81394. {
  81395. - i0 += 0x80000 >> j0;
  81396. + i0 += 0x80000 >> _j0;
  81397. - result = i0 >> (20 - j0);
  81398. + result = i0 >> (20 - _j0);
  81399. }
  81400. }
  81401. - else if (j0 < (int32_t) (8 * sizeof (long int)) - 1)
  81402. + else if (_j0 < (int32_t) (8 * sizeof (long int)) - 1)
  81403. {
  81404. - if (j0 >= 52)
  81405. - result = ((long int) i0 << (j0 - 20)) | (i1 << (j0 - 52));
  81406. + if (_j0 >= 52)
  81407. + result = ((long int) i0 << (_j0 - 20)) | (i1 << (_j0 - 52));
  81408. else
  81409. {
  81410. - u_int32_t j = i1 + (0x80000000 >> (j0 - 20));
  81411. + u_int32_t j = i1 + (0x80000000 >> (_j0 - 20));
  81412. if (j < i1)
  81413. ++i0;
  81414. - if (j0 == 20)
  81415. + if (_j0 == 20)
  81416. result = (long int) i0;
  81417. else
  81418. - result = ((long int) i0 << (j0 - 20)) | (j >> (52 - j0));
  81419. + result = ((long int) i0 << (_j0 - 20)) | (j >> (52 - _j0));
  81420. }
  81421. }
  81422. else
  81423. diff -Nur uClibc-0.9.33.2/libm/s_modf.c uClibc-git/libm/s_modf.c
  81424. --- uClibc-0.9.33.2/libm/s_modf.c 2012-05-15 09:20:09.000000000 +0200
  81425. +++ uClibc-git/libm/s_modf.c 2014-06-02 17:40:34.822716457 +0200
  81426. @@ -26,16 +26,16 @@
  81427. double modf(double x, double *iptr)
  81428. {
  81429. - int32_t i0,i1,j0;
  81430. + int32_t i0,i1,_j0;
  81431. u_int32_t i;
  81432. EXTRACT_WORDS(i0,i1,x);
  81433. - j0 = ((i0>>20)&0x7ff)-0x3ff; /* exponent of x */
  81434. - if(j0<20) { /* integer part in high x */
  81435. - if(j0<0) { /* |x|<1 */
  81436. + _j0 = ((i0>>20)&0x7ff)-0x3ff; /* exponent of x */
  81437. + if(_j0<20) { /* integer part in high x */
  81438. + if(_j0<0) { /* |x|<1 */
  81439. INSERT_WORDS(*iptr,i0&0x80000000,0); /* *iptr = +-0 */
  81440. return x;
  81441. } else {
  81442. - i = (0x000fffff)>>j0;
  81443. + i = (0x000fffff)>>_j0;
  81444. if(((i0&i)|i1)==0) { /* x is integral */
  81445. *iptr = x;
  81446. INSERT_WORDS(x,i0&0x80000000,0); /* return +-0 */
  81447. @@ -45,15 +45,15 @@
  81448. return x - *iptr;
  81449. }
  81450. }
  81451. - } else if (j0>51) { /* no fraction part */
  81452. + } else if (_j0>51) { /* no fraction part */
  81453. *iptr = x*one;
  81454. /* We must handle NaNs separately. */
  81455. - if (j0 == 0x400 && ((i0 & 0xfffff) | i1))
  81456. + if (_j0 == 0x400 && ((i0 & 0xfffff) | i1))
  81457. return x*one;
  81458. INSERT_WORDS(x,i0&0x80000000,0); /* return +-0 */
  81459. return x;
  81460. } else { /* fraction part in low x */
  81461. - i = ((u_int32_t)(0xffffffff))>>(j0-20);
  81462. + i = ((u_int32_t)(0xffffffff))>>(_j0-20);
  81463. if((i1&i)==0) { /* x is integral */
  81464. *iptr = x;
  81465. INSERT_WORDS(x,i0&0x80000000,0); /* return +-0 */
  81466. diff -Nur uClibc-0.9.33.2/libm/s_rint.c uClibc-git/libm/s_rint.c
  81467. --- uClibc-0.9.33.2/libm/s_rint.c 2012-05-15 09:20:09.000000000 +0200
  81468. +++ uClibc-git/libm/s_rint.c 2014-06-02 17:40:34.842716567 +0200
  81469. @@ -30,7 +30,7 @@
  81470. double rint(double x)
  81471. {
  81472. - int32_t i0, j0, sx;
  81473. + int32_t i0, _j0, sx;
  81474. u_int32_t i,i1;
  81475. double t;
  81476. /* We use w = x + 2^52; t = w - 2^52; trick to round x to integer.
  81477. @@ -43,11 +43,11 @@
  81478. EXTRACT_WORDS(i0,i1,x);
  81479. /* Unbiased exponent */
  81480. - j0 = ((((u_int32_t)i0) >> 20)&0x7ff)-0x3ff;
  81481. + _j0 = ((((u_int32_t)i0) >> 20)&0x7ff)-0x3ff;
  81482. - if (j0 > 51) {
  81483. + if (_j0 > 51) {
  81484. //Why bother? Just returning x works too
  81485. - //if (j0 == 0x400) /* inf or NaN */
  81486. + //if (_j0 == 0x400) /* inf or NaN */
  81487. // return x+x;
  81488. return x; /* x is integral */
  81489. }
  81490. @@ -55,8 +55,8 @@
  81491. /* Sign */
  81492. sx = ((u_int32_t)i0) >> 31;
  81493. - if (j0<20) {
  81494. - if (j0<0) { /* |x| < 1 */
  81495. + if (_j0<20) {
  81496. + if (_j0<0) { /* |x| < 1 */
  81497. if (((i0&0x7fffffff)|i1)==0) return x;
  81498. i1 |= (i0&0x0fffff);
  81499. i0 &= 0xfffe0000;
  81500. @@ -68,19 +68,19 @@
  81501. SET_HIGH_WORD(t,(i0&0x7fffffff)|(sx<<31));
  81502. return t;
  81503. } else {
  81504. - i = (0x000fffff)>>j0;
  81505. + i = (0x000fffff)>>_j0;
  81506. if (((i0&i)|i1)==0) return x; /* x is integral */
  81507. i>>=1;
  81508. if (((i0&i)|i1)!=0) {
  81509. - if (j0==19) i1 = 0x40000000;
  81510. - else i0 = (i0&(~i))|((0x20000)>>j0);
  81511. + if (_j0==19) i1 = 0x40000000;
  81512. + else i0 = (i0&(~i))|((0x20000)>>_j0);
  81513. }
  81514. }
  81515. } else {
  81516. - i = ((u_int32_t)(0xffffffff))>>(j0-20);
  81517. + i = ((u_int32_t)(0xffffffff))>>(_j0-20);
  81518. if ((i1&i)==0) return x; /* x is integral */
  81519. i>>=1;
  81520. - if ((i1&i)!=0) i1 = (i1&(~i))|((0x40000000)>>(j0-20));
  81521. + if ((i1&i)!=0) i1 = (i1&(~i))|((0x40000000)>>(_j0-20));
  81522. }
  81523. INSERT_WORDS(x,i0,i1);
  81524. w = TWO52[sx]+x;
  81525. diff -Nur uClibc-0.9.33.2/libm/s_round.c uClibc-git/libm/s_round.c
  81526. --- uClibc-0.9.33.2/libm/s_round.c 2012-05-15 09:20:09.000000000 +0200
  81527. +++ uClibc-git/libm/s_round.c 2014-06-02 17:40:34.846716590 +0200
  81528. @@ -14,9 +14,8 @@
  81529. Lesser General Public License for more details.
  81530. You should have received a copy of the GNU Lesser General Public
  81531. - License along with the GNU C Library; if not, write to the Free
  81532. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81533. - 02111-1307 USA. */
  81534. + License along with the GNU C Library; if not, see
  81535. + <http://www.gnu.org/licenses/>. */
  81536. #include <math.h>
  81537. #include "math_private.h"
  81538. @@ -26,41 +25,41 @@
  81539. double
  81540. round (double x)
  81541. {
  81542. - int32_t i0, j0;
  81543. + int32_t i0, _j0;
  81544. u_int32_t i1;
  81545. EXTRACT_WORDS (i0, i1, x);
  81546. - j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81547. - if (j0 < 20)
  81548. + _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81549. + if (_j0 < 20)
  81550. {
  81551. - if (j0 < 0)
  81552. + if (_j0 < 0)
  81553. {
  81554. if (huge + x > 0.0)
  81555. {
  81556. i0 &= 0x80000000;
  81557. - if (j0 == -1)
  81558. + if (_j0 == -1)
  81559. i0 |= 0x3ff00000;
  81560. i1 = 0;
  81561. }
  81562. }
  81563. else
  81564. {
  81565. - u_int32_t i = 0x000fffff >> j0;
  81566. + u_int32_t i = 0x000fffff >> _j0;
  81567. if (((i0 & i) | i1) == 0)
  81568. /* X is integral. */
  81569. return x;
  81570. if (huge + x > 0.0)
  81571. {
  81572. /* Raise inexact if x != 0. */
  81573. - i0 += 0x00080000 >> j0;
  81574. + i0 += 0x00080000 >> _j0;
  81575. i0 &= ~i;
  81576. i1 = 0;
  81577. }
  81578. }
  81579. }
  81580. - else if (j0 > 51)
  81581. + else if (_j0 > 51)
  81582. {
  81583. - if (j0 == 0x400)
  81584. + if (_j0 == 0x400)
  81585. /* Inf or NaN. */
  81586. return x + x;
  81587. else
  81588. @@ -68,7 +67,7 @@
  81589. }
  81590. else
  81591. {
  81592. - u_int32_t i = 0xffffffff >> (j0 - 20);
  81593. + u_int32_t i = 0xffffffff >> (_j0 - 20);
  81594. if ((i1 & i) == 0)
  81595. /* X is integral. */
  81596. return x;
  81597. @@ -76,7 +75,7 @@
  81598. if (huge + x > 0.0)
  81599. {
  81600. /* Raise inexact if x != 0. */
  81601. - u_int32_t j = i1 + (1 << (51 - j0));
  81602. + u_int32_t j = i1 + (1 << (51 - _j0));
  81603. if (j < i1)
  81604. i0 += 1;
  81605. i1 = j;
  81606. diff -Nur uClibc-0.9.33.2/libm/s_scalbn.c uClibc-git/libm/s_scalbn.c
  81607. --- uClibc-0.9.33.2/libm/s_scalbn.c 2012-05-15 09:20:09.000000000 +0200
  81608. +++ uClibc-git/libm/s_scalbn.c 2014-06-02 17:40:34.846716590 +0200
  81609. @@ -62,12 +62,7 @@
  81610. libm_hidden_def(scalbln)
  81611. #if LONG_MAX == INT_MAX
  81612. -/* strong_alias(scalbln, scalbn) - "error: conflicting types for 'scalbn'"
  81613. - * because it tries to declare "typeof(scalbln) scalbn;"
  81614. - * which tries to give "long" parameter to scalbn.
  81615. - * Doing it by hand:
  81616. - */
  81617. -__typeof(scalbn) scalbn __attribute__((alias("scalbln")));
  81618. +strong_alias_untyped(scalbln,scalbn)
  81619. #else
  81620. double scalbn(double x, int n)
  81621. {
  81622. diff -Nur uClibc-0.9.33.2/libm/s_signbit.c uClibc-git/libm/s_signbit.c
  81623. --- uClibc-0.9.33.2/libm/s_signbit.c 2012-05-15 09:20:09.000000000 +0200
  81624. +++ uClibc-git/libm/s_signbit.c 2014-06-02 17:40:34.846716590 +0200
  81625. @@ -14,9 +14,8 @@
  81626. Lesser General Public License for more details.
  81627. You should have received a copy of the GNU Lesser General Public
  81628. - License along with the GNU C Library; if not, write to the Free
  81629. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81630. - 02111-1307 USA. */
  81631. + License along with the GNU C Library; if not, see
  81632. + <http://www.gnu.org/licenses/>. */
  81633. #include <features.h>
  81634. /* Prevent math.h from defining a colliding inline */
  81635. diff -Nur uClibc-0.9.33.2/libm/s_signbitf.c uClibc-git/libm/s_signbitf.c
  81636. --- uClibc-0.9.33.2/libm/s_signbitf.c 2012-05-15 09:20:09.000000000 +0200
  81637. +++ uClibc-git/libm/s_signbitf.c 2014-06-02 17:40:34.846716590 +0200
  81638. @@ -14,9 +14,8 @@
  81639. Lesser General Public License for more details.
  81640. You should have received a copy of the GNU Lesser General Public
  81641. - License along with the GNU C Library; if not, write to the Free
  81642. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81643. - 02111-1307 USA. */
  81644. + License along with the GNU C Library; if not, see
  81645. + <http://www.gnu.org/licenses/>. */
  81646. #include <features.h>
  81647. /* Prevent math.h from defining a colliding inline */
  81648. diff -Nur uClibc-0.9.33.2/libm/s_significand.c uClibc-git/libm/s_significand.c
  81649. --- uClibc-0.9.33.2/libm/s_significand.c 2012-05-15 09:20:09.000000000 +0200
  81650. +++ uClibc-git/libm/s_significand.c 2014-06-02 17:40:34.846716590 +0200
  81651. @@ -22,3 +22,4 @@
  81652. {
  81653. return __ieee754_scalb(x,(double) -ilogb(x));
  81654. }
  81655. +libm_hidden_def(significand)
  81656. diff -Nur uClibc-0.9.33.2/libm/s_trunc.c uClibc-git/libm/s_trunc.c
  81657. --- uClibc-0.9.33.2/libm/s_trunc.c 2012-05-15 09:20:09.000000000 +0200
  81658. +++ uClibc-git/libm/s_trunc.c 2014-06-02 17:40:34.846716590 +0200
  81659. @@ -14,9 +14,8 @@
  81660. Lesser General Public License for more details.
  81661. You should have received a copy of the GNU Lesser General Public
  81662. - License along with the GNU C Library; if not, write to the Free
  81663. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81664. - 02111-1307 USA. */
  81665. + License along with the GNU C Library; if not, see
  81666. + <http://www.gnu.org/licenses/>. */
  81667. #include <math.h>
  81668. #include "math_private.h"
  81669. @@ -24,30 +23,30 @@
  81670. double
  81671. trunc (double x)
  81672. {
  81673. - int32_t i0, j0;
  81674. + int32_t i0, _j0;
  81675. u_int32_t i1;
  81676. int sx;
  81677. EXTRACT_WORDS (i0, i1, x);
  81678. sx = i0 & 0x80000000;
  81679. - j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81680. - if (j0 < 20)
  81681. + _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81682. + if (_j0 < 20)
  81683. {
  81684. - if (j0 < 0)
  81685. + if (_j0 < 0)
  81686. /* The magnitude of the number is < 1 so the result is +-0. */
  81687. INSERT_WORDS (x, sx, 0);
  81688. else
  81689. - INSERT_WORDS (x, sx | (i0 & ~(0x000fffff >> j0)), 0);
  81690. + INSERT_WORDS (x, sx | (i0 & ~(0x000fffff >> _j0)), 0);
  81691. }
  81692. - else if (j0 > 51)
  81693. + else if (_j0 > 51)
  81694. {
  81695. - if (j0 == 0x400)
  81696. + if (_j0 == 0x400)
  81697. /* x is inf or NaN. */
  81698. return x + x;
  81699. }
  81700. else
  81701. {
  81702. - INSERT_WORDS (x, i0, i1 & ~(0xffffffffu >> (j0 - 20)));
  81703. + INSERT_WORDS (x, i0, i1 & ~(0xffffffffu >> (_j0 - 20)));
  81704. }
  81705. return x;
  81706. diff -Nur uClibc-0.9.33.2/libnsl/nsl.c uClibc-git/libnsl/nsl.c
  81707. --- uClibc-0.9.33.2/libnsl/nsl.c 2012-05-15 09:20:09.000000000 +0200
  81708. +++ uClibc-git/libnsl/nsl.c 2014-06-02 17:40:34.846716590 +0200
  81709. @@ -7,8 +7,6 @@
  81710. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  81711. */
  81712. -#include <features.h>
  81713. -
  81714. void __stub2(void);
  81715. void __stub2(void)
  81716. {
  81717. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/alloca_cutoff.c uClibc-git/libpthread/linuxthreads/alloca_cutoff.c
  81718. --- uClibc-0.9.33.2/libpthread/linuxthreads/alloca_cutoff.c 2012-05-15 09:20:09.000000000 +0200
  81719. +++ uClibc-git/libpthread/linuxthreads/alloca_cutoff.c 2014-06-02 17:40:34.970717276 +0200
  81720. @@ -13,9 +13,8 @@
  81721. Lesser General Public License for more details.
  81722. You should have received a copy of the GNU Lesser General Public
  81723. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  81724. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  81725. - Boston, MA 02111-1307, USA. */
  81726. + License along with the GNU C Library; see the file COPYING.LIB. If
  81727. + not, see <http://www.gnu.org/licenses/>. */
  81728. #include <alloca.h>
  81729. #include <stdlib.h>
  81730. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/attr.c uClibc-git/libpthread/linuxthreads/attr.c
  81731. --- uClibc-0.9.33.2/libpthread/linuxthreads/attr.c 2012-05-15 09:20:09.000000000 +0200
  81732. +++ uClibc-git/libpthread/linuxthreads/attr.c 2014-06-02 17:40:34.970717276 +0200
  81733. @@ -361,7 +361,7 @@
  81734. attr->__scope = PTHREAD_SCOPE_SYSTEM;
  81735. #ifdef _STACK_GROWS_DOWN
  81736. -# ifdef USE_TLS
  81737. +# ifdef __UCLIBC_HAS_TLS__
  81738. attr->__stacksize = descr->p_stackaddr - (char *)descr->p_guardaddr
  81739. - descr->p_guardsize;
  81740. # else
  81741. @@ -369,7 +369,7 @@
  81742. - descr->p_guardsize;
  81743. # endif
  81744. #else
  81745. -# ifdef USE_TLS
  81746. +# ifdef __UCLIBC_HAS_TLS__
  81747. attr->__stacksize = (char *)descr->p_guardaddr - descr->p_stackaddr;
  81748. # else
  81749. attr->__stacksize = (char *)descr->p_guardaddr - (char *)descr;
  81750. @@ -385,7 +385,7 @@
  81751. otherwise the range of the stack area cannot be computed. */
  81752. attr->__stacksize += attr->__guardsize;
  81753. #endif
  81754. -#ifdef USE_TLS
  81755. +#ifdef __UCLIBC_HAS_TLS__
  81756. attr->__stackaddr = descr->p_stackaddr;
  81757. #else
  81758. # ifndef _STACK_GROWS_UP
  81759. @@ -395,7 +395,7 @@
  81760. # endif
  81761. #endif
  81762. -#ifdef USE_TLS
  81763. +#ifdef __UCLIBC_HAS_TLS__
  81764. if (attr->__stackaddr == NULL)
  81765. #else
  81766. if (descr == &__pthread_initial_thread)
  81767. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/barrier.c uClibc-git/libpthread/linuxthreads/barrier.c
  81768. --- uClibc-0.9.33.2/libpthread/linuxthreads/barrier.c 2012-05-15 09:20:09.000000000 +0200
  81769. +++ uClibc-git/libpthread/linuxthreads/barrier.c 2014-06-02 17:40:34.970717276 +0200
  81770. @@ -14,9 +14,8 @@
  81771. Lesser General Public License for more details.
  81772. You should have received a copy of the GNU Lesser General Public
  81773. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  81774. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  81775. - Boston, MA 02111-1307, USA. */
  81776. + License along with the GNU C Library; see the file COPYING.LIB. If
  81777. + not, see <http://www.gnu.org/licenses/>. */
  81778. #include <errno.h>
  81779. #include "pthread.h"
  81780. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/cancel.c uClibc-git/libpthread/linuxthreads/cancel.c
  81781. --- uClibc-0.9.33.2/libpthread/linuxthreads/cancel.c 2012-05-15 09:20:09.000000000 +0200
  81782. +++ uClibc-git/libpthread/linuxthreads/cancel.c 2014-06-02 17:40:34.970717276 +0200
  81783. @@ -15,7 +15,6 @@
  81784. /* Thread cancellation */
  81785. #include <errno.h>
  81786. -#include <libc-internal.h>
  81787. #include "pthread.h"
  81788. #include "internals.h"
  81789. #include "spinlock.h"
  81790. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/.cvsignore uClibc-git/libpthread/linuxthreads/.cvsignore
  81791. --- uClibc-0.9.33.2/libpthread/linuxthreads/.cvsignore 2012-05-15 09:20:09.000000000 +0200
  81792. +++ uClibc-git/libpthread/linuxthreads/.cvsignore 1970-01-01 01:00:00.000000000 +0100
  81793. @@ -1,3 +0,0 @@
  81794. -.cvsignore
  81795. -*.os
  81796. -Makefile.in
  81797. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/descr.h uClibc-git/libpthread/linuxthreads/descr.h
  81798. --- uClibc-0.9.33.2/libpthread/linuxthreads/descr.h 2012-05-15 09:20:09.000000000 +0200
  81799. +++ uClibc-git/libpthread/linuxthreads/descr.h 2014-06-02 17:40:34.970717276 +0200
  81800. @@ -23,7 +23,7 @@
  81801. #include <stdint.h>
  81802. #include <sys/types.h>
  81803. #include <hp-timing.h>
  81804. -#ifdef USE_TLS
  81805. +#ifdef __UCLIBC_HAS_TLS__
  81806. #include <tls.h>
  81807. #endif
  81808. #include "uClibc-glue.h"
  81809. @@ -112,7 +112,7 @@
  81810. struct _pthread_descr_struct
  81811. {
  81812. -#if !defined USE_TLS || !TLS_DTV_AT_TP || INCLUDE_TLS_PADDING
  81813. +#if !defined __UCLIBC_HAS_TLS__ || !TLS_DTV_AT_TP || INCLUDE_TLS_PADDING
  81814. /* This overlaps tcbhead_t (see tls.h), as used for TLS without threads. */
  81815. union
  81816. {
  81817. @@ -157,7 +157,7 @@
  81818. char p_sigwaiting; /* true if a sigwait() is in progress */
  81819. struct pthread_start_args p_start_args; /* arguments for thread creation */
  81820. void ** p_specific[PTHREAD_KEY_1STLEVEL_SIZE]; /* thread-specific data */
  81821. -#if !(USE_TLS && HAVE___THREAD)
  81822. +#ifndef __UCLIBC_HAS_TLS__
  81823. void * p_libc_specific[_LIBC_TSD_KEY_N]; /* thread-specific data for libc */
  81824. int * p_errnop; /* pointer to used errno variable */
  81825. int p_errno; /* error returned by last system call */
  81826. @@ -185,7 +185,7 @@
  81827. #if HP_TIMING_AVAIL
  81828. hp_timing_t p_cpuclock_offset; /* Initial CPU clock for thread. */
  81829. #endif
  81830. -#ifdef USE_TLS
  81831. +#ifdef __UCLIBC_HAS_TLS__
  81832. char *p_stackaddr; /* Stack address. */
  81833. #endif
  81834. size_t p_alloca_cutoff; /* Maximum size which should be allocated
  81835. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/errno.c uClibc-git/libpthread/linuxthreads/errno.c
  81836. --- uClibc-0.9.33.2/libpthread/linuxthreads/errno.c 2012-05-15 09:20:09.000000000 +0200
  81837. +++ uClibc-git/libpthread/linuxthreads/errno.c 2014-06-02 17:40:34.970717276 +0200
  81838. @@ -20,7 +20,7 @@
  81839. #include "pthread.h"
  81840. #include "internals.h"
  81841. -#if !USE_TLS || !HAVE___THREAD
  81842. +#ifndef __UCLIBC_HAS_TLS__
  81843. /* The definition in libc is sufficient if we use TLS. */
  81844. int *
  81845. __errno_location (void)
  81846. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/events.c uClibc-git/libpthread/linuxthreads/events.c
  81847. --- uClibc-0.9.33.2/libpthread/linuxthreads/events.c 2012-05-15 09:20:09.000000000 +0200
  81848. +++ uClibc-git/libpthread/linuxthreads/events.c 2014-06-02 17:40:34.982717343 +0200
  81849. @@ -13,9 +13,8 @@
  81850. Lesser General Public License for more details.
  81851. You should have received a copy of the GNU Lesser General Public
  81852. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  81853. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  81854. - Boston, MA 02111-1307, USA. */
  81855. + License along with the GNU C Library; see the file COPYING.LIB. If
  81856. + not, see <http://www.gnu.org/licenses/>. */
  81857. /* The functions contained here do nothing, they just return. */
  81858. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/forward.c uClibc-git/libpthread/linuxthreads/forward.c
  81859. --- uClibc-0.9.33.2/libpthread/linuxthreads/forward.c 2012-05-15 09:20:09.000000000 +0200
  81860. +++ uClibc-git/libpthread/linuxthreads/forward.c 2014-06-02 17:40:34.982717343 +0200
  81861. @@ -13,9 +13,8 @@
  81862. Lesser General Public License for more details.
  81863. You should have received a copy of the GNU Lesser General Public
  81864. - License along with the GNU C Library; if not, write to the Free
  81865. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81866. - 02111-1307 USA. */
  81867. + License along with the GNU C Library; if not, see
  81868. + <http://www.gnu.org/licenses/>. */
  81869. #include <features.h>
  81870. #include <stdlib.h>
  81871. @@ -26,7 +25,7 @@
  81872. #include "internals.h"
  81873. /* Pointers to the libc functions. */
  81874. -struct pthread_functions __libc_pthread_functions attribute_hidden;
  81875. +struct pthread_functions __libc_pthread_functions;
  81876. # define FORWARD2(name, rettype, decl, params, defaction) \
  81877. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/internals.h uClibc-git/libpthread/linuxthreads/internals.h
  81878. --- uClibc-0.9.33.2/libpthread/linuxthreads/internals.h 2012-05-15 09:20:09.000000000 +0200
  81879. +++ uClibc-git/libpthread/linuxthreads/internals.h 2014-06-02 17:40:34.982717343 +0200
  81880. @@ -30,7 +30,7 @@
  81881. #include <bits/sigcontextinfo.h>
  81882. #include <bits/pthreadtypes.h>
  81883. -#ifdef USE_TLS
  81884. +#ifdef __UCLIBC_HAS_TLS__
  81885. #include <tls.h>
  81886. #endif
  81887. #include "descr.h"
  81888. @@ -200,19 +200,17 @@
  81889. /* The page size we can get from the system. This should likely not be
  81890. changed by the machine file but, you never know. */
  81891. -#ifndef PAGE_SIZE
  81892. -#define PAGE_SIZE (sysconf (_SC_PAGE_SIZE))
  81893. -#endif
  81894. +#define __PAGE_SIZE (sysconf (_SC_PAGESIZE))
  81895. -/* The initial size of the thread stack. Must be a multiple of PAGE_SIZE. */
  81896. +/* The initial size of the thread stack. Must be a multiple of __PAGE_SIZE. */
  81897. #ifndef INITIAL_STACK_SIZE
  81898. -#define INITIAL_STACK_SIZE (4 * PAGE_SIZE)
  81899. +#define INITIAL_STACK_SIZE (4 * __PAGE_SIZE)
  81900. #endif
  81901. /* Size of the thread manager stack. The "- 32" avoids wasting space
  81902. with some malloc() implementations. */
  81903. #ifndef THREAD_MANAGER_STACK_SIZE
  81904. -#define THREAD_MANAGER_STACK_SIZE (2 * PAGE_SIZE - 32)
  81905. +#define THREAD_MANAGER_STACK_SIZE (2 * __PAGE_SIZE - 32)
  81906. #endif
  81907. /* The base of the "array" of thread stacks. The array will grow down from
  81908. @@ -285,7 +283,7 @@
  81909. extern void __pthread_perform_cleanup (char *currentframe);
  81910. extern void __pthread_init_max_stacksize (void);
  81911. extern int __pthread_initialize_manager (void);
  81912. -extern void __pthread_message (const char * fmt, ...);
  81913. +extern void __pthread_message (const char * fmt, ...) attribute_hidden;
  81914. extern int __pthread_manager (void *reqfd);
  81915. extern int __pthread_manager_event (void *reqfd);
  81916. extern void __pthread_manager_sighandler (int sig);
  81917. @@ -347,7 +345,7 @@
  81918. int *__kind);
  81919. extern void __pthread_kill_other_threads_np (void);
  81920. extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
  81921. - __const pthread_mutexattr_t *__mutex_attr);
  81922. + const pthread_mutexattr_t *__mutex_attr);
  81923. extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
  81924. extern int __pthread_mutex_lock (pthread_mutex_t *__mutex);
  81925. extern int __pthread_mutex_trylock (pthread_mutex_t *__mutex);
  81926. @@ -393,14 +391,14 @@
  81927. extern void __pthread_sigsuspend (const sigset_t *mask) attribute_hidden;
  81928. extern int __pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
  81929. - __const struct timespec *__restrict
  81930. + const struct timespec *__restrict
  81931. __abstime);
  81932. extern int __pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
  81933. - __const struct timespec *__restrict
  81934. + const struct timespec *__restrict
  81935. __abstime);
  81936. extern int __pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr);
  81937. -extern int __pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
  81938. +extern int __pthread_barrierattr_getpshared (const pthread_barrierattr_t *
  81939. __restrict __attr,
  81940. int *__restrict __pshared);
  81941. @@ -440,10 +438,12 @@
  81942. extern void __pthread_initialize (void);
  81943. /* TSD. */
  81944. +#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__
  81945. extern int __pthread_internal_tsd_set (int key, const void * pointer);
  81946. extern void * __pthread_internal_tsd_get (int key);
  81947. extern void ** __attribute__ ((__const__))
  81948. __pthread_internal_tsd_address (int key);
  81949. +#endif
  81950. /* Sighandler wrappers. */
  81951. extern void __pthread_sighandler(int signo, SIGCONTEXT ctx);
  81952. @@ -508,8 +508,6 @@
  81953. # define LIBC_CANCEL_HANDLED() /* Nothing. */
  81954. #endif
  81955. -extern int * __libc_pthread_init (const struct pthread_functions *functions);
  81956. -
  81957. #if !defined NOT_IN_libc && !defined FLOATING_STACKS
  81958. # ifdef SHARED
  81959. # define thread_self() \
  81960. @@ -520,7 +518,7 @@
  81961. # endif
  81962. #endif
  81963. -#ifndef USE_TLS
  81964. +#ifndef __UCLIBC_HAS_TLS__
  81965. # define __manager_thread (&__pthread_manager_thread)
  81966. #else
  81967. # define __manager_thread __pthread_manager_threadp
  81968. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/libc-cancellation.c uClibc-git/libpthread/linuxthreads/libc-cancellation.c
  81969. --- uClibc-0.9.33.2/libpthread/linuxthreads/libc-cancellation.c 2012-05-15 09:20:09.000000000 +0200
  81970. +++ uClibc-git/libpthread/linuxthreads/libc-cancellation.c 2014-06-02 17:40:34.982717343 +0200
  81971. @@ -13,9 +13,8 @@
  81972. Lesser General Public License for more details.
  81973. You should have received a copy of the GNU Lesser General Public
  81974. - License along with the GNU C Library; if not, write to the Free
  81975. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81976. - 02111-1307 USA. */
  81977. + License along with the GNU C Library; if not, see
  81978. + <http://www.gnu.org/licenses/>. */
  81979. #include <errno.h>
  81980. #include <rpc/rpc.h>
  81981. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/libc_pthread_init.c uClibc-git/libpthread/linuxthreads/libc_pthread_init.c
  81982. --- uClibc-0.9.33.2/libpthread/linuxthreads/libc_pthread_init.c 2012-05-15 09:20:09.000000000 +0200
  81983. +++ uClibc-git/libpthread/linuxthreads/libc_pthread_init.c 2014-06-02 17:40:34.982717343 +0200
  81984. @@ -13,14 +13,13 @@
  81985. Lesser General Public License for more details.
  81986. You should have received a copy of the GNU Lesser General Public
  81987. - License along with the GNU C Library; if not, write to the Free
  81988. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81989. - 02111-1307 USA. */
  81990. + License along with the GNU C Library; if not, see
  81991. + <http://www.gnu.org/licenses/>. */
  81992. #include <locale.h>
  81993. #include <stdlib.h>
  81994. #include <string.h>
  81995. -#ifdef USE_TLS
  81996. +#ifdef __UCLIBC_HAS_TLS__
  81997. #include <tls.h>
  81998. #endif
  81999. #include "internals.h"
  82000. @@ -31,8 +30,7 @@
  82001. int *
  82002. -__libc_pthread_init (functions)
  82003. - const struct pthread_functions *functions;
  82004. +__libc_pthread_init(const struct pthread_functions *functions)
  82005. {
  82006. #ifdef SHARED
  82007. /* We copy the content of the variable pointed to by the FUNCTIONS
  82008. @@ -42,7 +40,7 @@
  82009. sizeof (__libc_pthread_functions));
  82010. #endif
  82011. -#if !(USE_TLS && HAVE___THREAD)
  82012. +#ifndef __UCLIBC_HAS_TLS__
  82013. /* Initialize thread-locale current locale to point to the global one.
  82014. With __thread support, the variable's initializer takes care of this. */
  82015. __uselocale (LC_GLOBAL_LOCALE);
  82016. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/lockfile.c uClibc-git/libpthread/linuxthreads/lockfile.c
  82017. --- uClibc-0.9.33.2/libpthread/linuxthreads/lockfile.c 2012-05-15 09:20:09.000000000 +0200
  82018. +++ uClibc-git/libpthread/linuxthreads/lockfile.c 2014-06-02 17:40:34.982717343 +0200
  82019. @@ -13,9 +13,8 @@
  82020. Lesser General Public License for more details.
  82021. You should have received a copy of the GNU Lesser General Public
  82022. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82023. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82024. - Boston, MA 02111-1307, USA. */
  82025. + License along with the GNU C Library; see the file COPYING.LIB. If
  82026. + not, see <http://www.gnu.org/licenses/>. */
  82027. #include <bits/libc-lock.h>
  82028. #include <stdio.h>
  82029. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/manager.c uClibc-git/libpthread/linuxthreads/manager.c
  82030. --- uClibc-0.9.33.2/libpthread/linuxthreads/manager.c 2012-05-15 09:20:09.000000000 +0200
  82031. +++ uClibc-git/libpthread/linuxthreads/manager.c 2014-06-02 17:40:34.982717343 +0200
  82032. @@ -126,7 +126,7 @@
  82033. #ifdef INIT_THREAD_SELF
  82034. INIT_THREAD_SELF(self, 1);
  82035. #endif
  82036. -#if !(USE_TLS && HAVE___THREAD)
  82037. +#ifndef __UCLIBC_HAS_TLS__
  82038. /* Set the error variable. */
  82039. self->p_errnop = &self->p_errno;
  82040. self->p_h_errnop = &self->p_h_errno;
  82041. @@ -289,7 +289,7 @@
  82042. __sched_setscheduler(THREAD_GETMEM(self, p_pid),
  82043. SCHED_OTHER, &default_params);
  82044. }
  82045. -#if !(USE_TLS && HAVE___THREAD)
  82046. +#ifndef __UCLIBC_HAS_TLS__
  82047. /* Initialize thread-locale current locale to point to the global one.
  82048. With __thread support, the variable's initializer takes care of this. */
  82049. __uselocale (LC_GLOBAL_LOCALE);
  82050. @@ -333,7 +333,7 @@
  82051. pthread_start_thread (arg);
  82052. }
  82053. -#if defined USE_TLS && !FLOATING_STACKS
  82054. +#if defined __UCLIBC_HAS_TLS__ && !FLOATING_STACKS
  82055. # error "TLS can only work with floating stacks"
  82056. #endif
  82057. @@ -351,7 +351,7 @@
  82058. char * guardaddr;
  82059. size_t stacksize, guardsize;
  82060. -#ifdef USE_TLS
  82061. +#ifdef __UCLIBC_HAS_TLS__
  82062. /* TLS cannot work with fixed thread descriptor addresses. */
  82063. assert (default_new_thread == NULL);
  82064. #endif
  82065. @@ -360,7 +360,7 @@
  82066. {
  82067. #ifdef _STACK_GROWS_UP
  82068. /* The user provided a stack. */
  82069. -# ifdef USE_TLS
  82070. +# ifdef __UCLIBC_HAS_TLS__
  82071. /* This value is not needed. */
  82072. new_thread = (pthread_descr) attr->__stackaddr;
  82073. new_thread_bottom = (char *) new_thread;
  82074. @@ -381,7 +381,7 @@
  82075. addresses, stackaddr would be the lowest address in the stack
  82076. segment, so that it is consistently close to the initial sp
  82077. value. */
  82078. -# ifdef USE_TLS
  82079. +# ifdef __UCLIBC_HAS_TLS__
  82080. new_thread = (pthread_descr) attr->__stackaddr;
  82081. # else
  82082. new_thread =
  82083. @@ -394,7 +394,7 @@
  82084. #ifndef THREAD_SELF
  82085. __pthread_nonstandard_stacks = 1;
  82086. #endif
  82087. -#ifndef USE_TLS
  82088. +#ifndef __UCLIBC_HAS_TLS__
  82089. /* Clear the thread data structure. */
  82090. memset (new_thread, '\0', sizeof (*new_thread));
  82091. #endif
  82092. @@ -438,7 +438,7 @@
  82093. mprotect (guardaddr, guardsize, PROT_NONE);
  82094. new_thread_bottom = (char *) map_addr;
  82095. -# ifdef USE_TLS
  82096. +# ifdef __UCLIBC_HAS_TLS__
  82097. new_thread = ((pthread_descr) (new_thread_bottom + stacksize
  82098. + guardsize));
  82099. # else
  82100. @@ -451,7 +451,7 @@
  82101. mprotect (guardaddr, guardsize, PROT_NONE);
  82102. new_thread_bottom = (char *) map_addr + guardsize;
  82103. -# ifdef USE_TLS
  82104. +# ifdef __UCLIBC_HAS_TLS__
  82105. new_thread = ((pthread_descr) (new_thread_bottom + stacksize));
  82106. # else
  82107. new_thread = ((pthread_descr) (new_thread_bottom + stacksize)) - 1;
  82108. @@ -462,7 +462,7 @@
  82109. mprotect (guardaddr, guardsize, PROT_NONE);
  82110. new_thread = (pthread_descr) map_addr;
  82111. -# ifdef USE_TLS
  82112. +# ifdef __UCLIBC_HAS_TLS__
  82113. new_thread_bottom = (char *) new_thread;
  82114. # else
  82115. new_thread_bottom = (char *) (new_thread + 1);
  82116. @@ -597,7 +597,7 @@
  82117. int pagesize = __getpagesize();
  82118. int saved_errno = 0;
  82119. -#ifdef USE_TLS
  82120. +#ifdef __UCLIBC_HAS_TLS__
  82121. new_thread = _dl_allocate_tls (NULL);
  82122. if (new_thread == NULL)
  82123. return EAGAIN;
  82124. @@ -621,7 +621,7 @@
  82125. {
  82126. if (sseg >= PTHREAD_THREADS_MAX)
  82127. {
  82128. -#ifdef USE_TLS
  82129. +#ifdef __UCLIBC_HAS_TLS__
  82130. # if defined(TLS_DTV_AT_TP)
  82131. new_thread = (pthread_descr) ((char *) new_thread + TLS_PRE_TCB_SIZE);
  82132. # endif
  82133. @@ -635,7 +635,7 @@
  82134. pagesize, &stack_addr, &new_thread_bottom,
  82135. &guardaddr, &guardsize, &stksize) == 0)
  82136. {
  82137. -#ifdef USE_TLS
  82138. +#ifdef __UCLIBC_HAS_TLS__
  82139. new_thread->p_stackaddr = stack_addr;
  82140. #else
  82141. new_thread = (pthread_descr) stack_addr;
  82142. @@ -657,18 +657,18 @@
  82143. new_thread_id = sseg + pthread_threads_counter;
  82144. /* Initialize the thread descriptor. Elements which have to be
  82145. initialized to zero already have this value. */
  82146. -#if !defined USE_TLS || !TLS_DTV_AT_TP
  82147. +#if !defined __UCLIBC_HAS_TLS__ || !TLS_DTV_AT_TP
  82148. new_thread->p_header.data.tcb = new_thread;
  82149. new_thread->p_header.data.self = new_thread;
  82150. #endif
  82151. -#if TLS_MULTIPLE_THREADS_IN_TCB || !defined USE_TLS || !TLS_DTV_AT_TP
  82152. +#if TLS_MULTIPLE_THREADS_IN_TCB || !defined __UCLIBC_HAS_TLS__ || !TLS_DTV_AT_TP
  82153. new_thread->p_multiple_threads = 1;
  82154. #endif
  82155. new_thread->p_tid = new_thread_id;
  82156. new_thread->p_lock = &(__pthread_handles[sseg].h_lock);
  82157. new_thread->p_cancelstate = PTHREAD_CANCEL_ENABLE;
  82158. new_thread->p_canceltype = PTHREAD_CANCEL_DEFERRED;
  82159. -#if !(USE_TLS && HAVE___THREAD)
  82160. +#ifndef __UCLIBC_HAS_TLS__
  82161. new_thread->p_errnop = &new_thread->p_errno;
  82162. new_thread->p_h_errnop = &new_thread->p_h_errno;
  82163. new_thread->p_resp = &new_thread->p_res;
  82164. @@ -807,7 +807,7 @@
  82165. munmap((caddr_t)new_thread_bottom,
  82166. 2 * stacksize + new_thread->p_guardsize);
  82167. #elif defined _STACK_GROWS_UP
  82168. -# ifdef USE_TLS
  82169. +# ifdef __UCLIBC_HAS_TLS__
  82170. size_t stacksize = guardaddr - stack_addr;
  82171. munmap(stack_addr, stacksize + guardsize);
  82172. # else
  82173. @@ -815,7 +815,7 @@
  82174. munmap(new_thread, stacksize + guardsize);
  82175. # endif
  82176. #else
  82177. -# ifdef USE_TLS
  82178. +# ifdef __UCLIBC_HAS_TLS__
  82179. size_t stacksize = stack_addr - new_thread_bottom;
  82180. # else
  82181. size_t stacksize = (char *)(new_thread+1) - new_thread_bottom;
  82182. @@ -823,7 +823,7 @@
  82183. munmap(new_thread_bottom - guardsize, guardsize + stacksize);
  82184. #endif
  82185. }
  82186. -#ifdef USE_TLS
  82187. +#ifdef __UCLIBC_HAS_TLS__
  82188. # if defined(TLS_DTV_AT_TP)
  82189. new_thread = (pthread_descr) ((char *) new_thread + TLS_PRE_TCB_SIZE);
  82190. # endif
  82191. @@ -890,7 +890,7 @@
  82192. /* Free the stack and thread descriptor area */
  82193. char *guardaddr = th->p_guardaddr;
  82194. #ifdef _STACK_GROWS_UP
  82195. -# ifdef USE_TLS
  82196. +# ifdef __UCLIBC_HAS_TLS__
  82197. size_t stacksize = guardaddr - th->p_stackaddr;
  82198. guardaddr = th->p_stackaddr;
  82199. # else
  82200. @@ -900,7 +900,7 @@
  82201. #else
  82202. /* Guardaddr is always set, even if guardsize is 0. This allows
  82203. us to compute everything else. */
  82204. -# ifdef USE_TLS
  82205. +# ifdef __UCLIBC_HAS_TLS__
  82206. size_t stacksize = th->p_stackaddr - guardaddr - guardsize;
  82207. # else
  82208. size_t stacksize = (char *)(th+1) - guardaddr - guardsize;
  82209. @@ -916,7 +916,7 @@
  82210. }
  82211. -#ifdef USE_TLS
  82212. +#ifdef __UCLIBC_HAS_TLS__
  82213. # if defined(TLS_DTV_AT_TP)
  82214. th = (pthread_descr) ((char *) th + TLS_PRE_TCB_SIZE);
  82215. # endif
  82216. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/ptcleanup.c uClibc-git/libpthread/linuxthreads/ptcleanup.c
  82217. --- uClibc-0.9.33.2/libpthread/linuxthreads/ptcleanup.c 2012-05-15 09:20:09.000000000 +0200
  82218. +++ uClibc-git/libpthread/linuxthreads/ptcleanup.c 2014-06-02 17:40:34.982717343 +0200
  82219. @@ -20,8 +20,8 @@
  82220. #include <setjmp.h>
  82221. #include "pthread.h"
  82222. #include "internals.h"
  82223. -#ifndef NO_PTR_DEMANGLE
  82224. #include <jmpbuf-unwind.h>
  82225. +#ifndef NO_PTR_DEMANGLE
  82226. #define __JMPBUF_UNWINDS(a,b,c) _JMPBUF_UNWINDS(a,b,c)
  82227. #else
  82228. #define __JMPBUF_UNWINDS(a,b,c) _JMPBUF_UNWINDS(a,b)
  82229. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/ptclock_gettime.c uClibc-git/libpthread/linuxthreads/ptclock_gettime.c
  82230. --- uClibc-0.9.33.2/libpthread/linuxthreads/ptclock_gettime.c 2012-05-15 09:20:09.000000000 +0200
  82231. +++ uClibc-git/libpthread/linuxthreads/ptclock_gettime.c 2014-06-02 17:40:34.982717343 +0200
  82232. @@ -12,13 +12,11 @@
  82233. Lesser General Public License for more details.
  82234. You should have received a copy of the GNU Lesser General Public
  82235. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82236. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82237. - Boston, MA 02111-1307, USA. */
  82238. + License along with the GNU C Library; see the file COPYING.LIB. If
  82239. + not, see <http://www.gnu.org/licenses/>. */
  82240. #include <errno.h>
  82241. #include <time.h>
  82242. -#include <libc-internal.h>
  82243. #include "internals.h"
  82244. #include "spinlock.h"
  82245. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/ptclock_settime.c uClibc-git/libpthread/linuxthreads/ptclock_settime.c
  82246. --- uClibc-0.9.33.2/libpthread/linuxthreads/ptclock_settime.c 2012-05-15 09:20:09.000000000 +0200
  82247. +++ uClibc-git/libpthread/linuxthreads/ptclock_settime.c 2014-06-02 17:40:34.982717343 +0200
  82248. @@ -12,13 +12,11 @@
  82249. Lesser General Public License for more details.
  82250. You should have received a copy of the GNU Lesser General Public
  82251. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82252. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82253. - Boston, MA 02111-1307, USA. */
  82254. + License along with the GNU C Library; see the file COPYING.LIB. If
  82255. + not, see <http://www.gnu.org/licenses/>. */
  82256. #include <errno.h>
  82257. #include <time.h>
  82258. -#include <libc-internal.h>
  82259. #include "internals.h"
  82260. #include "spinlock.h"
  82261. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/ptfork.c uClibc-git/libpthread/linuxthreads/ptfork.c
  82262. --- uClibc-0.9.33.2/libpthread/linuxthreads/ptfork.c 2012-05-15 09:20:09.000000000 +0200
  82263. +++ uClibc-git/libpthread/linuxthreads/ptfork.c 2014-06-02 17:40:34.986717365 +0200
  82264. @@ -23,8 +23,6 @@
  82265. #include <bits/libc-lock.h>
  82266. #include "fork.h"
  82267. -extern int __libc_fork (void);
  82268. -
  82269. pid_t __pthread_fork (struct fork_block *b)
  82270. {
  82271. pid_t pid;
  82272. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_atfork.c uClibc-git/libpthread/linuxthreads/pthread_atfork.c
  82273. --- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_atfork.c 2012-05-15 09:20:09.000000000 +0200
  82274. +++ uClibc-git/libpthread/linuxthreads/pthread_atfork.c 2014-06-02 17:40:34.986717365 +0200
  82275. @@ -30,9 +30,8 @@
  82276. Lesser General Public License for more details.
  82277. You should have received a copy of the GNU Lesser General Public
  82278. - License along with the GNU C Library; if not, write to the Free
  82279. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82280. - 02111-1307 USA. */
  82281. + License along with the GNU C Library; if not, see
  82282. + <http://www.gnu.org/licenses/>. */
  82283. #include "internals.h"
  82284. #include <fork.h>
  82285. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread.c uClibc-git/libpthread/linuxthreads/pthread.c
  82286. --- uClibc-0.9.33.2/libpthread/linuxthreads/pthread.c 2012-05-15 09:20:09.000000000 +0200
  82287. +++ uClibc-git/libpthread/linuxthreads/pthread.c 2014-06-02 17:40:34.986717365 +0200
  82288. @@ -37,10 +37,7 @@
  82289. # error "This must not happen"
  82290. #endif
  82291. -/* mods for uClibc: __libc_sigaction is not in any standard headers */
  82292. -extern __typeof(sigaction) __libc_sigaction;
  82293. -
  82294. -#if !(USE_TLS && HAVE___THREAD)
  82295. +#ifndef __UCLIBC_HAS_TLS__
  82296. /* These variables are used by the setup code. */
  82297. extern int _errno;
  82298. extern int _h_errno;
  82299. @@ -53,7 +50,7 @@
  82300. # endif
  82301. #endif
  82302. -#ifdef USE_TLS
  82303. +#ifdef __UCLIBC_HAS_TLS__
  82304. /* We need only a few variables. */
  82305. #define manager_thread __pthread_manager_threadp
  82306. @@ -70,7 +67,7 @@
  82307. .p_tid = PTHREAD_THREADS_MAX,
  82308. .p_lock = &__pthread_handles[0].h_lock,
  82309. .p_start_args = PTHREAD_START_ARGS_INITIALIZER(NULL),
  82310. -#if !(USE_TLS && HAVE___THREAD)
  82311. +#ifndef __UCLIBC_HAS_TLS__
  82312. .p_errnop = &_errno,
  82313. .p_h_errnop = &_h_errno,
  82314. #endif
  82315. @@ -89,7 +86,7 @@
  82316. .p_header.data.multiple_threads = 1,
  82317. .p_lock = &__pthread_handles[1].h_lock,
  82318. .p_start_args = PTHREAD_START_ARGS_INITIALIZER(__pthread_manager),
  82319. -#if !(USE_TLS && HAVE___THREAD)
  82320. +#ifndef __UCLIBC_HAS_TLS__
  82321. .p_errnop = &__pthread_manager_thread.p_errno,
  82322. #endif
  82323. .p_nr = 1,
  82324. @@ -101,7 +98,7 @@
  82325. /* Pointer to the main thread (the father of the thread manager thread) */
  82326. /* Originally, this is the initial thread, but this changes after fork() */
  82327. -#ifdef USE_TLS
  82328. +#ifdef __UCLIBC_HAS_TLS__
  82329. pthread_descr __pthread_main_thread;
  82330. #else
  82331. pthread_descr __pthread_main_thread = &__pthread_initial_thread;
  82332. @@ -227,13 +224,13 @@
  82333. #endif
  82334. -#if defined USE_TLS && !defined SHARED
  82335. +#if defined __UCLIBC_HAS_TLS__ && !defined SHARED
  82336. extern void __libc_setup_tls (size_t tcbsize, size_t tcbalign);
  82337. #endif
  82338. struct pthread_functions __pthread_functions =
  82339. {
  82340. -#if !(USE_TLS && HAVE___THREAD)
  82341. +#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__
  82342. .ptr_pthread_internal_tsd_set = __pthread_internal_tsd_set,
  82343. .ptr_pthread_internal_tsd_get = __pthread_internal_tsd_get,
  82344. .ptr_pthread_internal_tsd_address = __pthread_internal_tsd_address,
  82345. @@ -295,7 +292,7 @@
  82346. void
  82347. __pthread_initialize_minimal(void)
  82348. {
  82349. -#ifdef USE_TLS
  82350. +#ifdef __UCLIBC_HAS_TLS__
  82351. pthread_descr self;
  82352. /* First of all init __pthread_handles[0] and [1] if needed. */
  82353. @@ -307,7 +304,7 @@
  82354. /* Unlike in the dynamically linked case the dynamic linker has not
  82355. taken care of initializing the TLS data structures. */
  82356. __libc_setup_tls (TLS_TCB_SIZE, TLS_TCB_ALIGN);
  82357. -# elif !USE___THREAD
  82358. +# elif !defined __UCLIBC_HAS_TLS__
  82359. if (__builtin_expect (GL(dl_tls_dtv_slotinfo_list) == NULL, 0))
  82360. {
  82361. tcbhead_t *tcbp;
  82362. @@ -363,7 +360,7 @@
  82363. self->p_nextlive = self->p_prevlive = self;
  82364. self->p_tid = PTHREAD_THREADS_MAX;
  82365. self->p_lock = &__pthread_handles[0].h_lock;
  82366. -# ifndef HAVE___THREAD
  82367. +# ifndef __UCLIBC_HAS_TLS__
  82368. self->p_errnop = &_errno;
  82369. self->p_h_errnop = &_h_errno;
  82370. # endif
  82371. @@ -380,7 +377,7 @@
  82372. /* And fill in the pointer the the thread __pthread_handles array. */
  82373. __pthread_handles[0].h_descr = self;
  82374. -#else /* USE_TLS */
  82375. +#else /* __UCLIBC_HAS_TLS__ */
  82376. /* First of all init __pthread_handles[0] and [1]. */
  82377. # if __LT_SPINLOCK_INIT != 0
  82378. @@ -398,7 +395,7 @@
  82379. #endif
  82380. #if HP_TIMING_AVAIL
  82381. -# ifdef USE_TLS
  82382. +# ifdef __UCLIBC_HAS_TLS__
  82383. self->p_cpuclock_offset = GL(dl_cpuclock_offset);
  82384. # else
  82385. __pthread_initial_thread.p_cpuclock_offset = GL(dl_cpuclock_offset);
  82386. @@ -442,7 +439,7 @@
  82387. __pthread_max_stacksize = max_stack;
  82388. if (max_stack / 4 < __MAX_ALLOCA_CUTOFF)
  82389. {
  82390. -#ifdef USE_TLS
  82391. +#ifdef __UCLIBC_HAS_TLS__
  82392. pthread_descr self = THREAD_SELF;
  82393. self->p_alloca_cutoff = max_stack / 4;
  82394. #else
  82395. @@ -451,10 +448,8 @@
  82396. }
  82397. }
  82398. -/* psm: we do not have any ld.so support yet
  82399. - * remove the USE_TLS guard if nptl is added */
  82400. -#if defined SHARED && defined USE_TLS
  82401. -# if USE___THREAD
  82402. +#if defined SHARED && defined __UCLIBC_HAS_TLS__
  82403. +# ifdef __UCLIBC_HAS_TLS__
  82404. /* When using __thread for this, we do it in libc so as not
  82405. to give libpthread its own TLS segment just for this. */
  82406. extern void **__libc_dl_error_tsd (void) __attribute__ ((const));
  82407. @@ -467,7 +462,7 @@
  82408. # endif
  82409. #endif
  82410. -#ifdef USE_TLS
  82411. +#ifdef __UCLIBC_HAS_TLS__
  82412. static __inline__ void __attribute__((always_inline))
  82413. init_one_static_tls (pthread_descr descr, struct link_map *map)
  82414. {
  82415. @@ -486,7 +481,7 @@
  82416. dtv[map->l_tls_modid].pointer.is_static = true;
  82417. /* Initialize the memory. */
  82418. - memset (__mempcpy (dest, map->l_tls_initimage, map->l_tls_initimage_size),
  82419. + memset (mempcpy (dest, map->l_tls_initimage, map->l_tls_initimage_size),
  82420. '\0', map->l_tls_blocksize - map->l_tls_initimage_size);
  82421. }
  82422. @@ -536,10 +531,10 @@
  82423. (char *)(((long)CURRENT_STACK_FRAME - 2 * STACK_SIZE) & ~(STACK_SIZE - 1));
  82424. # endif
  82425. #endif
  82426. -#ifdef USE_TLS
  82427. +#ifdef __UCLIBC_HAS_TLS__
  82428. /* Update the descriptor for the initial thread. */
  82429. THREAD_SETMEM (((pthread_descr) NULL), p_pid, __getpid());
  82430. -# if !defined HAVE___THREAD && defined __UCLIBC_HAS_RESOLVER_SUPPORT__
  82431. +# if defined __UCLIBC_HAS_RESOLVER_SUPPORT__
  82432. /* Likewise for the resolver state _res. */
  82433. THREAD_SETMEM (((pthread_descr) NULL), p_resp, __resp);
  82434. # endif
  82435. @@ -590,9 +585,7 @@
  82436. /* How many processors. */
  82437. __pthread_smp_kernel = is_smp_system ();
  82438. -/* psm: we do not have any ld.so support yet
  82439. - * remove the USE_TLS guard if nptl is added */
  82440. -#if defined SHARED && defined USE_TLS
  82441. +#if defined SHARED && defined __UCLIBC_HAS_TLS__
  82442. /* Transfer the old value from the dynamic linker's internal location. */
  82443. *__libc_dl_error_tsd () = *(*GL(dl_error_catch_tsd)) ();
  82444. GL(dl_error_catch_tsd) = &__libc_dl_error_tsd;
  82445. @@ -607,7 +600,7 @@
  82446. __pthread_mutex_lock (&GL(dl_load_lock).mutex);
  82447. #endif
  82448. -#ifdef USE_TLS
  82449. +#ifdef __UCLIBC_HAS_TLS__
  82450. GL(dl_init_static_tls) = &__pthread_init_static_tls;
  82451. #endif
  82452. @@ -635,12 +628,12 @@
  82453. struct pthread_request request;
  82454. int report_events;
  82455. pthread_descr mgr;
  82456. -#ifdef USE_TLS
  82457. +#ifdef __UCLIBC_HAS_TLS__
  82458. tcbhead_t *tcbp;
  82459. #endif
  82460. __pthread_multiple_threads = 1;
  82461. -#if TLS_MULTIPLE_THREADS_IN_TCB || !defined USE_TLS || !TLS_DTV_AT_TP
  82462. +#if TLS_MULTIPLE_THREADS_IN_TCB || !defined __UCLIBC_HAS_TLS__ || !TLS_DTV_AT_TP
  82463. __pthread_main_thread->p_multiple_threads = 1;
  82464. #endif
  82465. *__libc_multiple_threads_ptr = 1;
  82466. @@ -667,7 +660,7 @@
  82467. return -1;
  82468. }
  82469. -#ifdef USE_TLS
  82470. +#ifdef __UCLIBC_HAS_TLS__
  82471. /* Allocate memory for the thread descriptor and the dtv. */
  82472. tcbp = _dl_allocate_tls (NULL);
  82473. if (tcbp == NULL) {
  82474. @@ -687,7 +680,7 @@
  82475. __pthread_handles[1].h_descr = manager_thread = mgr;
  82476. /* Initialize the descriptor. */
  82477. -#if !defined USE_TLS || !TLS_DTV_AT_TP
  82478. +#if !defined __UCLIBC_HAS_TLS__ || !TLS_DTV_AT_TP
  82479. mgr->p_header.data.tcb = tcbp;
  82480. mgr->p_header.data.self = mgr;
  82481. mgr->p_header.data.multiple_threads = 1;
  82482. @@ -695,7 +688,7 @@
  82483. mgr->p_multiple_threads = 1;
  82484. #endif
  82485. mgr->p_lock = &__pthread_handles[1].h_lock;
  82486. -# ifndef HAVE___THREAD
  82487. +# ifndef __UCLIBC_HAS_TLS__
  82488. mgr->p_errnop = &mgr->p_errno;
  82489. # endif
  82490. mgr->p_start_args = (struct pthread_start_args) PTHREAD_START_ARGS_INITIALIZER(__pthread_manager);
  82491. @@ -713,7 +706,7 @@
  82492. /* Start the thread manager */
  82493. pid = 0;
  82494. -#ifdef USE_TLS
  82495. +#ifdef __UCLIBC_HAS_TLS__
  82496. if (__linuxthreads_initial_report_events != 0)
  82497. THREAD_SETMEM (((pthread_descr) NULL), p_report_events,
  82498. __linuxthreads_initial_report_events);
  82499. @@ -732,7 +725,7 @@
  82500. uint32_t mask = __td_eventmask (TD_CREATE);
  82501. uint32_t event_bits;
  82502. -#ifdef USE_TLS
  82503. +#ifdef __UCLIBC_HAS_TLS__
  82504. event_bits = THREAD_GETMEM_NC (((pthread_descr) NULL),
  82505. p_eventbuf.eventmask.event_bits[idx]);
  82506. #else
  82507. @@ -798,7 +791,7 @@
  82508. #endif
  82509. }
  82510. if (__builtin_expect (pid, 0) == -1) {
  82511. -#ifdef USE_TLS
  82512. +#ifdef __UCLIBC_HAS_TLS__
  82513. _dl_deallocate_tls (tcbp, true);
  82514. #endif
  82515. free(__pthread_manager_thread_bos);
  82516. @@ -900,7 +893,7 @@
  82517. if (sp >= __pthread_manager_thread_bos && sp < __pthread_manager_thread_tos)
  82518. return manager_thread;
  82519. h = __pthread_handles + 2;
  82520. -# ifdef USE_TLS
  82521. +# ifdef __UCLIBC_HAS_TLS__
  82522. # ifdef _STACK_GROWS_UP
  82523. while (h->h_descr == NULL
  82524. || ! (sp >= h->h_descr->p_stackaddr && sp < h->h_descr->p_guardaddr))
  82525. @@ -994,7 +987,7 @@
  82526. children, so that timings for main thread account for all threads. */
  82527. if (self == __pthread_main_thread)
  82528. {
  82529. -#ifdef USE_TLS
  82530. +#ifdef __UCLIBC_HAS_TLS__
  82531. waitpid(manager_thread->p_pid, NULL, __WCLONE);
  82532. #else
  82533. waitpid(__pthread_manager_thread.p_pid, NULL, __WCLONE);
  82534. @@ -1002,7 +995,7 @@
  82535. /* Since all threads have been asynchronously terminated
  82536. (possibly holding locks), free cannot be used any more.
  82537. For mtrace, we'd like to print something though. */
  82538. - /* #ifdef USE_TLS
  82539. + /* #ifdef __UCLIBC_HAS_TLS__
  82540. tcbhead_t *tcbp = (tcbhead_t *) manager_thread;
  82541. # if defined(TLS_DTV_AT_TP)
  82542. tcbp = (tcbhead_t) ((char *) tcbp + TLS_PRE_TCB_SIZE);
  82543. @@ -1060,7 +1053,7 @@
  82544. /* Main thread should accumulate times for thread manager and its
  82545. children, so that timings for main thread account for all threads. */
  82546. if (self == __pthread_main_thread) {
  82547. -#ifdef USE_TLS
  82548. +#ifdef __UCLIBC_HAS_TLS__
  82549. waitpid(manager_thread->p_pid, NULL, __WCLONE);
  82550. #else
  82551. waitpid(__pthread_manager_thread.p_pid, NULL, __WCLONE);
  82552. @@ -1121,7 +1114,7 @@
  82553. __pthread_main_thread = self;
  82554. THREAD_SETMEM(self, p_nextlive, self);
  82555. THREAD_SETMEM(self, p_prevlive, self);
  82556. -#if !(USE_TLS && HAVE___THREAD)
  82557. +#ifndef __UCLIBC_HAS_TLS__
  82558. /* Now this thread modifies the global variables. */
  82559. THREAD_SETMEM(self, p_errnop, &_errno);
  82560. THREAD_SETMEM(self, p_h_errnop, &_h_errno);
  82561. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setegid.c uClibc-git/libpthread/linuxthreads/pthread_setegid.c
  82562. --- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setegid.c 2012-05-15 09:20:09.000000000 +0200
  82563. +++ uClibc-git/libpthread/linuxthreads/pthread_setegid.c 2014-06-02 17:40:34.990717386 +0200
  82564. @@ -12,9 +12,8 @@
  82565. Lesser General Public License for more details.
  82566. You should have received a copy of the GNU Lesser General Public
  82567. - License along with the GNU C Library; if not, write to the Free
  82568. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82569. - 02111-1307 USA. */
  82570. + License along with the GNU C Library; if not, see
  82571. + <http://www.gnu.org/licenses/>. */
  82572. #include <pthread.h>
  82573. #include <unistd.h>
  82574. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_seteuid.c uClibc-git/libpthread/linuxthreads/pthread_seteuid.c
  82575. --- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_seteuid.c 2012-05-15 09:20:09.000000000 +0200
  82576. +++ uClibc-git/libpthread/linuxthreads/pthread_seteuid.c 2014-06-02 17:40:34.990717386 +0200
  82577. @@ -12,9 +12,8 @@
  82578. Lesser General Public License for more details.
  82579. You should have received a copy of the GNU Lesser General Public
  82580. - License along with the GNU C Library; if not, write to the Free
  82581. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82582. - 02111-1307 USA. */
  82583. + License along with the GNU C Library; if not, see
  82584. + <http://www.gnu.org/licenses/>. */
  82585. #include <pthread.h>
  82586. #include <unistd.h>
  82587. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setgid.c uClibc-git/libpthread/linuxthreads/pthread_setgid.c
  82588. --- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setgid.c 2012-05-15 09:20:09.000000000 +0200
  82589. +++ uClibc-git/libpthread/linuxthreads/pthread_setgid.c 2014-06-02 17:40:34.990717386 +0200
  82590. @@ -12,9 +12,8 @@
  82591. Lesser General Public License for more details.
  82592. You should have received a copy of the GNU Lesser General Public
  82593. - License along with the GNU C Library; if not, write to the Free
  82594. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82595. - 02111-1307 USA. */
  82596. + License along with the GNU C Library; if not, see
  82597. + <http://www.gnu.org/licenses/>. */
  82598. #include <pthread.h>
  82599. #include <unistd.h>
  82600. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setregid.c uClibc-git/libpthread/linuxthreads/pthread_setregid.c
  82601. --- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setregid.c 2012-05-15 09:20:09.000000000 +0200
  82602. +++ uClibc-git/libpthread/linuxthreads/pthread_setregid.c 2014-06-02 17:40:34.994717409 +0200
  82603. @@ -12,9 +12,8 @@
  82604. Lesser General Public License for more details.
  82605. You should have received a copy of the GNU Lesser General Public
  82606. - License along with the GNU C Library; if not, write to the Free
  82607. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82608. - 02111-1307 USA. */
  82609. + License along with the GNU C Library; if not, see
  82610. + <http://www.gnu.org/licenses/>. */
  82611. #include <pthread.h>
  82612. #include <unistd.h>
  82613. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setresgid.c uClibc-git/libpthread/linuxthreads/pthread_setresgid.c
  82614. --- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setresgid.c 2012-05-15 09:20:09.000000000 +0200
  82615. +++ uClibc-git/libpthread/linuxthreads/pthread_setresgid.c 2014-06-02 17:40:34.994717409 +0200
  82616. @@ -12,9 +12,8 @@
  82617. Lesser General Public License for more details.
  82618. You should have received a copy of the GNU Lesser General Public
  82619. - License along with the GNU C Library; if not, write to the Free
  82620. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82621. - 02111-1307 USA. */
  82622. + License along with the GNU C Library; if not, see
  82623. + <http://www.gnu.org/licenses/>. */
  82624. #include <pthread.h>
  82625. #include <unistd.h>
  82626. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setresuid.c uClibc-git/libpthread/linuxthreads/pthread_setresuid.c
  82627. --- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setresuid.c 2012-05-15 09:20:09.000000000 +0200
  82628. +++ uClibc-git/libpthread/linuxthreads/pthread_setresuid.c 2014-06-02 17:40:34.994717409 +0200
  82629. @@ -12,9 +12,8 @@
  82630. Lesser General Public License for more details.
  82631. You should have received a copy of the GNU Lesser General Public
  82632. - License along with the GNU C Library; if not, write to the Free
  82633. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82634. - 02111-1307 USA. */
  82635. + License along with the GNU C Library; if not, see
  82636. + <http://www.gnu.org/licenses/>. */
  82637. #include <pthread.h>
  82638. #include <unistd.h>
  82639. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setreuid.c uClibc-git/libpthread/linuxthreads/pthread_setreuid.c
  82640. --- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setreuid.c 2012-05-15 09:20:09.000000000 +0200
  82641. +++ uClibc-git/libpthread/linuxthreads/pthread_setreuid.c 2014-06-02 17:40:34.998717431 +0200
  82642. @@ -12,9 +12,8 @@
  82643. Lesser General Public License for more details.
  82644. You should have received a copy of the GNU Lesser General Public
  82645. - License along with the GNU C Library; if not, write to the Free
  82646. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82647. - 02111-1307 USA. */
  82648. + License along with the GNU C Library; if not, see
  82649. + <http://www.gnu.org/licenses/>. */
  82650. #include <pthread.h>
  82651. #include <unistd.h>
  82652. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setuid.c uClibc-git/libpthread/linuxthreads/pthread_setuid.c
  82653. --- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setuid.c 2012-05-15 09:20:09.000000000 +0200
  82654. +++ uClibc-git/libpthread/linuxthreads/pthread_setuid.c 2014-06-02 17:40:34.998717431 +0200
  82655. @@ -12,9 +12,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. #include <pthread.h>
  82664. #include <unistd.h>
  82665. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pt-machine.c uClibc-git/libpthread/linuxthreads/pt-machine.c
  82666. --- uClibc-0.9.33.2/libpthread/linuxthreads/pt-machine.c 2012-05-15 09:20:09.000000000 +0200
  82667. +++ uClibc-git/libpthread/linuxthreads/pt-machine.c 2014-06-02 17:40:34.982717343 +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. #define PT_EI
  82677. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/rwlock.c uClibc-git/libpthread/linuxthreads/rwlock.c
  82678. --- uClibc-0.9.33.2/libpthread/linuxthreads/rwlock.c 2012-05-15 09:20:09.000000000 +0200
  82679. +++ uClibc-git/libpthread/linuxthreads/rwlock.c 2014-06-02 17:40:34.998717431 +0200
  82680. @@ -15,9 +15,8 @@
  82681. Lesser General Public License for more details.
  82682. You should have received a copy of the GNU Lesser General Public
  82683. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82684. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82685. - Boston, MA 02111-1307, USA. */
  82686. + License along with the GNU C Library; see the file COPYING.LIB. If
  82687. + not, see <http://www.gnu.org/licenses/>. */
  82688. #include <bits/libc-lock.h>
  82689. #include <errno.h>
  82690. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/semaphore.c uClibc-git/libpthread/linuxthreads/semaphore.c
  82691. --- uClibc-0.9.33.2/libpthread/linuxthreads/semaphore.c 2012-05-15 09:20:09.000000000 +0200
  82692. +++ uClibc-git/libpthread/linuxthreads/semaphore.c 2014-06-02 17:40:34.998717431 +0200
  82693. @@ -15,6 +15,7 @@
  82694. /* Semaphores a la POSIX 1003.1b */
  82695. #include <errno.h>
  82696. +#include <limits.h>
  82697. #include "pthread.h"
  82698. #include "semaphore.h"
  82699. #include "internals.h"
  82700. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/semaphore.h uClibc-git/libpthread/linuxthreads/semaphore.h
  82701. --- uClibc-0.9.33.2/libpthread/linuxthreads/semaphore.h 2012-05-15 09:20:09.000000000 +0200
  82702. +++ uClibc-git/libpthread/linuxthreads/semaphore.h 2014-06-02 17:40:34.998717431 +0200
  82703. @@ -17,6 +17,7 @@
  82704. #include <features.h>
  82705. #include <sys/types.h>
  82706. +#include <limits.h>
  82707. #ifdef __USE_XOPEN2K
  82708. # define __need_timespec
  82709. # include <time.h>
  82710. @@ -42,7 +43,9 @@
  82711. #define SEM_FAILED ((sem_t *) 0)
  82712. /* Maximum value the semaphore can have. */
  82713. +#ifndef SEM_VALUE_MAX
  82714. #define SEM_VALUE_MAX (2147483647)
  82715. +#endif
  82716. __BEGIN_DECLS
  82717. @@ -55,13 +58,13 @@
  82718. extern int sem_destroy (sem_t *__sem) __THROW;
  82719. /* Open a named semaphore NAME with open flags OFLAG. */
  82720. -extern sem_t *sem_open (__const char *__name, int __oflag, ...) __THROW;
  82721. +extern sem_t *sem_open (const char *__name, int __oflag, ...) __THROW;
  82722. /* Close descriptor for named semaphore SEM. */
  82723. extern int sem_close (sem_t *__sem) __THROW;
  82724. /* Remove named semaphore NAME. */
  82725. -extern int sem_unlink (__const char *__name) __THROW;
  82726. +extern int sem_unlink (const char *__name) __THROW;
  82727. /* Wait for SEM being posted.
  82728. @@ -75,7 +78,7 @@
  82729. This function is a cancellation point and therefore not marked with
  82730. __THROW. */
  82731. extern int sem_timedwait (sem_t *__restrict __sem,
  82732. - __const struct timespec *__restrict __abstime);
  82733. + const struct timespec *__restrict __abstime);
  82734. #endif
  82735. /* Test whether SEM is posted. */
  82736. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/signals.c uClibc-git/libpthread/linuxthreads/signals.c
  82737. --- uClibc-0.9.33.2/libpthread/linuxthreads/signals.c 2012-05-15 09:20:09.000000000 +0200
  82738. +++ uClibc-git/libpthread/linuxthreads/signals.c 2014-06-02 17:40:34.998717431 +0200
  82739. @@ -20,9 +20,6 @@
  82740. #include "internals.h"
  82741. #include "spinlock.h"
  82742. -/* mods for uClibc: __libc_sigaction is not in any standard headers */
  82743. -extern __typeof(sigaction) __libc_sigaction;
  82744. -
  82745. int pthread_sigmask(int how, const sigset_t * newmask, sigset_t * oldmask)
  82746. {
  82747. sigset_t mask;
  82748. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/specific.c uClibc-git/libpthread/linuxthreads/specific.c
  82749. --- uClibc-0.9.33.2/libpthread/linuxthreads/specific.c 2012-05-15 09:20:09.000000000 +0200
  82750. +++ uClibc-git/libpthread/linuxthreads/specific.c 2014-06-02 17:40:35.002717453 +0200
  82751. @@ -212,7 +212,7 @@
  82752. __pthread_unlock(THREAD_GETMEM(self, p_lock));
  82753. }
  82754. -#if !(USE_TLS && HAVE___THREAD)
  82755. +#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__
  82756. /* Thread-specific data for libc. */
  82757. 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
  82758. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/alpha/elf/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
  82759. +++ uClibc-git/libpthread/linuxthreads/sysdeps/alpha/elf/pt-initfini.c 2014-06-02 17:40:35.002717453 +0200
  82760. @@ -13,9 +13,8 @@
  82761. Lesser General Public License for more details.
  82762. You should have received a copy of the GNU Lesser General Public
  82763. - License along with the GNU C Library; if not, write to the Free
  82764. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82765. - 02111-1307 USA. */
  82766. + License along with the GNU C Library; if not, see
  82767. + <http://www.gnu.org/licenses/>. */
  82768. /* This file is compiled into assembly code which is then munged by a sed
  82769. script into two files: crti.s and crtn.s.
  82770. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/alpha/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/alpha/pspinlock.c
  82771. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/alpha/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  82772. +++ uClibc-git/libpthread/linuxthreads/sysdeps/alpha/pspinlock.c 2014-06-02 17:40:35.002717453 +0200
  82773. @@ -13,9 +13,8 @@
  82774. Lesser General Public License for more details.
  82775. You should have received a copy of the GNU Lesser General Public
  82776. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82777. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82778. - Boston, MA 02111-1307, USA. */
  82779. + License along with the GNU C Library; see the file COPYING.LIB. If
  82780. + not, see <http://www.gnu.org/licenses/>. */
  82781. #include <errno.h>
  82782. #include <pthread.h>
  82783. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/alpha/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/alpha/pt-machine.h
  82784. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/alpha/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  82785. +++ uClibc-git/libpthread/linuxthreads/sysdeps/alpha/pt-machine.h 2014-06-02 17:40:35.002717453 +0200
  82786. @@ -17,8 +17,7 @@
  82787. You should have received a copy of the GNU Lesser General Public
  82788. License along with the GNU C Library; see the file COPYING.LIB. If not,
  82789. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82790. - Boston, MA 02111-1307, USA. */
  82791. + see <http://www.gnu.org/licenses/>. */
  82792. #ifndef _PT_MACHINE_H
  82793. #define _PT_MACHINE_H 1
  82794. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/alpha/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/alpha/tls.h
  82795. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/alpha/tls.h 2012-05-15 09:20:09.000000000 +0200
  82796. +++ uClibc-git/libpthread/linuxthreads/sysdeps/alpha/tls.h 2014-06-02 17:40:35.002717453 +0200
  82797. @@ -13,9 +13,8 @@
  82798. Lesser General Public License for more details.
  82799. You should have received a copy of the GNU Lesser General Public
  82800. - License along with the GNU C Library; if not, write to the Free
  82801. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82802. - 02111-1307 USA. */
  82803. + License along with the GNU C Library; if not, see
  82804. + <http://www.gnu.org/licenses/>. */
  82805. #ifndef _TLS_H
  82806. #define _TLS_H
  82807. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/arm/pspinlock.c
  82808. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  82809. +++ uClibc-git/libpthread/linuxthreads/sysdeps/arm/pspinlock.c 2014-06-02 17:40:35.002717453 +0200
  82810. @@ -13,9 +13,8 @@
  82811. Lesser General Public License for more details.
  82812. You should have received a copy of the GNU Lesser General Public
  82813. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82814. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82815. - Boston, MA 02111-1307, USA. */
  82816. + License along with the GNU C Library; see the file COPYING.LIB. If
  82817. + not, see <http://www.gnu.org/licenses/>. */
  82818. #include <errno.h>
  82819. #include <pthread.h>
  82820. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/arm/pt-machine.h
  82821. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  82822. +++ uClibc-git/libpthread/linuxthreads/sysdeps/arm/pt-machine.h 2014-06-02 17:40:35.002717453 +0200
  82823. @@ -15,9 +15,8 @@
  82824. Lesser General Public License for more details.
  82825. You should have received a copy of the GNU Lesser General Public
  82826. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82827. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82828. - Boston, MA 02111-1307, USA. */
  82829. + License along with the GNU C Library; see the file COPYING.LIB. If
  82830. + not, see <http://www.gnu.org/licenses/>. */
  82831. #ifndef _PT_MACHINE_H
  82832. #define _PT_MACHINE_H 1
  82833. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/sysdep.h uClibc-git/libpthread/linuxthreads/sysdeps/arm/sysdep.h
  82834. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  82835. +++ uClibc-git/libpthread/linuxthreads/sysdeps/arm/sysdep.h 1970-01-01 01:00:00.000000000 +0100
  82836. @@ -1,137 +0,0 @@
  82837. -/* Generic asm macros used on many machines.
  82838. - Copyright (C) 1991,92,93,96,98,2002,2003 Free Software Foundation, Inc.
  82839. - This file is part of the GNU C Library.
  82840. -
  82841. - The GNU C Library is free software; you can redistribute it and/or
  82842. - modify it under the terms of the GNU Lesser General Public
  82843. - License as published by the Free Software Foundation; either
  82844. - version 2.1 of the License, or (at your option) any later version.
  82845. -
  82846. - The GNU C Library is distributed in the hope that it will be useful,
  82847. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  82848. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  82849. - Lesser General Public License for more details.
  82850. -
  82851. - You should have received a copy of the GNU Lesser General Public
  82852. - License along with the GNU C Library; if not, write to the Free
  82853. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82854. - 02111-1307 USA. */
  82855. -
  82856. -#ifndef C_LABEL
  82857. -
  82858. -/* Define a macro we can use to construct the asm name for a C symbol. */
  82859. -#ifdef NO_UNDERSCORES
  82860. -#ifdef __STDC__
  82861. -#define C_LABEL(name) name##:
  82862. -#else
  82863. -#define C_LABEL(name) name/**/:
  82864. -#endif
  82865. -#else
  82866. -#ifdef __STDC__
  82867. -#define C_LABEL(name) _##name##:
  82868. -#else
  82869. -#define C_LABEL(name) _/**/name/**/:
  82870. -#endif
  82871. -#endif
  82872. -
  82873. -#endif
  82874. -
  82875. -#ifdef __ASSEMBLER__
  82876. -/* Mark the end of function named SYM. This is used on some platforms
  82877. - to generate correct debugging information. */
  82878. -#ifndef END
  82879. -#define END(sym)
  82880. -#endif
  82881. -
  82882. -#ifndef JUMPTARGET
  82883. -#define JUMPTARGET(sym) sym
  82884. -#endif
  82885. -
  82886. -/* Makros to generate eh_frame unwind information. */
  82887. -# ifdef HAVE_ASM_CFI_DIRECTIVES
  82888. -# define cfi_startproc .cfi_startproc
  82889. -# define cfi_endproc .cfi_endproc
  82890. -# define cfi_def_cfa(reg, off) .cfi_def_cfa reg, off
  82891. -# define cfi_def_cfa_register(reg) .cfi_def_cfa_register reg
  82892. -# define cfi_def_cfa_offset(off) .cfi_def_cfa_offset off
  82893. -# define cfi_adjust_cfa_offset(off) .cfi_adjust_cfa_offset off
  82894. -# define cfi_offset(reg, off) .cfi_offset reg, off
  82895. -# define cfi_rel_offset(reg, off) .cfi_rel_offset reg, off
  82896. -# define cfi_register(r1, r2) .cfi_register r1, r2
  82897. -# define cfi_return_column(reg) .cfi_return_column reg
  82898. -# define cfi_restore(reg) .cfi_restore reg
  82899. -# define cfi_same_value(reg) .cfi_same_value reg
  82900. -# define cfi_undefined(reg) .cfi_undefined reg
  82901. -# define cfi_remember_state .cfi_remember_state
  82902. -# define cfi_restore_state .cfi_restore_state
  82903. -# define cfi_window_save .cfi_window_save
  82904. -# else
  82905. -# define cfi_startproc
  82906. -# define cfi_endproc
  82907. -# define cfi_def_cfa(reg, off)
  82908. -# define cfi_def_cfa_register(reg)
  82909. -# define cfi_def_cfa_offset(off)
  82910. -# define cfi_adjust_cfa_offset(off)
  82911. -# define cfi_offset(reg, off)
  82912. -# define cfi_rel_offset(reg, off)
  82913. -# define cfi_register(r1, r2)
  82914. -# define cfi_return_column(reg)
  82915. -# define cfi_restore(reg)
  82916. -# define cfi_same_value(reg)
  82917. -# define cfi_undefined(reg)
  82918. -# define cfi_remember_state
  82919. -# define cfi_restore_state
  82920. -# define cfi_window_save
  82921. -# endif
  82922. -
  82923. -#else /* ! ASSEMBLER */
  82924. -# ifdef HAVE_ASM_CFI_DIRECTIVES
  82925. -# define CFI_STRINGIFY(Name) CFI_STRINGIFY2 (Name)
  82926. -# define CFI_STRINGIFY2(Name) #Name
  82927. -# define CFI_STARTPROC ".cfi_startproc"
  82928. -# define CFI_ENDPROC ".cfi_endproc"
  82929. -# define CFI_DEF_CFA(reg, off) \
  82930. - ".cfi_def_cfa " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)
  82931. -# define CFI_DEF_CFA_REGISTER(reg) \
  82932. - ".cfi_def_cfa_register " CFI_STRINGIFY(reg)
  82933. -# define CFI_DEF_CFA_OFFSET(off) \
  82934. - ".cfi_def_cfa_offset " CFI_STRINGIFY(off)
  82935. -# define CFI_ADJUST_CFA_OFFSET(off) \
  82936. - ".cfi_adjust_cfa_offset " CFI_STRINGIFY(off)
  82937. -# define CFI_OFFSET(reg, off) \
  82938. - ".cfi_offset " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)
  82939. -# define CFI_REL_OFFSET(reg, off) \
  82940. - ".cfi_rel_offset " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)
  82941. -# define CFI_REGISTER(r1, r2) \
  82942. - ".cfi_register " CFI_STRINGIFY(r1) "," CFI_STRINGIFY(r2)
  82943. -# define CFI_RETURN_COLUMN(reg) \
  82944. - ".cfi_return_column " CFI_STRINGIFY(reg)
  82945. -# define CFI_RESTORE(reg) \
  82946. - ".cfi_restore " CFI_STRINGIFY(reg)
  82947. -# define CFI_UNDEFINED(reg) \
  82948. - ".cfi_undefined " CFI_STRINGIFY(reg)
  82949. -# define CFI_REMEMBER_STATE \
  82950. - ".cfi_remember_state"
  82951. -# define CFI_RESTORE_STATE \
  82952. - ".cfi_restore_state"
  82953. -# define CFI_WINDOW_SAVE \
  82954. - ".cfi_window_save"
  82955. -# else
  82956. -# define CFI_STARTPROC
  82957. -# define CFI_ENDPROC
  82958. -# define CFI_DEF_CFA(reg, off)
  82959. -# define CFI_DEF_CFA_REGISTER(reg)
  82960. -# define CFI_DEF_CFA_OFFSET(off)
  82961. -# define CFI_ADJUST_CFA_OFFSET(off)
  82962. -# define CFI_OFFSET(reg, off)
  82963. -# define CFI_REL_OFFSET(reg, off)
  82964. -# define CFI_REGISTER(r1, r2)
  82965. -# define CFI_RETURN_COLUMN(reg)
  82966. -# define CFI_RESTORE(reg)
  82967. -# define CFI_UNDEFINED(reg)
  82968. -# define CFI_REMEMBER_STATE
  82969. -# define CFI_RESTORE_STATE
  82970. -# define CFI_WINDOW_SAVE
  82971. -# endif
  82972. -
  82973. -#endif /* __ASSEMBLER__ */
  82974. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/arm/tls.h
  82975. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/tls.h 2012-05-15 09:20:09.000000000 +0200
  82976. +++ uClibc-git/libpthread/linuxthreads/sysdeps/arm/tls.h 2014-06-02 17:40:35.002717453 +0200
  82977. @@ -13,9 +13,8 @@
  82978. Lesser General Public License for more details.
  82979. You should have received a copy of the GNU Lesser General Public
  82980. - License along with the GNU C Library; if not, write to the Free
  82981. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82982. - 02111-1307 USA. */
  82983. + License along with the GNU C Library; if not, see
  82984. + <http://www.gnu.org/licenses/>. */
  82985. #ifndef _TLS_H
  82986. #define _TLS_H
  82987. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/cris/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/cris/pspinlock.c
  82988. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/cris/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  82989. +++ uClibc-git/libpthread/linuxthreads/sysdeps/cris/pspinlock.c 2014-06-02 17:40:35.002717453 +0200
  82990. @@ -13,9 +13,8 @@
  82991. Lesser General Public License for more details.
  82992. You should have received a copy of the GNU Lesser General Public
  82993. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82994. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82995. - Boston, MA 02111-1307, USA. */
  82996. + License along with the GNU C Library; see the file COPYING.LIB. If
  82997. + not, see <http://www.gnu.org/licenses/>. */
  82998. #include <errno.h>
  82999. #include <pthread.h>
  83000. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/cris/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/cris/pt-machine.h
  83001. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/cris/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  83002. +++ uClibc-git/libpthread/linuxthreads/sysdeps/cris/pt-machine.h 2014-06-02 17:40:35.002717453 +0200
  83003. @@ -14,9 +14,8 @@
  83004. Lesser General Public License for more details.
  83005. You should have received a copy of the GNU Lesser General Public
  83006. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83007. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83008. - Boston, MA 02111-1307, USA. */
  83009. + License along with the GNU C Library; see the file COPYING.LIB. If
  83010. + not, see <http://www.gnu.org/licenses/>. */
  83011. #ifndef _PT_MACHINE_H
  83012. #define _PT_MACHINE_H 1
  83013. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/hppa/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/hppa/pspinlock.c
  83014. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/hppa/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  83015. +++ uClibc-git/libpthread/linuxthreads/sysdeps/hppa/pspinlock.c 2014-06-02 17:40:35.002717453 +0200
  83016. @@ -13,9 +13,8 @@
  83017. Lesser General Public License for more details.
  83018. You should have received a copy of the GNU Lesser General Public
  83019. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83020. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83021. - Boston, MA 02111-1307, USA. */
  83022. + License along with the GNU C Library; see the file COPYING.LIB. If
  83023. + not, see <http://www.gnu.org/licenses/>. */
  83024. #include <errno.h>
  83025. #include <pthread.h>
  83026. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/hppa/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/hppa/pt-machine.h
  83027. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/hppa/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  83028. +++ uClibc-git/libpthread/linuxthreads/sysdeps/hppa/pt-machine.h 2014-06-02 17:40:35.002717453 +0200
  83029. @@ -15,9 +15,8 @@
  83030. Lesser General Public License for more details.
  83031. You should have received a copy of the GNU Lesser General Public
  83032. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83033. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83034. - Boston, MA 02111-1307, USA. */
  83035. + License along with the GNU C Library; see the file COPYING.LIB. If
  83036. + not, see <http://www.gnu.org/licenses/>. */
  83037. #ifndef _PT_MACHINE_H
  83038. #define _PT_MACHINE_H 1
  83039. 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
  83040. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/i686/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  83041. +++ uClibc-git/libpthread/linuxthreads/sysdeps/i386/i686/pt-machine.h 2014-06-02 17:40:35.002717453 +0200
  83042. @@ -15,9 +15,8 @@
  83043. Lesser General Public License for more details.
  83044. You should have received a copy of the GNU Lesser General Public
  83045. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83046. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83047. - Boston, MA 02111-1307, USA. */
  83048. + License along with the GNU C Library; see the file COPYING.LIB. If
  83049. + not, see <http://www.gnu.org/licenses/>. */
  83050. #ifndef _PT_MACHINE_H
  83051. #define _PT_MACHINE_H 1
  83052. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/i386/pspinlock.c
  83053. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  83054. +++ uClibc-git/libpthread/linuxthreads/sysdeps/i386/pspinlock.c 2014-06-02 17:40:35.002717453 +0200
  83055. @@ -13,9 +13,8 @@
  83056. Lesser General Public License for more details.
  83057. You should have received a copy of the GNU Lesser General Public
  83058. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83059. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83060. - Boston, MA 02111-1307, USA. */
  83061. + License along with the GNU C Library; see the file COPYING.LIB. If
  83062. + not, see <http://www.gnu.org/licenses/>. */
  83063. #include <errno.h>
  83064. #include <pthread.h>
  83065. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/i386/pt-machine.h
  83066. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  83067. +++ uClibc-git/libpthread/linuxthreads/sysdeps/i386/pt-machine.h 2014-06-02 17:40:35.006717475 +0200
  83068. @@ -15,9 +15,8 @@
  83069. Lesser General Public License for more details.
  83070. You should have received a copy of the GNU Lesser General Public
  83071. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83072. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83073. - Boston, MA 02111-1307, USA. */
  83074. + License along with the GNU C Library; see the file COPYING.LIB. If
  83075. + not, see <http://www.gnu.org/licenses/>. */
  83076. #if defined __pentiumpro__ || defined __pentium4__ || defined __athlon__ || \
  83077. defined __k8__
  83078. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/i386/tls.h
  83079. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/tls.h 2012-05-15 09:20:09.000000000 +0200
  83080. +++ uClibc-git/libpthread/linuxthreads/sysdeps/i386/tls.h 2014-06-02 17:40:35.006717475 +0200
  83081. @@ -13,9 +13,8 @@
  83082. Lesser General Public License for more details.
  83083. You should have received a copy of the GNU Lesser General Public
  83084. - License along with the GNU C Library; if not, write to the Free
  83085. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83086. - 02111-1307 USA. */
  83087. + License along with the GNU C Library; if not, see
  83088. + <http://www.gnu.org/licenses/>. */
  83089. #ifndef _TLS_H
  83090. #define _TLS_H
  83091. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/useldt.h uClibc-git/libpthread/linuxthreads/sysdeps/i386/useldt.h
  83092. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/useldt.h 2012-05-15 09:20:09.000000000 +0200
  83093. +++ uClibc-git/libpthread/linuxthreads/sysdeps/i386/useldt.h 2014-06-02 17:40:35.006717475 +0200
  83094. @@ -16,8 +16,7 @@
  83095. You should have received a copy of the GNU Lesser General Public
  83096. License along with the GNU C Library; see the file COPYING.LIB. If not,
  83097. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83098. - Boston, MA 02111-1307, USA. */
  83099. + see <http://www.gnu.org/licenses/>. */
  83100. #ifndef __ASSEMBLER__
  83101. #include <stddef.h> /* For offsetof. */
  83102. @@ -87,7 +86,7 @@
  83103. because we inherited the value set up in the main thread by TLS setup.
  83104. We need to extract that value and set up the same segment in this
  83105. thread. */
  83106. -#if defined (USE_TLS) && USE_TLS
  83107. +#ifdef __UCLIBC_HAS_TLS__
  83108. # define DO_SET_THREAD_AREA_REUSE(nr) 1
  83109. #else
  83110. /* Without TLS, we do the initialization of the main thread, where NR == 0. */
  83111. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/ia64/pspinlock.c
  83112. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  83113. +++ uClibc-git/libpthread/linuxthreads/sysdeps/ia64/pspinlock.c 2014-06-02 17:40:35.006717475 +0200
  83114. @@ -14,9 +14,8 @@
  83115. Lesser General Public License for more details.
  83116. You should have received a copy of the GNU Lesser General Public
  83117. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83118. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83119. - Boston, MA 02111-1307, USA. */
  83120. + License along with the GNU C Library; see the file COPYING.LIB. If
  83121. + not, see <http://www.gnu.org/licenses/>. */
  83122. #include <errno.h>
  83123. #include <pthread.h>
  83124. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/ia64/pt-machine.h
  83125. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  83126. +++ uClibc-git/libpthread/linuxthreads/sysdeps/ia64/pt-machine.h 2014-06-02 17:40:35.006717475 +0200
  83127. @@ -14,9 +14,8 @@
  83128. Lesser General Public License for more details.
  83129. You should have received a copy of the GNU Lesser General Public
  83130. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83131. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83132. - Boston, MA 02111-1307, USA. */
  83133. + License along with the GNU C Library; see the file COPYING.LIB. If
  83134. + not, see <http://www.gnu.org/licenses/>. */
  83135. #ifndef _PT_MACHINE_H
  83136. #define _PT_MACHINE_H 1
  83137. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/tcb-offsets.sym uClibc-git/libpthread/linuxthreads/sysdeps/ia64/tcb-offsets.sym
  83138. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/tcb-offsets.sym 2012-05-15 09:20:09.000000000 +0200
  83139. +++ uClibc-git/libpthread/linuxthreads/sysdeps/ia64/tcb-offsets.sym 2014-06-02 17:40:35.006717475 +0200
  83140. @@ -2,7 +2,7 @@
  83141. #include <tls.h>
  83142. --
  83143. -#ifdef USE_TLS
  83144. +#ifdef __UCLIBC_HAS_TLS__
  83145. MULTIPLE_THREADS_OFFSET offsetof (struct _pthread_descr_struct, p_multiple_threads) - sizeof (struct _pthread_descr_struct)
  83146. #else
  83147. MULTIPLE_THREADS_OFFSET offsetof (tcbhead_t, multiple_threads)
  83148. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/ia64/tls.h
  83149. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/tls.h 2012-05-15 09:20:09.000000000 +0200
  83150. +++ uClibc-git/libpthread/linuxthreads/sysdeps/ia64/tls.h 2014-06-02 17:40:35.006717475 +0200
  83151. @@ -13,9 +13,8 @@
  83152. Lesser General Public License for more details.
  83153. You should have received a copy of the GNU Lesser General Public
  83154. - License along with the GNU C Library; if not, write to the Free
  83155. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83156. - 02111-1307 USA. */
  83157. + License along with the GNU C Library; if not, see
  83158. + <http://www.gnu.org/licenses/>. */
  83159. #ifndef _TLS_H
  83160. #define _TLS_H
  83161. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/m68k/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/m68k/pspinlock.c
  83162. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/m68k/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  83163. +++ uClibc-git/libpthread/linuxthreads/sysdeps/m68k/pspinlock.c 2014-06-02 17:40:35.006717475 +0200
  83164. @@ -13,9 +13,8 @@
  83165. Lesser General Public License for more details.
  83166. You should have received a copy of the GNU Lesser General Public
  83167. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83168. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83169. - Boston, MA 02111-1307, USA. */
  83170. + License along with the GNU C Library; see the file COPYING.LIB. If
  83171. + not, see <http://www.gnu.org/licenses/>. */
  83172. #include <errno.h>
  83173. #include <pthread.h>
  83174. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h
  83175. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  83176. +++ uClibc-git/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h 2014-06-02 17:40:35.006717475 +0200
  83177. @@ -16,8 +16,7 @@
  83178. You should have received a copy of the GNU Lesser General Public
  83179. License along with the GNU C Library; see the file COPYING.LIB. If
  83180. - not, write to the Free Software Foundation, Inc.,
  83181. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  83182. + not, see <http://www.gnu.org/licenses/>. */
  83183. #ifndef _PT_MACHINE_H
  83184. #define _PT_MACHINE_H 1
  83185. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/mips/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/mips/pspinlock.c
  83186. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/mips/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  83187. +++ uClibc-git/libpthread/linuxthreads/sysdeps/mips/pspinlock.c 2014-06-02 17:40:35.006717475 +0200
  83188. @@ -13,9 +13,8 @@
  83189. Lesser General Public License for more details.
  83190. You should have received a copy of the GNU Lesser General Public
  83191. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83192. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83193. - Boston, MA 02111-1307, USA. */
  83194. + License along with the GNU C Library; see the file COPYING.LIB. If
  83195. + not, see <http://www.gnu.org/licenses/>. */
  83196. #include <errno.h>
  83197. #include <pthread.h>
  83198. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/mips/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/mips/pt-machine.h
  83199. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/mips/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  83200. +++ uClibc-git/libpthread/linuxthreads/sysdeps/mips/pt-machine.h 2014-06-02 17:40:35.006717475 +0200
  83201. @@ -18,8 +18,7 @@
  83202. You should have received a copy of the GNU Lesser General Public
  83203. License along with the GNU C Library; see the file COPYING.LIB. If
  83204. - not, write to the Free Software Foundation, Inc.,
  83205. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  83206. + not, see <http://www.gnu.org/licenses/>. */
  83207. #ifndef _PT_MACHINE_H
  83208. #define _PT_MACHINE_H 1
  83209. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/mips/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/mips/tls.h
  83210. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/mips/tls.h 2012-05-15 09:20:09.000000000 +0200
  83211. +++ uClibc-git/libpthread/linuxthreads/sysdeps/mips/tls.h 2014-06-02 17:40:35.006717475 +0200
  83212. @@ -13,9 +13,8 @@
  83213. Lesser General Public License for more details.
  83214. You should have received a copy of the GNU Lesser General Public
  83215. - License along with the GNU C Library; if not, write to the Free
  83216. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83217. - 02111-1307 USA. */
  83218. + License along with the GNU C Library; if not, see
  83219. + <http://www.gnu.org/licenses/>. */
  83220. #ifndef _TLS_H
  83221. #define _TLS_H
  83222. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pspinlock.c
  83223. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  83224. +++ uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pspinlock.c 2014-06-02 17:40:35.006717475 +0200
  83225. @@ -13,9 +13,8 @@
  83226. Lesser General Public License for more details.
  83227. You should have received a copy of the GNU Lesser General Public
  83228. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83229. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83230. - Boston, MA 02111-1307, USA. */
  83231. + License along with the GNU C Library; see the file COPYING.LIB. If
  83232. + not, see <http://www.gnu.org/licenses/>. */
  83233. #include <errno.h>
  83234. #include <pthread.h>
  83235. 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
  83236. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  83237. +++ uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pt-machine.h 2014-06-02 17:40:35.006717475 +0200
  83238. @@ -16,8 +16,7 @@
  83239. You should have received a copy of the GNU Lesser General Public
  83240. License along with the GNU C Library; see the file COPYING.LIB. If
  83241. - not, write to the Free Software Foundation, Inc.,
  83242. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  83243. + not, see <http://www.gnu.org/licenses/>. */
  83244. /* These routines are from Appendix G of the 'PowerPC 601 RISC Microprocessor
  83245. User's Manual', by IBM and Motorola. */
  83246. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/powerpc64/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/powerpc64/pspinlock.c
  83247. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/powerpc64/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  83248. +++ uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/powerpc64/pspinlock.c 2014-06-02 17:40:35.006717475 +0200
  83249. @@ -13,9 +13,8 @@
  83250. Lesser General Public License for more details.
  83251. You should have received a copy of the GNU Lesser General Public
  83252. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83253. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83254. - Boston, MA 02111-1307, USA. */
  83255. + License along with the GNU C Library; see the file COPYING.LIB. If
  83256. + not, see <http://www.gnu.org/licenses/>. */
  83257. #include <errno.h>
  83258. #include <pthread.h>
  83259. 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
  83260. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/powerpc64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  83261. +++ uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/powerpc64/pt-machine.h 2014-06-02 17:40:35.006717475 +0200
  83262. @@ -15,8 +15,7 @@
  83263. You should have received a copy of the GNU Library General Public
  83264. License along with the GNU C Library; see the file COPYING.LIB. If
  83265. - not, write to the Free Software Foundation, Inc.,
  83266. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  83267. + not, see <http://www.gnu.org/licenses/>. */
  83268. /* These routines are from Appendix G of the 'PowerPC 601 RISC Microprocessor
  83269. User's Manual', by IBM and Motorola. */
  83270. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/tcb-offsets.sym uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/tcb-offsets.sym
  83271. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/tcb-offsets.sym 2012-05-15 09:20:09.000000000 +0200
  83272. +++ uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/tcb-offsets.sym 2014-06-02 17:40:35.006717475 +0200
  83273. @@ -3,7 +3,7 @@
  83274. -- This line separates the #include lines from conditionals.
  83275. -# ifdef USE_TLS
  83276. +# ifdef __UCLIBC_HAS_TLS__
  83277. -- Abuse tls.h macros to derive offsets relative to the thread register.
  83278. # undef __thread_register
  83279. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/tls.h
  83280. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/tls.h 2012-05-15 09:20:09.000000000 +0200
  83281. +++ uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/tls.h 2014-06-02 17:40:35.006717475 +0200
  83282. @@ -13,9 +13,8 @@
  83283. Lesser General Public License for more details.
  83284. You should have received a copy of the GNU Lesser General Public
  83285. - License along with the GNU C Library; if not, write to the Free
  83286. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83287. - 02111-1307 USA. */
  83288. + License along with the GNU C Library; if not, see
  83289. + <http://www.gnu.org/licenses/>. */
  83290. #ifndef _TLS_H
  83291. #define _TLS_H
  83292. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/initspin.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/initspin.h
  83293. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/initspin.h 2012-05-15 09:20:09.000000000 +0200
  83294. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/initspin.h 2014-06-02 17:40:35.010717497 +0200
  83295. @@ -13,9 +13,8 @@
  83296. Lesser General Public License for more details.
  83297. You should have received a copy of the GNU Lesser General Public
  83298. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83299. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83300. - Boston, MA 02111-1307, USA. */
  83301. + License along with the GNU C Library; see the file COPYING.LIB. If
  83302. + not, see <http://www.gnu.org/licenses/>. */
  83303. /* Initial value of a spinlock. Most platforms should use zero,
  83304. unless they only implement a "test and clear" operation instead of
  83305. 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
  83306. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/libc-lock.h 2012-05-15 09:20:09.000000000 +0200
  83307. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/libc-lock.h 2014-06-02 17:40:35.010717497 +0200
  83308. @@ -14,9 +14,8 @@
  83309. Lesser General Public License for more details.
  83310. You should have received a copy of the GNU Lesser General Public
  83311. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83312. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83313. - Boston, MA 02111-1307, USA. */
  83314. + License along with the GNU C Library; see the file COPYING.LIB. If
  83315. + not, see <http://www.gnu.org/licenses/>. */
  83316. #ifndef _BITS_LIBC_LOCK_H
  83317. #define _BITS_LIBC_LOCK_H 1
  83318. @@ -293,7 +292,7 @@
  83319. library. */
  83320. extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
  83321. - __const pthread_mutexattr_t *__mutex_attr);
  83322. + const pthread_mutexattr_t *__mutex_attr);
  83323. extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
  83324. @@ -312,7 +311,7 @@
  83325. #ifdef __USE_UNIX98
  83326. extern int __pthread_rwlock_init (pthread_rwlock_t *__rwlock,
  83327. - __const pthread_rwlockattr_t *__attr);
  83328. + const pthread_rwlockattr_t *__attr);
  83329. extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
  83330. @@ -331,7 +330,7 @@
  83331. void (*__destr_function) (void *));
  83332. extern int __pthread_setspecific (pthread_key_t __key,
  83333. - __const void *__pointer);
  83334. + const void *__pointer);
  83335. extern void *__pthread_getspecific (pthread_key_t __key);
  83336. 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
  83337. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/libc-tsd.h 2012-05-15 09:20:09.000000000 +0200
  83338. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/libc-tsd.h 2014-06-02 17:40:35.010717497 +0200
  83339. @@ -13,18 +13,16 @@
  83340. Lesser General Public License for more details.
  83341. You should have received a copy of the GNU Lesser General Public
  83342. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83343. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83344. - Boston, MA 02111-1307, USA. */
  83345. + License along with the GNU C Library; see the file COPYING.LIB. If
  83346. + not, see <http://www.gnu.org/licenses/>. */
  83347. #ifndef _BITS_LIBC_TSD_H
  83348. #define _BITS_LIBC_TSD_H 1
  83349. #include <linuxthreads/descr.h>
  83350. +#ifdef __UCLIBC_HAS_TLS__
  83351. #include <tls.h>
  83352. -#if USE_TLS && HAVE___THREAD
  83353. -
  83354. /* When __thread works, the generic definition is what we want. */
  83355. # include <sysdeps/generic/bits/libc-tsd.h>
  83356. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h
  83357. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
  83358. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h 2014-06-02 17:40:35.010717497 +0200
  83359. @@ -19,6 +19,9 @@
  83360. #ifndef _BITS_PTHREADTYPES_H
  83361. #define _BITS_PTHREADTYPES_H 1
  83362. +#define __need_size_t
  83363. +#include <stddef.h>
  83364. +
  83365. #define __need_schedparam
  83366. #include <bits/sched.h>
  83367. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/typesizes.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/typesizes.h
  83368. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
  83369. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/typesizes.h 2014-06-02 17:40:35.010717497 +0200
  83370. @@ -13,9 +13,8 @@
  83371. Lesser General Public License for more details.
  83372. You should have received a copy of the GNU Lesser General Public
  83373. - License along with the GNU C Library; if not, write to the Free
  83374. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83375. - 02111-1307 USA. */
  83376. + License along with the GNU C Library; if not, see
  83377. + <http://www.gnu.org/licenses/>. */
  83378. #ifndef _BITS_TYPES_H
  83379. # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
  83380. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/.cvsignore uClibc-git/libpthread/linuxthreads/sysdeps/pthread/.cvsignore
  83381. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/.cvsignore 2012-05-15 09:20:09.000000000 +0200
  83382. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/.cvsignore 1970-01-01 01:00:00.000000000 +0100
  83383. @@ -1,2 +0,0 @@
  83384. -.cvsignore
  83385. -*.os
  83386. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/errno-loc.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/errno-loc.c
  83387. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/errno-loc.c 2012-05-15 09:20:09.000000000 +0200
  83388. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/errno-loc.c 2014-06-02 17:40:35.010717497 +0200
  83389. @@ -14,26 +14,25 @@
  83390. Lesser General Public License for more details.
  83391. You should have received a copy of the GNU Lesser General Public
  83392. - License along with the GNU C Library; if not, write to the Free
  83393. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83394. - 02111-1307 USA. */
  83395. + License along with the GNU C Library; if not, see
  83396. + <http://www.gnu.org/licenses/>. */
  83397. #include <errno.h>
  83398. #include <linuxthreads/internals.h>
  83399. #include <sysdep-cancel.h>
  83400. -#if ! USE___THREAD && !RTLD_PRIVATE_ERRNO
  83401. +#if !defined __UCLIBC_HAS_TLS__ && !RTLD_PRIVATE_ERRNO
  83402. #undef errno
  83403. extern int errno;
  83404. #endif
  83405. int *
  83406. -#if ! USE___THREAD
  83407. +#ifndef __UCLIBC_HAS_TLS__
  83408. weak_const_function
  83409. #endif
  83410. __errno_location (void)
  83411. {
  83412. -#if ! USE___THREAD && !defined NOT_IN_libc
  83413. +#if !defined __UCLIBC_HAS_TLS__ && !defined NOT_IN_libc
  83414. if (! SINGLE_THREAD_P)
  83415. {
  83416. pthread_descr self = thread_self();
  83417. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/flockfile.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/flockfile.c
  83418. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/flockfile.c 2012-05-15 09:20:09.000000000 +0200
  83419. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/flockfile.c 2014-06-02 17:40:35.010717497 +0200
  83420. @@ -13,9 +13,8 @@
  83421. Lesser General Public License for more details.
  83422. You should have received a copy of the GNU Lesser General Public
  83423. - License along with the GNU C Library; if not, write to the Free
  83424. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83425. - 02111-1307 USA. */
  83426. + License along with the GNU C Library; if not, see
  83427. + <http://www.gnu.org/licenses/>. */
  83428. #include <pthread.h>
  83429. #include <stdio.h>
  83430. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/ftrylockfile.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/ftrylockfile.c
  83431. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/ftrylockfile.c 2012-05-15 09:20:09.000000000 +0200
  83432. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/ftrylockfile.c 2014-06-02 17:40:35.010717497 +0200
  83433. @@ -13,9 +13,8 @@
  83434. Lesser General Public License for more details.
  83435. You should have received a copy of the GNU Lesser General Public
  83436. - License along with the GNU C Library; if not, write to the Free
  83437. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83438. - 02111-1307 USA. */
  83439. + License along with the GNU C Library; if not, see
  83440. + <http://www.gnu.org/licenses/>. */
  83441. #include <errno.h>
  83442. #include <pthread.h>
  83443. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/funlockfile.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/funlockfile.c
  83444. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/funlockfile.c 2012-05-15 09:20:09.000000000 +0200
  83445. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/funlockfile.c 2014-06-02 17:40:35.010717497 +0200
  83446. @@ -13,9 +13,8 @@
  83447. Lesser General Public License for more details.
  83448. You should have received a copy of the GNU Lesser General Public
  83449. - License along with the GNU C Library; if not, write to the Free
  83450. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83451. - 02111-1307 USA. */
  83452. + License along with the GNU C Library; if not, see
  83453. + <http://www.gnu.org/licenses/>. */
  83454. #include <pthread.h>
  83455. #include <stdio.h>
  83456. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/getcpuclockid.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/getcpuclockid.c
  83457. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/getcpuclockid.c 2012-05-15 09:20:09.000000000 +0200
  83458. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/getcpuclockid.c 2014-06-02 17:40:35.010717497 +0200
  83459. @@ -13,9 +13,8 @@
  83460. Lesser General Public License for more details.
  83461. You should have received a copy of the GNU Lesser General Public
  83462. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83463. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83464. - Boston, MA 02111-1307, USA. */
  83465. + License along with the GNU C Library; see the file COPYING.LIB. If
  83466. + not, see <http://www.gnu.org/licenses/>. */
  83467. #include <errno.h>
  83468. #include <pthread.h>
  83469. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c
  83470. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c 2012-05-15 09:20:09.000000000 +0200
  83471. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c 2014-06-02 17:40:35.010717497 +0200
  83472. @@ -12,16 +12,15 @@
  83473. Lesser General Public License for more details.
  83474. You should have received a copy of the GNU Lesser General Public
  83475. - License along with the GNU C Library; if not, write to the Free
  83476. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83477. - 02111-1307 USA. */
  83478. + License along with the GNU C Library; if not, see
  83479. + <http://www.gnu.org/licenses/>. */
  83480. #include <netdb.h>
  83481. #include <tls.h>
  83482. #include <linuxthreads/internals.h>
  83483. #include <sysdep-cancel.h>
  83484. -#if ! USE___THREAD
  83485. +#ifndef __UCLIBC_HAS_TLS__
  83486. # undef h_errno
  83487. extern int h_errno;
  83488. #endif
  83489. @@ -31,7 +30,7 @@
  83490. weak_const_function
  83491. __h_errno_location (void)
  83492. {
  83493. -#if ! USE___THREAD
  83494. +#ifndef __UCLIBC_HAS_TLS__
  83495. if (! SINGLE_THREAD_P)
  83496. {
  83497. pthread_descr self = thread_self();
  83498. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/list.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/list.h
  83499. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/list.h 2012-05-15 09:20:09.000000000 +0200
  83500. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/list.h 2014-06-02 17:40:35.010717497 +0200
  83501. @@ -13,9 +13,8 @@
  83502. Lesser General Public License for more details.
  83503. You should have received a copy of the GNU Lesser General Public
  83504. - License along with the GNU C Library; if not, write to the Free
  83505. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83506. - 02111-1307 USA. */
  83507. + License along with the GNU C Library; if not, see
  83508. + <http://www.gnu.org/licenses/>. */
  83509. #ifndef _LIST_H
  83510. #define _LIST_H 1
  83511. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/malloc-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/malloc-machine.h
  83512. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/malloc-machine.h 2012-05-15 09:20:09.000000000 +0200
  83513. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/malloc-machine.h 2014-06-02 17:40:35.010717497 +0200
  83514. @@ -14,9 +14,8 @@
  83515. Lesser General Public License for more details.
  83516. You should have received a copy of the GNU Lesser General Public
  83517. - License along with the GNU C Library; if not, write to the Free
  83518. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83519. - 02111-1307 USA. */
  83520. + License along with the GNU C Library; if not, see
  83521. + <http://www.gnu.org/licenses/>. */
  83522. #ifndef _MALLOC_MACHINE_H
  83523. #define _MALLOC_MACHINE_H
  83524. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/not-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/not-cancel.h
  83525. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/not-cancel.h 2012-05-15 09:20:09.000000000 +0200
  83526. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/not-cancel.h 2014-06-02 17:40:35.010717497 +0200
  83527. @@ -14,18 +14,26 @@
  83528. Lesser General Public License for more details.
  83529. You should have received a copy of the GNU Lesser General Public
  83530. - License along with the GNU C Library; if not, write to the Free
  83531. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83532. - 02111-1307 USA. */
  83533. + License along with the GNU C Library; if not, see
  83534. + <http://www.gnu.org/licenses/>. */
  83535. #include <sys/types.h>
  83536. #include <sysdep.h>
  83537. /* Uncancelable open. */
  83538. +#if defined __NR_openat && !defined __NR_open
  83539. +#define open_not_cancel(name, flags, mode) \
  83540. + INLINE_SYSCALL (openat, 4, (int) (AT_FDCWD), (const char *) (name), \
  83541. + (flags), (mode))
  83542. +#define open_not_cancel_2(name, flags) \
  83543. + INLINE_SYSCALL (openat, 3, (int) (AT_FDCWD), (const char *) (name), \
  83544. + (flags))
  83545. +#else
  83546. #define open_not_cancel(name, flags, mode) \
  83547. INLINE_SYSCALL (open, 3, (const char *) (name), (flags), (mode))
  83548. #define open_not_cancel_2(name, flags) \
  83549. INLINE_SYSCALL (open, 2, (const char *) (name), (flags))
  83550. +#endif
  83551. /* Uncancelable openat. */
  83552. #if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
  83553. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/posix-timer.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/posix-timer.h
  83554. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/posix-timer.h 2012-05-15 09:20:09.000000000 +0200
  83555. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/posix-timer.h 2014-06-02 17:40:35.010717497 +0200
  83556. @@ -14,9 +14,8 @@
  83557. Lesser General Public License for more details.
  83558. You should have received a copy of the GNU Lesser General Public
  83559. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83560. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83561. - Boston, MA 02111-1307, USA. */
  83562. + License along with the GNU C Library; see the file COPYING.LIB. If
  83563. + not, see <http://www.gnu.org/licenses/>. */
  83564. #include <limits.h>
  83565. #include <signal.h>
  83566. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/pthread-functions.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/pthread-functions.h
  83567. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/pthread-functions.h 2012-05-15 09:20:09.000000000 +0200
  83568. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/pthread-functions.h 2014-06-02 17:40:35.010717497 +0200
  83569. @@ -13,9 +13,8 @@
  83570. Lesser General Public License for more details.
  83571. You should have received a copy of the GNU Lesser General Public
  83572. - License along with the GNU C Library; if not, write to the Free
  83573. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83574. - 02111-1307 USA. */
  83575. + License along with the GNU C Library; if not, see
  83576. + <http://www.gnu.org/licenses/>. */
  83577. #ifndef _PTHREAD_FUNCTIONS_H
  83578. #define _PTHREAD_FUNCTIONS_H 1
  83579. @@ -72,10 +71,12 @@
  83580. void (*ptr_pthread_cleanup_upto) (__jmp_buf target,
  83581. char *targetframe);
  83582. pthread_descr (*ptr_pthread_thread_self) (void);
  83583. +#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__
  83584. int (*ptr_pthread_internal_tsd_set) (int key, const void *pointer);
  83585. void * (*ptr_pthread_internal_tsd_get) (int key);
  83586. void ** __attribute__ ((__const__))
  83587. (*ptr_pthread_internal_tsd_address) (int key);
  83588. +#endif
  83589. int (*ptr_pthread_sigaction) (int sig, const struct sigaction * act,
  83590. struct sigaction *oact);
  83591. int (*ptr_pthread_sigwait) (const sigset_t *set, int *sig);
  83592. @@ -95,4 +96,6 @@
  83593. /* Variable in libc.so. */
  83594. extern struct pthread_functions __libc_pthread_functions attribute_hidden;
  83595. +extern int * __libc_pthread_init (const struct pthread_functions *functions);
  83596. +
  83597. #endif /* pthread-functions.h */
  83598. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/pthread.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/pthread.h
  83599. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/pthread.h 2012-05-15 09:20:09.000000000 +0200
  83600. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/pthread.h 2014-06-02 17:40:35.010717497 +0200
  83601. @@ -161,7 +161,7 @@
  83602. if ATTR is NULL), and call function START_ROUTINE with given
  83603. arguments ARG. */
  83604. extern int pthread_create (pthread_t *__restrict __threadp,
  83605. - __const pthread_attr_t *__restrict __attr,
  83606. + const pthread_attr_t *__restrict __attr,
  83607. void *(*__start_routine) (void *),
  83608. void *__restrict __arg) __THROW;
  83609. @@ -201,16 +201,16 @@
  83610. int __detachstate) __THROW;
  83611. /* Return in *DETACHSTATE the `detachstate' attribute in *ATTR. */
  83612. -extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
  83613. +extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr,
  83614. int *__detachstate) __THROW;
  83615. /* Set scheduling parameters (priority, etc) in *ATTR according to PARAM. */
  83616. extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
  83617. - __const struct sched_param *__restrict
  83618. + const struct sched_param *__restrict
  83619. __param) __THROW;
  83620. /* Return in *PARAM the scheduling parameters of *ATTR. */
  83621. -extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
  83622. +extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict
  83623. __attr,
  83624. struct sched_param *__restrict __param)
  83625. __THROW;
  83626. @@ -220,7 +220,7 @@
  83627. __THROW;
  83628. /* Return in *POLICY the scheduling policy of *ATTR. */
  83629. -extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
  83630. +extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict
  83631. __attr, int *__restrict __policy)
  83632. __THROW;
  83633. @@ -229,7 +229,7 @@
  83634. int __inherit) __THROW;
  83635. /* Return in *INHERIT the scheduling inheritance mode of *ATTR. */
  83636. -extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
  83637. +extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict
  83638. __attr, int *__restrict __inherit)
  83639. __THROW;
  83640. @@ -238,7 +238,7 @@
  83641. __THROW;
  83642. /* Return in *SCOPE the scheduling contention scope of *ATTR. */
  83643. -extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
  83644. +extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr,
  83645. int *__restrict __scope) __THROW;
  83646. #ifdef __USE_UNIX98
  83647. @@ -247,7 +247,7 @@
  83648. size_t __guardsize) __THROW;
  83649. /* Get the size of the guard area at the bottom of the thread. */
  83650. -extern int pthread_attr_getguardsize (__const pthread_attr_t *__restrict
  83651. +extern int pthread_attr_getguardsize (const pthread_attr_t *__restrict
  83652. __attr, size_t *__restrict __guardsize)
  83653. __THROW;
  83654. #endif
  83655. @@ -261,7 +261,7 @@
  83656. void *__stackaddr) __THROW;
  83657. /* Return the previously set address for the stack. */
  83658. -extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
  83659. +extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict
  83660. __attr, void **__restrict __stackaddr)
  83661. __THROW;
  83662. #endif
  83663. @@ -274,7 +274,7 @@
  83664. size_t __stacksize) __THROW;
  83665. /* Return the previously set address for the stack. */
  83666. -extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
  83667. +extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr,
  83668. void **__restrict __stackaddr,
  83669. size_t *__restrict __stacksize) __THROW;
  83670. #endif
  83671. @@ -286,7 +286,7 @@
  83672. size_t __stacksize) __THROW;
  83673. /* Return the currently used minimal stack size. */
  83674. -extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
  83675. +extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict
  83676. __attr, size_t *__restrict __stacksize)
  83677. __THROW;
  83678. @@ -302,7 +302,7 @@
  83679. /* Set the scheduling parameters for TARGET_THREAD according to POLICY
  83680. and *PARAM. */
  83681. extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
  83682. - __const struct sched_param *__param)
  83683. + const struct sched_param *__param)
  83684. __THROW;
  83685. /* Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD. */
  83686. @@ -324,7 +324,7 @@
  83687. /* Initialize MUTEX using attributes in *MUTEX_ATTR, or use the
  83688. default values if later is NULL. */
  83689. extern int pthread_mutex_init (pthread_mutex_t *__restrict __mutex,
  83690. - __const pthread_mutexattr_t *__restrict
  83691. + const pthread_mutexattr_t *__restrict
  83692. __mutex_attr) __THROW;
  83693. /* Destroy MUTEX. */
  83694. @@ -339,7 +339,7 @@
  83695. #ifdef __USE_XOPEN2K
  83696. /* Wait until lock becomes available, or specified time passes. */
  83697. extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
  83698. - __const struct timespec *__restrict
  83699. + const struct timespec *__restrict
  83700. __abstime) __THROW;
  83701. #endif
  83702. @@ -357,7 +357,7 @@
  83703. extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) __THROW;
  83704. /* Get the process-shared flag of the mutex attribute ATTR. */
  83705. -extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
  83706. +extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t *
  83707. __restrict __attr,
  83708. int *__restrict __pshared) __THROW;
  83709. @@ -373,7 +373,7 @@
  83710. __THROW;
  83711. /* Return in *KIND the mutex kind attribute in *ATTR. */
  83712. -extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
  83713. +extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict
  83714. __attr, int *__restrict __kind) __THROW;
  83715. #endif
  83716. @@ -383,7 +383,7 @@
  83717. /* Initialize condition variable COND using attributes ATTR, or use
  83718. the default values if later is NULL. */
  83719. extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
  83720. - __const pthread_condattr_t *__restrict
  83721. + const pthread_condattr_t *__restrict
  83722. __cond_attr) __THROW;
  83723. /* Destroy condition variable COND. */
  83724. @@ -406,7 +406,7 @@
  83725. (00:00:00 GMT, January 1, 1970). */
  83726. extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
  83727. pthread_mutex_t *__restrict __mutex,
  83728. - __const struct timespec *__restrict
  83729. + const struct timespec *__restrict
  83730. __abstime);
  83731. /* Functions for handling condition variable attributes. */
  83732. @@ -418,7 +418,7 @@
  83733. extern int pthread_condattr_destroy (pthread_condattr_t *__attr) __THROW;
  83734. /* Get the process-shared flag of the condition variable attribute ATTR. */
  83735. -extern int pthread_condattr_getpshared (__const pthread_condattr_t *
  83736. +extern int pthread_condattr_getpshared (const pthread_condattr_t *
  83737. __restrict __attr,
  83738. int *__restrict __pshared) __THROW;
  83739. @@ -433,7 +433,7 @@
  83740. /* Initialize read-write lock RWLOCK using attributes ATTR, or use
  83741. the default values if later is NULL. */
  83742. extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
  83743. - __const pthread_rwlockattr_t *__restrict
  83744. + const pthread_rwlockattr_t *__restrict
  83745. __attr) __THROW;
  83746. /* Destroy read-write lock RWLOCK. */
  83747. @@ -448,7 +448,7 @@
  83748. # ifdef __USE_XOPEN2K
  83749. /* Try to acquire read lock for RWLOCK or return after specfied time. */
  83750. extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
  83751. - __const struct timespec *__restrict
  83752. + const struct timespec *__restrict
  83753. __abstime) __THROW;
  83754. # endif
  83755. @@ -461,7 +461,7 @@
  83756. # ifdef __USE_XOPEN2K
  83757. /* Try to acquire write lock for RWLOCK or return after specfied time. */
  83758. extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
  83759. - __const struct timespec *__restrict
  83760. + const struct timespec *__restrict
  83761. __abstime) __THROW;
  83762. # endif
  83763. @@ -478,7 +478,7 @@
  83764. extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) __THROW;
  83765. /* Return current setting of process-shared attribute of ATTR in PSHARED. */
  83766. -extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
  83767. +extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *
  83768. __restrict __attr,
  83769. int *__restrict __pshared) __THROW;
  83770. @@ -487,7 +487,7 @@
  83771. int __pshared) __THROW;
  83772. /* Return current setting of reader/writer preference. */
  83773. -extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *__attr,
  83774. +extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t *__attr,
  83775. int *__pref) __THROW;
  83776. /* Set reader/write preference. */
  83777. @@ -520,7 +520,7 @@
  83778. /* Barriers are a also a new feature in 1003.1j-2000. */
  83779. extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
  83780. - __const pthread_barrierattr_t *__restrict
  83781. + const pthread_barrierattr_t *__restrict
  83782. __attr, unsigned int __count) __THROW;
  83783. extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) __THROW;
  83784. @@ -529,7 +529,7 @@
  83785. extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) __THROW;
  83786. -extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
  83787. +extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t *
  83788. __restrict __attr,
  83789. int *__restrict __pshared) __THROW;
  83790. @@ -556,7 +556,7 @@
  83791. /* Store POINTER in the thread-specific data slot identified by KEY. */
  83792. extern int pthread_setspecific (pthread_key_t __key,
  83793. - __const void *__pointer) __THROW;
  83794. + const void *__pointer) __THROW;
  83795. /* Return current value of the thread-specific data slot identified by KEY. */
  83796. extern void *pthread_getspecific (pthread_key_t __key) __THROW;
  83797. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/pt-initfini.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/pt-initfini.c
  83798. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
  83799. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/pt-initfini.c 2014-06-02 17:40:35.010717497 +0200
  83800. @@ -23,8 +23,7 @@
  83801. You should have received a copy of the GNU Lesser General Public
  83802. License along with the GNU C Library; see the file COPYING.LIB. If not,
  83803. - write to the Free Software Foundation, 59 Temple Place - Suite 330,
  83804. - Boston, MA 02111-1307, USA. */
  83805. + see <http://www.gnu.org/licenses/>. */
  83806. /* This file is compiled into assembly code which is then munged by a sed
  83807. script into two files: crti.s and crtn.s.
  83808. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/ptlongjmp.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/ptlongjmp.c
  83809. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/ptlongjmp.c 2012-05-15 09:20:09.000000000 +0200
  83810. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/ptlongjmp.c 2014-06-02 17:40:35.010717497 +0200
  83811. @@ -19,13 +19,6 @@
  83812. #include "pthread.h"
  83813. #include "internals.h"
  83814. -/* These functions are not declared anywhere since they shouldn't be
  83815. - used at another place but here. */
  83816. -extern void __libc_siglongjmp (sigjmp_buf env, int val)
  83817. - __attribute__ ((noreturn));
  83818. -extern void __libc_longjmp (sigjmp_buf env, int val)
  83819. - __attribute__ ((noreturn));
  83820. -
  83821. #ifdef SHARED
  83822. void siglongjmp (sigjmp_buf env, int val)
  83823. {
  83824. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/res-state.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/res-state.c
  83825. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/res-state.c 2012-05-15 09:20:09.000000000 +0200
  83826. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/res-state.c 2014-06-02 17:40:35.010717497 +0200
  83827. @@ -12,28 +12,27 @@
  83828. Lesser General Public License for more details.
  83829. You should have received a copy of the GNU Lesser General Public
  83830. - License along with the GNU C Library; if not, write to the Free
  83831. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83832. - 02111-1307 USA. */
  83833. + License along with the GNU C Library; if not, see
  83834. + <http://www.gnu.org/licenses/>. */
  83835. #include <resolv.h>
  83836. #include <tls.h>
  83837. #include <linuxthreads/internals.h>
  83838. #include <sysdep-cancel.h>
  83839. -#if ! USE___THREAD
  83840. +#ifndef __UCLIBC_HAS_TLS__
  83841. # undef _res
  83842. extern struct __res_state _res;
  83843. #endif
  83844. /* When threaded, _res may be a per-thread variable. */
  83845. struct __res_state *
  83846. -#if ! USE___THREAD
  83847. +#ifndef __UCLIBC_HAS_TLS__
  83848. weak_const_function
  83849. #endif
  83850. __res_state (void)
  83851. {
  83852. -#if ! USE___THREAD
  83853. +#ifndef __UCLIBC_HAS_TLS__
  83854. if (! SINGLE_THREAD_P)
  83855. {
  83856. pthread_descr self = thread_self();
  83857. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/sigaction.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/sigaction.c
  83858. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/sigaction.c 2012-05-15 09:20:09.000000000 +0200
  83859. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/sigaction.c 2014-06-02 17:40:35.010717497 +0200
  83860. @@ -13,9 +13,8 @@
  83861. Lesser General Public License for more details.
  83862. You should have received a copy of the GNU Lesser General Public
  83863. - License along with the GNU C Library; if not, write to the Free
  83864. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83865. - 02111-1307 USA. */
  83866. + License along with the GNU C Library; if not, see
  83867. + <http://www.gnu.org/licenses/>. */
  83868. /* Somebody please explain what's going on here. --vda */
  83869. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_create.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_create.c
  83870. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_create.c 2012-05-15 09:20:09.000000000 +0200
  83871. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_create.c 2014-06-02 17:40:35.010717497 +0200
  83872. @@ -13,9 +13,8 @@
  83873. Lesser General Public License for more details.
  83874. You should have received a copy of the GNU Lesser General Public
  83875. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83876. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83877. - Boston, MA 02111-1307, USA. */
  83878. + License along with the GNU C Library; see the file COPYING.LIB. If
  83879. + not, see <http://www.gnu.org/licenses/>. */
  83880. #include <errno.h>
  83881. #include <signal.h>
  83882. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_delete.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_delete.c
  83883. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_delete.c 2012-05-15 09:20:09.000000000 +0200
  83884. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_delete.c 2014-06-02 17:40:35.010717497 +0200
  83885. @@ -13,9 +13,8 @@
  83886. Lesser General Public License for more details.
  83887. You should have received a copy of the GNU Lesser General Public
  83888. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83889. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83890. - Boston, MA 02111-1307, USA. */
  83891. + License along with the GNU C Library; see the file COPYING.LIB. If
  83892. + not, see <http://www.gnu.org/licenses/>. */
  83893. #include <assert.h>
  83894. #include <errno.h>
  83895. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_getoverr.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_getoverr.c
  83896. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_getoverr.c 2012-05-15 09:20:09.000000000 +0200
  83897. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_getoverr.c 2014-06-02 17:40:35.010717497 +0200
  83898. @@ -13,9 +13,8 @@
  83899. Lesser General Public License for more details.
  83900. You should have received a copy of the GNU Lesser General Public
  83901. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83902. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83903. - Boston, MA 02111-1307, USA. */
  83904. + License along with the GNU C Library; see the file COPYING.LIB. If
  83905. + not, see <http://www.gnu.org/licenses/>. */
  83906. #include <errno.h>
  83907. #include <pthread.h>
  83908. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_gettime.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_gettime.c
  83909. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_gettime.c 2012-05-15 09:20:09.000000000 +0200
  83910. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_gettime.c 2014-06-02 17:40:35.010717497 +0200
  83911. @@ -13,9 +13,8 @@
  83912. Lesser General Public License for more details.
  83913. You should have received a copy of the GNU Lesser General Public
  83914. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83915. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83916. - Boston, MA 02111-1307, USA. */
  83917. + License along with the GNU C Library; see the file COPYING.LIB. If
  83918. + not, see <http://www.gnu.org/licenses/>. */
  83919. #include <errno.h>
  83920. #include <pthread.h>
  83921. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_routines.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_routines.c
  83922. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_routines.c 2012-05-15 09:20:09.000000000 +0200
  83923. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_routines.c 2014-06-02 17:40:35.010717497 +0200
  83924. @@ -14,9 +14,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; see the file COPYING.LIB. If not,
  83928. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83929. - Boston, MA 02111-1307, USA. */
  83930. + License along with the GNU C Library; see the file COPYING.LIB. If
  83931. + not, see <http://www.gnu.org/licenses/>. */
  83932. #include <assert.h>
  83933. #include <errno.h>
  83934. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_settime.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_settime.c
  83935. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_settime.c 2012-05-15 09:20:09.000000000 +0200
  83936. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_settime.c 2014-06-02 17:40:35.010717497 +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/pthread/tst-timer.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/tst-timer.c
  83948. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/tst-timer.c 2012-05-15 09:20:09.000000000 +0200
  83949. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/tst-timer.c 2014-06-02 17:40:35.010717497 +0200
  83950. @@ -14,9 +14,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. #include <errno.h>
  83959. #include <signal.h>
  83960. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/s390/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/s390/pspinlock.c
  83961. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/s390/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  83962. +++ uClibc-git/libpthread/linuxthreads/sysdeps/s390/pspinlock.c 2014-06-02 17:40:35.010717497 +0200
  83963. @@ -14,9 +14,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/s390/s390-32/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/s390/s390-32/pt-machine.h
  83974. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/s390/s390-32/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  83975. +++ uClibc-git/libpthread/linuxthreads/sysdeps/s390/s390-32/pt-machine.h 2014-06-02 17:40:35.010717497 +0200
  83976. @@ -15,9 +15,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. #ifndef _PT_MACHINE_H
  83985. #define _PT_MACHINE_H 1
  83986. @@ -58,7 +57,7 @@
  83987. #define CURRENT_STACK_FRAME stack_pointer
  83988. register char * stack_pointer __asm__ ("15");
  83989. -#ifdef USE_TLS
  83990. +#ifdef __UCLIBC_HAS_TLS__
  83991. /* Return the thread descriptor for the current thread. */
  83992. # define THREAD_SELF ((pthread_descr) __builtin_thread_pointer ())
  83993. 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
  83994. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/s390/s390-64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  83995. +++ uClibc-git/libpthread/linuxthreads/sysdeps/s390/s390-64/pt-machine.h 2014-06-02 17:40:35.010717497 +0200
  83996. @@ -15,9 +15,8 @@
  83997. Lesser General Public License for more details.
  83998. You should have received a copy of the GNU Lesser General Public
  83999. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  84000. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  84001. - Boston, MA 02111-1307, USA. */
  84002. + License along with the GNU C Library; see the file COPYING.LIB. If
  84003. + not, see <http://www.gnu.org/licenses/>. */
  84004. #ifndef _PT_MACHINE_H
  84005. #define _PT_MACHINE_H 1
  84006. @@ -58,7 +57,7 @@
  84007. #define CURRENT_STACK_FRAME stack_pointer
  84008. register char * stack_pointer __asm__ ("15");
  84009. -#ifdef USE_TLS
  84010. +#ifdef __UCLIBC_HAS_TLS__
  84011. /* Return the thread descriptor for the current thread. */
  84012. # define THREAD_SELF ((pthread_descr) __builtin_thread_pointer ())
  84013. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/s390/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/s390/tls.h
  84014. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/s390/tls.h 2012-05-15 09:20:09.000000000 +0200
  84015. +++ uClibc-git/libpthread/linuxthreads/sysdeps/s390/tls.h 2014-06-02 17:40:35.010717497 +0200
  84016. @@ -13,9 +13,8 @@
  84017. Lesser General Public License for more details.
  84018. You should have received a copy of the GNU Lesser General Public
  84019. - License along with the GNU C Library; if not, write to the Free
  84020. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84021. - 02111-1307 USA. */
  84022. + License along with the GNU C Library; if not, see
  84023. + <http://www.gnu.org/licenses/>. */
  84024. #ifndef _TLS_H
  84025. #define _TLS_H
  84026. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/sh/pspinlock.c
  84027. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  84028. +++ uClibc-git/libpthread/linuxthreads/sysdeps/sh/pspinlock.c 2014-06-02 17:40:35.014717519 +0200
  84029. @@ -13,9 +13,8 @@
  84030. Lesser General Public License for more details.
  84031. You should have received a copy of the GNU Lesser General Public
  84032. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  84033. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  84034. - Boston, MA 02111-1307, USA. */
  84035. + License along with the GNU C Library; see the file COPYING.LIB. If
  84036. + not, see <http://www.gnu.org/licenses/>. */
  84037. #include <errno.h>
  84038. #include <pthread.h>
  84039. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/sh/pt-machine.h
  84040. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  84041. +++ uClibc-git/libpthread/linuxthreads/sysdeps/sh/pt-machine.h 2014-06-02 17:40:35.014717519 +0200
  84042. @@ -15,9 +15,8 @@
  84043. Lesser General Public License for more details.
  84044. You should have received a copy of the GNU Lesser General Public
  84045. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  84046. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  84047. - Boston, MA 02111-1307, USA. */
  84048. + License along with the GNU C Library; see the file COPYING.LIB. If
  84049. + not, see <http://www.gnu.org/licenses/>. */
  84050. #ifndef _PT_MACHINE_H
  84051. #define _PT_MACHINE_H 1
  84052. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/tcb-offsets.sym uClibc-git/libpthread/linuxthreads/sysdeps/sh/tcb-offsets.sym
  84053. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/tcb-offsets.sym 2012-05-15 09:20:09.000000000 +0200
  84054. +++ uClibc-git/libpthread/linuxthreads/sysdeps/sh/tcb-offsets.sym 2014-06-02 17:40:35.014717519 +0200
  84055. @@ -2,7 +2,7 @@
  84056. #include <tls.h>
  84057. --
  84058. -#ifdef USE_TLS
  84059. +#ifdef __UCLIBC_HAS_TLS__
  84060. MULTIPLE_THREADS_OFFSET offsetof (struct _pthread_descr_struct, p_multiple_threads)
  84061. TLS_PRE_TCB_SIZE sizeof (struct _pthread_descr_struct)
  84062. #else
  84063. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/sh/tls.h
  84064. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/tls.h 2012-05-15 09:20:09.000000000 +0200
  84065. +++ uClibc-git/libpthread/linuxthreads/sysdeps/sh/tls.h 2014-06-02 17:40:35.014717519 +0200
  84066. @@ -13,9 +13,8 @@
  84067. Lesser General Public License for more details.
  84068. You should have received a copy of the GNU Lesser General Public
  84069. - License along with the GNU C Library; if not, write to the Free
  84070. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84071. - 02111-1307 USA. */
  84072. + License along with the GNU C Library; if not, see
  84073. + <http://www.gnu.org/licenses/>. */
  84074. #ifndef _TLS_H
  84075. #define _TLS_H
  84076. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc32/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc32/pspinlock.c
  84077. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc32/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  84078. +++ uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc32/pspinlock.c 2014-06-02 17:40:35.014717519 +0200
  84079. @@ -13,9 +13,8 @@
  84080. Lesser General Public License for more details.
  84081. You should have received a copy of the GNU Lesser General Public
  84082. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  84083. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  84084. - Boston, MA 02111-1307, USA. */
  84085. + License along with the GNU C Library; see the file COPYING.LIB. If
  84086. + not, see <http://www.gnu.org/licenses/>. */
  84087. #include <errno.h>
  84088. #include <pthread.h>
  84089. 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
  84090. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc32/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  84091. +++ uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc32/pt-machine.h 2014-06-02 17:40:35.014717519 +0200
  84092. @@ -15,9 +15,8 @@
  84093. Lesser General Public License for more details.
  84094. You should have received a copy of the GNU Lesser General Public
  84095. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  84096. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  84097. - Boston, MA 02111-1307, USA. */
  84098. + License along with the GNU C Library; see the file COPYING.LIB. If
  84099. + not, see <http://www.gnu.org/licenses/>. */
  84100. #ifndef _PT_MACHINE_H
  84101. #define _PT_MACHINE_H 1
  84102. 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
  84103. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc32/sparcv9/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  84104. +++ uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc32/sparcv9/pspinlock.c 2014-06-02 17:40:35.014717519 +0200
  84105. @@ -13,9 +13,8 @@
  84106. Lesser General Public License for more details.
  84107. You should have received a copy of the GNU Lesser General Public
  84108. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  84109. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  84110. - Boston, MA 02111-1307, USA. */
  84111. + License along with the GNU C Library; see the file COPYING.LIB. If
  84112. + not, see <http://www.gnu.org/licenses/>. */
  84113. #include <errno.h>
  84114. #include <pthread.h>
  84115. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc64/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc64/pspinlock.c
  84116. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc64/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  84117. +++ uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc64/pspinlock.c 2014-06-02 17:40:35.014717519 +0200
  84118. @@ -13,9 +13,8 @@
  84119. Lesser General Public License for more details.
  84120. You should have received a copy of the GNU Lesser General Public
  84121. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  84122. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  84123. - Boston, MA 02111-1307, USA. */
  84124. + License along with the GNU C Library; see the file COPYING.LIB. If
  84125. + not, see <http://www.gnu.org/licenses/>. */
  84126. #include <errno.h>
  84127. #include <pthread.h>
  84128. 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
  84129. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  84130. +++ uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc64/pt-machine.h 2014-06-02 17:40:35.014717519 +0200
  84131. @@ -16,8 +16,7 @@
  84132. You should have received a copy of the GNU Lesser General Public
  84133. License along with the GNU C Library; see the file COPYING.LIB. If
  84134. - not, write to the Free Software Foundation, Inc.,
  84135. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  84136. + not, see <http://www.gnu.org/licenses/>. */
  84137. #ifndef _PT_MACHINE_H
  84138. #define _PT_MACHINE_H 1
  84139. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/sparc/tls.h
  84140. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/tls.h 2012-05-15 09:20:09.000000000 +0200
  84141. +++ uClibc-git/libpthread/linuxthreads/sysdeps/sparc/tls.h 2014-06-02 17:40:35.014717519 +0200
  84142. @@ -13,9 +13,8 @@
  84143. Lesser General Public License for more details.
  84144. You should have received a copy of the GNU Lesser General Public
  84145. - License along with the GNU C Library; if not, write to the Free
  84146. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84147. - 02111-1307 USA. */
  84148. + License along with the GNU C Library; if not, see
  84149. + <http://www.gnu.org/licenses/>. */
  84150. #ifndef _TLS_H
  84151. #define _TLS_H
  84152. 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
  84153. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/allocalim.h 2012-05-15 09:20:09.000000000 +0200
  84154. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/allocalim.h 2014-06-02 17:40:35.014717519 +0200
  84155. @@ -14,8 +14,7 @@
  84156. You should have received a copy of the GNU Library General Public
  84157. License along with the GNU C Library; see the file COPYING.LIB. If not,
  84158. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  84159. - Boston, MA 02111-1307, USA. */
  84160. + see <http://www.gnu.org/licenses/>. */
  84161. #include <limits.h>
  84162. 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
  84163. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/allocrtsig.c 2012-05-15 09:20:09.000000000 +0200
  84164. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/allocrtsig.c 2014-06-02 17:40:35.014717519 +0200
  84165. @@ -14,9 +14,8 @@
  84166. Lesser General Public License for more details.
  84167. You should have received a copy of the GNU Lesser General Public
  84168. - License along with the GNU C Library; if not, write to the Free
  84169. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84170. - 02111-1307 USA. */
  84171. + License along with the GNU C Library; if not, see
  84172. + <http://www.gnu.org/licenses/>. */
  84173. #include <signal.h>
  84174. @@ -70,6 +69,7 @@
  84175. strong_alias (__libc_current_sigrtmax, __libc_current_sigrtmax_private)
  84176. libc_hidden_def (__libc_current_sigrtmax)
  84177. +#if 0
  84178. /* Allocate real-time signal with highest/lowest available
  84179. priority. Please note that we don't use a lock since we assume
  84180. this function to be called at program start. */
  84181. @@ -85,3 +85,4 @@
  84182. return high ? current_rtmin++ : current_rtmax--;
  84183. }
  84184. strong_alias (__libc_allocate_rtsig, __libc_allocate_rtsig_private)
  84185. +#endif
  84186. 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
  84187. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h 2012-05-15 09:20:09.000000000 +0200
  84188. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h 2014-06-02 17:40:35.014717519 +0200
  84189. @@ -13,9 +13,8 @@
  84190. Lesser General Public License for more details.
  84191. You should have received a copy of the GNU Lesser General Public
  84192. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  84193. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  84194. - Boston, MA 02111-1307, USA. */
  84195. + License along with the GNU C Library; see the file COPYING.LIB. If
  84196. + not, see <http://www.gnu.org/licenses/>. */
  84197. /* The kernel header pollutes the namespace with the NR_OPEN symbol
  84198. and defines LINK_MAX although filesystems have different maxima. A
  84199. 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
  84200. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
  84201. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h 2014-06-02 17:40:35.014717519 +0200
  84202. @@ -13,9 +13,8 @@
  84203. Lesser General Public License for more details.
  84204. You should have received a copy of the GNU Lesser General Public
  84205. - License along with the GNU C Library; if not, write to the Free
  84206. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84207. - 02111-1307 USA. */
  84208. + License along with the GNU C Library; if not, see
  84209. + <http://www.gnu.org/licenses/>. */
  84210. #ifndef _BITS_TYPES_H
  84211. # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
  84212. 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
  84213. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/pt-sigsuspend.S 2012-05-15 09:20:09.000000000 +0200
  84214. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/pt-sigsuspend.S 2014-06-02 17:40:35.014717519 +0200
  84215. @@ -13,9 +13,8 @@
  84216. Lesser General Public License for more details.
  84217. You should have received a copy of the GNU Lesser General Public
  84218. - License along with the GNU C Library; if not, write to the Free
  84219. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84220. - 02111-1307 USA. */
  84221. + License along with the GNU C Library; if not, see
  84222. + <http://www.gnu.org/licenses/>. */
  84223. #include <sysdep.h>
  84224. 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
  84225. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84226. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h 2014-06-02 17:40:35.014717519 +0200
  84227. @@ -12,9 +12,8 @@
  84228. Lesser General Public License for more details.
  84229. You should have received a copy of the GNU Lesser General Public
  84230. - License along with the GNU C Library; if not, write to the Free
  84231. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84232. - 02111-1307 USA. */
  84233. + License along with the GNU C Library; if not, see
  84234. + <http://www.gnu.org/licenses/>. */
  84235. #include <sysdep.h>
  84236. #ifndef __ASSEMBLER__
  84237. 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
  84238. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84239. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/vfork.S 2014-06-02 17:40:35.014717519 +0200
  84240. @@ -12,9 +12,8 @@
  84241. Lesser General Public License for more details.
  84242. You should have received a copy of the GNU Lesser General Public
  84243. - License along with the GNU C Library; if not, write to the Free
  84244. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84245. - 02111-1307 USA. */
  84246. + License along with the GNU C Library; if not, see
  84247. + <http://www.gnu.org/licenses/>. */
  84248. #include <sysdep-cancel.h>
  84249. @@ -30,7 +29,7 @@
  84250. #ifdef SHARED
  84251. ldq t0, __libc_pthread_functions(gp) !gprel
  84252. - bne t0, HIDDEN_JUMPTARGET (__fork) !samegp
  84253. + bne t0, HIDDEN_JUMPTARGET (fork) !samegp
  84254. #else
  84255. .weak pthread_create
  84256. ldq t0, pthread_create(gp) !literal
  84257. @@ -50,7 +49,7 @@
  84258. cfi_adjust_cfa_offset(16)
  84259. stq ra, 0(sp)
  84260. cfi_offset(ra, -16)
  84261. - jsr ra, HIDDEN_JUMPTARGET (__fork)
  84262. + jsr ra, HIDDEN_JUMPTARGET (fork)
  84263. ldgp gp, 0(ra)
  84264. ldq ra, 0(sp)
  84265. addq sp, 16, sp
  84266. 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
  84267. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84268. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h 2014-06-02 17:40:35.018717542 +0200
  84269. @@ -13,9 +13,8 @@
  84270. Lesser General Public License for more details.
  84271. You should have received a copy of the GNU Lesser General Public
  84272. - License along with the GNU C Library; if not, write to the Free
  84273. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84274. - 02111-1307 USA. */
  84275. + License along with the GNU C Library; if not, see
  84276. + <http://www.gnu.org/licenses/>. */
  84277. #include <tls.h>
  84278. #include <pt-machine.h>
  84279. 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
  84280. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84281. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/vfork.S 2014-06-02 17:40:35.018717542 +0200
  84282. @@ -13,9 +13,8 @@
  84283. Lesser General Public License for more details.
  84284. You should have received a copy of the GNU Lesser General Public
  84285. - License along with the GNU C Library; if not, write to the Free
  84286. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84287. - 02111-1307 USA. */
  84288. + License along with the GNU C Library; if not, see
  84289. + <http://www.gnu.org/licenses/>. */
  84290. #include <sysdep-cancel.h>
  84291. #define _ERRNO_H 1
  84292. @@ -40,7 +39,7 @@
  84293. ldr r0, 1f
  84294. #endif
  84295. movs r0, r0
  84296. - bne HIDDEN_JUMPTARGET (__fork)
  84297. + bne HIDDEN_JUMPTARGET (fork)
  84298. DO_CALL (vfork, 0)
  84299. cmn a1, #4096
  84300. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/.cvsignore uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/.cvsignore
  84301. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/.cvsignore 2012-05-15 09:20:09.000000000 +0200
  84302. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/.cvsignore 1970-01-01 01:00:00.000000000 +0100
  84303. @@ -1,2 +0,0 @@
  84304. -.cvsignore
  84305. -*.os
  84306. 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
  84307. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/execve.c 2012-05-15 09:20:09.000000000 +0200
  84308. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/execve.c 2014-06-02 17:40:35.018717542 +0200
  84309. @@ -12,9 +12,8 @@
  84310. Lesser General Public License for more details.
  84311. You should have received a copy of the GNU Lesser General Public
  84312. - License along with the GNU C Library; if not, write to the Free
  84313. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84314. - 02111-1307 USA. */
  84315. + License along with the GNU C Library; if not, see
  84316. + <http://www.gnu.org/licenses/>. */
  84317. #include <errno.h>
  84318. #include <unistd.h>
  84319. 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
  84320. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.c 2012-05-15 09:20:09.000000000 +0200
  84321. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.c 2014-06-02 17:40:35.018717542 +0200
  84322. @@ -13,9 +13,8 @@
  84323. Lesser General Public License for more details.
  84324. You should have received a copy of the GNU Lesser General Public
  84325. - License along with the GNU C Library; if not, write to the Free
  84326. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84327. - 02111-1307 USA. */
  84328. + License along with the GNU C Library; if not, see
  84329. + <http://www.gnu.org/licenses/>. */
  84330. #include <errno.h>
  84331. #include <fork.h>
  84332. 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
  84333. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.h 2012-05-15 09:20:09.000000000 +0200
  84334. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.h 2014-06-02 17:40:35.018717542 +0200
  84335. @@ -13,9 +13,8 @@
  84336. Lesser General Public License for more details.
  84337. You should have received a copy of the GNU Lesser General Public
  84338. - License along with the GNU C Library; if not, write to the Free
  84339. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84340. - 02111-1307 USA. */
  84341. + License along with the GNU C Library; if not, see
  84342. + <http://www.gnu.org/licenses/>. */
  84343. #include <list.h>
  84344. #include <bits/libc-lock.h>
  84345. 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
  84346. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/initspin.h 2012-05-15 09:20:09.000000000 +0200
  84347. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/initspin.h 2014-06-02 17:40:35.018717542 +0200
  84348. @@ -13,9 +13,8 @@
  84349. Lesser General Public License for more details.
  84350. You should have received a copy of the GNU Lesser General Public
  84351. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  84352. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  84353. - Boston, MA 02111-1307, USA. */
  84354. + License along with the GNU C Library; see the file COPYING.LIB. If
  84355. + not, see <http://www.gnu.org/licenses/>. */
  84356. /* Initial value of a spinlock. PA-RISC only implements atomic load
  84357. and clear so this must be non-zero. */
  84358. 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
  84359. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/malloc-machine.h 2012-05-15 09:20:09.000000000 +0200
  84360. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/malloc-machine.h 2014-06-02 17:40:35.018717542 +0200
  84361. @@ -15,9 +15,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. #ifndef _MALLOC_MACHINE_H
  84370. #define _MALLOC_MACHINE_H
  84371. 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
  84372. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
  84373. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/pt-initfini.c 2014-06-02 17:40:35.018717542 +0200
  84374. @@ -23,8 +23,7 @@
  84375. You should have received a copy of the GNU Lesser General Public
  84376. License along with the GNU C Library; see the file COPYING.LIB. If not,
  84377. - write to the Free Software Foundation, 59 Temple Place - Suite 330,
  84378. - Boston, MA 02111-1307, USA. */
  84379. + see <http://www.gnu.org/licenses/>. */
  84380. /* This file is compiled into assembly code which is then munged by a sed
  84381. script into two files: crti.s and crtn.s.
  84382. 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
  84383. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84384. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h 2014-06-02 17:40:35.018717542 +0200
  84385. @@ -14,9 +14,8 @@
  84386. Lesser General Public License for more details.
  84387. You should have received a copy of the GNU Lesser General Public
  84388. - License along with the GNU C Library; if not, write to the Free
  84389. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84390. - 02111-1307 USA. */
  84391. + License along with the GNU C Library; if not, see
  84392. + <http://www.gnu.org/licenses/>. */
  84393. #include <sysdep.h>
  84394. #ifndef __ASSEMBLER__
  84395. 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
  84396. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84397. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h 2014-06-02 17:40:35.018717542 +0200
  84398. @@ -13,9 +13,8 @@
  84399. Lesser General Public License for more details.
  84400. You should have received a copy of the GNU Lesser General Public
  84401. - License along with the GNU C Library; if not, write to the Free
  84402. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84403. - 02111-1307 USA. */
  84404. + License along with the GNU C Library; if not, see
  84405. + <http://www.gnu.org/licenses/>. */
  84406. #include <tls.h>
  84407. #include <pt-machine.h>
  84408. @@ -139,7 +138,7 @@
  84409. #endif
  84410. # ifndef __ASSEMBLER__
  84411. -# if defined FLOATING_STACKS && USE___THREAD && defined __PIC__
  84412. +# if defined FLOATING_STACKS && defined __UCLIBC_HAS_TLS__ && defined __PIC__
  84413. # define SINGLE_THREAD_P \
  84414. __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
  84415. p_header.data.multiple_threads) == 0, 1)
  84416. @@ -155,7 +154,7 @@
  84417. # else
  84418. # if !defined __PIC__
  84419. # define SINGLE_THREAD_P cmpl $0, __local_multiple_threads
  84420. -# elif defined FLOATING_STACKS && USE___THREAD
  84421. +# elif defined FLOATING_STACKS && defined __UCLIBC_HAS_TLS__
  84422. # define SINGLE_THREAD_P cmpl $0, %gs:MULTIPLE_THREADS_OFFSET
  84423. # else
  84424. # if !defined NOT_IN_libc || defined IS_IN_libpthread
  84425. @@ -165,7 +164,7 @@
  84426. movl __local_multiple_threads@GOT(%ecx), %ecx;\
  84427. cmpl $0, (%ecx)
  84428. # endif
  84429. -# if !defined HAVE_HIDDEN || !USE___THREAD
  84430. +# if !defined HAVE_HIDDEN || !defined __UCLIBC_HAS_TLS__
  84431. # define SINGLE_THREAD_P \
  84432. SETUP_PIC_REG (cx); \
  84433. addl $_GLOBAL_OFFSET_TABLE_, %ecx; \
  84434. 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
  84435. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/i386/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84436. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/i386/vfork.S 2014-06-02 17:40:35.018717542 +0200
  84437. @@ -13,9 +13,8 @@
  84438. Lesser General Public License for more details.
  84439. You should have received a copy of the GNU Lesser General Public
  84440. - License along with the GNU C Library; if not, write to the Free
  84441. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84442. - 02111-1307 USA. */
  84443. + License along with the GNU C Library; if not, see
  84444. + <http://www.gnu.org/licenses/>. */
  84445. #include <sysdep-cancel.h>
  84446. #define _ERRNO_H 1
  84447. @@ -32,7 +31,7 @@
  84448. #ifdef __NR_vfork
  84449. # ifdef SHARED
  84450. -# if !defined HAVE_HIDDEN || !USE___THREAD
  84451. +# if !defined HAVE_HIDDEN || !defined __UCLIBC_HAS_TLS__
  84452. SETUP_PIC_REG (cx)
  84453. # else
  84454. call __i686.get_pc_thunk.cx
  84455. @@ -44,7 +43,7 @@
  84456. movl $pthread_create, %eax
  84457. testl %eax, %eax
  84458. # endif
  84459. - jne HIDDEN_JUMPTARGET (__fork)
  84460. + jne HIDDEN_JUMPTARGET (fork)
  84461. /* Pop the return PC value into ECX. */
  84462. popl %ecx
  84463. 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
  84464. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/bits/local_lim.h 2012-05-15 09:20:09.000000000 +0200
  84465. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/bits/local_lim.h 2014-06-02 17:40:35.018717542 +0200
  84466. @@ -13,9 +13,8 @@
  84467. Lesser General Public License for more details.
  84468. You should have received a copy of the GNU Lesser General Public
  84469. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  84470. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  84471. - Boston, MA 02111-1307, USA. */
  84472. + License along with the GNU C Library; see the file COPYING.LIB. If
  84473. + not, see <http://www.gnu.org/licenses/>. */
  84474. /* The kernel header pollutes the namespace with the NR_OPEN symbol
  84475. and defines LINK_MAX although filesystems have different maxima. A
  84476. 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
  84477. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/fork.h 2012-05-15 09:20:09.000000000 +0200
  84478. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/fork.h 2014-06-02 17:40:35.018717542 +0200
  84479. @@ -13,9 +13,8 @@
  84480. Lesser General Public License for more details.
  84481. You should have received a copy of the GNU Lesser General Public
  84482. - License along with the GNU C Library; if not, write to the Free
  84483. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84484. - 02111-1307 USA. */
  84485. + License along with the GNU C Library; if not, see
  84486. + <http://www.gnu.org/licenses/>. */
  84487. #include <signal.h>
  84488. #include <sysdep.h>
  84489. 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
  84490. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
  84491. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-initfini.c 2014-06-02 17:40:35.018717542 +0200
  84492. @@ -23,8 +23,7 @@
  84493. You should have received a copy of the GNU Lesser General Public
  84494. License along with the GNU C Library; see the file COPYING.LIB. If not,
  84495. - write to the Free Software Foundation, 59 Temple Place - Suite 330,
  84496. - Boston, MA 02111-1307, USA. */
  84497. + see <http://www.gnu.org/licenses/>. */
  84498. /* This file is compiled into assembly code which is then munged by a sed
  84499. script into two files: crti.s and crtn.s.
  84500. 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
  84501. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-sigsuspend.c 2012-05-15 09:20:09.000000000 +0200
  84502. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-sigsuspend.c 2014-06-02 17:40:35.018717542 +0200
  84503. @@ -13,9 +13,8 @@
  84504. Lesser General Public License for more details.
  84505. You should have received a copy of the GNU Lesser General Public
  84506. - License along with the GNU C Library; if not, write to the Free
  84507. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84508. - 02111-1307 USA. */
  84509. + License along with the GNU C Library; if not, see
  84510. + <http://www.gnu.org/licenses/>. */
  84511. #include <errno.h>
  84512. #include <signal.h>
  84513. 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
  84514. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84515. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h 2014-06-02 17:40:35.018717542 +0200
  84516. @@ -13,9 +13,8 @@
  84517. Lesser General Public License for more details.
  84518. You should have received a copy of the GNU Lesser General Public
  84519. - License along with the GNU C Library; if not, write to the Free
  84520. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84521. - 02111-1307 USA. */
  84522. + License along with the GNU C Library; if not, see
  84523. + <http://www.gnu.org/licenses/>. */
  84524. #include <sysdep.h>
  84525. #include <tls.h>
  84526. 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
  84527. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84528. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/vfork.S 2014-06-02 17:40:35.018717542 +0200
  84529. @@ -12,9 +12,8 @@
  84530. Lesser General Public License for more details.
  84531. You should have received a copy of the GNU Lesser General Public
  84532. - License along with the GNU C Library; if not, write to the Free
  84533. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84534. - 02111-1307 USA. */
  84535. + License along with the GNU C Library; if not, see
  84536. + <http://www.gnu.org/licenses/>. */
  84537. #include <sysdep-cancel.h>
  84538. @@ -38,7 +37,7 @@
  84539. #endif
  84540. ld8 r14 = [r14];;
  84541. cmp.ne p6, p7 = 0, r14
  84542. -(p6) br.cond.spnt.few HIDDEN_JUMPTARGET (__fork);;
  84543. +(p6) br.cond.spnt.few HIDDEN_JUMPTARGET (fork);;
  84544. alloc r2=ar.pfs,0,0,2,0
  84545. mov out0=CLONE_VM+CLONE_VFORK+SIGCHLD
  84546. mov out1=0 /* Standard sp value. */
  84547. 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
  84548. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/jmp-unwind.c 2012-05-15 09:20:09.000000000 +0200
  84549. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/jmp-unwind.c 2014-06-02 17:40:35.018717542 +0200
  84550. @@ -13,9 +13,8 @@
  84551. Lesser General Public License for more details.
  84552. You should have received a copy of the GNU Lesser General Public
  84553. - License along with the GNU C Library; if not, write to the Free
  84554. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84555. - 02111-1307 USA. */
  84556. + License along with the GNU C Library; if not, see
  84557. + <http://www.gnu.org/licenses/>. */
  84558. #include <setjmp.h>
  84559. #include <stddef.h>
  84560. @@ -32,3 +31,4 @@
  84561. (env->__jmpbuf, __builtin_frame_address (0)),
  84562. (void) 0);
  84563. }
  84564. +libc_hidden_def(_longjmp_unwind)
  84565. 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
  84566. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84567. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h 2014-06-02 17:40:35.018717542 +0200
  84568. @@ -13,9 +13,8 @@
  84569. Lesser General Public License for more details.
  84570. You should have received a copy of the GNU Lesser General Public
  84571. - License along with the GNU C Library; if not, write to the Free
  84572. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84573. - 02111-1307 USA. */
  84574. + License along with the GNU C Library; if not, see
  84575. + <http://www.gnu.org/licenses/>. */
  84576. #include <sysdep.h>
  84577. #ifndef __ASSEMBLER__
  84578. 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
  84579. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/m68k/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84580. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/m68k/vfork.S 2014-06-02 17:40:35.018717542 +0200
  84581. @@ -13,9 +13,8 @@
  84582. Lesser General Public License for more details.
  84583. You should have received a copy of the GNU Lesser General Public
  84584. - License along with the GNU C Library; if not, write to the Free
  84585. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84586. - 02111-1307 USA. */
  84587. + License along with the GNU C Library; if not, see
  84588. + <http://www.gnu.org/licenses/>. */
  84589. #include <sysdep-cancel.h>
  84590. #define _ERRNO_H 1
  84591. @@ -35,7 +34,7 @@
  84592. .weak pthread_create
  84593. movel #pthread_create, %d0
  84594. #endif
  84595. - jbne HIDDEN_JUMPTARGET (__fork)
  84596. + jbne HIDDEN_JUMPTARGET (fork)
  84597. #ifdef __NR_vfork
  84598. 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
  84599. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84600. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h 2014-06-02 17:40:35.018717542 +0200
  84601. @@ -15,9 +15,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 <sysdep.h>
  84610. #ifndef __ASSEMBLER__
  84611. @@ -31,7 +30,7 @@
  84612. # undef PSEUDO
  84613. # define PSEUDO(name, syscall_name, args) \
  84614. .align 2; \
  84615. - 99: \
  84616. + 99: move a0, v0; \
  84617. PTR_LA t9,__syscall_error; \
  84618. /* manual cpreturn. */ \
  84619. REG_L gp, STKOFF_GP(sp); \
  84620. 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
  84621. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84622. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h 2014-06-02 17:40:35.018717542 +0200
  84623. @@ -13,9 +13,8 @@
  84624. Lesser General Public License for more details.
  84625. You should have received a copy of the GNU Lesser General Public
  84626. - License along with the GNU C Library; if not, write to the Free
  84627. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84628. - 02111-1307 USA. */
  84629. + License along with the GNU C Library; if not, see
  84630. + <http://www.gnu.org/licenses/>. */
  84631. #include <sysdep.h>
  84632. #ifndef __ASSEMBLER__
  84633. 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
  84634. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84635. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/vfork.S 2014-06-02 17:40:35.018717542 +0200
  84636. @@ -12,9 +12,8 @@
  84637. Lesser General Public License for more details.
  84638. You should have received a copy of the GNU Lesser General Public
  84639. - License along with the GNU C Library; if not, write to the Free
  84640. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84641. - 02111-1307 USA. */
  84642. + License along with the GNU C Library; if not, see
  84643. + <http://www.gnu.org/licenses/>. */
  84644. /* vfork() is just a special case of clone(). */
  84645. @@ -80,6 +79,7 @@
  84646. /* Something bad happened -- no child created. */
  84647. L(error):
  84648. + move a0, v0
  84649. #ifdef __PIC__
  84650. PTR_LA t9, __syscall_error
  84651. RESTORE_GP64
  84652. 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
  84653. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mq_notify.c 2012-05-15 09:20:09.000000000 +0200
  84654. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mq_notify.c 2014-06-02 17:40:35.022717564 +0200
  84655. @@ -13,9 +13,8 @@
  84656. Lesser General Public License for more details.
  84657. You should have received a copy of the GNU Lesser General Public
  84658. - License along with the GNU C Library; if not, write to the Free
  84659. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84660. - 02111-1307 USA. */
  84661. + License along with the GNU C Library; if not, see
  84662. + <http://www.gnu.org/licenses/>. */
  84663. #include <assert.h>
  84664. #include <errno.h>
  84665. 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
  84666. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84667. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h 2014-06-02 17:40:35.022717564 +0200
  84668. @@ -13,9 +13,8 @@
  84669. Lesser General Public License for more details.
  84670. You should have received a copy of the GNU Lesser General Public
  84671. - License along with the GNU C Library; if not, write to the Free
  84672. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84673. - 02111-1307 USA. */
  84674. + License along with the GNU C Library; if not, see
  84675. + <http://www.gnu.org/licenses/>. */
  84676. #include <sysdep.h>
  84677. #include <tls.h>
  84678. 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
  84679. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84680. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S 2014-06-02 17:40:35.022717564 +0200
  84681. @@ -12,9 +12,8 @@
  84682. Lesser General Public License for more details.
  84683. You should have received a copy of the GNU Lesser General Public
  84684. - License along with the GNU C Library; if not, write to the Free
  84685. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84686. - 02111-1307 USA. */
  84687. + License along with the GNU C Library; if not, see
  84688. + <http://www.gnu.org/licenses/>. */
  84689. #include <sysdep-cancel.h>
  84690. #define _ERRNO_H 1
  84691. @@ -66,7 +65,7 @@
  84692. # endif
  84693. .Lhidden_fork:
  84694. - b HIDDEN_JUMPTARGET(__fork)
  84695. + b HIDDEN_JUMPTARGET(fork)
  84696. #endif
  84697. 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
  84698. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84699. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h 2014-06-02 17:40:35.022717564 +0200
  84700. @@ -13,9 +13,8 @@
  84701. Lesser General Public License for more details.
  84702. You should have received a copy of the GNU Lesser General Public
  84703. - License along with the GNU C Library; if not, write to the Free
  84704. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84705. - 02111-1307 USA. */
  84706. + License along with the GNU C Library; if not, see
  84707. + <http://www.gnu.org/licenses/>. */
  84708. #include <sysdep.h>
  84709. #include <tls.h>
  84710. 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
  84711. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84712. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S 2014-06-02 17:40:35.022717564 +0200
  84713. @@ -12,9 +12,8 @@
  84714. Lesser General Public License for more details.
  84715. You should have received a copy of the GNU Lesser General Public
  84716. - License along with the GNU C Library; if not, write to the Free
  84717. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84718. - 02111-1307 USA. */
  84719. + License along with the GNU C Library; if not, see
  84720. + <http://www.gnu.org/licenses/>. */
  84721. #include <sysdep-cancel.h>
  84722. #define _ERRNO_H 1
  84723. @@ -42,7 +41,7 @@
  84724. ld 10,.LC0@toc(2)
  84725. ld 10,0(10)
  84726. cmpwi 10,0
  84727. - bne- HIDDEN_JUMPTARGET(__fork)
  84728. + bne- HIDDEN_JUMPTARGET(fork)
  84729. # else
  84730. .weak pthread_create
  84731. lis 10,pthread_create@highest
  84732. @@ -80,7 +79,7 @@
  84733. # ifndef SHARED
  84734. .Lhidden_fork:
  84735. - b HIDDEN_JUMPTARGET(__fork)
  84736. + b HIDDEN_JUMPTARGET(fork)
  84737. .Lsyscall_error:
  84738. b JUMPTARGET(__syscall_error)
  84739. # endif
  84740. 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
  84741. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/pt-sigsuspend.c 2012-05-15 09:20:09.000000000 +0200
  84742. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/pt-sigsuspend.c 2014-06-02 17:40:35.022717564 +0200
  84743. @@ -13,9 +13,8 @@
  84744. Lesser General Public License for more details.
  84745. You should have received a copy of the GNU Lesser General Public
  84746. - License along with the GNU C Library; if not, write to the Free
  84747. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84748. - 02111-1307 USA. */
  84749. + License along with the GNU C Library; if not, see
  84750. + <http://www.gnu.org/licenses/>. */
  84751. #include <errno.h>
  84752. #include <signal.h>
  84753. 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
  84754. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/raise.c 2012-05-15 09:20:09.000000000 +0200
  84755. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/raise.c 2014-06-02 17:40:35.022717564 +0200
  84756. @@ -12,9 +12,8 @@
  84757. Lesser General Public License for more details.
  84758. You should have received a copy of the GNU Lesser General Public
  84759. - License along with the GNU C Library; if not, write to the Free
  84760. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84761. - 02111-1307 USA. */
  84762. + License along with the GNU C Library; if not, see
  84763. + <http://www.gnu.org/licenses/>. */
  84764. #include <signal.h>
  84765. #include <unistd.h>
  84766. @@ -40,4 +39,3 @@
  84767. #endif
  84768. }
  84769. libc_hidden_def (raise)
  84770. -weak_alias (raise, gsignal)
  84771. 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
  84772. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/register-atfork.c 2012-05-15 09:20:09.000000000 +0200
  84773. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/register-atfork.c 2014-06-02 17:40:35.022717564 +0200
  84774. @@ -13,9 +13,8 @@
  84775. Lesser General Public License for more details.
  84776. You should have received a copy of the GNU Lesser General Public
  84777. - License along with the GNU C Library; if not, write to the Free
  84778. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84779. - 02111-1307 USA. */
  84780. + License along with the GNU C Library; if not, see
  84781. + <http://www.gnu.org/licenses/>. */
  84782. #include <errno.h>
  84783. #include <stdlib.h>
  84784. 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
  84785. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
  84786. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h 2014-06-02 17:40:35.022717564 +0200
  84787. @@ -13,9 +13,8 @@
  84788. Lesser General Public License for more details.
  84789. You should have received a copy of the GNU Lesser General Public
  84790. - License along with the GNU C Library; if not, write to the Free
  84791. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84792. - 02111-1307 USA. */
  84793. + License along with the GNU C Library; if not, see
  84794. + <http://www.gnu.org/licenses/>. */
  84795. #ifndef _BITS_TYPES_H
  84796. # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
  84797. 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
  84798. --- 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
  84799. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c 2014-06-02 17:40:35.022717564 +0200
  84800. @@ -23,8 +23,7 @@
  84801. You should have received a copy of the GNU Lesser General Public
  84802. License along with the GNU C Library; see the file COPYING.LIB. If not,
  84803. - write to the Free Software Foundation, 59 Temple Place - Suite 330,
  84804. - Boston, MA 02111-1307, USA. */
  84805. + see <http://www.gnu.org/licenses/>. */
  84806. /* This file is compiled into assembly code which is then munged by a sed
  84807. script into two files: crti.s and crtn.s.
  84808. 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
  84809. --- 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
  84810. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h 2014-06-02 17:40:35.022717564 +0200
  84811. @@ -13,9 +13,8 @@
  84812. Lesser General Public License for more details.
  84813. You should have received a copy of the GNU Lesser General Public
  84814. - License along with the GNU C Library; if not, write to the Free
  84815. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84816. - 02111-1307 USA. */
  84817. + License along with the GNU C Library; if not, see
  84818. + <http://www.gnu.org/licenses/>. */
  84819. #include <sysdep.h>
  84820. #include <tls.h>
  84821. 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
  84822. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84823. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S 2014-06-02 17:40:35.022717564 +0200
  84824. @@ -13,9 +13,8 @@
  84825. Lesser General Public License for more details.
  84826. You should have received a copy of the GNU Lesser General Public
  84827. - License along with the GNU C Library; if not, write to the Free
  84828. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84829. - 02111-1307 USA. */
  84830. + License along with the GNU C Library; if not, see
  84831. + <http://www.gnu.org/licenses/>. */
  84832. #include <sysdep-cancel.h>
  84833. #define _ERRNO_H 1
  84834. @@ -54,7 +53,7 @@
  84835. al %r1,3f-2b(%r1)
  84836. br %r1
  84837. 3:
  84838. - .long HIDDEN_JUMPTARGET(__fork)-2b
  84839. + .long HIDDEN_JUMPTARGET(fork)-2b
  84840. 4:
  84841. #ifdef SHARED
  84842. .long __libc_pthread_functions-0b
  84843. 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
  84844. --- 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
  84845. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c 2014-06-02 17:40:35.022717564 +0200
  84846. @@ -24,8 +24,7 @@
  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, 59 Temple Place - Suite 330,
  84850. - Boston, MA 02111-1307, USA. */
  84851. + see <http://www.gnu.org/licenses/>. */
  84852. /* This file is compiled into assembly code which is then munged by a sed
  84853. script into two files: crti.s and crtn.s.
  84854. 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
  84855. --- 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
  84856. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h 2014-06-02 17:40:35.022717564 +0200
  84857. @@ -13,9 +13,8 @@
  84858. Lesser General Public License for more details.
  84859. You should have received a copy of the GNU Lesser General Public
  84860. - License along with the GNU C Library; if not, write to the Free
  84861. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84862. - 02111-1307 USA. */
  84863. + License along with the GNU C Library; if not, see
  84864. + <http://www.gnu.org/licenses/>. */
  84865. #include <sysdep.h>
  84866. #include <tls.h>
  84867. 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
  84868. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84869. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S 2014-06-02 17:40:35.022717564 +0200
  84870. @@ -13,9 +13,8 @@
  84871. Lesser General Public License for more details.
  84872. You should have received a copy of the GNU Lesser General Public
  84873. - License along with the GNU C Library; if not, write to the Free
  84874. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84875. - 02111-1307 USA. */
  84876. + License along with the GNU C Library; if not, see
  84877. + <http://www.gnu.org/licenses/>. */
  84878. #include <sysdep-cancel.h>
  84879. #define _ERRNO_H 1
  84880. @@ -35,7 +34,7 @@
  84881. larl %r1,pthread_create
  84882. #endif
  84883. ltgr %r1,%r1
  84884. - jgne HIDDEN_JUMPTARGET(__fork)
  84885. + jgne HIDDEN_JUMPTARGET(fork)
  84886. /* Do vfork system call. */
  84887. svc SYS_ify (vfork)
  84888. 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
  84889. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
  84890. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/pt-initfini.c 2014-06-02 17:40:35.026717586 +0200
  84891. @@ -23,8 +23,7 @@
  84892. You should have received a copy of the GNU Lesser General Public
  84893. License along with the GNU C Library; see the file COPYING.LIB. If not,
  84894. - write to the Free Software Foundation, 59 Temple Place - Suite 330,
  84895. - Boston, MA 02111-1307, USA. */
  84896. + see <http://www.gnu.org/licenses/>. */
  84897. /* This file is compiled into assembly code which is then munged by a sed
  84898. script into two files: crti.s and crtn.s.
  84899. 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
  84900. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/smp.h 2012-05-15 09:20:09.000000000 +0200
  84901. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/smp.h 2014-06-02 17:40:35.026717586 +0200
  84902. @@ -14,8 +14,7 @@
  84903. You should have received a copy of the GNU Library General Public
  84904. License along with the GNU C Library; see the file COPYING.LIB. If not,
  84905. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  84906. - Boston, MA 02111-1307, USA. */
  84907. + see <http://www.gnu.org/licenses/>. */
  84908. static __inline__ int
  84909. is_smp_system (void)
  84910. 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
  84911. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84912. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h 2014-06-02 17:40:35.026717586 +0200
  84913. @@ -12,9 +12,8 @@
  84914. Lesser General Public License for more details.
  84915. You should have received a copy of the GNU Lesser General Public
  84916. - License along with the GNU C Library; if not, write to the Free
  84917. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84918. - 02111-1307 USA. */
  84919. + License along with the GNU C Library; if not, see
  84920. + <http://www.gnu.org/licenses/>. */
  84921. #include <sysdep.h>
  84922. #include <tls.h>
  84923. @@ -155,7 +154,7 @@
  84924. # endif
  84925. # ifndef __ASSEMBLER__
  84926. -# if defined FLOATING_STACKS && USE___THREAD && defined __PIC__
  84927. +# if defined FLOATING_STACKS && defined __UCLIBC_HAS_TLS__ && defined __PIC__
  84928. # define SINGLE_THREAD_P \
  84929. __builtin_expect (THREAD_GETMEM (THREAD_SELF, p_multiple_threads) == 0, 1)
  84930. # else
  84931. @@ -172,7 +171,7 @@
  84932. .align 2; \
  84933. 1: .long __local_multiple_threads; \
  84934. 2:
  84935. -# elif defined FLOATING_STACKS && USE___THREAD
  84936. +# elif defined FLOATING_STACKS && defined __UCLIBC_HAS_TLS__
  84937. # define SINGLE_THREAD_P \
  84938. stc gbr,r0; \
  84939. mov.w 0f,r1; \
  84940. 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
  84941. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84942. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/vfork.S 2014-06-02 17:40:35.026717586 +0200
  84943. @@ -12,9 +12,8 @@
  84944. Lesser General Public License for more details.
  84945. You should have received a copy of the GNU Lesser General Public
  84946. - License along with the GNU C Library; if not, write to the Free
  84947. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84948. - 02111-1307 USA. */
  84949. + License along with the GNU C Library; if not, see
  84950. + <http://www.gnu.org/licenses/>. */
  84951. #include <sysdep-cancel.h>
  84952. #define _ERRNO_H 1
  84953. @@ -70,7 +69,7 @@
  84954. nop
  84955. 1:
  84956. .align 2
  84957. -.L2: .long HIDDEN_JUMPTARGET(__fork)-1b
  84958. +.L2: .long HIDDEN_JUMPTARGET(fork)-1b
  84959. PSEUDO_END (__vfork)
  84960. libc_hidden_def (__vfork)
  84961. 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
  84962. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sigwait.c 2012-05-15 09:20:09.000000000 +0200
  84963. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sigwait.c 2014-06-02 17:40:35.026717586 +0200
  84964. @@ -12,9 +12,8 @@
  84965. Lesser General Public License for more details.
  84966. You should have received a copy of the GNU Lesser General Public
  84967. - License along with the GNU C Library; if not, write to the Free
  84968. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84969. - 02111-1307 USA. */
  84970. + License along with the GNU C Library; if not, see
  84971. + <http://www.gnu.org/licenses/>. */
  84972. #include <errno.h>
  84973. #include <signal.h>
  84974. 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
  84975. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/smp.h 2012-05-15 09:20:09.000000000 +0200
  84976. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/smp.h 2014-06-02 17:40:35.026717586 +0200
  84977. @@ -14,8 +14,7 @@
  84978. You should have received a copy of the GNU Library General Public
  84979. License along with the GNU C Library; see the file COPYING.LIB. If not,
  84980. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  84981. - Boston, MA 02111-1307, USA. */
  84982. + see <http://www.gnu.org/licenses/>. */
  84983. #include <sys/sysctl.h>
  84984. 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
  84985. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h 2012-05-15 09:20:09.000000000 +0200
  84986. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h 2014-06-02 17:40:35.026717586 +0200
  84987. @@ -13,9 +13,8 @@
  84988. Lesser General Public License for more details.
  84989. You should have received a copy of the GNU Lesser General Public
  84990. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  84991. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  84992. - Boston, MA 02111-1307, USA. */
  84993. + License along with the GNU C Library; see the file COPYING.LIB. If
  84994. + not, see <http://www.gnu.org/licenses/>. */
  84995. /* The kernel header pollutes the namespace with the NR_OPEN symbol
  84996. and defines LINK_MAX although filesystems have different maxima. A
  84997. 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
  84998. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
  84999. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h 2014-06-02 17:40:35.026717586 +0200
  85000. @@ -13,9 +13,8 @@
  85001. Lesser General Public License for more details.
  85002. You should have received a copy of the GNU Lesser General Public
  85003. - License along with the GNU C Library; if not, write to the Free
  85004. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85005. - 02111-1307 USA. */
  85006. + License along with the GNU C Library; if not, see
  85007. + <http://www.gnu.org/licenses/>. */
  85008. #ifndef _BITS_TYPES_H
  85009. # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
  85010. 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
  85011. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/fork.h 2012-05-15 09:20:09.000000000 +0200
  85012. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/fork.h 2014-06-02 17:40:35.026717586 +0200
  85013. @@ -13,9 +13,8 @@
  85014. Lesser General Public License for more details.
  85015. You should have received a copy of the GNU Lesser General Public
  85016. - License along with the GNU C Library; if not, write to the Free
  85017. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85018. - 02111-1307 USA. */
  85019. + License along with the GNU C Library; if not, see
  85020. + <http://www.gnu.org/licenses/>. */
  85021. #include_next <fork.h>
  85022. 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
  85023. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  85024. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h 2014-06-02 17:40:35.026717586 +0200
  85025. @@ -13,9 +13,8 @@
  85026. Lesser General Public License for more details.
  85027. You should have received a copy of the GNU Lesser General Public
  85028. - License along with the GNU C Library; if not, write to the Free
  85029. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85030. - 02111-1307 USA. */
  85031. + License along with the GNU C Library; if not, see
  85032. + <http://www.gnu.org/licenses/>. */
  85033. #include <tls.h>
  85034. #ifndef __ASSEMBLER__
  85035. 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
  85036. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S 2012-05-15 09:20:09.000000000 +0200
  85037. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S 2014-06-02 17:40:35.026717586 +0200
  85038. @@ -13,9 +13,8 @@
  85039. Lesser General Public License for more details.
  85040. You should have received a copy of the GNU Lesser General Public
  85041. - License along with the GNU C Library; if not, write to the Free
  85042. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85043. - 02111-1307 USA. */
  85044. + License along with the GNU C Library; if not, see
  85045. + <http://www.gnu.org/licenses/>. */
  85046. #include <sysdep-cancel.h>
  85047. @@ -43,7 +42,7 @@
  85048. orcc %o0, %lo(pthread_create), %o0
  85049. #endif
  85050. #if defined SHARED && !defined BROKEN_SPARC_WDISP22
  85051. - bne HIDDEN_JUMPTARGET(__fork)
  85052. + bne HIDDEN_JUMPTARGET(fork)
  85053. #else
  85054. bne 1f
  85055. #endif
  85056. @@ -56,7 +55,7 @@
  85057. and %o0, %o1, %o0
  85058. #if !defined SHARED || defined BROKEN_SPARC_WDISP22
  85059. 1: mov %o7, %g1
  85060. - call HIDDEN_JUMPTARGET(__fork)
  85061. + call HIDDEN_JUMPTARGET(fork)
  85062. mov %g1, %o7
  85063. #endif
  85064. SYSCALL_ERROR_HANDLER
  85065. 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
  85066. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  85067. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h 2014-06-02 17:40:35.026717586 +0200
  85068. @@ -13,9 +13,8 @@
  85069. Lesser General Public License for more details.
  85070. You should have received a copy of the GNU Lesser General Public
  85071. - License along with the GNU C Library; if not, write to the Free
  85072. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85073. - 02111-1307 USA. */
  85074. + License along with the GNU C Library; if not, see
  85075. + <http://www.gnu.org/licenses/>. */
  85076. #include <tls.h>
  85077. #ifndef __ASSEMBLER__
  85078. 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
  85079. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S 2012-05-15 09:20:09.000000000 +0200
  85080. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S 2014-06-02 17:40:35.026717586 +0200
  85081. @@ -13,9 +13,8 @@
  85082. Lesser General Public License for more details.
  85083. You should have received a copy of the GNU Lesser General Public
  85084. - License along with the GNU C Library; if not, write to the Free
  85085. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85086. - 02111-1307 USA. */
  85087. + License along with the GNU C Library; if not, see
  85088. + <http://www.gnu.org/licenses/>. */
  85089. #include <sysdep-cancel.h>
  85090. @@ -42,7 +41,7 @@
  85091. #endif
  85092. #if defined SHARED && !defined BROKEN_SPARC_WDISP22
  85093. cmp %o0, 0
  85094. - bne HIDDEN_JUMPTARGET(__fork)
  85095. + bne HIDDEN_JUMPTARGET(fork)
  85096. #else
  85097. brnz,pn %o0, 1f
  85098. #endif
  85099. @@ -55,7 +54,7 @@
  85100. and %o0, %o1, %o0
  85101. #if !defined SHARED || defined BROKEN_SPARC_WDISP22
  85102. 1: mov %o7, %g1
  85103. - call HIDDEN_JUMPTARGET(__fork)
  85104. + call HIDDEN_JUMPTARGET(fork)
  85105. mov %g1, %o7
  85106. #endif
  85107. SYSCALL_ERROR_HANDLER
  85108. 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
  85109. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/unregister-atfork.c 2012-05-15 09:20:09.000000000 +0200
  85110. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/unregister-atfork.c 2014-06-02 17:40:35.026717586 +0200
  85111. @@ -13,9 +13,8 @@
  85112. Lesser General Public License for more details.
  85113. You should have received a copy of the GNU Lesser General Public
  85114. - License along with the GNU C Library; if not, write to the Free
  85115. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85116. - 02111-1307 USA. */
  85117. + License along with the GNU C Library; if not, see
  85118. + <http://www.gnu.org/licenses/>. */
  85119. #include <errno.h>
  85120. #include <stdlib.h>
  85121. 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
  85122. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  85123. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h 2014-06-02 17:40:35.026717586 +0200
  85124. @@ -13,9 +13,8 @@
  85125. Lesser General Public License for more details.
  85126. You should have received a copy of the GNU Lesser General Public
  85127. - License along with the GNU C Library; if not, write to the Free
  85128. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85129. - 02111-1307 USA. */
  85130. + License along with the GNU C Library; if not, see
  85131. + <http://www.gnu.org/licenses/>. */
  85132. #include <sysdep.h>
  85133. #include <tls.h>
  85134. 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
  85135. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/x86_64/vfork.S 2012-05-15 09:20:09.000000000 +0200
  85136. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/x86_64/vfork.S 2014-06-02 17:40:35.026717586 +0200
  85137. @@ -12,9 +12,8 @@
  85138. Lesser General Public License for more details.
  85139. You should have received a copy of the GNU Lesser General Public
  85140. - License along with the GNU C Library; if not, write to the Free
  85141. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85142. - 02111-1307 USA. */
  85143. + License along with the GNU C Library; if not, see
  85144. + <http://www.gnu.org/licenses/>. */
  85145. #include <sysdep-cancel.h>
  85146. #define _ERRNO_H 1
  85147. @@ -34,7 +33,7 @@
  85148. movq $pthread_create, %rax
  85149. testq %rax, %rax
  85150. #endif
  85151. - jne HIDDEN_JUMPTARGET (__fork)
  85152. + jne HIDDEN_JUMPTARGET (fork)
  85153. /* Pop the return PC value into RDI. We need a register that
  85154. is preserved by the syscall and that we're allowed to destroy. */
  85155. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/x86_64/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/x86_64/pspinlock.c
  85156. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/x86_64/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  85157. +++ uClibc-git/libpthread/linuxthreads/sysdeps/x86_64/pspinlock.c 2014-06-02 17:40:35.026717586 +0200
  85158. @@ -13,9 +13,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 <errno.h>
  85167. #include <pthread.h>
  85168. 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
  85169. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/x86_64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  85170. +++ uClibc-git/libpthread/linuxthreads/sysdeps/x86_64/pt-machine.h 2014-06-02 17:40:35.026717586 +0200
  85171. @@ -14,9 +14,8 @@
  85172. Lesser General Public License for more details.
  85173. You should have received a copy of the GNU Lesser General Public
  85174. - License along with the GNU C Library; if not, write to the Free
  85175. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85176. - 02111-1307 USA. */
  85177. + License along with the GNU C Library; if not, see
  85178. + <http://www.gnu.org/licenses/>. */
  85179. #ifndef _PT_MACHINE_H
  85180. #define _PT_MACHINE_H 1
  85181. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/x86_64/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/x86_64/tls.h
  85182. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/x86_64/tls.h 2012-05-15 09:20:09.000000000 +0200
  85183. +++ uClibc-git/libpthread/linuxthreads/sysdeps/x86_64/tls.h 2014-06-02 17:40:35.026717586 +0200
  85184. @@ -13,9 +13,8 @@
  85185. Lesser General Public License for more details.
  85186. You should have received a copy of the GNU Lesser General Public
  85187. - License along with the GNU C Library; if not, write to the Free
  85188. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85189. - 02111-1307 USA. */
  85190. + License along with the GNU C Library; if not, see
  85191. + <http://www.gnu.org/licenses/>. */
  85192. #ifndef _TLS_H
  85193. #define _TLS_H
  85194. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/.cvsignore uClibc-git/libpthread/linuxthreads_db/.cvsignore
  85195. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/.cvsignore 2012-05-15 09:20:09.000000000 +0200
  85196. +++ uClibc-git/libpthread/linuxthreads_db/.cvsignore 1970-01-01 01:00:00.000000000 +0100
  85197. @@ -1,5 +0,0 @@
  85198. -.cvsignore
  85199. -.svn
  85200. -*.os
  85201. -Makefile
  85202. -Makefile.in
  85203. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/Makefile.old uClibc-git/libpthread/linuxthreads_db/Makefile.old
  85204. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/Makefile.old 2012-05-15 09:20:09.000000000 +0200
  85205. +++ uClibc-git/libpthread/linuxthreads_db/Makefile.old 2014-06-02 17:40:35.026717586 +0200
  85206. @@ -12,9 +12,8 @@
  85207. # Lesser General Public License for more details.
  85208. # You should have received a copy of the GNU Lesser General Public
  85209. -# License along with the GNU C Library; if not, write to the Free
  85210. -# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85211. -# 02111-1307 USA.
  85212. +# License along with the GNU C Library; see the file COPYING.LIB. If
  85213. +# not, see <http://www.gnu.org/licenses/>.
  85214. # Makefile for linuxthreads debug library subdirectory of GNU C Library.
  85215. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/proc_service.h uClibc-git/libpthread/linuxthreads_db/proc_service.h
  85216. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/proc_service.h 2012-05-15 09:20:09.000000000 +0200
  85217. +++ uClibc-git/libpthread/linuxthreads_db/proc_service.h 2014-06-02 17:40:35.026717586 +0200
  85218. @@ -12,9 +12,8 @@
  85219. Lesser General Public License for more details.
  85220. You should have received a copy of the GNU Lesser General Public
  85221. - License along with the GNU C Library; if not, write to the Free
  85222. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85223. - 02111-1307 USA. */
  85224. + License along with the GNU C Library; if not, see
  85225. + <http://www.gnu.org/licenses/>. */
  85226. /* The definitions in this file must correspond to those in the debugger. */
  85227. #include <sys/procfs.h>
  85228. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_init.c uClibc-git/libpthread/linuxthreads_db/td_init.c
  85229. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_init.c 2012-05-15 09:20:09.000000000 +0200
  85230. +++ uClibc-git/libpthread/linuxthreads_db/td_init.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. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_log.c uClibc-git/libpthread/linuxthreads_db/td_log.c
  85241. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_log.c 2012-05-15 09:20:09.000000000 +0200
  85242. +++ uClibc-git/libpthread/linuxthreads_db/td_log.c 2014-06-02 17:40:35.026717586 +0200
  85243. @@ -14,9 +14,8 @@
  85244. Lesser General Public License for more details.
  85245. You should have received a copy of the GNU Lesser General Public
  85246. - License along with the GNU C Library; if not, write to the Free
  85247. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85248. - 02111-1307 USA. */
  85249. + License along with the GNU C Library; if not, see
  85250. + <http://www.gnu.org/licenses/>. */
  85251. #include "thread_dbP.h"
  85252. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_symbol_list.c uClibc-git/libpthread/linuxthreads_db/td_symbol_list.c
  85253. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_symbol_list.c 2012-05-15 09:20:09.000000000 +0200
  85254. +++ uClibc-git/libpthread/linuxthreads_db/td_symbol_list.c 2014-06-02 17:40:35.026717586 +0200
  85255. @@ -14,9 +14,8 @@
  85256. Lesser General Public License for more details.
  85257. You should have received a copy of the GNU Lesser General Public
  85258. - License along with the GNU C Library; if not, write to the Free
  85259. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85260. - 02111-1307 USA. */
  85261. + License along with the GNU C Library; if not, see
  85262. + <http://www.gnu.org/licenses/>. */
  85263. #include <assert.h>
  85264. #include "thread_dbP.h"
  85265. 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
  85266. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_clear_event.c 2012-05-15 09:20:09.000000000 +0200
  85267. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_clear_event.c 2014-06-02 17:40:35.026717586 +0200
  85268. @@ -14,17 +14,14 @@
  85269. Lesser General Public License for more details.
  85270. You should have received a copy of the GNU Lesser General Public
  85271. - License along with the GNU C Library; if not, write to the Free
  85272. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85273. - 02111-1307 USA. */
  85274. + License along with the GNU C Library; if not, see
  85275. + <http://www.gnu.org/licenses/>. */
  85276. #include "thread_dbP.h"
  85277. td_err_e
  85278. -td_ta_clear_event (ta, event)
  85279. - const td_thragent_t *ta;
  85280. - td_thr_events_t *event;
  85281. +td_ta_clear_event(const td_thragent_t *ta, td_thr_events_t *event)
  85282. {
  85283. td_thr_events_t old_event;
  85284. int i;
  85285. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_delete.c uClibc-git/libpthread/linuxthreads_db/td_ta_delete.c
  85286. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_delete.c 2012-05-15 09:20:09.000000000 +0200
  85287. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_delete.c 2014-06-02 17:40:35.026717586 +0200
  85288. @@ -14,9 +14,8 @@
  85289. Lesser General Public License for more details.
  85290. You should have received a copy of the GNU Lesser General Public
  85291. - License along with the GNU C Library; if not, write to the Free
  85292. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85293. - 02111-1307 USA. */
  85294. + License along with the GNU C Library; if not, see
  85295. + <http://www.gnu.org/licenses/>. */
  85296. #include <stdlib.h>
  85297. 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
  85298. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_enable_stats.c 2012-05-15 09:20:09.000000000 +0200
  85299. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_enable_stats.c 2014-06-02 17:40:35.026717586 +0200
  85300. @@ -14,9 +14,8 @@
  85301. Lesser General Public License for more details.
  85302. You should have received a copy of the GNU Lesser General Public
  85303. - License along with the GNU C Library; if not, write to the Free
  85304. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85305. - 02111-1307 USA. */
  85306. + License along with the GNU C Library; if not, see
  85307. + <http://www.gnu.org/licenses/>. */
  85308. #include "thread_dbP.h"
  85309. 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
  85310. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_event_addr.c 2012-05-15 09:20:09.000000000 +0200
  85311. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_event_addr.c 2014-06-02 17:40:35.026717586 +0200
  85312. @@ -14,9 +14,8 @@
  85313. Lesser General Public License for more details.
  85314. You should have received a copy of the GNU Lesser General Public
  85315. - License along with the GNU C Library; if not, write to the Free
  85316. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85317. - 02111-1307 USA. */
  85318. + License along with the GNU C Library; if not, see
  85319. + <http://www.gnu.org/licenses/>. */
  85320. #include "thread_dbP.h"
  85321. 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
  85322. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_event_getmsg.c 2012-05-15 09:20:09.000000000 +0200
  85323. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_event_getmsg.c 2014-06-02 17:40:35.026717586 +0200
  85324. @@ -14,9 +14,8 @@
  85325. Lesser General Public License for more details.
  85326. You should have received a copy of the GNU Lesser General Public
  85327. - License along with the GNU C Library; if not, write to the Free
  85328. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85329. - 02111-1307 USA. */
  85330. + License along with the GNU C Library; if not, see
  85331. + <http://www.gnu.org/licenses/>. */
  85332. #include <stddef.h>
  85333. #include <string.h>
  85334. 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
  85335. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_get_nthreads.c 2012-05-15 09:20:09.000000000 +0200
  85336. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_get_nthreads.c 2014-06-02 17:40:35.026717586 +0200
  85337. @@ -14,9 +14,8 @@
  85338. Lesser General Public License for more details.
  85339. You should have received a copy of the GNU Lesser General Public
  85340. - License along with the GNU C Library; if not, write to the Free
  85341. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85342. - 02111-1307 USA. */
  85343. + License along with the GNU C Library; if not, see
  85344. + <http://www.gnu.org/licenses/>. */
  85345. #include "thread_dbP.h"
  85346. 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
  85347. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_get_ph.c 2012-05-15 09:20:09.000000000 +0200
  85348. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_get_ph.c 2014-06-02 17:40:35.026717586 +0200
  85349. @@ -14,9 +14,8 @@
  85350. Lesser General Public License for more details.
  85351. You should have received a copy of the GNU Lesser General Public
  85352. - License along with the GNU C Library; if not, write to the Free
  85353. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85354. - 02111-1307 USA. */
  85355. + License along with the GNU C Library; if not, see
  85356. + <http://www.gnu.org/licenses/>. */
  85357. #include "thread_dbP.h"
  85358. 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
  85359. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_get_stats.c 2012-05-15 09:20:09.000000000 +0200
  85360. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_get_stats.c 2014-06-02 17:40:35.026717586 +0200
  85361. @@ -14,9 +14,8 @@
  85362. Lesser General Public License for more details.
  85363. You should have received a copy of the GNU Lesser General Public
  85364. - License along with the GNU C Library; if not, write to the Free
  85365. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85366. - 02111-1307 USA. */
  85367. + License along with the GNU C Library; if not, see
  85368. + <http://www.gnu.org/licenses/>. */
  85369. #include "thread_dbP.h"
  85370. 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
  85371. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_map_id2thr.c 2012-05-15 09:20:09.000000000 +0200
  85372. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_map_id2thr.c 2014-06-02 17:40:35.026717586 +0200
  85373. @@ -14,9 +14,8 @@
  85374. Lesser General Public License for more details.
  85375. You should have received a copy of the GNU Lesser General Public
  85376. - License along with the GNU C Library; if not, write to the Free
  85377. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85378. - 02111-1307 USA. */
  85379. + License along with the GNU C Library; if not, see
  85380. + <http://www.gnu.org/licenses/>. */
  85381. #include "thread_dbP.h"
  85382. #include <linuxthreads/internals.h>
  85383. 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
  85384. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_map_lwp2thr.c 2012-05-15 09:20:09.000000000 +0200
  85385. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_map_lwp2thr.c 2014-06-02 17:40:35.026717586 +0200
  85386. @@ -14,9 +14,8 @@
  85387. Lesser General Public License for more details.
  85388. You should have received a copy of the GNU Lesser General Public
  85389. - License along with the GNU C Library; if not, write to the Free
  85390. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85391. - 02111-1307 USA. */
  85392. + License along with the GNU C Library; if not, see
  85393. + <http://www.gnu.org/licenses/>. */
  85394. #include "thread_dbP.h"
  85395. #include <linuxthreads/internals.h>
  85396. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_new.c uClibc-git/libpthread/linuxthreads_db/td_ta_new.c
  85397. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_new.c 2012-05-15 09:20:09.000000000 +0200
  85398. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_new.c 2014-06-02 17:40:35.026717586 +0200
  85399. @@ -14,9 +14,8 @@
  85400. Lesser General Public License for more details.
  85401. You should have received a copy of the GNU Lesser General Public
  85402. - License along with the GNU C Library; if not, write to the Free
  85403. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85404. - 02111-1307 USA. */
  85405. + License along with the GNU C Library; if not, see
  85406. + <http://www.gnu.org/licenses/>. */
  85407. #include <stddef.h>
  85408. #include <stdlib.h>
  85409. 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
  85410. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_reset_stats.c 2012-05-15 09:20:09.000000000 +0200
  85411. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_reset_stats.c 2014-06-02 17:40:35.030717608 +0200
  85412. @@ -14,9 +14,8 @@
  85413. Lesser General Public License for more details.
  85414. You should have received a copy of the GNU Lesser General Public
  85415. - License along with the GNU C Library; if not, write to the Free
  85416. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85417. - 02111-1307 USA. */
  85418. + License along with the GNU C Library; if not, see
  85419. + <http://www.gnu.org/licenses/>. */
  85420. #include "thread_dbP.h"
  85421. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_setconcurrency.c uClibc-git/libpthread/linuxthreads_db/td_ta_setconcurrency.c
  85422. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_setconcurrency.c 2012-05-15 09:20:09.000000000 +0200
  85423. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_setconcurrency.c 2014-06-02 17:40:35.030717608 +0200
  85424. @@ -14,9 +14,8 @@
  85425. Lesser General Public License for more details.
  85426. You should have received a copy of the GNU Lesser General Public
  85427. - License along with the GNU C Library; if not, write to the Free
  85428. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85429. - 02111-1307 USA. */
  85430. + License along with the GNU C Library; if not, see
  85431. + <http://www.gnu.org/licenses/>. */
  85432. #include "thread_dbP.h"
  85433. 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
  85434. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_set_event.c 2012-05-15 09:20:09.000000000 +0200
  85435. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_set_event.c 2014-06-02 17:40:35.030717608 +0200
  85436. @@ -14,17 +14,14 @@
  85437. Lesser General Public License for more details.
  85438. You should have received a copy of the GNU Lesser General Public
  85439. - License along with the GNU C Library; if not, write to the Free
  85440. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85441. - 02111-1307 USA. */
  85442. + License along with the GNU C Library; if not, see
  85443. + <http://www.gnu.org/licenses/>. */
  85444. #include "thread_dbP.h"
  85445. td_err_e
  85446. -td_ta_set_event (ta, event)
  85447. - const td_thragent_t *ta;
  85448. - td_thr_events_t *event;
  85449. +td_ta_set_event(const td_thragent_t *ta, td_thr_events_t *event)
  85450. {
  85451. td_thr_events_t old_event;
  85452. int i;
  85453. 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
  85454. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_thr_iter.c 2012-05-15 09:20:09.000000000 +0200
  85455. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_thr_iter.c 2014-06-02 17:40:35.030717608 +0200
  85456. @@ -14,9 +14,8 @@
  85457. Lesser General Public License for more details.
  85458. You should have received a copy of the GNU Lesser General Public
  85459. - License along with the GNU C Library; if not, write to the Free
  85460. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85461. - 02111-1307 USA. */
  85462. + License along with the GNU C Library; if not, see
  85463. + <http://www.gnu.org/licenses/>. */
  85464. #include "thread_dbP.h"
  85465. #include <linuxthreads/internals.h>
  85466. @@ -40,7 +39,7 @@
  85467. memset (&pds, '\0', sizeof (pds));
  85468. /* Empty thread descriptor the thread library would create. */
  85469. -#if !defined USE_TLS || !TLS_DTV_AT_TP
  85470. +#if !defined __UCLIBC_HAS_TLS__ || !TLS_DTV_AT_TP
  85471. pds.p_header.data.self = &pds;
  85472. #endif
  85473. pds.p_nextlive = pds.p_prevlive = &pds;
  85474. 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
  85475. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_tsd_iter.c 2012-05-15 09:20:09.000000000 +0200
  85476. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_tsd_iter.c 2014-06-02 17:40:35.030717608 +0200
  85477. @@ -14,9 +14,8 @@
  85478. Lesser General Public License for more details.
  85479. You should have received a copy of the GNU Lesser General Public
  85480. - License along with the GNU C Library; if not, write to the Free
  85481. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85482. - 02111-1307 USA. */
  85483. + License along with the GNU C Library; if not, see
  85484. + <http://www.gnu.org/licenses/>. */
  85485. #include "thread_dbP.h"
  85486. #include <linuxthreads/internals.h>
  85487. 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
  85488. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_clear_event.c 2012-05-15 09:20:09.000000000 +0200
  85489. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_clear_event.c 2014-06-02 17:40:35.030717608 +0200
  85490. @@ -14,9 +14,8 @@
  85491. Lesser General Public License for more details.
  85492. You should have received a copy of the GNU Lesser General Public
  85493. - License along with the GNU C Library; if not, write to the Free
  85494. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85495. - 02111-1307 USA. */
  85496. + License along with the GNU C Library; if not, see
  85497. + <http://www.gnu.org/licenses/>. */
  85498. #include <stddef.h>
  85499. @@ -24,9 +23,7 @@
  85500. td_err_e
  85501. -td_thr_clear_event (th, event)
  85502. - const td_thrhandle_t *th;
  85503. - td_thr_events_t *event;
  85504. +td_thr_clear_event(const td_thrhandle_t *th, td_thr_events_t *event)
  85505. {
  85506. td_thr_events_t old_event;
  85507. int i;
  85508. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_dbresume.c uClibc-git/libpthread/linuxthreads_db/td_thr_dbresume.c
  85509. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_dbresume.c 2012-05-15 09:20:09.000000000 +0200
  85510. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_dbresume.c 2014-06-02 17:40:35.030717608 +0200
  85511. @@ -14,9 +14,8 @@
  85512. Lesser General Public License for more details.
  85513. You should have received a copy of the GNU Lesser General Public
  85514. - License along with the GNU C Library; if not, write to the Free
  85515. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85516. - 02111-1307 USA. */
  85517. + License along with the GNU C Library; if not, see
  85518. + <http://www.gnu.org/licenses/>. */
  85519. #include "thread_dbP.h"
  85520. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_dbsuspend.c uClibc-git/libpthread/linuxthreads_db/td_thr_dbsuspend.c
  85521. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_dbsuspend.c 2012-05-15 09:20:09.000000000 +0200
  85522. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_dbsuspend.c 2014-06-02 17:40:35.030717608 +0200
  85523. @@ -14,9 +14,8 @@
  85524. Lesser General Public License for more details.
  85525. You should have received a copy of the GNU Lesser General Public
  85526. - License along with the GNU C Library; if not, write to the Free
  85527. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85528. - 02111-1307 USA. */
  85529. + License along with the GNU C Library; if not, see
  85530. + <http://www.gnu.org/licenses/>. */
  85531. #include "thread_dbP.h"
  85532. 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
  85533. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_event_enable.c 2012-05-15 09:20:09.000000000 +0200
  85534. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_event_enable.c 2014-06-02 17:40:35.030717608 +0200
  85535. @@ -14,9 +14,8 @@
  85536. Lesser General Public License for more details.
  85537. You should have received a copy of the GNU Lesser General Public
  85538. - License along with the GNU C Library; if not, write to the Free
  85539. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85540. - 02111-1307 USA. */
  85541. + License along with the GNU C Library; if not, see
  85542. + <http://www.gnu.org/licenses/>. */
  85543. #include <stddef.h>
  85544. @@ -24,9 +23,7 @@
  85545. td_err_e
  85546. -td_thr_event_enable (th, onoff)
  85547. - const td_thrhandle_t *th;
  85548. - int onoff;
  85549. +td_thr_event_enable(const td_thrhandle_t *th, int onoff)
  85550. {
  85551. LOG ("td_thr_event_enable");
  85552. 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
  85553. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_event_getmsg.c 2012-05-15 09:20:09.000000000 +0200
  85554. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_event_getmsg.c 2014-06-02 17:40:35.030717608 +0200
  85555. @@ -14,9 +14,8 @@
  85556. Lesser General Public License for more details.
  85557. You should have received a copy of the GNU Lesser General Public
  85558. - License along with the GNU C Library; if not, write to the Free
  85559. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85560. - 02111-1307 USA. */
  85561. + License along with the GNU C Library; if not, see
  85562. + <http://www.gnu.org/licenses/>. */
  85563. #include <stddef.h>
  85564. #include <string.h>
  85565. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_getfpregs.c uClibc-git/libpthread/linuxthreads_db/td_thr_getfpregs.c
  85566. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_getfpregs.c 2012-05-15 09:20:09.000000000 +0200
  85567. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_getfpregs.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_getgregs.c uClibc-git/libpthread/linuxthreads_db/td_thr_getgregs.c
  85578. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_getgregs.c 2012-05-15 09:20:09.000000000 +0200
  85579. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_getgregs.c 2014-06-02 17:40:35.030717608 +0200
  85580. @@ -14,9 +14,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. 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
  85590. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_get_info.c 2012-05-15 09:20:09.000000000 +0200
  85591. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_get_info.c 2014-06-02 17:40:35.030717608 +0200
  85592. @@ -14,9 +14,8 @@
  85593. Lesser General Public License for more details.
  85594. You should have received a copy of the GNU Lesser General Public
  85595. - License along with the GNU C Library; if not, write to the Free
  85596. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85597. - 02111-1307 USA. */
  85598. + License along with the GNU C Library; if not, see
  85599. + <http://www.gnu.org/licenses/>. */
  85600. #include <stddef.h>
  85601. #include <string.h>
  85602. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_getxregs.c uClibc-git/libpthread/linuxthreads_db/td_thr_getxregs.c
  85603. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_getxregs.c 2012-05-15 09:20:09.000000000 +0200
  85604. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_getxregs.c 2014-06-02 17:40:35.030717608 +0200
  85605. @@ -14,9 +14,8 @@
  85606. Lesser General Public License for more details.
  85607. You should have received a copy of the GNU Lesser General Public
  85608. - License along with the GNU C Library; if not, write to the Free
  85609. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85610. - 02111-1307 USA. */
  85611. + License along with the GNU C Library; if not, see
  85612. + <http://www.gnu.org/licenses/>. */
  85613. #include "thread_dbP.h"
  85614. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_getxregsize.c uClibc-git/libpthread/linuxthreads_db/td_thr_getxregsize.c
  85615. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_getxregsize.c 2012-05-15 09:20:09.000000000 +0200
  85616. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_getxregsize.c 2014-06-02 17:40:35.030717608 +0200
  85617. @@ -14,9 +14,8 @@
  85618. Lesser General Public License for more details.
  85619. You should have received a copy of the GNU Lesser General Public
  85620. - License along with the GNU C Library; if not, write to the Free
  85621. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85622. - 02111-1307 USA. */
  85623. + License along with the GNU C Library; if not, see
  85624. + <http://www.gnu.org/licenses/>. */
  85625. #include "thread_dbP.h"
  85626. 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
  85627. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_set_event.c 2012-05-15 09:20:09.000000000 +0200
  85628. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_set_event.c 2014-06-02 17:40:35.030717608 +0200
  85629. @@ -14,9 +14,8 @@
  85630. Lesser General Public License for more details.
  85631. You should have received a copy of the GNU Lesser General Public
  85632. - License along with the GNU C Library; if not, write to the Free
  85633. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85634. - 02111-1307 USA. */
  85635. + License along with the GNU C Library; if not, see
  85636. + <http://www.gnu.org/licenses/>. */
  85637. #include <stddef.h>
  85638. @@ -24,9 +23,7 @@
  85639. td_err_e
  85640. -td_thr_set_event (th, event)
  85641. - const td_thrhandle_t *th;
  85642. - td_thr_events_t *event;
  85643. +td_thr_set_event(const td_thrhandle_t *th, td_thr_events_t *event)
  85644. {
  85645. td_thr_events_t old_event;
  85646. int i;
  85647. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setfpregs.c uClibc-git/libpthread/linuxthreads_db/td_thr_setfpregs.c
  85648. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setfpregs.c 2012-05-15 09:20:09.000000000 +0200
  85649. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_setfpregs.c 2014-06-02 17:40:35.030717608 +0200
  85650. @@ -14,9 +14,8 @@
  85651. Lesser General Public License for more details.
  85652. You should have received a copy of the GNU Lesser General Public
  85653. - License along with the GNU C Library; if not, write to the Free
  85654. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85655. - 02111-1307 USA. */
  85656. + License along with the GNU C Library; if not, see
  85657. + <http://www.gnu.org/licenses/>. */
  85658. #include "thread_dbP.h"
  85659. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setgregs.c uClibc-git/libpthread/linuxthreads_db/td_thr_setgregs.c
  85660. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setgregs.c 2012-05-15 09:20:09.000000000 +0200
  85661. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_setgregs.c 2014-06-02 17:40:35.030717608 +0200
  85662. @@ -14,9 +14,8 @@
  85663. Lesser General Public License for more details.
  85664. You should have received a copy of the GNU Lesser General Public
  85665. - License along with the GNU C Library; if not, write to the Free
  85666. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85667. - 02111-1307 USA. */
  85668. + License along with the GNU C Library; if not, see
  85669. + <http://www.gnu.org/licenses/>. */
  85670. #include "thread_dbP.h"
  85671. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setprio.c uClibc-git/libpthread/linuxthreads_db/td_thr_setprio.c
  85672. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setprio.c 2012-05-15 09:20:09.000000000 +0200
  85673. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_setprio.c 2014-06-02 17:40:35.030717608 +0200
  85674. @@ -14,9 +14,8 @@
  85675. Lesser General Public License for more details.
  85676. You should have received a copy of the GNU Lesser General Public
  85677. - License along with the GNU C Library; if not, write to the Free
  85678. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85679. - 02111-1307 USA. */
  85680. + License along with the GNU C Library; if not, see
  85681. + <http://www.gnu.org/licenses/>. */
  85682. #include "thread_dbP.h"
  85683. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setsigpending.c uClibc-git/libpthread/linuxthreads_db/td_thr_setsigpending.c
  85684. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setsigpending.c 2012-05-15 09:20:09.000000000 +0200
  85685. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_setsigpending.c 2014-06-02 17:40:35.030717608 +0200
  85686. @@ -14,9 +14,8 @@
  85687. Lesser General Public License for more details.
  85688. You should have received a copy of the GNU Lesser General Public
  85689. - License along with the GNU C Library; if not, write to the Free
  85690. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85691. - 02111-1307 USA. */
  85692. + License along with the GNU C Library; if not, see
  85693. + <http://www.gnu.org/licenses/>. */
  85694. #include "thread_dbP.h"
  85695. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setxregs.c uClibc-git/libpthread/linuxthreads_db/td_thr_setxregs.c
  85696. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setxregs.c 2012-05-15 09:20:09.000000000 +0200
  85697. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_setxregs.c 2014-06-02 17:40:35.030717608 +0200
  85698. @@ -14,9 +14,8 @@
  85699. Lesser General Public License for more details.
  85700. You should have received a copy of the GNU Lesser General Public
  85701. - License along with the GNU C Library; if not, write to the Free
  85702. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85703. - 02111-1307 USA. */
  85704. + License along with the GNU C Library; if not, see
  85705. + <http://www.gnu.org/licenses/>. */
  85706. #include "thread_dbP.h"
  85707. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_sigsetmask.c uClibc-git/libpthread/linuxthreads_db/td_thr_sigsetmask.c
  85708. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_sigsetmask.c 2012-05-15 09:20:09.000000000 +0200
  85709. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_sigsetmask.c 2014-06-02 17:40:35.030717608 +0200
  85710. @@ -14,9 +14,8 @@
  85711. Lesser General Public License for more details.
  85712. You should have received a copy of the GNU Lesser General Public
  85713. - License along with the GNU C Library; if not, write to the Free
  85714. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85715. - 02111-1307 USA. */
  85716. + License along with the GNU C Library; if not, see
  85717. + <http://www.gnu.org/licenses/>. */
  85718. #include "thread_dbP.h"
  85719. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_tlsbase.c uClibc-git/libpthread/linuxthreads_db/td_thr_tlsbase.c
  85720. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_tlsbase.c 2012-05-15 09:20:09.000000000 +0200
  85721. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_tlsbase.c 2014-06-02 17:40:35.030717608 +0200
  85722. @@ -13,9 +13,8 @@
  85723. Lesser General Public License for more details.
  85724. You should have received a copy of the GNU Lesser General Public
  85725. - License along with the GNU C Library; if not, write to the Free
  85726. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85727. - 02111-1307 USA. */
  85728. + License along with the GNU C Library; if not, see
  85729. + <http://www.gnu.org/licenses/>. */
  85730. #include "thread_dbP.h"
  85731. @@ -30,7 +29,7 @@
  85732. if (modid < 1)
  85733. return TD_NOTLS;
  85734. -#if USE_TLS
  85735. +#ifdef __UCLIBC_HAS_TLS__
  85736. union dtv pdtv, *dtvp;
  85737. LOG ("td_thr_tlsbase");
  85738. 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
  85739. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_tls_get_addr.c 2012-05-15 09:20:09.000000000 +0200
  85740. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_tls_get_addr.c 2014-06-02 17:40:35.030717608 +0200
  85741. @@ -14,9 +14,8 @@
  85742. Lesser General Public License for more details.
  85743. You should have received a copy of the GNU Lesser General Public
  85744. - License along with the GNU C Library; if not, write to the Free
  85745. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85746. - 02111-1307 USA. */
  85747. + License along with the GNU C Library; if not, see
  85748. + <http://www.gnu.org/licenses/>. */
  85749. #include <link.h>
  85750. #include "thread_dbP.h"
  85751. @@ -27,7 +26,7 @@
  85752. size_t offset __attribute__ ((unused)),
  85753. void **address __attribute__ ((unused)))
  85754. {
  85755. -#if USE_TLS
  85756. +#ifdef __UCLIBC_HAS_TLS__
  85757. /* Read the module ID from the link_map. */
  85758. size_t modid;
  85759. if (ps_pdread (th->th_ta_p->ph,
  85760. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_tsd.c uClibc-git/libpthread/linuxthreads_db/td_thr_tsd.c
  85761. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_tsd.c 2012-05-15 09:20:09.000000000 +0200
  85762. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_tsd.c 2014-06-02 17:40:35.030717608 +0200
  85763. @@ -14,9 +14,8 @@
  85764. Lesser General Public License for more details.
  85765. You should have received a copy of the GNU Lesser General Public
  85766. - License along with the GNU C Library; if not, write to the Free
  85767. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85768. - 02111-1307 USA. */
  85769. + License along with the GNU C Library; if not, see
  85770. + <http://www.gnu.org/licenses/>. */
  85771. #include "thread_dbP.h"
  85772. #include <linuxthreads/internals.h>
  85773. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_validate.c uClibc-git/libpthread/linuxthreads_db/td_thr_validate.c
  85774. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_validate.c 2012-05-15 09:20:09.000000000 +0200
  85775. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_validate.c 2014-06-02 17:40:35.030717608 +0200
  85776. @@ -14,9 +14,8 @@
  85777. Lesser General Public License for more details.
  85778. You should have received a copy of the GNU Lesser General Public
  85779. - License along with the GNU C Library; if not, write to the Free
  85780. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85781. - 02111-1307 USA. */
  85782. + License along with the GNU C Library; if not, see
  85783. + <http://www.gnu.org/licenses/>. */
  85784. #include "thread_dbP.h"
  85785. #include <linuxthreads/internals.h>
  85786. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/thread_db.h uClibc-git/libpthread/linuxthreads_db/thread_db.h
  85787. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/thread_db.h 2012-05-15 09:20:09.000000000 +0200
  85788. +++ uClibc-git/libpthread/linuxthreads_db/thread_db.h 2014-06-02 17:40:35.030717608 +0200
  85789. @@ -13,9 +13,8 @@
  85790. Lesser General Public License for more details.
  85791. You should have received a copy of the GNU Lesser General Public
  85792. - License along with the GNU C Library; if not, write to the Free
  85793. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85794. - 02111-1307 USA. */
  85795. + License along with the GNU C Library; if not, see
  85796. + <http://www.gnu.org/licenses/>. */
  85797. #ifndef _THREAD_DB_H
  85798. #define _THREAD_DB_H 1
  85799. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/cancel.c uClibc-git/libpthread/linuxthreads.old/cancel.c
  85800. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/cancel.c 2012-05-15 09:20:09.000000000 +0200
  85801. +++ uClibc-git/libpthread/linuxthreads.old/cancel.c 2014-06-02 17:40:34.850716612 +0200
  85802. @@ -14,8 +14,6 @@
  85803. /* Thread cancellation */
  85804. -#define __FORCE_GLIBC
  85805. -#include <features.h>
  85806. #include <errno.h>
  85807. #include "pthread.h"
  85808. #include "internals.h"
  85809. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/condvar.c uClibc-git/libpthread/linuxthreads.old/condvar.c
  85810. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/condvar.c 2012-05-15 09:20:09.000000000 +0200
  85811. +++ uClibc-git/libpthread/linuxthreads.old/condvar.c 2014-06-02 17:40:34.850716612 +0200
  85812. @@ -25,16 +25,6 @@
  85813. #include "queue.h"
  85814. #include "restart.h"
  85815. -libpthread_hidden_proto(pthread_cond_broadcast)
  85816. -libpthread_hidden_proto(pthread_cond_destroy)
  85817. -libpthread_hidden_proto(pthread_cond_init)
  85818. -libpthread_hidden_proto(pthread_cond_signal)
  85819. -libpthread_hidden_proto(pthread_cond_wait)
  85820. -libpthread_hidden_proto(pthread_cond_timedwait)
  85821. -
  85822. -libpthread_hidden_proto(pthread_condattr_destroy)
  85823. -libpthread_hidden_proto(pthread_condattr_init)
  85824. -
  85825. int pthread_cond_init(pthread_cond_t *cond,
  85826. const pthread_condattr_t *cond_attr attribute_unused)
  85827. {
  85828. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/errno.c uClibc-git/libpthread/linuxthreads.old/errno.c
  85829. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/errno.c 2012-05-15 09:20:09.000000000 +0200
  85830. +++ uClibc-git/libpthread/linuxthreads.old/errno.c 2014-06-02 17:40:34.850716612 +0200
  85831. @@ -14,8 +14,6 @@
  85832. /* Define the location of errno for the remainder of the C library */
  85833. -#define __FORCE_GLIBC
  85834. -#include <features.h>
  85835. #include <errno.h>
  85836. #include <netdb.h>
  85837. #include "pthread.h"
  85838. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/events.c uClibc-git/libpthread/linuxthreads.old/events.c
  85839. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/events.c 2012-05-15 09:20:09.000000000 +0200
  85840. +++ uClibc-git/libpthread/linuxthreads.old/events.c 2014-06-02 17:40:34.850716612 +0200
  85841. @@ -14,8 +14,7 @@
  85842. You should have received a copy of the GNU Library General Public
  85843. License along with the GNU C Library; see the file COPYING.LIB. If not,
  85844. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  85845. - Boston, MA 02111-1307, USA. */
  85846. + see <http://www.gnu.org/licenses/>. */
  85847. /* The functions contained here do nothing, they just return. */
  85848. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/forward.c uClibc-git/libpthread/linuxthreads.old/forward.c
  85849. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/forward.c 2012-05-15 09:20:09.000000000 +0200
  85850. +++ uClibc-git/libpthread/linuxthreads.old/forward.c 2014-06-02 17:40:34.850716612 +0200
  85851. @@ -13,9 +13,8 @@
  85852. Lesser General Public License for more details.
  85853. You should have received a copy of the GNU Lesser General Public
  85854. - License along with the GNU C Library; if not, write to the Free
  85855. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85856. - 02111-1307 USA. */
  85857. + License along with the GNU C Library; if not, see
  85858. + <http://www.gnu.org/licenses/>. */
  85859. #include <features.h>
  85860. #include <stdlib.h>
  85861. @@ -163,8 +162,12 @@
  85862. FORWARD (pthread_setcanceltype, (int type, int *oldtype), (type, oldtype), 0)
  85863. +#if 0
  85864. FORWARD2 (_pthread_cleanup_push, void, (struct _pthread_cleanup_buffer * buffer, void (*routine)(void *), void * arg), (buffer, routine, arg), return)
  85865. +#endif
  85866. FORWARD2 (_pthread_cleanup_push_defer, void, (struct _pthread_cleanup_buffer * buffer, void (*routine)(void *), void * arg), (buffer, routine, arg), return)
  85867. +#if 0
  85868. FORWARD2 (_pthread_cleanup_pop, void, (struct _pthread_cleanup_buffer * buffer, int execute), (buffer, execute), return)
  85869. +#endif
  85870. FORWARD2 (_pthread_cleanup_pop_restore, void, (struct _pthread_cleanup_buffer * buffer, int execute), (buffer, execute), return)
  85871. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/internals.h uClibc-git/libpthread/linuxthreads.old/internals.h
  85872. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/internals.h 2012-05-15 09:20:09.000000000 +0200
  85873. +++ uClibc-git/libpthread/linuxthreads.old/internals.h 2014-06-02 17:40:34.850716612 +0200
  85874. @@ -327,32 +327,28 @@
  85875. /* The page size we can get from the system. This should likely not be
  85876. changed by the machine file but, you never know. */
  85877. -extern size_t __pagesize;
  85878. -#include <bits/uClibc_page.h>
  85879. -#ifndef PAGE_SIZE
  85880. -#define PAGE_SIZE (sysconf (_SC_PAGESIZE))
  85881. -#endif
  85882. +#define __PAGE_SIZE (sysconf (_SC_PAGESIZE))
  85883. /* The max size of the thread stack segments. If the default
  85884. THREAD_SELF implementation is used, this must be a power of two and
  85885. - a multiple of PAGE_SIZE. */
  85886. + a multiple of __PAGE_SIZE. */
  85887. #ifndef STACK_SIZE
  85888. #ifdef __ARCH_USE_MMU__
  85889. #define STACK_SIZE (2 * 1024 * 1024)
  85890. #else
  85891. -#define STACK_SIZE (4 * __pagesize)
  85892. +#define STACK_SIZE (4 * __PAGE_SIZE)
  85893. #endif
  85894. #endif
  85895. -/* The initial size of the thread stack. Must be a multiple of PAGE_SIZE. */
  85896. +/* The initial size of the thread stack. Must be a multiple of __PAGE_SIZE. */
  85897. #ifndef INITIAL_STACK_SIZE
  85898. -#define INITIAL_STACK_SIZE (4 * __pagesize)
  85899. +#define INITIAL_STACK_SIZE (4 * __PAGE_SIZE)
  85900. #endif
  85901. /* Size of the thread manager stack. The "- 32" avoids wasting space
  85902. with some malloc() implementations. */
  85903. #ifndef THREAD_MANAGER_STACK_SIZE
  85904. -#define THREAD_MANAGER_STACK_SIZE (2 * __pagesize - 32)
  85905. +#define THREAD_MANAGER_STACK_SIZE (2 * __PAGE_SIZE - 32)
  85906. #endif
  85907. /* The base of the "array" of thread stacks. The array will grow down from
  85908. @@ -385,7 +381,7 @@
  85909. /* Recover thread descriptor for the current thread */
  85910. -extern pthread_descr __pthread_find_self (void) __attribute__ ((const));
  85911. +extern pthread_descr __pthread_find_self (void) __attribute__ ((const)) attribute_hidden;
  85912. static __inline__ pthread_descr thread_self (void) __attribute__ ((const));
  85913. static __inline__ pthread_descr thread_self (void)
  85914. @@ -455,18 +451,18 @@
  85915. /* Internal global functions */
  85916. void __pthread_do_exit (void *retval, char *currentframe)
  85917. - __attribute__ ((__noreturn__));
  85918. -void __pthread_destroy_specifics(void);
  85919. -void __pthread_perform_cleanup(char *currentframe);
  85920. -int __pthread_initialize_manager(void);
  85921. + __attribute__ ((__noreturn__)) attribute_hidden;
  85922. +void __pthread_destroy_specifics(void) attribute_hidden;
  85923. +void __pthread_perform_cleanup(char *currentframe) attribute_hidden;
  85924. +int __pthread_initialize_manager(void) attribute_hidden;
  85925. void __pthread_message(char * fmt, ...)
  85926. - __attribute__ ((__format__ (printf, 1, 2)));
  85927. -int __pthread_manager(void *reqfd);
  85928. -int __pthread_manager_event(void *reqfd);
  85929. -void __pthread_manager_sighandler(int sig);
  85930. -void __pthread_reset_main_thread(void);
  85931. -void __fresetlockfiles(void);
  85932. -void __pthread_manager_adjust_prio(int thread_prio);
  85933. + __attribute__ ((__format__ (printf, 1, 2))) attribute_hidden;
  85934. +int __pthread_manager(void *reqfd) attribute_hidden;
  85935. +int __pthread_manager_event(void *reqfd) attribute_hidden;
  85936. +void __pthread_manager_sighandler(int sig) attribute_hidden;
  85937. +void __pthread_reset_main_thread(void) attribute_hidden;
  85938. +void __fresetlockfiles(void) attribute_hidden;
  85939. +void __pthread_manager_adjust_prio(int thread_prio) attribute_hidden;
  85940. void __pthread_initialize_minimal (void);
  85941. extern void __pthread_exit (void *retval)
  85942. @@ -475,36 +471,36 @@
  85943. #endif
  85944. ;
  85945. -extern int __pthread_attr_setguardsize __P ((pthread_attr_t *__attr,
  85946. - size_t __guardsize));
  85947. -extern int __pthread_attr_getguardsize __P ((__const pthread_attr_t *__attr,
  85948. - size_t *__guardsize));
  85949. -extern int __pthread_attr_setstackaddr __P ((pthread_attr_t *__attr,
  85950. - void *__stackaddr));
  85951. -extern int __pthread_attr_getstackaddr __P ((__const pthread_attr_t *__attr,
  85952. - void **__stackaddr));
  85953. -extern int __pthread_attr_setstacksize __P ((pthread_attr_t *__attr,
  85954. - size_t __stacksize));
  85955. -extern int __pthread_attr_getstacksize __P ((__const pthread_attr_t *__attr,
  85956. - size_t *__stacksize));
  85957. -extern int __pthread_getconcurrency __P ((void));
  85958. -extern int __pthread_setconcurrency __P ((int __level));
  85959. -extern void __pthread_kill_other_threads_np __P ((void));
  85960. -
  85961. -extern void __pthread_restart_old(pthread_descr th);
  85962. -extern void __pthread_suspend_old(pthread_descr self);
  85963. -extern int __pthread_timedsuspend_old(pthread_descr self, const struct timespec *abstime);
  85964. -
  85965. -extern void __pthread_restart_new(pthread_descr th);
  85966. -extern void __pthread_suspend_new(pthread_descr self);
  85967. -extern int __pthread_timedsuspend_new(pthread_descr self, const struct timespec *abstime);
  85968. +extern int __pthread_attr_setguardsize(pthread_attr_t *__attr,
  85969. + size_t __guardsize) attribute_hidden;
  85970. +extern int __pthread_attr_getguardsize(const pthread_attr_t *__attr,
  85971. + size_t *__guardsize) attribute_hidden;
  85972. +extern int __pthread_attr_setstackaddr(pthread_attr_t *__attr,
  85973. + void *__stackaddr) attribute_hidden;
  85974. +extern int __pthread_attr_getstackaddr(const pthread_attr_t *__attr,
  85975. + void **__stackaddr) attribute_hidden;
  85976. +extern int __pthread_attr_setstacksize(pthread_attr_t *__attr,
  85977. + size_t __stacksize) attribute_hidden;
  85978. +extern int __pthread_attr_getstacksize(const pthread_attr_t *__attr,
  85979. + size_t *__stacksize) attribute_hidden;
  85980. +extern int __pthread_getconcurrency(void) attribute_hidden;
  85981. +extern int __pthread_setconcurrency(int __level) attribute_hidden;
  85982. +extern void __pthread_kill_other_threads_np(void) attribute_hidden;
  85983. +
  85984. +extern void __pthread_restart_old(pthread_descr th) attribute_hidden;
  85985. +extern void __pthread_suspend_old(pthread_descr self) attribute_hidden;
  85986. +extern int __pthread_timedsuspend_old(pthread_descr self, const struct timespec *abstime) attribute_hidden;
  85987. +
  85988. +extern void __pthread_restart_new(pthread_descr th) attribute_hidden;
  85989. +extern void __pthread_suspend_new(pthread_descr self) attribute_hidden;
  85990. +extern int __pthread_timedsuspend_new(pthread_descr self, const struct timespec *abstime) attribute_hidden;
  85991. -extern void __pthread_wait_for_restart_signal(pthread_descr self);
  85992. +extern void __pthread_wait_for_restart_signal(pthread_descr self) attribute_hidden;
  85993. /* Global pointers to old or new suspend functions */
  85994. -extern void (*__pthread_restart)(pthread_descr);
  85995. -extern void (*__pthread_suspend)(pthread_descr);
  85996. +extern void (*__pthread_restart)(pthread_descr) attribute_hidden;
  85997. +extern void (*__pthread_suspend)(pthread_descr) attribute_hidden;
  85998. #if defined NOT_IN_libc && defined IS_IN_libpthread
  85999. extern __typeof(pthread_mutex_init) __pthread_mutex_init attribute_hidden;
  86000. @@ -515,7 +511,7 @@
  86001. #endif
  86002. /* Prototypes for some of the new semaphore functions. */
  86003. -extern int __new_sem_post (sem_t * sem);
  86004. +/*extern int __new_sem_post (sem_t * sem);*/
  86005. /* TSD. */
  86006. extern int __pthread_internal_tsd_set (int key, const void * pointer);
  86007. @@ -524,12 +520,10 @@
  86008. __pthread_internal_tsd_address (int key);
  86009. /* The functions called the signal events. */
  86010. -extern void __linuxthreads_create_event (void);
  86011. -extern void __linuxthreads_death_event (void);
  86012. -extern void __linuxthreads_reap_event (void);
  86013. +extern void __linuxthreads_create_event (void) attribute_hidden;
  86014. +extern void __linuxthreads_death_event (void) attribute_hidden;
  86015. +extern void __linuxthreads_reap_event (void) attribute_hidden;
  86016. #include <pthread-functions.h>
  86017. -extern int * __libc_pthread_init (const struct pthread_functions *functions);
  86018. -
  86019. #endif /* internals.h */
  86020. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/libc_pthread_init.c uClibc-git/libpthread/linuxthreads.old/libc_pthread_init.c
  86021. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/libc_pthread_init.c 2012-05-15 09:20:09.000000000 +0200
  86022. +++ uClibc-git/libpthread/linuxthreads.old/libc_pthread_init.c 2014-06-02 17:40:34.850716612 +0200
  86023. @@ -13,27 +13,12 @@
  86024. Lesser General Public License for more details.
  86025. You should have received a copy of the GNU Lesser General Public
  86026. - License along with the GNU C Library; if not, write to the Free
  86027. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  86028. - 02111-1307 USA. */
  86029. + License along with the GNU C Library; if not, see
  86030. + <http://www.gnu.org/licenses/>. */
  86031. -#include <features.h>
  86032. #include <locale.h>
  86033. -#include <stdlib.h>
  86034. #include <string.h>
  86035. -
  86036. -/* see comment in forward.c */
  86037. -#define GCC_RENAME_BUG 1
  86038. -#ifdef GCC_RENAME_BUG
  86039. -# include <ctype.h>
  86040. -# include <signal.h>
  86041. -# include <unistd.h>
  86042. -# include <sys/time.h>
  86043. -# include <sys/wait.h>
  86044. -#endif
  86045. -
  86046. -#include "internals.h"
  86047. -#include "sysdeps/pthread/pthread-functions.h"
  86048. +#include <linuxthreads.old/sysdeps/pthread/pthread-functions.h>
  86049. int __libc_multiple_threads attribute_hidden __attribute__((nocommon));
  86050. @@ -48,7 +33,7 @@
  86051. sizeof (__libc_pthread_functions));
  86052. #endif
  86053. -#if ! defined USE___THREAD && defined __UCLIBC_HAS_XLOCALE__
  86054. +#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_XLOCALE__
  86055. /* Initialize thread-locale current locale to point to the global one.
  86056. With __thread support, the variable's initializer takes care of this. */
  86057. uselocale (LC_GLOBAL_LOCALE);
  86058. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/locale.c uClibc-git/libpthread/linuxthreads.old/locale.c
  86059. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/locale.c 2012-05-15 09:20:09.000000000 +0200
  86060. +++ uClibc-git/libpthread/linuxthreads.old/locale.c 2014-06-02 17:40:34.850716612 +0200
  86061. @@ -11,8 +11,8 @@
  86062. * Library General Public License for more details.
  86063. *
  86064. * You should have received a copy of the GNU Library General Public
  86065. - * License along with this library; if not, write to the Free
  86066. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  86067. + * License along with this library; if not, see
  86068. + * <http://www.gnu.org/licenses/>.
  86069. */
  86070. #include <features.h>
  86071. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/lockfile.c uClibc-git/libpthread/linuxthreads.old/lockfile.c
  86072. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/lockfile.c 2012-05-15 09:20:09.000000000 +0200
  86073. +++ uClibc-git/libpthread/linuxthreads.old/lockfile.c 2014-06-02 17:40:34.850716612 +0200
  86074. @@ -13,9 +13,8 @@
  86075. Lesser General Public License for more details.
  86076. You should have received a copy of the GNU Lesser General Public
  86077. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  86078. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86079. - Boston, MA 02111-1307, USA. */
  86080. + License along with the GNU C Library; see the file COPYING.LIB. If
  86081. + not, see <http://www.gnu.org/licenses/>. */
  86082. #include <stdio.h>
  86083. #include <pthread.h>
  86084. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/Makefile.in uClibc-git/libpthread/linuxthreads.old/Makefile.in
  86085. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  86086. +++ uClibc-git/libpthread/linuxthreads.old/Makefile.in 2014-06-02 17:40:34.850716612 +0200
  86087. @@ -34,15 +34,12 @@
  86088. libpthread_SRC := \
  86089. attr.c cancel.c condvar.c errno.c events.c join.c lockfile.c manager.c \
  86090. - mutex.c oldsemaphore.c pt-machine.c ptfork.c ptlongjmp.c \
  86091. + mutex.c pt-machine.c ptfork.c pthread.c ptlongjmp.c \
  86092. rwlock.c semaphore.c signals.c specific.c spinlock.c wrapsyscall.c
  86093. ifeq ($(UCLIBC_HAS_XLOCALE),y)
  86094. libpthread_SRC += locale.c
  86095. endif
  86096. -libpthread_SPEC_SRC := pthread.c
  86097. -libpthread_SPEC_SRC := $(patsubst %.c,$(libpthread_DIR)/%.c,$(libpthread_SPEC_SRC))
  86098. -
  86099. # remove generic sources, if arch specific version is present
  86100. ifneq ($(strip $(libpthread_ARCH_SRC)),)
  86101. libpthread_SRC := $(filter-out $(patsubst %.c,$(libpthread_DIR)/%.c,$(notdir $(libpthread_ARCH_SRC))),$(libpthread_SRC))
  86102. @@ -62,15 +59,12 @@
  86103. libc-static-y += $(libpthread_OUT)/libc_pthread_init.o
  86104. libc-shared-y += $(libpthread_libc_OBJ:.o=.oS)
  86105. -libpthread-static-y += $(patsubst $(libpthread_DIR)/%.c,$(libpthread_OUT)/%.o,$(libpthread_SPEC_SRC))
  86106. -libpthread-shared-y += $(patsubst $(libpthread_DIR)/%.c,$(libpthread_OUT)/%.oS,$(libpthread_SPEC_SRC))
  86107. -
  86108. ifeq ($(DOPIC),y)
  86109. -libpthread-a-y += $(libpthread_OBJ:.o=.os) $(libpthread-static-y:.o=.os)
  86110. +libpthread-a-y += $(libpthread_OBJ:.o=.os)
  86111. else
  86112. -libpthread-a-y += $(libpthread_OBJ) $(libpthread-static-y)
  86113. +libpthread-a-y += $(libpthread_OBJ)
  86114. endif
  86115. -libpthread-so-y += $(libpthread_OBJ:.o=.os) $(libpthread-shared-y)
  86116. +libpthread-so-y += $(libpthread_OBJ:.o=.oS)
  86117. lib-a-$(UCLIBC_HAS_THREADS) += $(top_builddir)lib/libpthread.a
  86118. lib-so-$(UCLIBC_HAS_THREADS) += $(top_builddir)lib/libpthread.so
  86119. @@ -93,7 +87,7 @@
  86120. ifeq ($(PTHREADS_DEBUG_SUPPORT),y)
  86121. $(libpthread_OUT)/libpthread.oS: STRIP_FLAGS:=$(STRIP_FLAGS:-x=-X --strip-debug)
  86122. endif
  86123. -$(libpthread_OUT)/libpthread.oS: $(libpthread_SRC) $(libpthread_SPEC_SRC)
  86124. +$(libpthread_OUT)/libpthread.oS: $(libpthread_SRC)
  86125. $(Q)$(RM) $@
  86126. $(compile-m)
  86127. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/manager.c uClibc-git/libpthread/linuxthreads.old/manager.c
  86128. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/manager.c 2012-05-15 09:20:09.000000000 +0200
  86129. +++ uClibc-git/libpthread/linuxthreads.old/manager.c 2014-06-02 17:40:34.850716612 +0200
  86130. @@ -232,7 +232,7 @@
  86131. break;
  86132. case REQ_POST:
  86133. PDEBUG("got REQ_POST\n");
  86134. - __new_sem_post(request.req_args.post);
  86135. + sem_post(request.req_args.post);
  86136. break;
  86137. case REQ_DEBUG:
  86138. PDEBUG("got REQ_DEBUG\n");
  86139. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/oldsemaphore.c uClibc-git/libpthread/linuxthreads.old/oldsemaphore.c
  86140. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/oldsemaphore.c 2012-05-15 09:20:09.000000000 +0200
  86141. +++ uClibc-git/libpthread/linuxthreads.old/oldsemaphore.c 1970-01-01 01:00:00.000000000 +0100
  86142. @@ -1,241 +0,0 @@
  86143. -/*
  86144. - * This file contains the old semaphore code that we need to
  86145. - * preserve for glibc-2.0 backwards compatibility. Port to glibc 2.1
  86146. - * done by Cristian Gafton.
  86147. - */
  86148. -
  86149. -/* Linuxthreads - a simple clone()-based implementation of Posix */
  86150. -/* threads for Linux. */
  86151. -/* Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr) */
  86152. -/* */
  86153. -/* This program is free software; you can redistribute it and/or */
  86154. -/* modify it under the terms of the GNU Library General Public License */
  86155. -/* as published by the Free Software Foundation; either version 2 */
  86156. -/* of the License, or (at your option) any later version. */
  86157. -/* */
  86158. -/* This program is distributed in the hope that it will be useful, */
  86159. -/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
  86160. -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
  86161. -/* GNU Library General Public License for more details. */
  86162. -
  86163. -/* Semaphores a la POSIX 1003.1b */
  86164. -
  86165. -#include <errno.h>
  86166. -#include "pthread.h"
  86167. -#include "internals.h"
  86168. -#include "spinlock.h"
  86169. -#include "restart.h"
  86170. -#include "queue.h"
  86171. -
  86172. -typedef struct {
  86173. - long int sem_status;
  86174. - int sem_spinlock;
  86175. -} old_sem_t;
  86176. -
  86177. -/* Maximum value the semaphore can have. */
  86178. -#define SEM_VALUE_MAX ((int) ((~0u) >> 1))
  86179. -
  86180. -static __inline__ int sem_compare_and_swap(old_sem_t *sem, long oldval, long newval)
  86181. -{
  86182. - return compare_and_swap(&sem->sem_status, oldval, newval, &sem->sem_spinlock);
  86183. -}
  86184. -
  86185. -/* The state of a semaphore is represented by a long int encoding
  86186. - either the semaphore count if >= 0 and no thread is waiting on it,
  86187. - or the head of the list of threads waiting for the semaphore.
  86188. - To distinguish the two cases, we encode the semaphore count N
  86189. - as 2N+1, so that it has the lowest bit set.
  86190. -
  86191. - A sequence of sem_wait operations on a semaphore initialized to N
  86192. - result in the following successive states:
  86193. - 2N+1, 2N-1, ..., 3, 1, &first_waiting_thread, &second_waiting_thread, ...
  86194. -*/
  86195. -
  86196. -static void sem_restart_list(pthread_descr waiting);
  86197. -
  86198. -int __old_sem_init(old_sem_t *sem, int pshared, unsigned int value);
  86199. -int __old_sem_init(old_sem_t *sem, int pshared, unsigned int value)
  86200. -{
  86201. - if (value > SEM_VALUE_MAX) {
  86202. - errno = EINVAL;
  86203. - return -1;
  86204. - }
  86205. - if (pshared) {
  86206. - errno = ENOSYS;
  86207. - return -1;
  86208. - }
  86209. - sem->sem_spinlock = 0;
  86210. - sem->sem_status = ((long)value << 1) + 1;
  86211. - return 0;
  86212. -}
  86213. -
  86214. -/* Function called by pthread_cancel to remove the thread from
  86215. - waiting inside __old_sem_wait. Here we simply unconditionally
  86216. - indicate that the thread is to be woken, by returning 1. */
  86217. -
  86218. -static int old_sem_extricate_func(void *obj attribute_unused, pthread_descr th attribute_unused)
  86219. -{
  86220. - return 1;
  86221. -}
  86222. -
  86223. -int __old_sem_wait(old_sem_t * sem);
  86224. -int __old_sem_wait(old_sem_t * sem)
  86225. -{
  86226. - long oldstatus, newstatus;
  86227. - volatile pthread_descr self = thread_self();
  86228. - pthread_descr * th;
  86229. - pthread_extricate_if extr;
  86230. -
  86231. - /* Set up extrication interface */
  86232. - extr.pu_object = 0;
  86233. - extr.pu_extricate_func = old_sem_extricate_func;
  86234. -
  86235. - while (1) {
  86236. - /* Register extrication interface */
  86237. - __pthread_set_own_extricate_if(self, &extr);
  86238. - do {
  86239. - oldstatus = sem->sem_status;
  86240. - if ((oldstatus & 1) && (oldstatus != 1))
  86241. - newstatus = oldstatus - 2;
  86242. - else {
  86243. - newstatus = (long) self;
  86244. - self->p_nextwaiting = (pthread_descr) oldstatus;
  86245. - }
  86246. - }
  86247. - while (! sem_compare_and_swap(sem, oldstatus, newstatus));
  86248. - if (newstatus & 1) {
  86249. - /* We got the semaphore. */
  86250. - __pthread_set_own_extricate_if(self, 0);
  86251. - return 0;
  86252. - }
  86253. - /* Wait for sem_post or cancellation */
  86254. - suspend(self);
  86255. - __pthread_set_own_extricate_if(self, 0);
  86256. -
  86257. - /* This is a cancellation point */
  86258. - if (self->p_canceled && self->p_cancelstate == PTHREAD_CANCEL_ENABLE) {
  86259. - /* Remove ourselves from the waiting list if we're still on it */
  86260. - /* First check if we're at the head of the list. */
  86261. - do {
  86262. - oldstatus = sem->sem_status;
  86263. - if (oldstatus != (long) self) break;
  86264. - newstatus = (long) self->p_nextwaiting;
  86265. - }
  86266. - while (! sem_compare_and_swap(sem, oldstatus, newstatus));
  86267. - /* Now, check if we're somewhere in the list.
  86268. - There's a race condition with sem_post here, but it does not matter:
  86269. - the net result is that at the time pthread_exit is called,
  86270. - self is no longer reachable from sem->sem_status. */
  86271. - if (oldstatus != (long) self && (oldstatus & 1) == 0) {
  86272. - for (th = &(((pthread_descr) oldstatus)->p_nextwaiting);
  86273. - *th != NULL && *th != (pthread_descr) 1;
  86274. - th = &((*th)->p_nextwaiting)) {
  86275. - if (*th == self) {
  86276. - *th = self->p_nextwaiting;
  86277. - break;
  86278. - }
  86279. - }
  86280. - }
  86281. - __pthread_do_exit(PTHREAD_CANCELED, CURRENT_STACK_FRAME);
  86282. - }
  86283. - }
  86284. -}
  86285. -
  86286. -int __old_sem_trywait(old_sem_t * sem);
  86287. -int __old_sem_trywait(old_sem_t * sem)
  86288. -{
  86289. - long oldstatus, newstatus;
  86290. -
  86291. - do {
  86292. - oldstatus = sem->sem_status;
  86293. - if ((oldstatus & 1) == 0 || (oldstatus == 1)) {
  86294. - errno = EAGAIN;
  86295. - return -1;
  86296. - }
  86297. - newstatus = oldstatus - 2;
  86298. - }
  86299. - while (! sem_compare_and_swap(sem, oldstatus, newstatus));
  86300. - return 0;
  86301. -}
  86302. -
  86303. -int __old_sem_post(old_sem_t * sem);
  86304. -int __old_sem_post(old_sem_t * sem)
  86305. -{
  86306. - long oldstatus, newstatus;
  86307. -
  86308. - do {
  86309. - oldstatus = sem->sem_status;
  86310. - if ((oldstatus & 1) == 0)
  86311. - newstatus = 3;
  86312. - else {
  86313. - if (oldstatus >= SEM_VALUE_MAX) {
  86314. - /* Overflow */
  86315. - errno = ERANGE;
  86316. - return -1;
  86317. - }
  86318. - newstatus = oldstatus + 2;
  86319. - }
  86320. - }
  86321. - while (! sem_compare_and_swap(sem, oldstatus, newstatus));
  86322. - if ((oldstatus & 1) == 0)
  86323. - sem_restart_list((pthread_descr) oldstatus);
  86324. - return 0;
  86325. -}
  86326. -
  86327. -int __old_sem_getvalue(old_sem_t * sem, int * sval);
  86328. -int __old_sem_getvalue(old_sem_t * sem, int * sval)
  86329. -{
  86330. - long status = sem->sem_status;
  86331. - if (status & 1)
  86332. - *sval = (int)((unsigned long) status >> 1);
  86333. - else
  86334. - *sval = 0;
  86335. - return 0;
  86336. -}
  86337. -
  86338. -int __old_sem_destroy(old_sem_t * sem);
  86339. -int __old_sem_destroy(old_sem_t * sem)
  86340. -{
  86341. - if ((sem->sem_status & 1) == 0) {
  86342. - errno = EBUSY;
  86343. - return -1;
  86344. - }
  86345. - return 0;
  86346. -}
  86347. -
  86348. -/* Auxiliary function for restarting all threads on a waiting list,
  86349. - in priority order. */
  86350. -
  86351. -static void sem_restart_list(pthread_descr waiting)
  86352. -{
  86353. - pthread_descr th, towake, *p;
  86354. -
  86355. - /* Sort list of waiting threads by decreasing priority (insertion sort) */
  86356. - towake = NULL;
  86357. - while (waiting != (pthread_descr) 1) {
  86358. - th = waiting;
  86359. - waiting = waiting->p_nextwaiting;
  86360. - p = &towake;
  86361. - while (*p != NULL && th->p_priority < (*p)->p_priority)
  86362. - p = &((*p)->p_nextwaiting);
  86363. - th->p_nextwaiting = *p;
  86364. - *p = th;
  86365. - }
  86366. - /* Wake up threads in priority order */
  86367. - while (towake != NULL) {
  86368. - th = towake;
  86369. - towake = towake->p_nextwaiting;
  86370. - th->p_nextwaiting = NULL;
  86371. - restart(th);
  86372. - }
  86373. -}
  86374. -
  86375. -#if defined __PIC__ && defined DO_VERSIONING
  86376. -symbol_version (__old_sem_init, sem_init, GLIBC_2.0);
  86377. -symbol_version (__old_sem_wait, sem_wait, GLIBC_2.0);
  86378. -symbol_version (__old_sem_trywait, sem_trywait, GLIBC_2.0);
  86379. -symbol_version (__old_sem_post, sem_post, GLIBC_2.0);
  86380. -symbol_version (__old_sem_getvalue, sem_getvalue, GLIBC_2.0);
  86381. -symbol_version (__old_sem_destroy, sem_destroy, GLIBC_2.0);
  86382. -#endif
  86383. -
  86384. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/ptfork.c uClibc-git/libpthread/linuxthreads.old/ptfork.c
  86385. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/ptfork.c 2012-05-15 09:20:09.000000000 +0200
  86386. +++ uClibc-git/libpthread/linuxthreads.old/ptfork.c 2014-06-02 17:40:34.850716612 +0200
  86387. @@ -93,10 +93,7 @@
  86388. void __pthread_once_fork_child(void);
  86389. void __pthread_once_fork_parent(void);
  86390. -extern __typeof(fork) __libc_fork;
  86391. -
  86392. -pid_t __fork(void) attribute_hidden;
  86393. -pid_t __fork(void)
  86394. +static pid_t __fork(void)
  86395. {
  86396. pid_t pid;
  86397. struct handler_list * prepare, * child, * parent;
  86398. @@ -151,11 +148,7 @@
  86399. return pid;
  86400. }
  86401. strong_alias(__fork,fork)
  86402. -
  86403. -pid_t vfork(void)
  86404. -{
  86405. - return __fork();
  86406. -}
  86407. +strong_alias(__fork,vfork)
  86408. #else
  86409. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/pthread.c uClibc-git/libpthread/linuxthreads.old/pthread.c
  86410. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/pthread.c 2012-05-15 09:20:09.000000000 +0200
  86411. +++ uClibc-git/libpthread/linuxthreads.old/pthread.c 2014-06-02 17:40:34.850716612 +0200
  86412. @@ -14,8 +14,6 @@
  86413. /* Thread creation, initialization, and basic low-level routines */
  86414. -#define __FORCE_GLIBC
  86415. -#include <features.h>
  86416. #include <errno.h>
  86417. #include <netdb.h> /* for h_errno */
  86418. #include <stddef.h>
  86419. @@ -38,8 +36,6 @@
  86420. #include <sys/types.h>
  86421. #include <sys/syscall.h>
  86422. -/* mods for uClibc: __libc_sigaction is not in any standard headers */
  86423. -extern __typeof(sigaction) __libc_sigaction;
  86424. libpthread_hidden_proto(waitpid)
  86425. libpthread_hidden_proto(raise)
  86426. @@ -260,6 +256,7 @@
  86427. return current_rtmax;
  86428. }
  86429. +#if 0
  86430. /* Allocate real-time signal with highest/lowest available
  86431. priority. Please note that we don't use a lock since we assume
  86432. this function to be called at program start. */
  86433. @@ -272,6 +269,7 @@
  86434. return high ? current_rtmin++ : current_rtmax--;
  86435. }
  86436. #endif
  86437. +#endif
  86438. /* Initialize the pthread library.
  86439. Initialization is split in two functions:
  86440. @@ -319,7 +317,7 @@
  86441. struct pthread_functions __pthread_functions =
  86442. {
  86443. -#ifndef USE___THREAD
  86444. +#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__
  86445. .ptr_pthread_internal_tsd_set = __pthread_internal_tsd_set,
  86446. .ptr_pthread_internal_tsd_get = __pthread_internal_tsd_get,
  86447. .ptr_pthread_internal_tsd_address = __pthread_internal_tsd_address,
  86448. @@ -367,10 +365,10 @@
  86449. .ptr_pthread_sigwait = pthread_sigwait,
  86450. .ptr_pthread_raise = pthread_raise,
  86451. .ptr__pthread_cleanup_push = _pthread_cleanup_push,
  86452. - .ptr__pthread_cleanup_pop = _pthread_cleanup_pop
  86453. + .ptr__pthread_cleanup_pop = _pthread_cleanup_pop,
  86454. */
  86455. .ptr__pthread_cleanup_push_defer = __pthread_cleanup_push_defer,
  86456. - .ptr__pthread_cleanup_pop_restore = __pthread_cleanup_pop_restore,
  86457. + .ptr__pthread_cleanup_pop_restore = __pthread_cleanup_pop_restore
  86458. };
  86459. #ifdef SHARED
  86460. # define ptr_pthread_functions &__pthread_functions
  86461. @@ -528,7 +526,7 @@
  86462. /* On non-MMU systems we make sure that the initial thread bounds don't overlap
  86463. * with the manager stack frame */
  86464. NOMMU_INITIAL_THREAD_BOUNDS(__pthread_manager_thread_tos,__pthread_manager_thread_bos);
  86465. - PDEBUG("manager stack: size=%d, bos=%p, tos=%p\n", THREAD_MANAGER_STACK_SIZE,
  86466. + PDEBUG("manager stack: size=%ld, bos=%p, tos=%p\n", THREAD_MANAGER_STACK_SIZE,
  86467. __pthread_manager_thread_bos, __pthread_manager_thread_tos);
  86468. #if 0
  86469. PDEBUG("initial stack: estimate bos=%p, tos=%p\n",
  86470. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/ptlongjmp.c uClibc-git/libpthread/linuxthreads.old/ptlongjmp.c
  86471. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/ptlongjmp.c 2012-05-15 09:20:09.000000000 +0200
  86472. +++ uClibc-git/libpthread/linuxthreads.old/ptlongjmp.c 2014-06-02 17:40:34.850716612 +0200
  86473. @@ -19,11 +19,7 @@
  86474. #include "pthread.h"
  86475. #include "internals.h"
  86476. #include <bits/stackinfo.h>
  86477. -
  86478. -/* These functions are not declared anywhere since they shouldn't be
  86479. - used at another place but here. */
  86480. -extern __typeof(siglongjmp) __libc_siglongjmp attribute_noreturn;
  86481. -extern __typeof(longjmp) __libc_longjmp attribute_noreturn;
  86482. +#include <jmpbuf-unwind.h>
  86483. static void pthread_cleanup_upto(__jmp_buf target)
  86484. {
  86485. @@ -58,13 +54,13 @@
  86486. THREAD_SETMEM(self, p_in_sighandler, NULL);
  86487. }
  86488. -void attribute_noreturn siglongjmp(sigjmp_buf env, int val)
  86489. +void siglongjmp(sigjmp_buf env, int val)
  86490. {
  86491. pthread_cleanup_upto(env->__jmpbuf);
  86492. __libc_siglongjmp(env, val);
  86493. }
  86494. -void attribute_noreturn longjmp(jmp_buf env, int val)
  86495. +void longjmp(jmp_buf env, int val)
  86496. {
  86497. pthread_cleanup_upto(env->__jmpbuf);
  86498. __libc_longjmp(env, val);
  86499. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/pt-machine.c uClibc-git/libpthread/linuxthreads.old/pt-machine.c
  86500. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/pt-machine.c 2012-05-15 09:20:09.000000000 +0200
  86501. +++ uClibc-git/libpthread/linuxthreads.old/pt-machine.c 2014-06-02 17:40:34.850716612 +0200
  86502. @@ -14,8 +14,7 @@
  86503. You should have received a copy of the GNU Library General Public
  86504. License along with the GNU C Library; see the file COPYING.LIB. If not,
  86505. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86506. - Boston, MA 02111-1307, USA. */
  86507. + see <http://www.gnu.org/licenses/>. */
  86508. #define PT_EI
  86509. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/rwlock.c uClibc-git/libpthread/linuxthreads.old/rwlock.c
  86510. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/rwlock.c 2012-05-15 09:20:09.000000000 +0200
  86511. +++ uClibc-git/libpthread/linuxthreads.old/rwlock.c 2014-06-02 17:40:34.850716612 +0200
  86512. @@ -16,8 +16,7 @@
  86513. You should have received a copy of the GNU Library General Public
  86514. License along with the GNU C Library; see the file COPYING.LIB. If not,
  86515. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86516. - Boston, MA 02111-1307, USA. */
  86517. + see <http://www.gnu.org/licenses/>. */
  86518. #include <errno.h>
  86519. #include <pthread.h>
  86520. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/semaphore.c uClibc-git/libpthread/linuxthreads.old/semaphore.c
  86521. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/semaphore.c 2012-05-15 09:20:09.000000000 +0200
  86522. +++ uClibc-git/libpthread/linuxthreads.old/semaphore.c 2014-06-02 17:40:34.850716612 +0200
  86523. @@ -15,6 +15,7 @@
  86524. /* Semaphores a la POSIX 1003.1b */
  86525. #include <features.h>
  86526. +#include <limits.h>
  86527. #include <errno.h>
  86528. #include "pthread.h"
  86529. #include "semaphore.h"
  86530. @@ -23,8 +24,7 @@
  86531. #include "restart.h"
  86532. #include "queue.h"
  86533. -int __new_sem_init(sem_t *sem, int pshared, unsigned int value);
  86534. -int __new_sem_init(sem_t *sem, int pshared, unsigned int value)
  86535. +int sem_init(sem_t *sem, int pshared, unsigned int value)
  86536. {
  86537. if (value > SEM_VALUE_MAX) {
  86538. errno = EINVAL;
  86539. @@ -41,7 +41,7 @@
  86540. }
  86541. /* Function called by pthread_cancel to remove the thread from
  86542. - waiting inside __new_sem_wait. */
  86543. + waiting inside sem_wait. */
  86544. static int new_sem_extricate_func(void *obj, pthread_descr th)
  86545. {
  86546. @@ -56,8 +56,7 @@
  86547. return did_remove;
  86548. }
  86549. -int __new_sem_wait(sem_t * sem);
  86550. -int __new_sem_wait(sem_t * sem)
  86551. +int sem_wait(sem_t * sem)
  86552. {
  86553. volatile pthread_descr self = thread_self();
  86554. pthread_extricate_if extr;
  86555. @@ -119,8 +118,7 @@
  86556. return 0;
  86557. }
  86558. -int __new_sem_trywait(sem_t * sem);
  86559. -int __new_sem_trywait(sem_t * sem)
  86560. +int sem_trywait(sem_t * sem)
  86561. {
  86562. int retval;
  86563. @@ -136,8 +134,7 @@
  86564. return retval;
  86565. }
  86566. -int __new_sem_post(sem_t * sem);
  86567. -int __new_sem_post(sem_t * sem)
  86568. +int sem_post(sem_t * sem)
  86569. {
  86570. pthread_descr self = thread_self();
  86571. pthread_descr th;
  86572. @@ -178,15 +175,13 @@
  86573. return 0;
  86574. }
  86575. -int __new_sem_getvalue(sem_t * sem, int * sval);
  86576. -int __new_sem_getvalue(sem_t * sem, int * sval)
  86577. +int sem_getvalue(sem_t * sem, int * sval)
  86578. {
  86579. *sval = sem->__sem_value;
  86580. return 0;
  86581. }
  86582. -int __new_sem_destroy(sem_t * sem);
  86583. -int __new_sem_destroy(sem_t * sem)
  86584. +int sem_destroy(sem_t * sem)
  86585. {
  86586. if (sem->__sem_waiting != NULL) {
  86587. __set_errno (EBUSY);
  86588. @@ -302,12 +297,3 @@
  86589. /* We got the semaphore */
  86590. return 0;
  86591. }
  86592. -
  86593. -
  86594. -weak_alias (__new_sem_init, sem_init)
  86595. -weak_alias (__new_sem_wait, sem_wait)
  86596. -weak_alias (__new_sem_trywait, sem_trywait)
  86597. -weak_alias (__new_sem_post, sem_post)
  86598. -weak_alias (__new_sem_getvalue, sem_getvalue)
  86599. -weak_alias (__new_sem_destroy, sem_destroy)
  86600. -
  86601. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/semaphore.h uClibc-git/libpthread/linuxthreads.old/semaphore.h
  86602. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/semaphore.h 2012-05-15 09:20:09.000000000 +0200
  86603. +++ uClibc-git/libpthread/linuxthreads.old/semaphore.h 2014-06-02 17:40:34.874716745 +0200
  86604. @@ -17,6 +17,7 @@
  86605. #include <features.h>
  86606. #include <sys/types.h>
  86607. +#include <limits.h>
  86608. #ifdef __USE_XOPEN2K
  86609. # define __need_timespec
  86610. # include <time.h>
  86611. @@ -42,7 +43,9 @@
  86612. #define SEM_FAILED ((sem_t *) 0)
  86613. /* Maximum value the semaphore can have. */
  86614. +#ifndef SEM_VALUE_MAX
  86615. #define SEM_VALUE_MAX ((int) ((~0u) >> 1))
  86616. +#endif
  86617. __BEGIN_DECLS
  86618. @@ -55,13 +58,13 @@
  86619. extern int sem_destroy (sem_t *__sem) __THROW;
  86620. /* Open a named semaphore NAME with open flags OFLAG. */
  86621. -extern sem_t *sem_open (__const char *__name, int __oflag, ...) __THROW;
  86622. +extern sem_t *sem_open (const char *__name, int __oflag, ...) __THROW;
  86623. /* Close descriptor for named semaphore SEM. */
  86624. extern int sem_close (sem_t *__sem) __THROW;
  86625. /* Remove named semaphore NAME. */
  86626. -extern int sem_unlink (__const char *__name) __THROW;
  86627. +extern int sem_unlink (const char *__name) __THROW;
  86628. /* Wait for SEM being posted.
  86629. @@ -75,7 +78,7 @@
  86630. This function is a cancellation point and therefore not marked with
  86631. __THROW. */
  86632. extern int sem_timedwait (sem_t *__restrict __sem,
  86633. - __const struct timespec *__restrict __abstime);
  86634. + const struct timespec *__restrict __abstime);
  86635. #endif
  86636. /* Test whether SEM is posted. */
  86637. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/signals.c uClibc-git/libpthread/linuxthreads.old/signals.c
  86638. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/signals.c 2012-05-15 09:20:09.000000000 +0200
  86639. +++ uClibc-git/libpthread/linuxthreads.old/signals.c 2014-06-02 17:40:34.874716745 +0200
  86640. @@ -22,9 +22,6 @@
  86641. #include "spinlock.h"
  86642. #include <bits/sigcontextinfo.h>
  86643. -/* mods for uClibc: __libc_sigaction is not in any standard headers */
  86644. -extern __typeof(sigaction) __libc_sigaction;
  86645. -
  86646. int pthread_sigmask(int how, const sigset_t * newmask, sigset_t * oldmask)
  86647. {
  86648. sigset_t mask;
  86649. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/specific.c uClibc-git/libpthread/linuxthreads.old/specific.c
  86650. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/specific.c 2012-05-15 09:20:09.000000000 +0200
  86651. +++ uClibc-git/libpthread/linuxthreads.old/specific.c 2014-06-02 17:40:34.874716745 +0200
  86652. @@ -167,7 +167,7 @@
  86653. __pthread_unlock(THREAD_GETMEM(self, p_lock));
  86654. }
  86655. -#ifndef USE___THREAD
  86656. +#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__
  86657. /* Thread-specific data for libc. */
  86658. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/spinlock.c uClibc-git/libpthread/linuxthreads.old/spinlock.c
  86659. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/spinlock.c 2012-05-15 09:20:09.000000000 +0200
  86660. +++ uClibc-git/libpthread/linuxthreads.old/spinlock.c 2014-06-02 17:40:34.874716745 +0200
  86661. @@ -14,8 +14,6 @@
  86662. /* Internal locks */
  86663. -#define __FORCE_GLIBC
  86664. -#include <features.h>
  86665. #include <errno.h>
  86666. #include <sched.h>
  86667. #include <time.h>
  86668. @@ -67,7 +65,6 @@
  86669. #if defined HAS_COMPARE_AND_SWAP
  86670. long oldstatus, newstatus;
  86671. int successful_seizure, spurious_wakeup_count;
  86672. - int spin_count;
  86673. #endif
  86674. #if defined TEST_FOR_COMPARE_AND_SWAP
  86675. @@ -87,11 +84,11 @@
  86676. return;
  86677. spurious_wakeup_count = 0;
  86678. - spin_count = 0;
  86679. /* On SMP, try spinning to get the lock. */
  86680. #if 0
  86681. if (__pthread_smp_kernel) {
  86682. + int spin_count;
  86683. int max_count = lock->__spinlock * 2 + 10;
  86684. if (max_count > MAX_ADAPTIVE_SPIN_COUNT)
  86685. 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
  86686. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/alpha/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86687. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/alpha/pt-machine.h 2014-06-02 17:40:34.878716767 +0200
  86688. @@ -17,8 +17,7 @@
  86689. You should have received a copy of the GNU Lesser General Public
  86690. License along with the GNU C Library; see the file COPYING.LIB. If not,
  86691. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86692. - Boston, MA 02111-1307, USA. */
  86693. + see <http://www.gnu.org/licenses/>. */
  86694. #ifndef _PT_MACHINE_H
  86695. #define _PT_MACHINE_H 1
  86696. 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
  86697. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/arc/pt-machine.h 1970-01-01 01:00:00.000000000 +0100
  86698. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/arc/pt-machine.h 2014-06-02 17:40:34.878716767 +0200
  86699. @@ -0,0 +1,42 @@
  86700. +/*
  86701. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  86702. + *
  86703. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  86704. + */
  86705. +
  86706. +#ifndef _PT_MACHINE_H
  86707. +#define _PT_MACHINE_H 1
  86708. +#include <features.h>
  86709. +
  86710. +#ifndef PT_EI
  86711. +# define PT_EI __extern_always_inline
  86712. +#endif
  86713. +
  86714. +extern long int testandset (int *spinlock);
  86715. +extern int __compare_and_swap (long int *p, long int oldval, long int newval);
  86716. +
  86717. +PT_EI long int
  86718. +testandset (int *spinlock)
  86719. +{
  86720. + unsigned int old = 1;
  86721. +
  86722. + /* Atomically exchange @spinlock with 1 */
  86723. + __asm__ __volatile__(
  86724. + "ex %0, [%1]"
  86725. + : "+r" (old)
  86726. + : "r" (spinlock)
  86727. + : "memory");
  86728. +
  86729. + return old;
  86730. +
  86731. +}
  86732. +
  86733. +/* Get some notion of the current stack. Need not be exactly the top
  86734. + of the stack, just something somewhere in the current frame.
  86735. + I don't trust register variables, so let's do this the safe way. */
  86736. +#define CURRENT_STACK_FRAME \
  86737. +__extension__ ({ char *__sp; __asm__ ("mov %0,sp" : "=r" (__sp)); __sp; })
  86738. +
  86739. +#else
  86740. +#error PT_MACHINE already defined
  86741. +#endif /* pt-machine.h */
  86742. 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
  86743. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/arm/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86744. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/arm/pt-machine.h 2014-06-02 17:40:34.878716767 +0200
  86745. @@ -15,9 +15,8 @@
  86746. Lesser General Public License for more details.
  86747. You should have received a copy of the GNU Lesser General Public
  86748. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  86749. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86750. - Boston, MA 02111-1307, USA. */
  86751. + License along with the GNU C Library; see the file COPYING.LIB. If
  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/bfin/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/bfin/pt-machine.h
  86756. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/bfin/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86757. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/bfin/pt-machine.h 2014-06-02 17:40:34.894716855 +0200
  86758. @@ -15,8 +15,7 @@
  86759. You should have received a copy of the GNU Lesser General Public
  86760. License along with the GNU C Library; see the file COPYING.LIB. If
  86761. - not, write to the Free Software Foundation, Inc.,
  86762. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  86763. + not, 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/c6x/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/c6x/pt-machine.h
  86767. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/c6x/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86768. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/c6x/pt-machine.h 2014-06-02 17:40:34.910716944 +0200
  86769. @@ -15,9 +15,8 @@
  86770. Lesser General Public License for more details.
  86771. You should have received a copy of the GNU Lesser General Public
  86772. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  86773. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86774. - Boston, MA 02111-1307, USA. */
  86775. + License along with the GNU C Library; see the file COPYING.LIB. If
  86776. + not, see <http://www.gnu.org/licenses/>. */
  86777. #ifndef _PT_MACHINE_H
  86778. #define _PT_MACHINE_H 1
  86779. 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
  86780. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/cris/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86781. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/cris/pt-machine.h 2014-06-02 17:40:34.910716944 +0200
  86782. @@ -15,8 +15,7 @@
  86783. You should have received a copy of the GNU Lesser General Public
  86784. License along with the GNU C Library; see the file COPYING.LIB. If not,
  86785. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86786. - Boston, MA 02111-1307, USA. */
  86787. + see <http://www.gnu.org/licenses/>. */
  86788. #ifndef _PT_MACHINE_H
  86789. #define _PT_MACHINE_H 1
  86790. 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
  86791. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/frv/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86792. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/frv/pt-machine.h 2014-06-02 17:40:34.910716944 +0200
  86793. @@ -16,8 +16,7 @@
  86794. You should have received a copy of the GNU Lesser General Public
  86795. License along with the GNU C Library; see the file COPYING.LIB. If
  86796. - not, write to the Free Software Foundation, Inc.,
  86797. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  86798. + not, see <http://www.gnu.org/licenses/>. */
  86799. #ifndef _PT_MACHINE_H
  86800. #define _PT_MACHINE_H 1
  86801. 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
  86802. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/h8300/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86803. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/h8300/pt-machine.h 2014-06-02 17:40:34.910716944 +0200
  86804. @@ -16,8 +16,7 @@
  86805. You should have received a copy of the GNU Lesser General Public
  86806. License along with the GNU C Library; see the file COPYING.LIB. If
  86807. - not, write to the Free Software Foundation, Inc.,
  86808. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  86809. + not, see <http://www.gnu.org/licenses/>. */
  86810. #ifndef _PT_MACHINE_H
  86811. #define _PT_MACHINE_H 1
  86812. 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
  86813. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/i386/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86814. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/i386/pt-machine.h 2014-06-02 17:40:34.910716944 +0200
  86815. @@ -15,9 +15,8 @@
  86816. Lesser General Public License for more details.
  86817. You should have received a copy of the GNU Lesser General Public
  86818. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  86819. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86820. - Boston, MA 02111-1307, USA. */
  86821. + License along with the GNU C Library; see the file COPYING.LIB. If
  86822. + not, see <http://www.gnu.org/licenses/>. */
  86823. #ifndef _PT_MACHINE_H
  86824. #define _PT_MACHINE_H 1
  86825. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/i386/tls.h uClibc-git/libpthread/linuxthreads.old/sysdeps/i386/tls.h
  86826. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/i386/tls.h 2012-05-15 09:20:09.000000000 +0200
  86827. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/i386/tls.h 2014-06-02 17:40:34.910716944 +0200
  86828. @@ -13,9 +13,8 @@
  86829. Lesser General Public License for more details.
  86830. You should have received a copy of the GNU Lesser General Public
  86831. - License along with the GNU C Library; if not, write to the Free
  86832. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  86833. - 02111-1307 USA. */
  86834. + License along with the GNU C Library; if not, see
  86835. + <http://www.gnu.org/licenses/>. */
  86836. #ifndef _TLS_H
  86837. #define _TLS_H
  86838. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/i386/useldt.h uClibc-git/libpthread/linuxthreads.old/sysdeps/i386/useldt.h
  86839. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/i386/useldt.h 2012-05-15 09:20:09.000000000 +0200
  86840. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/i386/useldt.h 2014-06-02 17:40:34.910716944 +0200
  86841. @@ -16,8 +16,7 @@
  86842. You should have received a copy of the GNU Lesser General Public
  86843. License along with the GNU C Library; see the file COPYING.LIB. If not,
  86844. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86845. - Boston, MA 02111-1307, USA. */
  86846. + see <http://www.gnu.org/licenses/>. */
  86847. #ifndef __ASSEMBLER__
  86848. #include <stddef.h> /* For offsetof. */
  86849. 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
  86850. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/ia64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86851. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/ia64/pt-machine.h 2014-06-02 17:40:34.910716944 +0200
  86852. @@ -14,9 +14,8 @@
  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 _PT_MACHINE_H
  86861. #define _PT_MACHINE_H 1
  86862. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/ia64/tls.h uClibc-git/libpthread/linuxthreads.old/sysdeps/ia64/tls.h
  86863. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/ia64/tls.h 2012-05-15 09:20:09.000000000 +0200
  86864. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/ia64/tls.h 2014-06-02 17:40:34.910716944 +0200
  86865. @@ -13,9 +13,8 @@
  86866. Lesser General Public License for more details.
  86867. You should have received a copy of the GNU Lesser General Public
  86868. - License along with the GNU C Library; if not, write to the Free
  86869. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  86870. - 02111-1307 USA. */
  86871. + License along with the GNU C Library; if not, see
  86872. + <http://www.gnu.org/licenses/>. */
  86873. #ifndef _TLS_H
  86874. #define _TLS_H
  86875. 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
  86876. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/m68k/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86877. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/m68k/pt-machine.h 2014-06-02 17:40:34.930717054 +0200
  86878. @@ -16,8 +16,7 @@
  86879. You should have received a copy of the GNU Lesser General Public
  86880. License along with the GNU C Library; see the file COPYING.LIB. If
  86881. - not, write to the Free Software Foundation, Inc.,
  86882. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  86883. + not, see <http://www.gnu.org/licenses/>. */
  86884. #ifndef _PT_MACHINE_H
  86885. #define _PT_MACHINE_H 1
  86886. 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
  86887. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/mips/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86888. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/mips/pt-machine.h 2014-06-02 17:40:34.950717165 +0200
  86889. @@ -18,8 +18,7 @@
  86890. You should have received a copy of the GNU Lesser General Public
  86891. License along with the GNU C Library; see the file COPYING.LIB. If
  86892. - not, write to the Free Software Foundation, Inc.,
  86893. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  86894. + not, see <http://www.gnu.org/licenses/>. */
  86895. #ifndef _PT_MACHINE_H
  86896. #define _PT_MACHINE_H 1
  86897. 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
  86898. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/nios/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86899. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/nios/pt-machine.h 2014-06-02 17:40:34.950717165 +0200
  86900. @@ -16,8 +16,7 @@
  86901. You should have received a copy of the GNU Library General Public
  86902. License along with the GNU C Library; see the file COPYING.LIB. If not,
  86903. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86904. - Boston, MA 02111-1307, USA. */
  86905. + see <http://www.gnu.org/licenses/>. */
  86906. #ifndef _PT_MACHINE_H
  86907. #define _PT_MACHINE_H 1
  86908. 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
  86909. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/nios2/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86910. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/nios2/pt-machine.h 2014-06-02 17:40:34.950717165 +0200
  86911. @@ -15,8 +15,7 @@
  86912. You should have received a copy of the GNU Lesser General Public
  86913. License along with the GNU C Library; see the file COPYING.LIB. If
  86914. - not, write to the Free Software Foundation, Inc.,
  86915. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  86916. + not, see <http://www.gnu.org/licenses/>. */
  86917. #ifndef _PT_MACHINE_H
  86918. #define _PT_MACHINE_H 1
  86919. 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
  86920. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/powerpc/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86921. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/powerpc/pt-machine.h 2014-06-02 17:40:34.950717165 +0200
  86922. @@ -15,8 +15,7 @@
  86923. You should have received a copy of the GNU Lesser General Public
  86924. License along with the GNU C Library; see the file COPYING.LIB. If
  86925. - not, write to the Free Software Foundation, Inc.,
  86926. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  86927. + not, see <http://www.gnu.org/licenses/>. */
  86928. /* These routines are from Appendix G of the 'PowerPC 601 RISC Microprocessor
  86929. User's Manual', by IBM and Motorola. */
  86930. 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
  86931. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-lock.h 2012-05-15 09:20:09.000000000 +0200
  86932. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-lock.h 2014-06-02 17:40:34.950717165 +0200
  86933. @@ -14,9 +14,8 @@
  86934. Lesser General Public License for more details.
  86935. You should have received a copy of the GNU Lesser General Public
  86936. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  86937. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86938. - Boston, MA 02111-1307, USA. */
  86939. + License along with the GNU C Library; see the file COPYING.LIB. If
  86940. + not, see <http://www.gnu.org/licenses/>. */
  86941. #ifndef _BITS_LIBC_LOCK_H
  86942. #define _BITS_LIBC_LOCK_H 1
  86943. @@ -271,6 +270,7 @@
  86944. _pthread_cleanup_pop_restore (&_buffer, (DOIT)); \
  86945. }
  86946. +#if 0
  86947. #define __libc_cleanup_push(fct, arg) \
  86948. { struct _pthread_cleanup_buffer _buffer; \
  86949. __libc_maybe_call (_pthread_cleanup_push, (&_buffer, (fct), (arg)), 0)
  86950. @@ -278,6 +278,7 @@
  86951. #define __libc_cleanup_pop(execute) \
  86952. __libc_maybe_call (_pthread_cleanup_pop, (&_buffer, execute), 0); \
  86953. }
  86954. +#endif
  86955. /* Create thread-specific key. */
  86956. #define __libc_key_create(KEY, DESTRUCTOR) \
  86957. @@ -300,7 +301,7 @@
  86958. library. */
  86959. extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
  86960. - __const pthread_mutexattr_t *__mutex_attr);
  86961. + const pthread_mutexattr_t *__mutex_attr);
  86962. extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
  86963. @@ -319,7 +320,7 @@
  86964. #ifdef __USE_UNIX98
  86965. extern int __pthread_rwlock_init (pthread_rwlock_t *__rwlock,
  86966. - __const pthread_rwlockattr_t *__attr);
  86967. + const pthread_rwlockattr_t *__attr);
  86968. extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
  86969. @@ -338,7 +339,7 @@
  86970. void (*__destr_function) (void *));
  86971. extern int __pthread_setspecific (pthread_key_t __key,
  86972. - __const void *__pointer);
  86973. + const void *__pointer);
  86974. extern void *__pthread_getspecific (pthread_key_t __key);
  86975. @@ -375,7 +376,6 @@
  86976. weak_extern (BP_SYM (__pthread_setspecific))
  86977. weak_extern (BP_SYM (__pthread_getspecific))
  86978. weak_extern (BP_SYM (__pthread_once))
  86979. -weak_extern (__pthread_initialize)
  86980. weak_extern (__pthread_atfork)
  86981. weak_extern (BP_SYM (_pthread_cleanup_push))
  86982. weak_extern (BP_SYM (_pthread_cleanup_pop))
  86983. @@ -400,7 +400,6 @@
  86984. # pragma weak __pthread_setspecific
  86985. # pragma weak __pthread_getspecific
  86986. # pragma weak __pthread_once
  86987. -# pragma weak __pthread_initialize
  86988. # pragma weak __pthread_atfork
  86989. # pragma weak _pthread_cleanup_push_defer
  86990. # pragma weak _pthread_cleanup_pop_restore
  86991. 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
  86992. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-tsd.h 2012-05-15 09:20:09.000000000 +0200
  86993. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-tsd.h 2014-06-02 17:40:34.950717165 +0200
  86994. @@ -13,15 +13,12 @@
  86995. Lesser General Public License for more details.
  86996. You should have received a copy of the GNU Lesser General Public
  86997. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  86998. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86999. - Boston, MA 02111-1307, USA. */
  87000. + License along with the GNU C Library; see the file COPYING.LIB. If
  87001. + not, see <http://www.gnu.org/licenses/>. */
  87002. #ifndef _BITS_LIBC_TSD_H
  87003. #define _BITS_LIBC_TSD_H 1
  87004. -#include <libc-internal.h>
  87005. -
  87006. /* Fast thread-specific data internal to libc. */
  87007. enum __libc_tsd_key_t { _LIBC_TSD_KEY_MALLOC = 0,
  87008. _LIBC_TSD_KEY_DL_ERROR,
  87009. @@ -32,12 +29,11 @@
  87010. _LIBC_TSD_KEY_CTYPE_TOUPPER,
  87011. _LIBC_TSD_KEY_N };
  87012. -#include <sys/cdefs.h>
  87013. -#include <tls.h>
  87014. -
  87015. +#include <features.h>
  87016. #include <linuxthreads.old/internals.h>
  87017. -#if defined(USE_TLS) && USE_TLS && HAVE___THREAD
  87018. +#ifdef __UCLIBC_HAS_TLS__
  87019. +#include <tls.h>
  87020. /* When __thread works, the generic definition is what we want. */
  87021. # include <sysdeps/generic/bits/libc-tsd.h>
  87022. 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
  87023. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
  87024. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/bits/pthreadtypes.h 2014-06-02 17:40:34.950717165 +0200
  87025. @@ -19,6 +19,9 @@
  87026. #ifndef _BITS_PTHREADTYPES_H
  87027. #define _BITS_PTHREADTYPES_H 1
  87028. +#define __need_size_t
  87029. +#include <stddef.h>
  87030. +
  87031. #define __need_schedparam
  87032. #include <bits/sched.h>
  87033. 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
  87034. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/not-cancel.h 2012-05-15 09:20:09.000000000 +0200
  87035. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/not-cancel.h 2014-06-02 17:40:34.950717165 +0200
  87036. @@ -14,18 +14,26 @@
  87037. Lesser General Public License for more details.
  87038. You should have received a copy of the GNU Lesser General Public
  87039. - License along with the GNU C Library; if not, write to the Free
  87040. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87041. - 02111-1307 USA. */
  87042. + License along with the GNU C Library; if not, see
  87043. + <http://www.gnu.org/licenses/>. */
  87044. #include <sys/types.h>
  87045. #include <sysdep.h>
  87046. /* Uncancelable open. */
  87047. +#if defined __NR_openat && !defined __NR_open
  87048. +#define open_not_cancel(name, flags, mode) \
  87049. + INLINE_SYSCALL (openat, 4, AT_FDCWD, (const char *) (name), \
  87050. + (flags), (mode))
  87051. +#define open_not_cancel_2(name, flags) \
  87052. + INLINE_SYSCALL (openat, 3, AT_FDCWD, (const char *) (name), \
  87053. + (flags))
  87054. +#else
  87055. #define open_not_cancel(name, flags, mode) \
  87056. INLINE_SYSCALL (open, 3, (const char *) (name), (flags), (mode))
  87057. #define open_not_cancel_2(name, flags) \
  87058. INLINE_SYSCALL (open, 2, (const char *) (name), (flags))
  87059. +#endif
  87060. /* Uncancelable openat. */
  87061. #if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
  87062. 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
  87063. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/pthread-functions.h 2012-05-15 09:20:09.000000000 +0200
  87064. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/pthread-functions.h 2014-06-02 17:40:34.950717165 +0200
  87065. @@ -13,25 +13,28 @@
  87066. Lesser General Public License for more details.
  87067. You should have received a copy of the GNU Lesser General Public
  87068. - License along with the GNU C Library; if not, write to the Free
  87069. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87070. - 02111-1307 USA. */
  87071. + License along with the GNU C Library; if not, see
  87072. + <http://www.gnu.org/licenses/>. */
  87073. #ifndef _PTHREAD_FUNCTIONS_H
  87074. #define _PTHREAD_FUNCTIONS_H 1
  87075. #include <pthread.h>
  87076. +#if 0
  87077. #include <setjmp.h>
  87078. #include <linuxthreads.old/internals.h>
  87079. struct fork_block;
  87080. +#endif
  87081. /* Data type shared with libc. The libc uses it to pass on calls to
  87082. the thread functions. Wine pokes directly into this structure,
  87083. so if possible avoid breaking it and append new hooks to the end. */
  87084. struct pthread_functions
  87085. {
  87086. +#if 0
  87087. pid_t (*ptr_pthread_fork) (struct fork_block *);
  87088. +#endif
  87089. int (*ptr_pthread_attr_destroy) (pthread_attr_t *);
  87090. int (*ptr_pthread_attr_init) (pthread_attr_t *);
  87091. int (*ptr_pthread_attr_getdetachstate) (const pthread_attr_t *, int *);
  87092. @@ -68,26 +71,36 @@
  87093. pthread_t (*ptr_pthread_self) (void);
  87094. int (*ptr_pthread_setcancelstate) (int, int *);
  87095. int (*ptr_pthread_setcanceltype) (int, int *);
  87096. +#if 0
  87097. void (*ptr_pthread_do_exit) (void *retval, char *currentframe);
  87098. void (*ptr_pthread_cleanup_upto) (__jmp_buf target,
  87099. char *targetframe);
  87100. pthread_descr (*ptr_pthread_thread_self) (void);
  87101. +#endif
  87102. +#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__
  87103. int (*ptr_pthread_internal_tsd_set) (int key, const void *pointer);
  87104. void * (*ptr_pthread_internal_tsd_get) (int key);
  87105. void ** __attribute__ ((__const__))
  87106. (*ptr_pthread_internal_tsd_address) (int key);
  87107. +#endif
  87108. +#if 0
  87109. int (*ptr_pthread_sigaction) (int sig, const struct sigaction * act,
  87110. struct sigaction *oact);
  87111. int (*ptr_pthread_sigwait) (const sigset_t *set, int *sig);
  87112. int (*ptr_pthread_raise) (int sig);
  87113. +#endif
  87114. int (*ptr_pthread_cond_timedwait) (pthread_cond_t *, pthread_mutex_t *,
  87115. const struct timespec *);
  87116. +#if 0
  87117. void (*ptr__pthread_cleanup_push) (struct _pthread_cleanup_buffer * buffer,
  87118. void (*routine)(void *), void * arg);
  87119. +#endif
  87120. void (*ptr__pthread_cleanup_push_defer) (struct _pthread_cleanup_buffer * buffer,
  87121. void (*routine)(void *), void * arg);
  87122. +#if 0
  87123. void (*ptr__pthread_cleanup_pop) (struct _pthread_cleanup_buffer * buffer,
  87124. int execute);
  87125. +#endif
  87126. void (*ptr__pthread_cleanup_pop_restore) (struct _pthread_cleanup_buffer * buffer,
  87127. int execute);
  87128. };
  87129. @@ -95,4 +108,6 @@
  87130. /* Variable in libc.so. */
  87131. extern struct pthread_functions __libc_pthread_functions attribute_hidden;
  87132. +extern int * __libc_pthread_init (const struct pthread_functions *functions);
  87133. +
  87134. #endif /* pthread-functions.h */
  87135. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/pthread.h uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/pthread.h
  87136. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/pthread.h 2012-05-15 09:20:09.000000000 +0200
  87137. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/pthread.h 2014-06-02 17:40:34.950717165 +0200
  87138. @@ -161,7 +161,7 @@
  87139. if ATTR is NULL), and call function START_ROUTINE with given
  87140. arguments ARG. */
  87141. extern int pthread_create (pthread_t *__restrict __threadp,
  87142. - __const pthread_attr_t *__restrict __attr,
  87143. + const pthread_attr_t *__restrict __attr,
  87144. void *(*__start_routine) (void *),
  87145. void *__restrict __arg) __THROW;
  87146. @@ -201,16 +201,16 @@
  87147. int __detachstate) __THROW;
  87148. /* Return in *DETACHSTATE the `detachstate' attribute in *ATTR. */
  87149. -extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
  87150. +extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr,
  87151. int *__detachstate) __THROW;
  87152. /* Set scheduling parameters (priority, etc) in *ATTR according to PARAM. */
  87153. extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
  87154. - __const struct sched_param *__restrict
  87155. + const struct sched_param *__restrict
  87156. __param) __THROW;
  87157. /* Return in *PARAM the scheduling parameters of *ATTR. */
  87158. -extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
  87159. +extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict
  87160. __attr,
  87161. struct sched_param *__restrict __param)
  87162. __THROW;
  87163. @@ -220,7 +220,7 @@
  87164. __THROW;
  87165. /* Return in *POLICY the scheduling policy of *ATTR. */
  87166. -extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
  87167. +extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict
  87168. __attr, int *__restrict __policy)
  87169. __THROW;
  87170. @@ -229,7 +229,7 @@
  87171. int __inherit) __THROW;
  87172. /* Return in *INHERIT the scheduling inheritance mode of *ATTR. */
  87173. -extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
  87174. +extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict
  87175. __attr, int *__restrict __inherit)
  87176. __THROW;
  87177. @@ -238,7 +238,7 @@
  87178. __THROW;
  87179. /* Return in *SCOPE the scheduling contention scope of *ATTR. */
  87180. -extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
  87181. +extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr,
  87182. int *__restrict __scope) __THROW;
  87183. #ifdef __USE_UNIX98
  87184. @@ -247,7 +247,7 @@
  87185. size_t __guardsize) __THROW;
  87186. /* Get the size of the guard area at the bottom of the thread. */
  87187. -extern int pthread_attr_getguardsize (__const pthread_attr_t *__restrict
  87188. +extern int pthread_attr_getguardsize (const pthread_attr_t *__restrict
  87189. __attr, size_t *__restrict __guardsize)
  87190. __THROW;
  87191. #endif
  87192. @@ -261,7 +261,7 @@
  87193. void *__stackaddr) __THROW;
  87194. /* Return the previously set address for the stack. */
  87195. -extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
  87196. +extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict
  87197. __attr, void **__restrict __stackaddr)
  87198. __THROW;
  87199. #endif
  87200. @@ -274,7 +274,7 @@
  87201. size_t __stacksize) __THROW;
  87202. /* Return the previously set address for the stack. */
  87203. -extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
  87204. +extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr,
  87205. void **__restrict __stackaddr,
  87206. size_t *__restrict __stacksize) __THROW;
  87207. #endif
  87208. @@ -286,7 +286,7 @@
  87209. size_t __stacksize) __THROW;
  87210. /* Return the currently used minimal stack size. */
  87211. -extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
  87212. +extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict
  87213. __attr, size_t *__restrict __stacksize)
  87214. __THROW;
  87215. @@ -306,7 +306,7 @@
  87216. /* Set the scheduling parameters for TARGET_THREAD according to POLICY
  87217. and *PARAM. */
  87218. extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
  87219. - __const struct sched_param *__param)
  87220. + const struct sched_param *__param)
  87221. __THROW;
  87222. /* Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD. */
  87223. @@ -333,7 +333,7 @@
  87224. /* Initialize MUTEX using attributes in *MUTEX_ATTR, or use the
  87225. default values if later is NULL. */
  87226. extern int pthread_mutex_init (pthread_mutex_t *__restrict __mutex,
  87227. - __const pthread_mutexattr_t *__restrict
  87228. + const pthread_mutexattr_t *__restrict
  87229. __mutex_attr) __THROW;
  87230. /* Destroy MUTEX. */
  87231. @@ -348,7 +348,7 @@
  87232. #ifdef __USE_XOPEN2K
  87233. /* Wait until lock becomes available, or specified time passes. */
  87234. extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
  87235. - __const struct timespec *__restrict
  87236. + const struct timespec *__restrict
  87237. __abstime) __THROW;
  87238. #endif
  87239. @@ -366,7 +366,7 @@
  87240. extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) __THROW;
  87241. /* Get the process-shared flag of the mutex attribute ATTR. */
  87242. -extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
  87243. +extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t *
  87244. __restrict __attr,
  87245. int *__restrict __pshared) __THROW;
  87246. @@ -382,7 +382,7 @@
  87247. __THROW;
  87248. /* Return in *KIND the mutex kind attribute in *ATTR. */
  87249. -extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
  87250. +extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict
  87251. __attr, int *__restrict __kind) __THROW;
  87252. #endif
  87253. @@ -392,22 +392,27 @@
  87254. /* Initialize condition variable COND using attributes ATTR, or use
  87255. the default values if later is NULL. */
  87256. extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
  87257. - __const pthread_condattr_t *__restrict
  87258. + const pthread_condattr_t *__restrict
  87259. __cond_attr) __THROW;
  87260. +libpthread_hidden_proto(pthread_cond_init)
  87261. /* Destroy condition variable COND. */
  87262. extern int pthread_cond_destroy (pthread_cond_t *__cond) __THROW;
  87263. +libpthread_hidden_proto(pthread_cond_destroy)
  87264. /* Wake up one thread waiting for condition variable COND. */
  87265. extern int pthread_cond_signal (pthread_cond_t *__cond) __THROW;
  87266. +libpthread_hidden_proto(pthread_cond_signal)
  87267. /* Wake up all threads waiting for condition variables COND. */
  87268. extern int pthread_cond_broadcast (pthread_cond_t *__cond) __THROW;
  87269. +libpthread_hidden_proto(pthread_cond_broadcast)
  87270. /* Wait for condition variable COND to be signaled or broadcast.
  87271. MUTEX is assumed to be locked before. */
  87272. extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
  87273. pthread_mutex_t *__restrict __mutex);
  87274. +libpthread_hidden_proto(pthread_cond_wait)
  87275. /* Wait for condition variable COND to be signaled or broadcast until
  87276. ABSTIME. MUTEX is assumed to be locked before. ABSTIME is an
  87277. @@ -415,19 +420,22 @@
  87278. (00:00:00 GMT, January 1, 1970). */
  87279. extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
  87280. pthread_mutex_t *__restrict __mutex,
  87281. - __const struct timespec *__restrict
  87282. + const struct timespec *__restrict
  87283. __abstime);
  87284. +libpthread_hidden_proto(pthread_cond_timedwait)
  87285. /* Functions for handling condition variable attributes. */
  87286. /* Initialize condition variable attribute ATTR. */
  87287. extern int pthread_condattr_init (pthread_condattr_t *__attr) __THROW;
  87288. +libpthread_hidden_proto(pthread_condattr_init)
  87289. /* Destroy condition variable attribute ATTR. */
  87290. extern int pthread_condattr_destroy (pthread_condattr_t *__attr) __THROW;
  87291. +libpthread_hidden_proto(pthread_condattr_destroy)
  87292. /* Get the process-shared flag of the condition variable attribute ATTR. */
  87293. -extern int pthread_condattr_getpshared (__const pthread_condattr_t *
  87294. +extern int pthread_condattr_getpshared (const pthread_condattr_t *
  87295. __restrict __attr,
  87296. int *__restrict __pshared) __THROW;
  87297. @@ -442,7 +450,7 @@
  87298. /* Initialize read-write lock RWLOCK using attributes ATTR, or use
  87299. the default values if later is NULL. */
  87300. extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
  87301. - __const pthread_rwlockattr_t *__restrict
  87302. + const pthread_rwlockattr_t *__restrict
  87303. __attr) __THROW;
  87304. /* Destroy read-write lock RWLOCK. */
  87305. @@ -457,7 +465,7 @@
  87306. # ifdef __USE_XOPEN2K
  87307. /* Try to acquire read lock for RWLOCK or return after specfied time. */
  87308. extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
  87309. - __const struct timespec *__restrict
  87310. + const struct timespec *__restrict
  87311. __abstime) __THROW;
  87312. # endif
  87313. @@ -470,7 +478,7 @@
  87314. # ifdef __USE_XOPEN2K
  87315. /* Try to acquire write lock for RWLOCK or return after specfied time. */
  87316. extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
  87317. - __const struct timespec *__restrict
  87318. + const struct timespec *__restrict
  87319. __abstime) __THROW;
  87320. # endif
  87321. @@ -487,7 +495,7 @@
  87322. extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) __THROW;
  87323. /* Return current setting of process-shared attribute of ATTR in PSHARED. */
  87324. -extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
  87325. +extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *
  87326. __restrict __attr,
  87327. int *__restrict __pshared) __THROW;
  87328. @@ -496,7 +504,7 @@
  87329. int __pshared) __THROW;
  87330. /* Return current setting of reader/writer preference. */
  87331. -extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *__attr,
  87332. +extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t *__attr,
  87333. int *__pref) __THROW;
  87334. /* Set reader/write preference. */
  87335. @@ -532,7 +540,7 @@
  87336. /* Barriers are a also a new feature in 1003.1j-2000. */
  87337. extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
  87338. - __const pthread_barrierattr_t *__restrict
  87339. + const pthread_barrierattr_t *__restrict
  87340. __attr, unsigned int __count) __THROW;
  87341. extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) __THROW;
  87342. @@ -541,7 +549,7 @@
  87343. extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) __THROW;
  87344. -extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
  87345. +extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t *
  87346. __restrict __attr,
  87347. int *__restrict __pshared) __THROW;
  87348. @@ -569,7 +577,7 @@
  87349. /* Store POINTER in the thread-specific data slot identified by KEY. */
  87350. extern int pthread_setspecific (pthread_key_t __key,
  87351. - __const void *__pointer) __THROW;
  87352. + const void *__pointer) __THROW;
  87353. /* Return current value of the thread-specific data slot identified by KEY. */
  87354. extern void *pthread_getspecific (pthread_key_t __key) __THROW;
  87355. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/tls.h uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/tls.h
  87356. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/tls.h 2012-05-15 09:20:09.000000000 +0200
  87357. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/tls.h 2014-06-02 17:40:34.950717165 +0200
  87358. @@ -13,9 +13,8 @@
  87359. Lesser General Public License for more details.
  87360. You should have received a copy of the GNU Lesser General Public
  87361. - License along with the GNU C Library; if not, write to the Free
  87362. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87363. - 02111-1307 USA. */
  87364. + License along with the GNU C Library; if not, see
  87365. + <http://www.gnu.org/licenses/>. */
  87366. /* By default no TLS support is available. This is signaled by the
  87367. absence of the symbol USE_TLS. */
  87368. 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
  87369. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sh/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  87370. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/sh/pt-machine.h 2014-06-02 17:40:34.950717165 +0200
  87371. @@ -15,9 +15,8 @@
  87372. Lesser General Public License for more details.
  87373. You should have received a copy of the GNU Lesser General Public
  87374. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  87375. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  87376. - Boston, MA 02111-1307, USA. */
  87377. + License along with the GNU C Library; see the file COPYING.LIB. If
  87378. + not, see <http://www.gnu.org/licenses/>. */
  87379. #ifndef _PT_MACHINE_H
  87380. #define _PT_MACHINE_H 1
  87381. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sh/tls.h uClibc-git/libpthread/linuxthreads.old/sysdeps/sh/tls.h
  87382. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sh/tls.h 2012-05-15 09:20:09.000000000 +0200
  87383. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/sh/tls.h 2014-06-02 17:40:34.950717165 +0200
  87384. @@ -13,9 +13,8 @@
  87385. Lesser General Public License for more details.
  87386. You should have received a copy of the GNU Lesser General Public
  87387. - License along with the GNU C Library; if not, write to the Free
  87388. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87389. - 02111-1307 USA. */
  87390. + License along with the GNU C Library; if not, see
  87391. + <http://www.gnu.org/licenses/>. */
  87392. #ifndef _TLS_H
  87393. #define _TLS_H
  87394. 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
  87395. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.c 2012-05-15 09:20:09.000000000 +0200
  87396. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.c 2014-06-02 17:40:34.950717165 +0200
  87397. @@ -19,8 +19,7 @@
  87398. You should have received a copy of the GNU Library General Public
  87399. License along with the GNU C Library; see the file COPYING.LIB. If not,
  87400. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  87401. - Boston, MA 02111-1307, USA. */
  87402. + see <http://www.gnu.org/licenses/>. */
  87403. #include "pt-machine.h"
  87404. 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
  87405. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  87406. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.h 2014-06-02 17:40:34.950717165 +0200
  87407. @@ -19,8 +19,7 @@
  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. #ifndef _PT_MACHINE_H
  87414. #define _PT_MACHINE_H 1
  87415. 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
  87416. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sparc/sparc32/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  87417. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/sparc/sparc32/pt-machine.h 2014-06-02 17:40:34.954717187 +0200
  87418. @@ -15,9 +15,8 @@
  87419. Lesser General Public License for more details.
  87420. You should have received a copy of the GNU Lesser General Public
  87421. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  87422. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  87423. - Boston, MA 02111-1307, USA. */
  87424. + License along with the GNU C Library; see the file COPYING.LIB. If
  87425. + not, see <http://www.gnu.org/licenses/>. */
  87426. #ifndef _PT_MACHINE_H
  87427. #define _PT_MACHINE_H 1
  87428. 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
  87429. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sparc/sparc64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  87430. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/sparc/sparc64/pt-machine.h 2014-06-02 17:40:34.954717187 +0200
  87431. @@ -16,8 +16,7 @@
  87432. You should have received a copy of the GNU Lesser General Public
  87433. License along with the GNU C Library; see the file COPYING.LIB. If
  87434. - not, write to the Free Software Foundation, Inc.,
  87435. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  87436. + not, see <http://www.gnu.org/licenses/>. */
  87437. #ifndef _PT_MACHINE_H
  87438. #define _PT_MACHINE_H 1
  87439. 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
  87440. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/x86_64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  87441. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/x86_64/pt-machine.h 2014-06-02 17:40:34.962717232 +0200
  87442. @@ -14,9 +14,8 @@
  87443. Lesser General Public License for more details.
  87444. You should have received a copy of the GNU Lesser General Public
  87445. - License along with the GNU C Library; if not, write to the Free
  87446. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87447. - 02111-1307 USA. */
  87448. + License along with the GNU C Library; if not, see
  87449. + <http://www.gnu.org/licenses/>. */
  87450. #ifndef _PT_MACHINE_H
  87451. #define _PT_MACHINE_H 1
  87452. @@ -33,6 +32,9 @@
  87453. # define PT_EI __extern_always_inline
  87454. # endif
  87455. +extern long int testandset (int *);
  87456. +extern int __compare_and_swap (long int *, long int, long int);
  87457. +
  87458. /* Get some notion of the current stack. Need not be exactly the top
  87459. of the stack, just something somewhere in the current frame. */
  87460. # define CURRENT_STACK_FRAME stack_pointer
  87461. 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
  87462. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/x86_64/tls.h 2012-05-15 09:20:09.000000000 +0200
  87463. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/x86_64/tls.h 2014-06-02 17:40:34.962717232 +0200
  87464. @@ -13,9 +13,8 @@
  87465. Lesser General Public License for more details.
  87466. You should have received a copy of the GNU Lesser General Public
  87467. - License along with the GNU C Library; if not, write to the Free
  87468. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87469. - 02111-1307 USA. */
  87470. + License along with the GNU C Library; if not, see
  87471. + <http://www.gnu.org/licenses/>. */
  87472. #ifndef _TLS_H
  87473. #define _TLS_H
  87474. 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
  87475. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/xtensa/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  87476. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/xtensa/pt-machine.h 2014-06-02 17:40:34.966717253 +0200
  87477. @@ -15,9 +15,8 @@
  87478. Lesser General Public License for more details.
  87479. You should have received a copy of the GNU Lesser General Public
  87480. - License along with the GNU C Library; if not, write to the Free
  87481. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  87482. - Boston, MA 02110-1301, USA. */
  87483. + License along with the GNU C Library; if not, see
  87484. + <http://www.gnu.org/licenses/>. */
  87485. #ifndef _PT_MACHINE_H
  87486. #define _PT_MACHINE_H 1
  87487. @@ -26,19 +25,51 @@
  87488. #include <asm/unistd.h>
  87489. #ifndef PT_EI
  87490. -# define PT_EI __extern_always_inline
  87491. +# define PT_EI extern inline __attribute__ ((gnu_inline))
  87492. #endif
  87493. -/* Memory barrier. */
  87494. #define MEMORY_BARRIER() __asm__ ("memw" : : : "memory")
  87495. +#define HAS_COMPARE_AND_SWAP
  87496. +
  87497. +extern long int testandset (int *spinlock);
  87498. +extern int __compare_and_swap (long int *p, long int oldval, long int newval);
  87499. /* Spinlock implementation; required. */
  87500. PT_EI long int
  87501. testandset (int *spinlock)
  87502. {
  87503. - int unused = 0;
  87504. - return INTERNAL_SYSCALL (xtensa, , 4, SYS_XTENSA_ATOMIC_SET,
  87505. - spinlock, 1, unused);
  87506. + unsigned long tmp;
  87507. + __asm__ volatile (
  87508. +" movi %0, 0 \n"
  87509. +" wsr %0, SCOMPARE1 \n"
  87510. +" movi %0, 1 \n"
  87511. +" s32c1i %0, %1, 0 \n"
  87512. + : "=&a" (tmp)
  87513. + : "a" (spinlock)
  87514. + : "memory"
  87515. + );
  87516. + return tmp;
  87517. +}
  87518. +
  87519. +PT_EI int
  87520. +__compare_and_swap (long int *p, long int oldval, long int newval)
  87521. +{
  87522. + unsigned long tmp;
  87523. + unsigned long value;
  87524. + __asm__ volatile (
  87525. +"1: l32i %0, %2, 0 \n"
  87526. +" bne %0, %4, 2f \n"
  87527. +" wsr %0, SCOMPARE1 \n"
  87528. +" mov %1, %0 \n"
  87529. +" mov %0, %3 \n"
  87530. +" s32c1i %0, %2, 0 \n"
  87531. +" bne %1, %0, 1b \n"
  87532. +"2: \n"
  87533. + : "=&a" (tmp), "=&a" (value)
  87534. + : "a" (p), "a" (newval), "a" (oldval)
  87535. + : "memory" );
  87536. +
  87537. + return tmp == oldval;
  87538. }
  87539. /* Get some notion of the current stack. Need not be exactly the top
  87540. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/wrapsyscall.c uClibc-git/libpthread/linuxthreads.old/wrapsyscall.c
  87541. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/wrapsyscall.c 2012-05-15 09:20:09.000000000 +0200
  87542. +++ uClibc-git/libpthread/linuxthreads.old/wrapsyscall.c 2014-06-02 17:40:34.966717253 +0200
  87543. @@ -1,4 +1,4 @@
  87544. -/* Wrapper arpund system calls to provide cancellation points.
  87545. +/* Wrapper around system calls to provide cancellation points.
  87546. Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
  87547. This file is part of the GNU C Library.
  87548. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
  87549. @@ -15,11 +15,8 @@
  87550. You should have received a copy of the GNU Library General Public
  87551. License along with the GNU C Library; see the file COPYING.LIB. If not,
  87552. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  87553. - Boston, MA 02111-1307, USA. */
  87554. + see <http://www.gnu.org/licenses/>. */
  87555. -#define __FORCE_GLIBC
  87556. -#include <features.h>
  87557. #include <fcntl.h>
  87558. #include <sys/mman.h>
  87559. #include <pthread.h>
  87560. @@ -83,6 +80,12 @@
  87561. CANCELABLE_SYSCALL_VA (int, fcntl, (int fd, int cmd, ...),
  87562. (fd, cmd, va_arg (ap, long int)), cmd)
  87563. +#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 32
  87564. +/* fcntl64(2). */
  87565. +CANCELABLE_SYSCALL_VA (int, fcntl64, (int fd, int cmd, ...),
  87566. + (fd, cmd, va_arg (ap, long int)), cmd)
  87567. +#endif
  87568. +
  87569. /* fsync(2). */
  87570. CANCELABLE_SYSCALL (int, fsync, (int fd), (fd))
  87571. @@ -230,12 +233,12 @@
  87572. #endif /* __UCLIBC_HAS_SOCKET__ */
  87573. #ifdef __UCLIBC_HAS_EPOLL__
  87574. +# include <sys/epoll.h>
  87575. # ifdef __NR_epoll_wait
  87576. CANCELABLE_SYSCALL (int, epoll_wait, (int epfd, struct epoll_event *events, int maxevents, int timeout),
  87577. (epfd, events, maxevents, timeout))
  87578. # endif
  87579. # ifdef __NR_epoll_pwait
  87580. -# include <signal.h>
  87581. CANCELABLE_SYSCALL (int, epoll_pwait, (int epfd, struct epoll_event *events, int maxevents, int timeout,
  87582. const sigset_t *set),
  87583. (epfd, events, maxevents, timeout, set))
  87584. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/proc_service.h uClibc-git/libpthread/linuxthreads.old_db/proc_service.h
  87585. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/proc_service.h 2012-05-15 09:20:09.000000000 +0200
  87586. +++ uClibc-git/libpthread/linuxthreads.old_db/proc_service.h 2014-06-02 17:40:34.966717253 +0200
  87587. @@ -12,9 +12,8 @@
  87588. Lesser General Public License for more details.
  87589. You should have received a copy of the GNU Lesser General Public
  87590. - License along with the GNU C Library; if not, write to the Free
  87591. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87592. - 02111-1307 USA. */
  87593. + License along with the GNU C Library; if not, see
  87594. + <http://www.gnu.org/licenses/>. */
  87595. /* The definitions in this file must correspond to those in the debugger. */
  87596. #include <sys/procfs.h>
  87597. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_init.c uClibc-git/libpthread/linuxthreads.old_db/td_init.c
  87598. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_init.c 2012-05-15 09:20:09.000000000 +0200
  87599. +++ uClibc-git/libpthread/linuxthreads.old_db/td_init.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_log.c uClibc-git/libpthread/linuxthreads.old_db/td_log.c
  87610. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_log.c 2012-05-15 09:20:09.000000000 +0200
  87611. +++ uClibc-git/libpthread/linuxthreads.old_db/td_log.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_symbol_list.c uClibc-git/libpthread/linuxthreads.old_db/td_symbol_list.c
  87622. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_symbol_list.c 2012-05-15 09:20:09.000000000 +0200
  87623. +++ uClibc-git/libpthread/linuxthreads.old_db/td_symbol_list.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 <assert.h>
  87633. #include "thread_dbP.h"
  87634. 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
  87635. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_clear_event.c 2012-05-15 09:20:09.000000000 +0200
  87636. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_clear_event.c 2014-06-02 17:40:34.966717253 +0200
  87637. @@ -14,17 +14,14 @@
  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. td_err_e
  87647. -td_ta_clear_event (ta, event)
  87648. - const td_thragent_t *ta;
  87649. - td_thr_events_t *event;
  87650. +td_ta_clear_event(const td_thragent_t *ta,td_thr_events_t *event)
  87651. {
  87652. td_thr_events_t old_event;
  87653. int i;
  87654. 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
  87655. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_delete.c 2012-05-15 09:20:09.000000000 +0200
  87656. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_delete.c 2014-06-02 17:40:34.966717253 +0200
  87657. @@ -14,9 +14,8 @@
  87658. Lesser General Public License for more details.
  87659. You should have received a copy of the GNU Lesser General Public
  87660. - License along with the GNU C Library; if not, write to the Free
  87661. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87662. - 02111-1307 USA. */
  87663. + License along with the GNU C Library; if not, see
  87664. + <http://www.gnu.org/licenses/>. */
  87665. #include <stdlib.h>
  87666. 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
  87667. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_enable_stats.c 2012-05-15 09:20:09.000000000 +0200
  87668. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_enable_stats.c 2014-06-02 17:40:34.966717253 +0200
  87669. @@ -14,9 +14,8 @@
  87670. Lesser General Public License for more details.
  87671. You should have received a copy of the GNU Lesser General Public
  87672. - License along with the GNU C Library; if not, write to the Free
  87673. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87674. - 02111-1307 USA. */
  87675. + License along with the GNU C Library; if not, see
  87676. + <http://www.gnu.org/licenses/>. */
  87677. #include "thread_dbP.h"
  87678. 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
  87679. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_event_addr.c 2012-05-15 09:20:09.000000000 +0200
  87680. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_event_addr.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. 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
  87691. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_event_getmsg.c 2012-05-15 09:20:09.000000000 +0200
  87692. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_event_getmsg.c 2014-06-02 17:40:34.966717253 +0200
  87693. @@ -14,9 +14,8 @@
  87694. Lesser General Public License for more details.
  87695. You should have received a copy of the GNU Lesser General Public
  87696. - License along with the GNU C Library; if not, write to the Free
  87697. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87698. - 02111-1307 USA. */
  87699. + License along with the GNU C Library; if not, see
  87700. + <http://www.gnu.org/licenses/>. */
  87701. #include <stddef.h>
  87702. #include <string.h>
  87703. 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
  87704. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_get_nthreads.c 2012-05-15 09:20:09.000000000 +0200
  87705. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_get_nthreads.c 2014-06-02 17:40:34.966717253 +0200
  87706. @@ -14,9 +14,8 @@
  87707. Lesser General Public License for more details.
  87708. You should have received a copy of the GNU Lesser General Public
  87709. - License along with the GNU C Library; if not, write to the Free
  87710. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87711. - 02111-1307 USA. */
  87712. + License along with the GNU C Library; if not, see
  87713. + <http://www.gnu.org/licenses/>. */
  87714. #include "thread_dbP.h"
  87715. 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
  87716. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_get_ph.c 2012-05-15 09:20:09.000000000 +0200
  87717. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_get_ph.c 2014-06-02 17:40:34.966717253 +0200
  87718. @@ -14,9 +14,8 @@
  87719. Lesser General Public License for more details.
  87720. You should have received a copy of the GNU Lesser General Public
  87721. - License along with the GNU C Library; if not, write to the Free
  87722. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87723. - 02111-1307 USA. */
  87724. + License along with the GNU C Library; if not, see
  87725. + <http://www.gnu.org/licenses/>. */
  87726. #include "thread_dbP.h"
  87727. 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
  87728. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_get_stats.c 2012-05-15 09:20:09.000000000 +0200
  87729. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_get_stats.c 2014-06-02 17:40:34.966717253 +0200
  87730. @@ -14,9 +14,8 @@
  87731. Lesser General Public License for more details.
  87732. You should have received a copy of the GNU Lesser General Public
  87733. - License along with the GNU C Library; if not, write to the Free
  87734. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87735. - 02111-1307 USA. */
  87736. + License along with the GNU C Library; if not, see
  87737. + <http://www.gnu.org/licenses/>. */
  87738. #include "thread_dbP.h"
  87739. 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
  87740. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_map_id2thr.c 2012-05-15 09:20:09.000000000 +0200
  87741. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_map_id2thr.c 2014-06-02 17:40:34.966717253 +0200
  87742. @@ -14,9 +14,8 @@
  87743. Lesser General Public License for more details.
  87744. You should have received a copy of the GNU Lesser General Public
  87745. - License along with the GNU C Library; if not, write to the Free
  87746. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87747. - 02111-1307 USA. */
  87748. + License along with the GNU C Library; if not, see
  87749. + <http://www.gnu.org/licenses/>. */
  87750. #include "thread_dbP.h"
  87751. 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
  87752. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_map_lwp2thr.c 2012-05-15 09:20:09.000000000 +0200
  87753. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_map_lwp2thr.c 2014-06-02 17:40:34.966717253 +0200
  87754. @@ -14,9 +14,8 @@
  87755. Lesser General Public License for more details.
  87756. You should have received a copy of the GNU Lesser General Public
  87757. - License along with the GNU C Library; if not, write to the Free
  87758. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87759. - 02111-1307 USA. */
  87760. + License along with the GNU C Library; if not, see
  87761. + <http://www.gnu.org/licenses/>. */
  87762. #include "thread_dbP.h"
  87763. 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
  87764. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_new.c 2012-05-15 09:20:09.000000000 +0200
  87765. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_new.c 2014-06-02 17:40:34.966717253 +0200
  87766. @@ -14,9 +14,8 @@
  87767. Lesser General Public License for more details.
  87768. You should have received a copy of the GNU Lesser General Public
  87769. - License along with the GNU C Library; if not, write to the Free
  87770. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87771. - 02111-1307 USA. */
  87772. + License along with the GNU C Library; if not, see
  87773. + <http://www.gnu.org/licenses/>. */
  87774. #include <stddef.h>
  87775. #include <stdlib.h>
  87776. 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
  87777. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_reset_stats.c 2012-05-15 09:20:09.000000000 +0200
  87778. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_reset_stats.c 2014-06-02 17:40:34.966717253 +0200
  87779. @@ -14,9 +14,8 @@
  87780. Lesser General Public License for more details.
  87781. You should have received a copy of the GNU Lesser General Public
  87782. - License along with the GNU C Library; if not, write to the Free
  87783. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87784. - 02111-1307 USA. */
  87785. + License along with the GNU C Library; if not, see
  87786. + <http://www.gnu.org/licenses/>. */
  87787. #include "thread_dbP.h"
  87788. 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
  87789. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_setconcurrency.c 2012-05-15 09:20:09.000000000 +0200
  87790. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_setconcurrency.c 2014-06-02 17:40:34.966717253 +0200
  87791. @@ -14,9 +14,8 @@
  87792. Lesser General Public License for more details.
  87793. You should have received a copy of the GNU Lesser General Public
  87794. - License along with the GNU C Library; if not, write to the Free
  87795. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87796. - 02111-1307 USA. */
  87797. + License along with the GNU C Library; if not, see
  87798. + <http://www.gnu.org/licenses/>. */
  87799. #include "thread_dbP.h"
  87800. 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
  87801. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_set_event.c 2012-05-15 09:20:09.000000000 +0200
  87802. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_set_event.c 2014-06-02 17:40:34.966717253 +0200
  87803. @@ -14,17 +14,14 @@
  87804. Lesser General Public License for more details.
  87805. You should have received a copy of the GNU Lesser General Public
  87806. - License along with the GNU C Library; if not, write to the Free
  87807. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87808. - 02111-1307 USA. */
  87809. + License along with the GNU C Library; if not, see
  87810. + <http://www.gnu.org/licenses/>. */
  87811. #include "thread_dbP.h"
  87812. td_err_e
  87813. -td_ta_set_event (ta, event)
  87814. - const td_thragent_t *ta;
  87815. - td_thr_events_t *event;
  87816. +td_ta_set_event(const td_thragent_t *ta,td_thr_events_t *event)
  87817. {
  87818. td_thr_events_t old_event;
  87819. int i;
  87820. 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
  87821. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_thr_iter.c 2012-05-15 09:20:09.000000000 +0200
  87822. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_thr_iter.c 2014-06-02 17:40:34.966717253 +0200
  87823. @@ -14,9 +14,8 @@
  87824. Lesser General Public License for more details.
  87825. You should have received a copy of the GNU Lesser General Public
  87826. - License along with the GNU C Library; if not, write to the Free
  87827. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87828. - 02111-1307 USA. */
  87829. + License along with the GNU C Library; if not, see
  87830. + <http://www.gnu.org/licenses/>. */
  87831. #include "thread_dbP.h"
  87832. #include <alloca.h>
  87833. 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
  87834. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_tsd_iter.c 2012-05-15 09:20:09.000000000 +0200
  87835. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_tsd_iter.c 2014-06-02 17:40:34.966717253 +0200
  87836. @@ -14,9 +14,8 @@
  87837. Lesser General Public License for more details.
  87838. You should have received a copy of the GNU Lesser General Public
  87839. - License along with the GNU C Library; if not, write to the Free
  87840. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87841. - 02111-1307 USA. */
  87842. + License along with the GNU C Library; if not, see
  87843. + <http://www.gnu.org/licenses/>. */
  87844. #include "thread_dbP.h"
  87845. #include <alloca.h>
  87846. 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
  87847. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_clear_event.c 2012-05-15 09:20:09.000000000 +0200
  87848. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_clear_event.c 2014-06-02 17:40:34.966717253 +0200
  87849. @@ -14,9 +14,8 @@
  87850. Lesser General Public License for more details.
  87851. You should have received a copy of the GNU Lesser General Public
  87852. - License along with the GNU C Library; if not, write to the Free
  87853. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87854. - 02111-1307 USA. */
  87855. + License along with the GNU C Library; if not, see
  87856. + <http://www.gnu.org/licenses/>. */
  87857. #include <stddef.h>
  87858. @@ -24,9 +23,7 @@
  87859. td_err_e
  87860. -td_thr_clear_event (th, event)
  87861. - const td_thrhandle_t *th;
  87862. - td_thr_events_t *event;
  87863. +td_thr_clear_event(const td_thrhandle_t *th,td_thr_events_t *event)
  87864. {
  87865. td_thr_events_t old_event;
  87866. int i;
  87867. 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
  87868. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_dbresume.c 2012-05-15 09:20:09.000000000 +0200
  87869. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_dbresume.c 2014-06-02 17:40:34.966717253 +0200
  87870. @@ -14,9 +14,8 @@
  87871. Lesser General Public License for more details.
  87872. You should have received a copy of the GNU Lesser General Public
  87873. - License along with the GNU C Library; if not, write to the Free
  87874. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87875. - 02111-1307 USA. */
  87876. + License along with the GNU C Library; if not, see
  87877. + <http://www.gnu.org/licenses/>. */
  87878. #include "thread_dbP.h"
  87879. 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
  87880. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_dbsuspend.c 2012-05-15 09:20:09.000000000 +0200
  87881. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_dbsuspend.c 2014-06-02 17:40:34.966717253 +0200
  87882. @@ -14,9 +14,8 @@
  87883. Lesser General Public License for more details.
  87884. You should have received a copy of the GNU Lesser General Public
  87885. - License along with the GNU C Library; if not, write to the Free
  87886. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87887. - 02111-1307 USA. */
  87888. + License along with the GNU C Library; if not, see
  87889. + <http://www.gnu.org/licenses/>. */
  87890. #include "thread_dbP.h"
  87891. 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
  87892. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_event_enable.c 2012-05-15 09:20:09.000000000 +0200
  87893. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_event_enable.c 2014-06-02 17:40:34.966717253 +0200
  87894. @@ -14,9 +14,8 @@
  87895. Lesser General Public License for more details.
  87896. You should have received a copy of the GNU Lesser General Public
  87897. - License along with the GNU C Library; if not, write to the Free
  87898. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87899. - 02111-1307 USA. */
  87900. + License along with the GNU C Library; if not, see
  87901. + <http://www.gnu.org/licenses/>. */
  87902. #include <stddef.h>
  87903. @@ -24,9 +23,7 @@
  87904. td_err_e
  87905. -td_thr_event_enable (th, onoff)
  87906. - const td_thrhandle_t *th;
  87907. - int onoff;
  87908. +td_thr_event_enable(const td_thrhandle_t *th, int onoff)
  87909. {
  87910. LOG ("td_thr_event_enable");
  87911. 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
  87912. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_event_getmsg.c 2012-05-15 09:20:09.000000000 +0200
  87913. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_event_getmsg.c 2014-06-02 17:40:34.966717253 +0200
  87914. @@ -14,9 +14,8 @@
  87915. Lesser General Public License for more details.
  87916. You should have received a copy of the GNU Lesser General Public
  87917. - License along with the GNU C Library; if not, write to the Free
  87918. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87919. - 02111-1307 USA. */
  87920. + License along with the GNU C Library; if not, see
  87921. + <http://www.gnu.org/licenses/>. */
  87922. #include <stddef.h>
  87923. #include <string.h>
  87924. 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
  87925. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_getfpregs.c 2012-05-15 09:20:09.000000000 +0200
  87926. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_getfpregs.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_getgregs.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_getgregs.c
  87937. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_getgregs.c 2012-05-15 09:20:09.000000000 +0200
  87938. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_getgregs.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 "thread_dbP.h"
  87948. 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
  87949. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_get_info.c 2012-05-15 09:20:09.000000000 +0200
  87950. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_get_info.c 2014-06-02 17:40:34.966717253 +0200
  87951. @@ -14,9 +14,8 @@
  87952. Lesser General Public License for more details.
  87953. You should have received a copy of the GNU Lesser General Public
  87954. - License along with the GNU C Library; if not, write to the Free
  87955. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87956. - 02111-1307 USA. */
  87957. + License along with the GNU C Library; if not, see
  87958. + <http://www.gnu.org/licenses/>. */
  87959. #include <stddef.h>
  87960. #include <string.h>
  87961. 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
  87962. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_getxregs.c 2012-05-15 09:20:09.000000000 +0200
  87963. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_getxregs.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/td_thr_getxregsize.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_getxregsize.c
  87974. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_getxregsize.c 2012-05-15 09:20:09.000000000 +0200
  87975. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_getxregsize.c 2014-06-02 17:40:34.966717253 +0200
  87976. @@ -14,9 +14,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. #include "thread_dbP.h"
  87985. 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
  87986. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_set_event.c 2012-05-15 09:20:09.000000000 +0200
  87987. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_set_event.c 2014-06-02 17:40:34.966717253 +0200
  87988. @@ -14,9 +14,8 @@
  87989. Lesser General Public License for more details.
  87990. You should have received a copy of the GNU Lesser General Public
  87991. - License along with the GNU C Library; if not, write to the Free
  87992. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87993. - 02111-1307 USA. */
  87994. + License along with the GNU C Library; if not, see
  87995. + <http://www.gnu.org/licenses/>. */
  87996. #include <stddef.h>
  87997. @@ -24,9 +23,7 @@
  87998. td_err_e
  87999. -td_thr_set_event (th, event)
  88000. - const td_thrhandle_t *th;
  88001. - td_thr_events_t *event;
  88002. +td_thr_set_event(const td_thrhandle_t *th, td_thr_events_t *event)
  88003. {
  88004. td_thr_events_t old_event;
  88005. int i;
  88006. 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
  88007. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setfpregs.c 2012-05-15 09:20:09.000000000 +0200
  88008. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_setfpregs.c 2014-06-02 17:40:34.966717253 +0200
  88009. @@ -14,9 +14,8 @@
  88010. Lesser General Public License for more details.
  88011. You should have received a copy of the GNU Lesser General Public
  88012. - License along with the GNU C Library; if not, write to the Free
  88013. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88014. - 02111-1307 USA. */
  88015. + License along with the GNU C Library; if not, see
  88016. + <http://www.gnu.org/licenses/>. */
  88017. #include "thread_dbP.h"
  88018. 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
  88019. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setgregs.c 2012-05-15 09:20:09.000000000 +0200
  88020. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_setgregs.c 2014-06-02 17:40:34.966717253 +0200
  88021. @@ -14,9 +14,8 @@
  88022. Lesser General Public License for more details.
  88023. You should have received a copy of the GNU Lesser General Public
  88024. - License along with the GNU C Library; if not, write to the Free
  88025. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88026. - 02111-1307 USA. */
  88027. + License along with the GNU C Library; if not, see
  88028. + <http://www.gnu.org/licenses/>. */
  88029. #include "thread_dbP.h"
  88030. 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
  88031. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setprio.c 2012-05-15 09:20:09.000000000 +0200
  88032. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_setprio.c 2014-06-02 17:40:34.966717253 +0200
  88033. @@ -14,9 +14,8 @@
  88034. Lesser General Public License for more details.
  88035. You should have received a copy of the GNU Lesser General Public
  88036. - License along with the GNU C Library; if not, write to the Free
  88037. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88038. - 02111-1307 USA. */
  88039. + License along with the GNU C Library; if not, see
  88040. + <http://www.gnu.org/licenses/>. */
  88041. #include "thread_dbP.h"
  88042. 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
  88043. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setsigpending.c 2012-05-15 09:20:09.000000000 +0200
  88044. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_setsigpending.c 2014-06-02 17:40:34.966717253 +0200
  88045. @@ -14,9 +14,8 @@
  88046. Lesser General Public License for more details.
  88047. You should have received a copy of the GNU Lesser General Public
  88048. - License along with the GNU C Library; if not, write to the Free
  88049. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88050. - 02111-1307 USA. */
  88051. + License along with the GNU C Library; if not, see
  88052. + <http://www.gnu.org/licenses/>. */
  88053. #include "thread_dbP.h"
  88054. 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
  88055. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setxregs.c 2012-05-15 09:20:09.000000000 +0200
  88056. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_setxregs.c 2014-06-02 17:40:34.966717253 +0200
  88057. @@ -14,9 +14,8 @@
  88058. Lesser General Public License for more details.
  88059. You should have received a copy of the GNU Lesser General Public
  88060. - License along with the GNU C Library; if not, write to the Free
  88061. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88062. - 02111-1307 USA. */
  88063. + License along with the GNU C Library; if not, see
  88064. + <http://www.gnu.org/licenses/>. */
  88065. #include "thread_dbP.h"
  88066. 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
  88067. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_sigsetmask.c 2012-05-15 09:20:09.000000000 +0200
  88068. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_sigsetmask.c 2014-06-02 17:40:34.966717253 +0200
  88069. @@ -14,9 +14,8 @@
  88070. Lesser General Public License for more details.
  88071. You should have received a copy of the GNU Lesser General Public
  88072. - License along with the GNU C Library; if not, write to the Free
  88073. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88074. - 02111-1307 USA. */
  88075. + License along with the GNU C Library; if not, see
  88076. + <http://www.gnu.org/licenses/>. */
  88077. #include "thread_dbP.h"
  88078. 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
  88079. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_tls_get_addr.c 2012-05-15 09:20:09.000000000 +0200
  88080. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_tls_get_addr.c 2014-06-02 17:40:34.966717253 +0200
  88081. @@ -14,9 +14,8 @@
  88082. Lesser General Public License for more details.
  88083. You should have received a copy of the GNU Lesser General Public
  88084. - License along with the GNU C Library; if not, write to the Free
  88085. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88086. - 02111-1307 USA. */
  88087. + License along with the GNU C Library; if not, see
  88088. + <http://www.gnu.org/licenses/>. */
  88089. #include <link.h>
  88090. #include "thread_dbP.h"
  88091. 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
  88092. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_tsd.c 2012-05-15 09:20:09.000000000 +0200
  88093. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_tsd.c 2014-06-02 17:40:34.966717253 +0200
  88094. @@ -14,9 +14,8 @@
  88095. Lesser General Public License for more details.
  88096. You should have received a copy of the GNU Lesser General Public
  88097. - License along with the GNU C Library; if not, write to the Free
  88098. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88099. - 02111-1307 USA. */
  88100. + License along with the GNU C Library; if not, see
  88101. + <http://www.gnu.org/licenses/>. */
  88102. #include "thread_dbP.h"
  88103. 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
  88104. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_validate.c 2012-05-15 09:20:09.000000000 +0200
  88105. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_validate.c 2014-06-02 17:40:34.966717253 +0200
  88106. @@ -14,9 +14,8 @@
  88107. Lesser General Public License for more details.
  88108. You should have received a copy of the GNU Lesser General Public
  88109. - License along with the GNU C Library; if not, write to the Free
  88110. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88111. - 02111-1307 USA. */
  88112. + License along with the GNU C Library; if not, see
  88113. + <http://www.gnu.org/licenses/>. */
  88114. #include "thread_dbP.h"
  88115. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/thread_db.h uClibc-git/libpthread/linuxthreads.old_db/thread_db.h
  88116. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/thread_db.h 2012-05-15 09:20:09.000000000 +0200
  88117. +++ uClibc-git/libpthread/linuxthreads.old_db/thread_db.h 2014-06-02 17:40:34.966717253 +0200
  88118. @@ -13,9 +13,8 @@
  88119. Lesser General Public License for more details.
  88120. You should have received a copy of the GNU Lesser General Public
  88121. - License along with the GNU C Library; if not, write to the Free
  88122. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88123. - 02111-1307 USA. */
  88124. + License along with the GNU C Library; if not, see
  88125. + <http://www.gnu.org/licenses/>. */
  88126. #ifndef _THREAD_DB_H
  88127. #define _THREAD_DB_H 1
  88128. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/thread_dbP.h uClibc-git/libpthread/linuxthreads.old_db/thread_dbP.h
  88129. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/thread_dbP.h 2012-05-15 09:20:09.000000000 +0200
  88130. +++ uClibc-git/libpthread/linuxthreads.old_db/thread_dbP.h 2014-06-02 17:40:34.966717253 +0200
  88131. @@ -2,8 +2,6 @@
  88132. #ifndef _THREAD_DBP_H
  88133. #define _THREAD_DBP_H 1
  88134. -#define __FORCE_GLIBC
  88135. -#include <features.h>
  88136. #include <string.h>
  88137. #include <unistd.h>
  88138. #include "proc_service.h"
  88139. diff -Nur uClibc-0.9.33.2/libpthread/nptl/alloca_cutoff.c uClibc-git/libpthread/nptl/alloca_cutoff.c
  88140. --- uClibc-0.9.33.2/libpthread/nptl/alloca_cutoff.c 2012-05-15 09:20:09.000000000 +0200
  88141. +++ uClibc-git/libpthread/nptl/alloca_cutoff.c 2014-06-02 17:40:35.034717630 +0200
  88142. @@ -13,9 +13,8 @@
  88143. Lesser General Public License for more details.
  88144. You should have received a copy of the GNU Lesser General Public
  88145. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  88146. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  88147. - Boston, MA 02111-1307, USA. */
  88148. + License along with the GNU C Library; see the file COPYING.LIB. If
  88149. + not, see <http://www.gnu.org/licenses/>. */
  88150. #include <alloca.h>
  88151. #include <stdlib.h>
  88152. diff -Nur uClibc-0.9.33.2/libpthread/nptl/allocatestack.c uClibc-git/libpthread/nptl/allocatestack.c
  88153. --- uClibc-0.9.33.2/libpthread/nptl/allocatestack.c 2012-05-15 09:20:09.000000000 +0200
  88154. +++ uClibc-git/libpthread/nptl/allocatestack.c 2014-06-02 17:40:35.034717630 +0200
  88155. @@ -13,9 +13,8 @@
  88156. Lesser General Public License for more details.
  88157. You should have received a copy of the GNU Lesser General Public
  88158. - License along with the GNU C Library; if not, write to the Free
  88159. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88160. - 02111-1307 USA. */
  88161. + License along with the GNU C Library; if not, see
  88162. + <http://www.gnu.org/licenses/>. */
  88163. #include <assert.h>
  88164. #include <errno.h>
  88165. @@ -646,7 +645,7 @@
  88166. prot) != 0)
  88167. goto mprot_error;
  88168. #elif defined _STACK_GROWS_UP
  88169. - if (mprotect ((char *) pd - pd->guardsize,
  88170. + if (mprotect ((char *) (((uintptr_t) pd - pd->guardsize) & ~pagesize_m1),
  88171. pd->guardsize - guardsize, prot) != 0)
  88172. goto mprot_error;
  88173. #endif
  88174. diff -Nur uClibc-0.9.33.2/libpthread/nptl/cancellation.c uClibc-git/libpthread/nptl/cancellation.c
  88175. --- uClibc-0.9.33.2/libpthread/nptl/cancellation.c 2012-05-15 09:20:09.000000000 +0200
  88176. +++ uClibc-git/libpthread/nptl/cancellation.c 2014-06-02 17:40:35.034717630 +0200
  88177. @@ -13,9 +13,8 @@
  88178. Lesser General Public License for more details.
  88179. You should have received a copy of the GNU Lesser General Public
  88180. - License along with the GNU C Library; if not, write to the Free
  88181. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88182. - 02111-1307 USA. */
  88183. + License along with the GNU C Library; if not, see
  88184. + <http://www.gnu.org/licenses/>. */
  88185. #include <setjmp.h>
  88186. #include <stdlib.h>
  88187. diff -Nur uClibc-0.9.33.2/libpthread/nptl/cleanup.c uClibc-git/libpthread/nptl/cleanup.c
  88188. --- uClibc-0.9.33.2/libpthread/nptl/cleanup.c 2012-05-15 09:20:09.000000000 +0200
  88189. +++ uClibc-git/libpthread/nptl/cleanup.c 2014-06-02 17:40:35.034717630 +0200
  88190. @@ -13,9 +13,8 @@
  88191. Lesser General Public License for more details.
  88192. You should have received a copy of the GNU Lesser General Public
  88193. - License along with the GNU C Library; if not, write to the Free
  88194. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88195. - 02111-1307 USA. */
  88196. + License along with the GNU C Library; if not, see
  88197. + <http://www.gnu.org/licenses/>. */
  88198. #include <stdlib.h>
  88199. #include "pthreadP.h"
  88200. diff -Nur uClibc-0.9.33.2/libpthread/nptl/cleanup_compat.c uClibc-git/libpthread/nptl/cleanup_compat.c
  88201. --- uClibc-0.9.33.2/libpthread/nptl/cleanup_compat.c 2012-05-15 09:20:09.000000000 +0200
  88202. +++ uClibc-git/libpthread/nptl/cleanup_compat.c 2014-06-02 17:40:35.034717630 +0200
  88203. @@ -13,9 +13,8 @@
  88204. Lesser General Public License for more details.
  88205. You should have received a copy of the GNU Lesser General Public
  88206. - License along with the GNU C Library; if not, write to the Free
  88207. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88208. - 02111-1307 USA. */
  88209. + License along with the GNU C Library; if not, see
  88210. + <http://www.gnu.org/licenses/>. */
  88211. #include <stdlib.h>
  88212. #include "pthreadP.h"
  88213. diff -Nur uClibc-0.9.33.2/libpthread/nptl/cleanup_defer.c uClibc-git/libpthread/nptl/cleanup_defer.c
  88214. --- uClibc-0.9.33.2/libpthread/nptl/cleanup_defer.c 2012-05-15 09:20:09.000000000 +0200
  88215. +++ uClibc-git/libpthread/nptl/cleanup_defer.c 2014-06-02 17:40:35.034717630 +0200
  88216. @@ -13,9 +13,8 @@
  88217. Lesser General Public License for more details.
  88218. You should have received a copy of the GNU Lesser General Public
  88219. - License along with the GNU C Library; if not, write to the Free
  88220. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88221. - 02111-1307 USA. */
  88222. + License along with the GNU C Library; if not, see
  88223. + <http://www.gnu.org/licenses/>. */
  88224. #include <stdlib.h>
  88225. #include "pthreadP.h"
  88226. diff -Nur uClibc-0.9.33.2/libpthread/nptl/cleanup_defer_compat.c uClibc-git/libpthread/nptl/cleanup_defer_compat.c
  88227. --- uClibc-0.9.33.2/libpthread/nptl/cleanup_defer_compat.c 2012-05-15 09:20:09.000000000 +0200
  88228. +++ uClibc-git/libpthread/nptl/cleanup_defer_compat.c 2014-06-02 17:40:35.034717630 +0200
  88229. @@ -13,9 +13,8 @@
  88230. Lesser General Public License for more details.
  88231. You should have received a copy of the GNU Lesser General Public
  88232. - License along with the GNU C Library; if not, write to the Free
  88233. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88234. - 02111-1307 USA. */
  88235. + License along with the GNU C Library; if not, see
  88236. + <http://www.gnu.org/licenses/>. */
  88237. #include "pthreadP.h"
  88238. diff -Nur uClibc-0.9.33.2/libpthread/nptl/cleanup_routine.c uClibc-git/libpthread/nptl/cleanup_routine.c
  88239. --- uClibc-0.9.33.2/libpthread/nptl/cleanup_routine.c 2012-05-15 09:20:09.000000000 +0200
  88240. +++ uClibc-git/libpthread/nptl/cleanup_routine.c 2014-06-02 17:40:35.034717630 +0200
  88241. @@ -13,13 +13,12 @@
  88242. Lesser General Public License for more details.
  88243. You should have received a copy of the GNU Lesser General Public
  88244. - License along with the GNU C Library; if not, write to the Free
  88245. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88246. - 02111-1307 USA. */
  88247. + License along with the GNU C Library; if not, see
  88248. + <http://www.gnu.org/licenses/>. */
  88249. #include <pthread.h>
  88250. -
  88251. +void __pthread_cleanup_routine (struct __pthread_cleanup_frame *f);
  88252. void
  88253. __pthread_cleanup_routine (struct __pthread_cleanup_frame *f)
  88254. {
  88255. diff -Nur uClibc-0.9.33.2/libpthread/nptl/descr.h uClibc-git/libpthread/nptl/descr.h
  88256. --- uClibc-0.9.33.2/libpthread/nptl/descr.h 2012-05-15 09:20:09.000000000 +0200
  88257. +++ uClibc-git/libpthread/nptl/descr.h 2014-06-02 17:40:35.034717630 +0200
  88258. @@ -13,9 +13,8 @@
  88259. Lesser General Public License for more details.
  88260. You should have received a copy of the GNU Lesser General Public
  88261. - License along with the GNU C Library; if not, write to the Free
  88262. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88263. - 02111-1307 USA. */
  88264. + License along with the GNU C Library; if not, see
  88265. + <http://www.gnu.org/licenses/>. */
  88266. #ifndef _DESCR_H
  88267. #define _DESCR_H 1
  88268. diff -Nur uClibc-0.9.33.2/libpthread/nptl/events.c uClibc-git/libpthread/nptl/events.c
  88269. --- uClibc-0.9.33.2/libpthread/nptl/events.c 2012-05-15 09:20:09.000000000 +0200
  88270. +++ uClibc-git/libpthread/nptl/events.c 2014-06-02 17:40:35.034717630 +0200
  88271. @@ -13,9 +13,8 @@
  88272. Lesser General Public License for more details.
  88273. You should have received a copy of the GNU Lesser General Public
  88274. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  88275. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  88276. - Boston, MA 02111-1307, USA. */
  88277. + License along with the GNU C Library; see the file COPYING.LIB. If
  88278. + not, see <http://www.gnu.org/licenses/>. */
  88279. /* The functions contained here do nothing, they just return. */
  88280. diff -Nur uClibc-0.9.33.2/libpthread/nptl/forward.c uClibc-git/libpthread/nptl/forward.c
  88281. --- uClibc-0.9.33.2/libpthread/nptl/forward.c 2012-05-15 09:20:09.000000000 +0200
  88282. +++ uClibc-git/libpthread/nptl/forward.c 2014-06-02 17:40:35.034717630 +0200
  88283. @@ -13,9 +13,8 @@
  88284. Lesser General Public License for more details.
  88285. You should have received a copy of the GNU Lesser General Public
  88286. - License along with the GNU C Library; if not, write to the Free
  88287. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88288. - 02111-1307 USA. */
  88289. + License along with the GNU C Library; if not, see
  88290. + <http://www.gnu.org/licenses/>. */
  88291. #include <dlfcn.h>
  88292. #include <pthreadP.h>
  88293. diff -Nur uClibc-0.9.33.2/libpthread/nptl/.gitignore uClibc-git/libpthread/nptl/.gitignore
  88294. --- uClibc-0.9.33.2/libpthread/nptl/.gitignore 2012-05-15 09:20:09.000000000 +0200
  88295. +++ uClibc-git/libpthread/nptl/.gitignore 2014-06-02 17:40:35.030717608 +0200
  88296. @@ -26,3 +26,5 @@
  88297. #
  88298. # symlinks
  88299. #
  88300. +sysdeps/pthread/pt-sigfillset.c
  88301. +sysdeps/pthread/pt-sigprocmask.c
  88302. diff -Nur uClibc-0.9.33.2/libpthread/nptl/herrno.c uClibc-git/libpthread/nptl/herrno.c
  88303. --- uClibc-0.9.33.2/libpthread/nptl/herrno.c 2012-05-15 09:20:09.000000000 +0200
  88304. +++ uClibc-git/libpthread/nptl/herrno.c 2014-06-02 17:40:35.034717630 +0200
  88305. @@ -12,9 +12,8 @@
  88306. Lesser General Public License for more details.
  88307. You should have received a copy of the GNU Lesser General Public
  88308. - License along with the GNU C Library; if not, write to the Free
  88309. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88310. - 02111-1307 USA. */
  88311. + License along with the GNU C Library; if not, see
  88312. + <http://www.gnu.org/licenses/>. */
  88313. #include <features.h>
  88314. #include <netdb.h>
  88315. diff -Nur uClibc-0.9.33.2/libpthread/nptl/init.c uClibc-git/libpthread/nptl/init.c
  88316. --- uClibc-0.9.33.2/libpthread/nptl/init.c 2012-05-15 09:20:09.000000000 +0200
  88317. +++ uClibc-git/libpthread/nptl/init.c 2014-06-02 17:40:35.034717630 +0200
  88318. @@ -13,9 +13,8 @@
  88319. Lesser General Public License for more details.
  88320. You should have received a copy of the GNU Lesser General Public
  88321. - License along with the GNU C Library; if not, write to the Free
  88322. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88323. - 02111-1307 USA. */
  88324. + License along with the GNU C Library; if not, see
  88325. + <http://www.gnu.org/licenses/>. */
  88326. #include <assert.h>
  88327. #include <errno.h>
  88328. @@ -35,7 +34,6 @@
  88329. #include <lowlevellock.h>
  88330. #include <bits/kernel-features.h>
  88331. #include <stdio.h>
  88332. -extern __typeof(sigaction) __libc_sigaction;
  88333. /* Size and alignment of static TLS block. */
  88334. size_t __static_tls_size;
  88335. diff -Nur uClibc-0.9.33.2/libpthread/nptl/libc-cancellation.c uClibc-git/libpthread/nptl/libc-cancellation.c
  88336. --- uClibc-0.9.33.2/libpthread/nptl/libc-cancellation.c 2012-05-15 09:20:09.000000000 +0200
  88337. +++ uClibc-git/libpthread/nptl/libc-cancellation.c 2014-06-02 17:40:35.034717630 +0200
  88338. @@ -13,9 +13,8 @@
  88339. Lesser General Public License for more details.
  88340. You should have received a copy of the GNU Lesser General Public
  88341. - License along with the GNU C Library; if not, write to the Free
  88342. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88343. - 02111-1307 USA. */
  88344. + License along with the GNU C Library; if not, see
  88345. + <http://www.gnu.org/licenses/>. */
  88346. #include "pthreadP.h"
  88347. diff -Nur uClibc-0.9.33.2/libpthread/nptl/linux_fsinfo.h uClibc-git/libpthread/nptl/linux_fsinfo.h
  88348. --- uClibc-0.9.33.2/libpthread/nptl/linux_fsinfo.h 2012-05-15 09:20:09.000000000 +0200
  88349. +++ uClibc-git/libpthread/nptl/linux_fsinfo.h 2014-06-02 17:40:35.034717630 +0200
  88350. @@ -13,9 +13,8 @@
  88351. Lesser General Public License for more details.
  88352. You should have received a copy of the GNU Lesser General Public
  88353. - License along with the GNU C Library; if not, write to the Free
  88354. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88355. - 02111-1307 USA. */
  88356. + License along with the GNU C Library; if not, see
  88357. + <http://www.gnu.org/licenses/>. */
  88358. #ifndef _LINUX_FSINFO_H
  88359. #define _LINUX_FSINFO_H 1
  88360. diff -Nur uClibc-0.9.33.2/libpthread/nptl/Makefile.in uClibc-git/libpthread/nptl/Makefile.in
  88361. --- uClibc-0.9.33.2/libpthread/nptl/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  88362. +++ uClibc-git/libpthread/nptl/Makefile.in 2014-06-02 17:40:35.034717630 +0200
  88363. @@ -145,7 +145,7 @@
  88364. endif
  88365. LDFLAGS-libpthread.so += $(top_builddir)lib/$(UCLIBC_LDSO_NAME)-$(VERSION).so $(top_builddir)lib/libdl-$(VERSION).so \
  88366. - -Wl,-z,nodelete,-z,initfirst,-init=__pthread_initialize_minimal_internal
  88367. + -Wl,-z,nodelete,-z,initfirst,-init=$(SYMBOL_PREFIX)__pthread_initialize_minimal_internal
  88368. LIBS-libpthread.so := $(LIBS)
  88369. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pt-cleanup.c uClibc-git/libpthread/nptl/pt-cleanup.c
  88370. --- uClibc-0.9.33.2/libpthread/nptl/pt-cleanup.c 2012-05-15 09:20:09.000000000 +0200
  88371. +++ uClibc-git/libpthread/nptl/pt-cleanup.c 2014-06-02 17:40:35.034717630 +0200
  88372. @@ -13,9 +13,8 @@
  88373. Lesser General Public License for more details.
  88374. You should have received a copy of the GNU Lesser General Public
  88375. - License along with the GNU C Library; if not, write to the Free
  88376. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88377. - 02111-1307 USA. */
  88378. + License along with the GNU C Library; if not, see
  88379. + <http://www.gnu.org/licenses/>. */
  88380. #include <setjmp.h>
  88381. #include <stdlib.h>
  88382. @@ -23,7 +22,7 @@
  88383. #include <jmpbuf-unwind.h>
  88384. void
  88385. -attribute_protected
  88386. +/*does not apply due to hidden_proto(): attribute_protected*/
  88387. __pthread_cleanup_upto (__jmp_buf target, char *targetframe)
  88388. {
  88389. struct pthread *self = THREAD_SELF;
  88390. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_atfork.c uClibc-git/libpthread/nptl/pthread_atfork.c
  88391. --- uClibc-0.9.33.2/libpthread/nptl/pthread_atfork.c 2012-05-15 09:20:09.000000000 +0200
  88392. +++ uClibc-git/libpthread/nptl/pthread_atfork.c 2014-06-02 17:40:35.034717630 +0200
  88393. @@ -30,9 +30,8 @@
  88394. Lesser General Public License for more details.
  88395. You should have received a copy of the GNU Lesser General Public
  88396. - License along with the GNU C Library; if not, write to the Free
  88397. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88398. - 02111-1307 USA. */
  88399. + License along with the GNU C Library; if not, see
  88400. + <http://www.gnu.org/licenses/>. */
  88401. #include "pthreadP.h"
  88402. #include <fork.h>
  88403. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_destroy.c uClibc-git/libpthread/nptl/pthread_attr_destroy.c
  88404. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_destroy.c 2012-05-15 09:20:09.000000000 +0200
  88405. +++ uClibc-git/libpthread/nptl/pthread_attr_destroy.c 2014-06-02 17:40:35.034717630 +0200
  88406. @@ -13,9 +13,8 @@
  88407. Lesser General Public License for more details.
  88408. You should have received a copy of the GNU Lesser General Public
  88409. - License along with the GNU C Library; if not, write to the Free
  88410. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88411. - 02111-1307 USA. */
  88412. + License along with the GNU C Library; if not, see
  88413. + <http://www.gnu.org/licenses/>. */
  88414. #include <assert.h>
  88415. #include <errno.h>
  88416. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getdetachstate.c uClibc-git/libpthread/nptl/pthread_attr_getdetachstate.c
  88417. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getdetachstate.c 2012-05-15 09:20:09.000000000 +0200
  88418. +++ uClibc-git/libpthread/nptl/pthread_attr_getdetachstate.c 2014-06-02 17:40:35.034717630 +0200
  88419. @@ -13,9 +13,8 @@
  88420. Lesser General Public License for more details.
  88421. You should have received a copy of the GNU Lesser General Public
  88422. - License along with the GNU C Library; if not, write to the Free
  88423. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88424. - 02111-1307 USA. */
  88425. + License along with the GNU C Library; if not, see
  88426. + <http://www.gnu.org/licenses/>. */
  88427. #include <assert.h>
  88428. #include "pthreadP.h"
  88429. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getguardsize.c uClibc-git/libpthread/nptl/pthread_attr_getguardsize.c
  88430. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getguardsize.c 2012-05-15 09:20:09.000000000 +0200
  88431. +++ uClibc-git/libpthread/nptl/pthread_attr_getguardsize.c 2014-06-02 17:40:35.034717630 +0200
  88432. @@ -13,9 +13,8 @@
  88433. Lesser General Public License for more details.
  88434. You should have received a copy of the GNU Lesser General Public
  88435. - License along with the GNU C Library; if not, write to the Free
  88436. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88437. - 02111-1307 USA. */
  88438. + License along with the GNU C Library; if not, see
  88439. + <http://www.gnu.org/licenses/>. */
  88440. #include <assert.h>
  88441. #include "pthreadP.h"
  88442. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getinheritsched.c uClibc-git/libpthread/nptl/pthread_attr_getinheritsched.c
  88443. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getinheritsched.c 2012-05-15 09:20:09.000000000 +0200
  88444. +++ uClibc-git/libpthread/nptl/pthread_attr_getinheritsched.c 2014-06-02 17:40:35.034717630 +0200
  88445. @@ -13,9 +13,8 @@
  88446. Lesser General Public License for more details.
  88447. You should have received a copy of the GNU Lesser General Public
  88448. - License along with the GNU C Library; if not, write to the Free
  88449. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88450. - 02111-1307 USA. */
  88451. + License along with the GNU C Library; if not, see
  88452. + <http://www.gnu.org/licenses/>. */
  88453. #include <assert.h>
  88454. #include "pthreadP.h"
  88455. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getschedparam.c uClibc-git/libpthread/nptl/pthread_attr_getschedparam.c
  88456. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getschedparam.c 2012-05-15 09:20:09.000000000 +0200
  88457. +++ uClibc-git/libpthread/nptl/pthread_attr_getschedparam.c 2014-06-02 17:40:35.034717630 +0200
  88458. @@ -13,9 +13,8 @@
  88459. Lesser General Public License for more details.
  88460. You should have received a copy of the GNU Lesser General Public
  88461. - License along with the GNU C Library; if not, write to the Free
  88462. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88463. - 02111-1307 USA. */
  88464. + License along with the GNU C Library; if not, see
  88465. + <http://www.gnu.org/licenses/>. */
  88466. #include <assert.h>
  88467. #include <string.h>
  88468. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getschedpolicy.c uClibc-git/libpthread/nptl/pthread_attr_getschedpolicy.c
  88469. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getschedpolicy.c 2012-05-15 09:20:09.000000000 +0200
  88470. +++ uClibc-git/libpthread/nptl/pthread_attr_getschedpolicy.c 2014-06-02 17:40:35.034717630 +0200
  88471. @@ -13,9 +13,8 @@
  88472. Lesser General Public License for more details.
  88473. You should have received a copy of the GNU Lesser General Public
  88474. - License along with the GNU C Library; if not, write to the Free
  88475. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88476. - 02111-1307 USA. */
  88477. + License along with the GNU C Library; if not, see
  88478. + <http://www.gnu.org/licenses/>. */
  88479. #include <assert.h>
  88480. #include "pthreadP.h"
  88481. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getscope.c uClibc-git/libpthread/nptl/pthread_attr_getscope.c
  88482. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getscope.c 2012-05-15 09:20:09.000000000 +0200
  88483. +++ uClibc-git/libpthread/nptl/pthread_attr_getscope.c 2014-06-02 17:40:35.034717630 +0200
  88484. @@ -13,9 +13,8 @@
  88485. Lesser General Public License for more details.
  88486. You should have received a copy of the GNU Lesser General Public
  88487. - License along with the GNU C Library; if not, write to the Free
  88488. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88489. - 02111-1307 USA. */
  88490. + License along with the GNU C Library; if not, see
  88491. + <http://www.gnu.org/licenses/>. */
  88492. #include <assert.h>
  88493. #include "pthreadP.h"
  88494. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getstackaddr.c uClibc-git/libpthread/nptl/pthread_attr_getstackaddr.c
  88495. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getstackaddr.c 2012-05-15 09:20:09.000000000 +0200
  88496. +++ uClibc-git/libpthread/nptl/pthread_attr_getstackaddr.c 2014-06-02 17:40:35.034717630 +0200
  88497. @@ -13,9 +13,8 @@
  88498. Lesser General Public License for more details.
  88499. You should have received a copy of the GNU Lesser General Public
  88500. - License along with the GNU C Library; if not, write to the Free
  88501. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88502. - 02111-1307 USA. */
  88503. + License along with the GNU C Library; if not, see
  88504. + <http://www.gnu.org/licenses/>. */
  88505. #include <assert.h>
  88506. #include <errno.h>
  88507. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getstack.c uClibc-git/libpthread/nptl/pthread_attr_getstack.c
  88508. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getstack.c 2012-05-15 09:20:09.000000000 +0200
  88509. +++ uClibc-git/libpthread/nptl/pthread_attr_getstack.c 2014-06-02 17:40:35.034717630 +0200
  88510. @@ -13,9 +13,8 @@
  88511. Lesser General Public License for more details.
  88512. You should have received a copy of the GNU Lesser General Public
  88513. - License along with the GNU C Library; if not, write to the Free
  88514. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88515. - 02111-1307 USA. */
  88516. + License along with the GNU C Library; if not, see
  88517. + <http://www.gnu.org/licenses/>. */
  88518. #include <assert.h>
  88519. #include "pthreadP.h"
  88520. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getstacksize.c uClibc-git/libpthread/nptl/pthread_attr_getstacksize.c
  88521. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getstacksize.c 2012-05-15 09:20:09.000000000 +0200
  88522. +++ uClibc-git/libpthread/nptl/pthread_attr_getstacksize.c 2014-06-02 17:40:35.034717630 +0200
  88523. @@ -13,9 +13,8 @@
  88524. Lesser General Public License for more details.
  88525. You should have received a copy of the GNU Lesser General Public
  88526. - License along with the GNU C Library; if not, write to the Free
  88527. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88528. - 02111-1307 USA. */
  88529. + License along with the GNU C Library; if not, see
  88530. + <http://www.gnu.org/licenses/>. */
  88531. #include <assert.h>
  88532. #include "pthreadP.h"
  88533. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_init.c uClibc-git/libpthread/nptl/pthread_attr_init.c
  88534. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_init.c 2012-05-15 09:20:09.000000000 +0200
  88535. +++ uClibc-git/libpthread/nptl/pthread_attr_init.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 <assert.h>
  88545. #include <errno.h>
  88546. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setdetachstate.c uClibc-git/libpthread/nptl/pthread_attr_setdetachstate.c
  88547. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setdetachstate.c 2012-05-15 09:20:09.000000000 +0200
  88548. +++ uClibc-git/libpthread/nptl/pthread_attr_setdetachstate.c 2014-06-02 17:40:35.034717630 +0200
  88549. @@ -13,9 +13,8 @@
  88550. Lesser General Public License for more details.
  88551. You should have received a copy of the GNU Lesser General Public
  88552. - License along with the GNU C Library; if not, write to the Free
  88553. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88554. - 02111-1307 USA. */
  88555. + License along with the GNU C Library; if not, see
  88556. + <http://www.gnu.org/licenses/>. */
  88557. #include <assert.h>
  88558. #include <errno.h>
  88559. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setguardsize.c uClibc-git/libpthread/nptl/pthread_attr_setguardsize.c
  88560. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setguardsize.c 2012-05-15 09:20:09.000000000 +0200
  88561. +++ uClibc-git/libpthread/nptl/pthread_attr_setguardsize.c 2014-06-02 17:40:35.034717630 +0200
  88562. @@ -13,9 +13,8 @@
  88563. Lesser General Public License for more details.
  88564. You should have received a copy of the GNU Lesser General Public
  88565. - License along with the GNU C Library; if not, write to the Free
  88566. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88567. - 02111-1307 USA. */
  88568. + License along with the GNU C Library; if not, see
  88569. + <http://www.gnu.org/licenses/>. */
  88570. #include <assert.h>
  88571. #include "pthreadP.h"
  88572. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setinheritsched.c uClibc-git/libpthread/nptl/pthread_attr_setinheritsched.c
  88573. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setinheritsched.c 2012-05-15 09:20:09.000000000 +0200
  88574. +++ uClibc-git/libpthread/nptl/pthread_attr_setinheritsched.c 2014-06-02 17:40:35.034717630 +0200
  88575. @@ -13,9 +13,8 @@
  88576. Lesser General Public License for more details.
  88577. You should have received a copy of the GNU Lesser General Public
  88578. - License along with the GNU C Library; if not, write to the Free
  88579. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88580. - 02111-1307 USA. */
  88581. + License along with the GNU C Library; if not, see
  88582. + <http://www.gnu.org/licenses/>. */
  88583. #include <assert.h>
  88584. #include <errno.h>
  88585. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setschedparam.c uClibc-git/libpthread/nptl/pthread_attr_setschedparam.c
  88586. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setschedparam.c 2012-05-15 09:20:09.000000000 +0200
  88587. +++ uClibc-git/libpthread/nptl/pthread_attr_setschedparam.c 2014-06-02 17:40:35.034717630 +0200
  88588. @@ -13,9 +13,8 @@
  88589. Lesser General Public License for more details.
  88590. You should have received a copy of the GNU Lesser General Public
  88591. - License along with the GNU C Library; if not, write to the Free
  88592. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88593. - 02111-1307 USA. */
  88594. + License along with the GNU C Library; if not, see
  88595. + <http://www.gnu.org/licenses/>. */
  88596. #include <assert.h>
  88597. #include <errno.h>
  88598. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setschedpolicy.c uClibc-git/libpthread/nptl/pthread_attr_setschedpolicy.c
  88599. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setschedpolicy.c 2012-05-15 09:20:09.000000000 +0200
  88600. +++ uClibc-git/libpthread/nptl/pthread_attr_setschedpolicy.c 2014-06-02 17:40:35.034717630 +0200
  88601. @@ -13,9 +13,8 @@
  88602. Lesser General Public License for more details.
  88603. You should have received a copy of the GNU Lesser General Public
  88604. - License along with the GNU C Library; if not, write to the Free
  88605. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88606. - 02111-1307 USA. */
  88607. + License along with the GNU C Library; if not, see
  88608. + <http://www.gnu.org/licenses/>. */
  88609. #include <assert.h>
  88610. #include <errno.h>
  88611. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setscope.c uClibc-git/libpthread/nptl/pthread_attr_setscope.c
  88612. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setscope.c 2012-05-15 09:20:09.000000000 +0200
  88613. +++ uClibc-git/libpthread/nptl/pthread_attr_setscope.c 2014-06-02 17:40:35.034717630 +0200
  88614. @@ -13,9 +13,8 @@
  88615. Lesser General Public License for more details.
  88616. You should have received a copy of the GNU Lesser General Public
  88617. - License along with the GNU C Library; if not, write to the Free
  88618. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88619. - 02111-1307 USA. */
  88620. + License along with the GNU C Library; if not, see
  88621. + <http://www.gnu.org/licenses/>. */
  88622. #include <assert.h>
  88623. #include <errno.h>
  88624. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setstackaddr.c uClibc-git/libpthread/nptl/pthread_attr_setstackaddr.c
  88625. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setstackaddr.c 2012-05-15 09:20:09.000000000 +0200
  88626. +++ uClibc-git/libpthread/nptl/pthread_attr_setstackaddr.c 2014-06-02 17:40:35.034717630 +0200
  88627. @@ -13,9 +13,8 @@
  88628. Lesser General Public License for more details.
  88629. You should have received a copy of the GNU Lesser General Public
  88630. - License along with the GNU C Library; if not, write to the Free
  88631. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88632. - 02111-1307 USA. */
  88633. + License along with the GNU C Library; if not, see
  88634. + <http://www.gnu.org/licenses/>. */
  88635. #include <assert.h>
  88636. #include <errno.h>
  88637. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setstack.c uClibc-git/libpthread/nptl/pthread_attr_setstack.c
  88638. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setstack.c 2012-05-15 09:20:09.000000000 +0200
  88639. +++ uClibc-git/libpthread/nptl/pthread_attr_setstack.c 2014-06-02 17:40:35.034717630 +0200
  88640. @@ -13,9 +13,8 @@
  88641. Lesser General Public License for more details.
  88642. You should have received a copy of the GNU Lesser General Public
  88643. - License along with the GNU C Library; if not, write to the Free
  88644. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88645. - 02111-1307 USA. */
  88646. + License along with the GNU C Library; if not, see
  88647. + <http://www.gnu.org/licenses/>. */
  88648. #include <assert.h>
  88649. #include <errno.h>
  88650. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setstacksize.c uClibc-git/libpthread/nptl/pthread_attr_setstacksize.c
  88651. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setstacksize.c 2012-05-15 09:20:09.000000000 +0200
  88652. +++ uClibc-git/libpthread/nptl/pthread_attr_setstacksize.c 2014-06-02 17:40:35.034717630 +0200
  88653. @@ -13,9 +13,8 @@
  88654. Lesser General Public License for more details.
  88655. You should have received a copy of the GNU Lesser General Public
  88656. - License along with the GNU C Library; if not, write to the Free
  88657. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88658. - 02111-1307 USA. */
  88659. + License along with the GNU C Library; if not, see
  88660. + <http://www.gnu.org/licenses/>. */
  88661. #include <assert.h>
  88662. #include <errno.h>
  88663. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_destroy.c uClibc-git/libpthread/nptl/pthread_barrierattr_destroy.c
  88664. --- uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_destroy.c 2012-05-15 09:20:09.000000000 +0200
  88665. +++ uClibc-git/libpthread/nptl/pthread_barrierattr_destroy.c 2014-06-02 17:40:35.034717630 +0200
  88666. @@ -13,9 +13,8 @@
  88667. Lesser General Public License for more details.
  88668. You should have received a copy of the GNU Lesser General Public
  88669. - License along with the GNU C Library; if not, write to the Free
  88670. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88671. - 02111-1307 USA. */
  88672. + License along with the GNU C Library; if not, see
  88673. + <http://www.gnu.org/licenses/>. */
  88674. #include "pthreadP.h"
  88675. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_getpshared.c uClibc-git/libpthread/nptl/pthread_barrierattr_getpshared.c
  88676. --- uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_getpshared.c 2012-05-15 09:20:09.000000000 +0200
  88677. +++ uClibc-git/libpthread/nptl/pthread_barrierattr_getpshared.c 2014-06-02 17:40:35.034717630 +0200
  88678. @@ -13,9 +13,8 @@
  88679. Lesser General Public License for more details.
  88680. You should have received a copy of the GNU Lesser General Public
  88681. - License along with the GNU C Library; if not, write to the Free
  88682. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88683. - 02111-1307 USA. */
  88684. + License along with the GNU C Library; if not, see
  88685. + <http://www.gnu.org/licenses/>. */
  88686. #include "pthreadP.h"
  88687. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_init.c uClibc-git/libpthread/nptl/pthread_barrierattr_init.c
  88688. --- uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_init.c 2012-05-15 09:20:09.000000000 +0200
  88689. +++ uClibc-git/libpthread/nptl/pthread_barrierattr_init.c 2014-06-02 17:40:35.034717630 +0200
  88690. @@ -13,9 +13,8 @@
  88691. Lesser General Public License for more details.
  88692. You should have received a copy of the GNU Lesser General Public
  88693. - License along with the GNU C Library; if not, write to the Free
  88694. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88695. - 02111-1307 USA. */
  88696. + License along with the GNU C Library; if not, see
  88697. + <http://www.gnu.org/licenses/>. */
  88698. #include "pthreadP.h"
  88699. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_setpshared.c uClibc-git/libpthread/nptl/pthread_barrierattr_setpshared.c
  88700. --- uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_setpshared.c 2012-05-15 09:20:09.000000000 +0200
  88701. +++ uClibc-git/libpthread/nptl/pthread_barrierattr_setpshared.c 2014-06-02 17:40:35.038717652 +0200
  88702. @@ -13,9 +13,8 @@
  88703. Lesser General Public License for more details.
  88704. You should have received a copy of the GNU Lesser General Public
  88705. - License along with the GNU C Library; if not, write to the Free
  88706. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88707. - 02111-1307 USA. */
  88708. + License along with the GNU C Library; if not, see
  88709. + <http://www.gnu.org/licenses/>. */
  88710. #include <errno.h>
  88711. #include "pthreadP.h"
  88712. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_cancel.c uClibc-git/libpthread/nptl/pthread_cancel.c
  88713. --- uClibc-0.9.33.2/libpthread/nptl/pthread_cancel.c 2012-05-15 09:20:09.000000000 +0200
  88714. +++ uClibc-git/libpthread/nptl/pthread_cancel.c 2014-06-02 17:40:35.038717652 +0200
  88715. @@ -13,9 +13,8 @@
  88716. Lesser General Public License for more details.
  88717. You should have received a copy of the GNU Lesser General Public
  88718. - License along with the GNU C Library; if not, write to the Free
  88719. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88720. - 02111-1307 USA. */
  88721. + License along with the GNU C Library; if not, see
  88722. + <http://www.gnu.org/licenses/>. */
  88723. #include <errno.h>
  88724. #include <signal.h>
  88725. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_clock_gettime.c uClibc-git/libpthread/nptl/pthread_clock_gettime.c
  88726. --- uClibc-0.9.33.2/libpthread/nptl/pthread_clock_gettime.c 2012-05-15 09:20:09.000000000 +0200
  88727. +++ uClibc-git/libpthread/nptl/pthread_clock_gettime.c 2014-06-02 17:40:35.038717652 +0200
  88728. @@ -12,14 +12,12 @@
  88729. Lesser General Public License for more details.
  88730. You should have received a copy of the GNU Lesser General Public
  88731. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  88732. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  88733. - Boston, MA 02111-1307, USA. */
  88734. + License along with the GNU C Library; see the file COPYING.LIB. If
  88735. + not, see <http://www.gnu.org/licenses/>. */
  88736. #include <errno.h>
  88737. #include <stdlib.h>
  88738. #include <time.h>
  88739. -#include <libc-internal.h>
  88740. #include "pthreadP.h"
  88741. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_clock_settime.c uClibc-git/libpthread/nptl/pthread_clock_settime.c
  88742. --- uClibc-0.9.33.2/libpthread/nptl/pthread_clock_settime.c 2012-05-15 09:20:09.000000000 +0200
  88743. +++ uClibc-git/libpthread/nptl/pthread_clock_settime.c 2014-06-02 17:40:35.038717652 +0200
  88744. @@ -12,14 +12,12 @@
  88745. Lesser General Public License for more details.
  88746. You should have received a copy of the GNU Lesser General Public
  88747. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  88748. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  88749. - Boston, MA 02111-1307, USA. */
  88750. + License along with the GNU C Library; see the file COPYING.LIB. If
  88751. + not, see <http://www.gnu.org/licenses/>. */
  88752. #include <errno.h>
  88753. #include <stdlib.h>
  88754. #include <time.h>
  88755. -#include <libc-internal.h>
  88756. #include "pthreadP.h"
  88757. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_destroy.c uClibc-git/libpthread/nptl/pthread_condattr_destroy.c
  88758. --- uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_destroy.c 2012-05-15 09:20:09.000000000 +0200
  88759. +++ uClibc-git/libpthread/nptl/pthread_condattr_destroy.c 2014-06-02 17:40:35.038717652 +0200
  88760. @@ -13,9 +13,8 @@
  88761. Lesser General Public License for more details.
  88762. You should have received a copy of the GNU Lesser General Public
  88763. - License along with the GNU C Library; if not, write to the Free
  88764. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88765. - 02111-1307 USA. */
  88766. + License along with the GNU C Library; if not, see
  88767. + <http://www.gnu.org/licenses/>. */
  88768. #include "pthreadP.h"
  88769. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_getclock.c uClibc-git/libpthread/nptl/pthread_condattr_getclock.c
  88770. --- uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_getclock.c 2012-05-15 09:20:09.000000000 +0200
  88771. +++ uClibc-git/libpthread/nptl/pthread_condattr_getclock.c 2014-06-02 17:40:35.038717652 +0200
  88772. @@ -13,9 +13,8 @@
  88773. Lesser General Public License for more details.
  88774. You should have received a copy of the GNU Lesser General Public
  88775. - License along with the GNU C Library; if not, write to the Free
  88776. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88777. - 02111-1307 USA. */
  88778. + License along with the GNU C Library; if not, see
  88779. + <http://www.gnu.org/licenses/>. */
  88780. #include "pthreadP.h"
  88781. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_getpshared.c uClibc-git/libpthread/nptl/pthread_condattr_getpshared.c
  88782. --- uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_getpshared.c 2012-05-15 09:20:09.000000000 +0200
  88783. +++ uClibc-git/libpthread/nptl/pthread_condattr_getpshared.c 2014-06-02 17:40:35.038717652 +0200
  88784. @@ -13,9 +13,8 @@
  88785. Lesser General Public License for more details.
  88786. You should have received a copy of the GNU Lesser General Public
  88787. - License along with the GNU C Library; if not, write to the Free
  88788. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88789. - 02111-1307 USA. */
  88790. + License along with the GNU C Library; if not, see
  88791. + <http://www.gnu.org/licenses/>. */
  88792. #include "pthreadP.h"
  88793. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_init.c uClibc-git/libpthread/nptl/pthread_condattr_init.c
  88794. --- uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_init.c 2012-05-15 09:20:09.000000000 +0200
  88795. +++ uClibc-git/libpthread/nptl/pthread_condattr_init.c 2014-06-02 17:40:35.038717652 +0200
  88796. @@ -13,9 +13,8 @@
  88797. Lesser General Public License for more details.
  88798. You should have received a copy of the GNU Lesser General Public
  88799. - License along with the GNU C Library; if not, write to the Free
  88800. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88801. - 02111-1307 USA. */
  88802. + License along with the GNU C Library; if not, see
  88803. + <http://www.gnu.org/licenses/>. */
  88804. #include <string.h>
  88805. #include "pthreadP.h"
  88806. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_setclock.c uClibc-git/libpthread/nptl/pthread_condattr_setclock.c
  88807. --- uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_setclock.c 2012-05-15 09:20:09.000000000 +0200
  88808. +++ uClibc-git/libpthread/nptl/pthread_condattr_setclock.c 2014-06-02 17:40:35.038717652 +0200
  88809. @@ -13,9 +13,8 @@
  88810. Lesser General Public License for more details.
  88811. You should have received a copy of the GNU Lesser General Public
  88812. - License along with the GNU C Library; if not, write to the Free
  88813. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88814. - 02111-1307 USA. */
  88815. + License along with the GNU C Library; if not, see
  88816. + <http://www.gnu.org/licenses/>. */
  88817. #include <assert.h>
  88818. #include <errno.h>
  88819. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_setpshared.c uClibc-git/libpthread/nptl/pthread_condattr_setpshared.c
  88820. --- uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_setpshared.c 2012-05-15 09:20:09.000000000 +0200
  88821. +++ uClibc-git/libpthread/nptl/pthread_condattr_setpshared.c 2014-06-02 17:40:35.038717652 +0200
  88822. @@ -13,9 +13,8 @@
  88823. Lesser General Public License for more details.
  88824. You should have received a copy of the GNU Lesser General Public
  88825. - License along with the GNU C Library; if not, write to the Free
  88826. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88827. - 02111-1307 USA. */
  88828. + License along with the GNU C Library; if not, see
  88829. + <http://www.gnu.org/licenses/>. */
  88830. #include <errno.h>
  88831. #include <pthreadP.h>
  88832. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_cond_destroy.c uClibc-git/libpthread/nptl/pthread_cond_destroy.c
  88833. --- uClibc-0.9.33.2/libpthread/nptl/pthread_cond_destroy.c 2012-05-15 09:20:09.000000000 +0200
  88834. +++ uClibc-git/libpthread/nptl/pthread_cond_destroy.c 2014-06-02 17:40:35.038717652 +0200
  88835. @@ -13,9 +13,8 @@
  88836. Lesser General Public License for more details.
  88837. You should have received a copy of the GNU Lesser General Public
  88838. - License along with the GNU C Library; if not, write to the Free
  88839. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88840. - 02111-1307 USA. */
  88841. + License along with the GNU C Library; if not, see
  88842. + <http://www.gnu.org/licenses/>. */
  88843. #include <errno.h>
  88844. #include "pthreadP.h"
  88845. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_cond_init.c uClibc-git/libpthread/nptl/pthread_cond_init.c
  88846. --- uClibc-0.9.33.2/libpthread/nptl/pthread_cond_init.c 2012-05-15 09:20:09.000000000 +0200
  88847. +++ uClibc-git/libpthread/nptl/pthread_cond_init.c 2014-06-02 17:40:35.038717652 +0200
  88848. @@ -14,9 +14,8 @@
  88849. Lesser General Public License for more details.
  88850. You should have received a copy of the GNU Lesser General Public
  88851. - License along with the GNU C Library; if not, write to the Free
  88852. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88853. - 02111-1307 USA. */
  88854. + License along with the GNU C Library; if not, see
  88855. + <http://www.gnu.org/licenses/>. */
  88856. #include "pthreadP.h"
  88857. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_create.c uClibc-git/libpthread/nptl/pthread_create.c
  88858. --- uClibc-0.9.33.2/libpthread/nptl/pthread_create.c 2012-05-15 09:20:09.000000000 +0200
  88859. +++ uClibc-git/libpthread/nptl/pthread_create.c 2014-06-02 17:40:35.038717652 +0200
  88860. @@ -13,9 +13,8 @@
  88861. Lesser General Public License for more details.
  88862. You should have received a copy of the GNU Lesser General Public
  88863. - License along with the GNU C Library; if not, write to the Free
  88864. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88865. - 02111-1307 USA. */
  88866. + License along with the GNU C Library; if not, see
  88867. + <http://www.gnu.org/licenses/>. */
  88868. #include <errno.h>
  88869. #include <stdbool.h>
  88870. @@ -25,7 +24,6 @@
  88871. #include <hp-timing.h>
  88872. #include <ldsodefs.h>
  88873. #include <atomic.h>
  88874. -#include <libc-internal.h>
  88875. #include <resolv.h>
  88876. #include <bits/kernel-features.h>
  88877. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_detach.c uClibc-git/libpthread/nptl/pthread_detach.c
  88878. --- uClibc-0.9.33.2/libpthread/nptl/pthread_detach.c 2012-05-15 09:20:09.000000000 +0200
  88879. +++ uClibc-git/libpthread/nptl/pthread_detach.c 2014-06-02 17:40:35.038717652 +0200
  88880. @@ -13,9 +13,8 @@
  88881. Lesser General Public License for more details.
  88882. You should have received a copy of the GNU Lesser General Public
  88883. - License along with the GNU C Library; if not, write to the Free
  88884. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88885. - 02111-1307 USA. */
  88886. + License along with the GNU C Library; if not, see
  88887. + <http://www.gnu.org/licenses/>. */
  88888. #include <errno.h>
  88889. #include "pthreadP.h"
  88890. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_equal.c uClibc-git/libpthread/nptl/pthread_equal.c
  88891. --- uClibc-0.9.33.2/libpthread/nptl/pthread_equal.c 2012-05-15 09:20:09.000000000 +0200
  88892. +++ uClibc-git/libpthread/nptl/pthread_equal.c 2014-06-02 17:40:35.038717652 +0200
  88893. @@ -13,9 +13,8 @@
  88894. Lesser General Public License for more details.
  88895. You should have received a copy of the GNU Lesser General Public
  88896. - License along with the GNU C Library; if not, write to the Free
  88897. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88898. - 02111-1307 USA. */
  88899. + License along with the GNU C Library; if not, see
  88900. + <http://www.gnu.org/licenses/>. */
  88901. #include "pthreadP.h"
  88902. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_exit.c uClibc-git/libpthread/nptl/pthread_exit.c
  88903. --- uClibc-0.9.33.2/libpthread/nptl/pthread_exit.c 2012-05-15 09:20:09.000000000 +0200
  88904. +++ uClibc-git/libpthread/nptl/pthread_exit.c 2014-06-02 17:40:35.038717652 +0200
  88905. @@ -13,16 +13,15 @@
  88906. Lesser General Public License for more details.
  88907. You should have received a copy of the GNU Lesser General Public
  88908. - License along with the GNU C Library; if not, write to the Free
  88909. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88910. - 02111-1307 USA. */
  88911. + License along with the GNU C Library; if not, see
  88912. + <http://www.gnu.org/licenses/>. */
  88913. #include <stdlib.h>
  88914. #include "pthreadP.h"
  88915. void
  88916. -attribute_protected
  88917. +attribute_protected attribute_noreturn
  88918. __pthread_exit (void* value)
  88919. {
  88920. THREAD_SETMEM (THREAD_SELF, result, value);
  88921. @@ -30,3 +29,9 @@
  88922. __do_cancel ();
  88923. }
  88924. strong_alias (__pthread_exit, pthread_exit)
  88925. +
  88926. +/*
  88927. + * After a thread terminates, __uClibc_main decrements __nptl_nthreads
  88928. + * defined in pthread_create.c.
  88929. + */
  88930. +PTHREAD_STATIC_FN_REQUIRE (pthread_create)
  88931. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_getattr_np.c uClibc-git/libpthread/nptl/pthread_getattr_np.c
  88932. --- uClibc-0.9.33.2/libpthread/nptl/pthread_getattr_np.c 2012-05-15 09:20:09.000000000 +0200
  88933. +++ uClibc-git/libpthread/nptl/pthread_getattr_np.c 2014-06-02 17:40:35.038717652 +0200
  88934. @@ -13,9 +13,8 @@
  88935. Lesser General Public License for more details.
  88936. You should have received a copy of the GNU Lesser General Public
  88937. - License along with the GNU C Library; if not, write to the Free
  88938. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88939. - 02111-1307 USA. */
  88940. + License along with the GNU C Library; if not, see
  88941. + <http://www.gnu.org/licenses/>. */
  88942. #include <assert.h>
  88943. #include <errno.h>
  88944. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_getconcurrency.c uClibc-git/libpthread/nptl/pthread_getconcurrency.c
  88945. --- uClibc-0.9.33.2/libpthread/nptl/pthread_getconcurrency.c 2012-05-15 09:20:09.000000000 +0200
  88946. +++ uClibc-git/libpthread/nptl/pthread_getconcurrency.c 2014-06-02 17:40:35.038717652 +0200
  88947. @@ -13,9 +13,8 @@
  88948. Lesser General Public License for more details.
  88949. You should have received a copy of the GNU Lesser General Public
  88950. - License along with the GNU C Library; if not, write to the Free
  88951. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88952. - 02111-1307 USA. */
  88953. + License along with the GNU C Library; if not, see
  88954. + <http://www.gnu.org/licenses/>. */
  88955. #include "pthreadP.h"
  88956. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_getschedparam.c uClibc-git/libpthread/nptl/pthread_getschedparam.c
  88957. --- uClibc-0.9.33.2/libpthread/nptl/pthread_getschedparam.c 2012-05-15 09:20:09.000000000 +0200
  88958. +++ uClibc-git/libpthread/nptl/pthread_getschedparam.c 2014-06-02 17:40:35.038717652 +0200
  88959. @@ -13,9 +13,8 @@
  88960. Lesser General Public License for more details.
  88961. You should have received a copy of the GNU Lesser General Public
  88962. - License along with the GNU C Library; if not, write to the Free
  88963. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88964. - 02111-1307 USA. */
  88965. + License along with the GNU C Library; if not, see
  88966. + <http://www.gnu.org/licenses/>. */
  88967. #include <errno.h>
  88968. #include <string.h>
  88969. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_getspecific.c uClibc-git/libpthread/nptl/pthread_getspecific.c
  88970. --- uClibc-0.9.33.2/libpthread/nptl/pthread_getspecific.c 2012-05-15 09:20:09.000000000 +0200
  88971. +++ uClibc-git/libpthread/nptl/pthread_getspecific.c 2014-06-02 17:40:35.038717652 +0200
  88972. @@ -13,16 +13,15 @@
  88973. Lesser General Public License for more details.
  88974. You should have received a copy of the GNU Lesser General Public
  88975. - License along with the GNU C Library; if not, write to the Free
  88976. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88977. - 02111-1307 USA. */
  88978. + License along with the GNU C Library; if not, see
  88979. + <http://www.gnu.org/licenses/>. */
  88980. #include <stdlib.h>
  88981. #include "pthreadP.h"
  88982. -void *
  88983. attribute_protected
  88984. +void *
  88985. __pthread_getspecific (pthread_key_t key)
  88986. {
  88987. struct pthread_key_data *data;
  88988. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_join.c uClibc-git/libpthread/nptl/pthread_join.c
  88989. --- uClibc-0.9.33.2/libpthread/nptl/pthread_join.c 2012-05-15 09:20:09.000000000 +0200
  88990. +++ uClibc-git/libpthread/nptl/pthread_join.c 2014-06-02 17:40:35.038717652 +0200
  88991. @@ -13,9 +13,8 @@
  88992. Lesser General Public License for more details.
  88993. You should have received a copy of the GNU Lesser General Public
  88994. - License along with the GNU C Library; if not, write to the Free
  88995. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88996. - 02111-1307 USA. */
  88997. + License along with the GNU C Library; if not, see
  88998. + <http://www.gnu.org/licenses/>. */
  88999. #include <errno.h>
  89000. #include <stdlib.h>
  89001. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_key_create.c uClibc-git/libpthread/nptl/pthread_key_create.c
  89002. --- uClibc-0.9.33.2/libpthread/nptl/pthread_key_create.c 2012-05-15 09:20:09.000000000 +0200
  89003. +++ uClibc-git/libpthread/nptl/pthread_key_create.c 2014-06-02 17:40:35.038717652 +0200
  89004. @@ -13,9 +13,8 @@
  89005. Lesser General Public License for more details.
  89006. You should have received a copy of the GNU Lesser General Public
  89007. - License along with the GNU C Library; if not, write to the Free
  89008. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89009. - 02111-1307 USA. */
  89010. + License along with the GNU C Library; if not, see
  89011. + <http://www.gnu.org/licenses/>. */
  89012. #include <errno.h>
  89013. #include "pthreadP.h"
  89014. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_key_delete.c uClibc-git/libpthread/nptl/pthread_key_delete.c
  89015. --- uClibc-0.9.33.2/libpthread/nptl/pthread_key_delete.c 2012-05-15 09:20:09.000000000 +0200
  89016. +++ uClibc-git/libpthread/nptl/pthread_key_delete.c 2014-06-02 17:40:35.038717652 +0200
  89017. @@ -13,9 +13,8 @@
  89018. Lesser General Public License for more details.
  89019. You should have received a copy of the GNU Lesser General Public
  89020. - License along with the GNU C Library; if not, write to the Free
  89021. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89022. - 02111-1307 USA. */
  89023. + License along with the GNU C Library; if not, see
  89024. + <http://www.gnu.org/licenses/>. */
  89025. #include <errno.h>
  89026. #include "pthreadP.h"
  89027. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_kill_other_threads.c uClibc-git/libpthread/nptl/pthread_kill_other_threads.c
  89028. --- uClibc-0.9.33.2/libpthread/nptl/pthread_kill_other_threads.c 2012-05-15 09:20:09.000000000 +0200
  89029. +++ uClibc-git/libpthread/nptl/pthread_kill_other_threads.c 2014-06-02 17:40:35.038717652 +0200
  89030. @@ -13,11 +13,10 @@
  89031. Lesser General Public License for more details.
  89032. You should have received a copy of the GNU Lesser General Public
  89033. - License along with the GNU C Library; if not, write to the Free
  89034. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89035. - 02111-1307 USA. */
  89036. + License along with the GNU C Library; if not, see
  89037. + <http://www.gnu.org/licenses/>. */
  89038. -#ifdef SHARED
  89039. +#if 0 /*def SHARED*/
  89040. /* This function does not serve a useful purpose in the thread library
  89041. implementation anymore. It used to be necessary when then kernel
  89042. could not shut down "processes" but this is not the case anymore.
  89043. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_destroy.c uClibc-git/libpthread/nptl/pthread_mutexattr_destroy.c
  89044. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_destroy.c 2012-05-15 09:20:09.000000000 +0200
  89045. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_destroy.c 2014-06-02 17:40:35.038717652 +0200
  89046. @@ -13,9 +13,8 @@
  89047. Lesser General Public License for more details.
  89048. You should have received a copy of the GNU Lesser General Public
  89049. - License along with the GNU C Library; if not, write to the Free
  89050. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89051. - 02111-1307 USA. */
  89052. + License along with the GNU C Library; if not, see
  89053. + <http://www.gnu.org/licenses/>. */
  89054. #include <pthreadP.h>
  89055. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getprioceiling.c uClibc-git/libpthread/nptl/pthread_mutexattr_getprioceiling.c
  89056. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getprioceiling.c 2012-05-15 09:20:09.000000000 +0200
  89057. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_getprioceiling.c 2014-06-02 17:40:35.038717652 +0200
  89058. @@ -14,9 +14,8 @@
  89059. Lesser General Public License for more details.
  89060. You should have received a copy of the GNU Lesser General Public
  89061. - License along with the GNU C Library; if not, write to the Free
  89062. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89063. - 02111-1307 USA. */
  89064. + License along with the GNU C Library; if not, see
  89065. + <http://www.gnu.org/licenses/>. */
  89066. #include <pthreadP.h>
  89067. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getprotocol.c uClibc-git/libpthread/nptl/pthread_mutexattr_getprotocol.c
  89068. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getprotocol.c 2012-05-15 09:20:09.000000000 +0200
  89069. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_getprotocol.c 2014-06-02 17:40:35.038717652 +0200
  89070. @@ -14,9 +14,8 @@
  89071. Lesser General Public License for more details.
  89072. You should have received a copy of the GNU Lesser General Public
  89073. - License along with the GNU C Library; if not, write to the Free
  89074. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89075. - 02111-1307 USA. */
  89076. + License along with the GNU C Library; if not, see
  89077. + <http://www.gnu.org/licenses/>. */
  89078. #include <pthreadP.h>
  89079. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getpshared.c uClibc-git/libpthread/nptl/pthread_mutexattr_getpshared.c
  89080. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getpshared.c 2012-05-15 09:20:09.000000000 +0200
  89081. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_getpshared.c 2014-06-02 17:40:35.038717652 +0200
  89082. @@ -13,9 +13,8 @@
  89083. Lesser General Public License for more details.
  89084. You should have received a copy of the GNU Lesser General Public
  89085. - License along with the GNU C Library; if not, write to the Free
  89086. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89087. - 02111-1307 USA. */
  89088. + License along with the GNU C Library; if not, see
  89089. + <http://www.gnu.org/licenses/>. */
  89090. #include <pthreadP.h>
  89091. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getrobust.c uClibc-git/libpthread/nptl/pthread_mutexattr_getrobust.c
  89092. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getrobust.c 2012-05-15 09:20:09.000000000 +0200
  89093. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_getrobust.c 2014-06-02 17:40:35.038717652 +0200
  89094. @@ -13,9 +13,8 @@
  89095. Lesser General Public License for more details.
  89096. You should have received a copy of the GNU Lesser General Public
  89097. - License along with the GNU C Library; if not, write to the Free
  89098. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89099. - 02111-1307 USA. */
  89100. + License along with the GNU C Library; if not, see
  89101. + <http://www.gnu.org/licenses/>. */
  89102. #include <pthreadP.h>
  89103. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_gettype.c uClibc-git/libpthread/nptl/pthread_mutexattr_gettype.c
  89104. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_gettype.c 2012-05-15 09:20:09.000000000 +0200
  89105. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_gettype.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 <pthreadP.h>
  89115. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_init.c uClibc-git/libpthread/nptl/pthread_mutexattr_init.c
  89116. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_init.c 2012-05-15 09:20:09.000000000 +0200
  89117. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_init.c 2014-06-02 17:40:35.038717652 +0200
  89118. @@ -13,9 +13,8 @@
  89119. Lesser General Public License for more details.
  89120. You should have received a copy of the GNU Lesser General Public
  89121. - License along with the GNU C Library; if not, write to the Free
  89122. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89123. - 02111-1307 USA. */
  89124. + License along with the GNU C Library; if not, see
  89125. + <http://www.gnu.org/licenses/>. */
  89126. #include <string.h>
  89127. #include <pthreadP.h>
  89128. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setprioceiling.c uClibc-git/libpthread/nptl/pthread_mutexattr_setprioceiling.c
  89129. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setprioceiling.c 2012-05-15 09:20:09.000000000 +0200
  89130. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_setprioceiling.c 2014-06-02 17:40:35.038717652 +0200
  89131. @@ -14,9 +14,8 @@
  89132. Lesser General Public License for more details.
  89133. You should have received a copy of the GNU Lesser General Public
  89134. - License along with the GNU C Library; if not, write to the Free
  89135. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89136. - 02111-1307 USA. */
  89137. + License along with the GNU C Library; if not, see
  89138. + <http://www.gnu.org/licenses/>. */
  89139. #include <errno.h>
  89140. #include <pthreadP.h>
  89141. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setprotocol.c uClibc-git/libpthread/nptl/pthread_mutexattr_setprotocol.c
  89142. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setprotocol.c 2012-05-15 09:20:09.000000000 +0200
  89143. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_setprotocol.c 2014-06-02 17:40:35.038717652 +0200
  89144. @@ -14,9 +14,8 @@
  89145. Lesser General Public License for more details.
  89146. You should have received a copy of the GNU Lesser General Public
  89147. - License along with the GNU C Library; if not, write to the Free
  89148. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89149. - 02111-1307 USA. */
  89150. + License along with the GNU C Library; if not, see
  89151. + <http://www.gnu.org/licenses/>. */
  89152. #include <errno.h>
  89153. #include <pthreadP.h>
  89154. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setpshared.c uClibc-git/libpthread/nptl/pthread_mutexattr_setpshared.c
  89155. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setpshared.c 2012-05-15 09:20:09.000000000 +0200
  89156. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_setpshared.c 2014-06-02 17:40:35.038717652 +0200
  89157. @@ -13,9 +13,8 @@
  89158. Lesser General Public License for more details.
  89159. You should have received a copy of the GNU Lesser General Public
  89160. - License along with the GNU C Library; if not, write to the Free
  89161. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89162. - 02111-1307 USA. */
  89163. + License along with the GNU C Library; if not, see
  89164. + <http://www.gnu.org/licenses/>. */
  89165. #include <errno.h>
  89166. #include <pthreadP.h>
  89167. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setrobust.c uClibc-git/libpthread/nptl/pthread_mutexattr_setrobust.c
  89168. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setrobust.c 2012-05-15 09:20:09.000000000 +0200
  89169. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_setrobust.c 2014-06-02 17:40:35.038717652 +0200
  89170. @@ -13,9 +13,8 @@
  89171. Lesser General Public License for more details.
  89172. You should have received a copy of the GNU Lesser General Public
  89173. - License along with the GNU C Library; if not, write to the Free
  89174. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89175. - 02111-1307 USA. */
  89176. + License along with the GNU C Library; if not, see
  89177. + <http://www.gnu.org/licenses/>. */
  89178. #include <errno.h>
  89179. #include <pthreadP.h>
  89180. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_settype.c uClibc-git/libpthread/nptl/pthread_mutexattr_settype.c
  89181. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_settype.c 2012-05-15 09:20:09.000000000 +0200
  89182. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_settype.c 2014-06-02 17:40:35.038717652 +0200
  89183. @@ -13,9 +13,8 @@
  89184. Lesser General Public License for more details.
  89185. You should have received a copy of the GNU Lesser General Public
  89186. - License along with the GNU C Library; if not, write to the Free
  89187. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89188. - 02111-1307 USA. */
  89189. + License along with the GNU C Library; if not, see
  89190. + <http://www.gnu.org/licenses/>. */
  89191. #include <errno.h>
  89192. #include <pthreadP.h>
  89193. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_consistent.c uClibc-git/libpthread/nptl/pthread_mutex_consistent.c
  89194. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_consistent.c 2012-05-15 09:20:09.000000000 +0200
  89195. +++ uClibc-git/libpthread/nptl/pthread_mutex_consistent.c 2014-06-02 17:40:35.038717652 +0200
  89196. @@ -13,9 +13,8 @@
  89197. Lesser General Public License for more details.
  89198. You should have received a copy of the GNU Lesser General Public
  89199. - License along with the GNU C Library; if not, write to the Free
  89200. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89201. - 02111-1307 USA. */
  89202. + License along with the GNU C Library; if not, see
  89203. + <http://www.gnu.org/licenses/>. */
  89204. #include <errno.h>
  89205. #include <pthreadP.h>
  89206. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_destroy.c uClibc-git/libpthread/nptl/pthread_mutex_destroy.c
  89207. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_destroy.c 2012-05-15 09:20:09.000000000 +0200
  89208. +++ uClibc-git/libpthread/nptl/pthread_mutex_destroy.c 2014-06-02 17:40:35.038717652 +0200
  89209. @@ -13,9 +13,8 @@
  89210. Lesser General Public License for more details.
  89211. You should have received a copy of the GNU Lesser General Public
  89212. - License along with the GNU C Library; if not, write to the Free
  89213. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89214. - 02111-1307 USA. */
  89215. + License along with the GNU C Library; if not, see
  89216. + <http://www.gnu.org/licenses/>. */
  89217. #include <errno.h>
  89218. #include "pthreadP.h"
  89219. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_getprioceiling.c uClibc-git/libpthread/nptl/pthread_mutex_getprioceiling.c
  89220. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_getprioceiling.c 2012-05-15 09:20:09.000000000 +0200
  89221. +++ uClibc-git/libpthread/nptl/pthread_mutex_getprioceiling.c 2014-06-02 17:40:35.038717652 +0200
  89222. @@ -14,9 +14,8 @@
  89223. Lesser General Public License for more details.
  89224. You should have received a copy of the GNU Lesser General Public
  89225. - License along with the GNU C Library; if not, write to the Free
  89226. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89227. - 02111-1307 USA. */
  89228. + License along with the GNU C Library; if not, see
  89229. + <http://www.gnu.org/licenses/>. */
  89230. #include <errno.h>
  89231. #include <pthreadP.h>
  89232. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_init.c uClibc-git/libpthread/nptl/pthread_mutex_init.c
  89233. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_init.c 2012-05-15 09:20:09.000000000 +0200
  89234. +++ uClibc-git/libpthread/nptl/pthread_mutex_init.c 2014-06-02 17:40:35.038717652 +0200
  89235. @@ -14,9 +14,8 @@
  89236. Lesser General Public License for more details.
  89237. You should have received a copy of the GNU Lesser General Public
  89238. - License along with the GNU C Library; if not, write to the Free
  89239. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89240. - 02111-1307 USA. */
  89241. + License along with the GNU C Library; if not, see
  89242. + <http://www.gnu.org/licenses/>. */
  89243. #include <assert.h>
  89244. #include <errno.h>
  89245. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_lock.c uClibc-git/libpthread/nptl/pthread_mutex_lock.c
  89246. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_lock.c 2012-05-15 09:20:09.000000000 +0200
  89247. +++ uClibc-git/libpthread/nptl/pthread_mutex_lock.c 2014-06-02 17:40:35.038717652 +0200
  89248. @@ -13,9 +13,8 @@
  89249. Lesser General Public License for more details.
  89250. You should have received a copy of the GNU Lesser General Public
  89251. - License along with the GNU C Library; if not, write to the Free
  89252. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89253. - 02111-1307 USA. */
  89254. + License along with the GNU C Library; if not, see
  89255. + <http://www.gnu.org/licenses/>. */
  89256. #include <assert.h>
  89257. #include <errno.h>
  89258. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_setprioceiling.c uClibc-git/libpthread/nptl/pthread_mutex_setprioceiling.c
  89259. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_setprioceiling.c 2012-05-15 09:20:09.000000000 +0200
  89260. +++ uClibc-git/libpthread/nptl/pthread_mutex_setprioceiling.c 2014-06-02 17:40:35.038717652 +0200
  89261. @@ -14,9 +14,8 @@
  89262. Lesser General Public License for more details.
  89263. You should have received a copy of the GNU Lesser General Public
  89264. - License along with the GNU C Library; if not, write to the Free
  89265. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89266. - 02111-1307 USA. */
  89267. + License along with the GNU C Library; if not, see
  89268. + <http://www.gnu.org/licenses/>. */
  89269. #include <stdbool.h>
  89270. #include <errno.h>
  89271. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_timedlock.c uClibc-git/libpthread/nptl/pthread_mutex_timedlock.c
  89272. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_timedlock.c 2012-05-15 09:20:09.000000000 +0200
  89273. +++ uClibc-git/libpthread/nptl/pthread_mutex_timedlock.c 2014-06-02 17:40:35.038717652 +0200
  89274. @@ -13,9 +13,8 @@
  89275. Lesser General Public License for more details.
  89276. You should have received a copy of the GNU Lesser General Public
  89277. - License along with the GNU C Library; if not, write to the Free
  89278. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89279. - 02111-1307 USA. */
  89280. + License along with the GNU C Library; if not, see
  89281. + <http://www.gnu.org/licenses/>. */
  89282. #include <assert.h>
  89283. #include <errno.h>
  89284. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_trylock.c uClibc-git/libpthread/nptl/pthread_mutex_trylock.c
  89285. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_trylock.c 2012-05-15 09:20:09.000000000 +0200
  89286. +++ uClibc-git/libpthread/nptl/pthread_mutex_trylock.c 2014-06-02 17:40:35.038717652 +0200
  89287. @@ -13,9 +13,8 @@
  89288. Lesser General Public License for more details.
  89289. You should have received a copy of the GNU Lesser General Public
  89290. - License along with the GNU C Library; if not, write to the Free
  89291. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89292. - 02111-1307 USA. */
  89293. + License along with the GNU C Library; if not, see
  89294. + <http://www.gnu.org/licenses/>. */
  89295. #include <assert.h>
  89296. #include <errno.h>
  89297. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_unlock.c uClibc-git/libpthread/nptl/pthread_mutex_unlock.c
  89298. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_unlock.c 2012-05-15 09:20:09.000000000 +0200
  89299. +++ uClibc-git/libpthread/nptl/pthread_mutex_unlock.c 2014-06-02 17:40:35.038717652 +0200
  89300. @@ -13,9 +13,8 @@
  89301. Lesser General Public License for more details.
  89302. You should have received a copy of the GNU Lesser General Public
  89303. - License along with the GNU C Library; if not, write to the Free
  89304. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89305. - 02111-1307 USA. */
  89306. + License along with the GNU C Library; if not, see
  89307. + <http://www.gnu.org/licenses/>. */
  89308. #include <assert.h>
  89309. #include <errno.h>
  89310. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthreadP.h uClibc-git/libpthread/nptl/pthreadP.h
  89311. --- uClibc-0.9.33.2/libpthread/nptl/pthreadP.h 2012-05-15 09:20:09.000000000 +0200
  89312. +++ uClibc-git/libpthread/nptl/pthreadP.h 2014-06-02 17:40:35.034717630 +0200
  89313. @@ -13,9 +13,8 @@
  89314. Lesser General Public License for more details.
  89315. You should have received a copy of the GNU Lesser General Public
  89316. - License along with the GNU C Library; if not, write to the Free
  89317. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89318. - 02111-1307 USA. */
  89319. + License along with the GNU C Library; if not, see
  89320. + <http://www.gnu.org/licenses/>. */
  89321. #ifndef _PTHREADP_H
  89322. #define _PTHREADP_H 1
  89323. @@ -221,7 +220,7 @@
  89324. /* Cancellation test. */
  89325. #define CANCELLATION_P(self) \
  89326. do { \
  89327. - int cancelhandling = THREAD_GETMEM (self, cancelhandling); \
  89328. + cancelhandling = THREAD_GETMEM (self, cancelhandling); \
  89329. if (CANCEL_ENABLED_AND_CANCELED (cancelhandling)) \
  89330. { \
  89331. THREAD_SETMEM (self, result, PTHREAD_CANCELED); \
  89332. @@ -411,9 +410,9 @@
  89333. const struct sched_param *param);
  89334. extern int __pthread_setcancelstate (int state, int *oldstate);
  89335. extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
  89336. - __const pthread_mutexattr_t *__mutexattr);
  89337. + const pthread_mutexattr_t *__mutexattr);
  89338. extern int __pthread_mutex_init_internal (pthread_mutex_t *__mutex,
  89339. - __const pthread_mutexattr_t *__mutexattr)
  89340. + const pthread_mutexattr_t *__mutexattr)
  89341. attribute_hidden;
  89342. extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
  89343. extern int __pthread_mutex_destroy_internal (pthread_mutex_t *__mutex)
  89344. @@ -452,22 +451,22 @@
  89345. extern int __pthread_attr_setschedpolicy (pthread_attr_t *attr, int policy);
  89346. extern int __pthread_attr_getscope (const pthread_attr_t *attr, int *scope);
  89347. extern int __pthread_attr_setscope (pthread_attr_t *attr, int scope);
  89348. -extern int __pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
  89349. +extern int __pthread_attr_getstackaddr (const pthread_attr_t *__restrict
  89350. __attr, void **__restrict __stackaddr);
  89351. extern int __pthread_attr_setstackaddr (pthread_attr_t *__attr,
  89352. void *__stackaddr);
  89353. -extern int __pthread_attr_getstacksize (__const pthread_attr_t *__restrict
  89354. +extern int __pthread_attr_getstacksize (const pthread_attr_t *__restrict
  89355. __attr,
  89356. size_t *__restrict __stacksize);
  89357. extern int __pthread_attr_setstacksize (pthread_attr_t *__attr,
  89358. size_t __stacksize);
  89359. -extern int __pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
  89360. +extern int __pthread_attr_getstack (const pthread_attr_t *__restrict __attr,
  89361. void **__restrict __stackaddr,
  89362. size_t *__restrict __stacksize);
  89363. extern int __pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
  89364. size_t __stacksize);
  89365. extern int __pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
  89366. - __const pthread_rwlockattr_t *__restrict
  89367. + const pthread_rwlockattr_t *__restrict
  89368. __attr);
  89369. extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
  89370. extern int __pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock);
  89371. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_destroy.c uClibc-git/libpthread/nptl/pthread_rwlockattr_destroy.c
  89372. --- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_destroy.c 2012-05-15 09:20:09.000000000 +0200
  89373. +++ uClibc-git/libpthread/nptl/pthread_rwlockattr_destroy.c 2014-06-02 17:40:35.038717652 +0200
  89374. @@ -13,9 +13,8 @@
  89375. Lesser General Public License for more details.
  89376. You should have received a copy of the GNU Lesser General Public
  89377. - License along with the GNU C Library; if not, write to the Free
  89378. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89379. - 02111-1307 USA. */
  89380. + License along with the GNU C Library; if not, see
  89381. + <http://www.gnu.org/licenses/>. */
  89382. #include "pthreadP.h"
  89383. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_getkind_np.c uClibc-git/libpthread/nptl/pthread_rwlockattr_getkind_np.c
  89384. --- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_getkind_np.c 2012-05-15 09:20:09.000000000 +0200
  89385. +++ uClibc-git/libpthread/nptl/pthread_rwlockattr_getkind_np.c 2014-06-02 17:40:35.038717652 +0200
  89386. @@ -13,9 +13,8 @@
  89387. Lesser General Public License for more details.
  89388. You should have received a copy of the GNU Lesser General Public
  89389. - License along with the GNU C Library; if not, write to the Free
  89390. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89391. - 02111-1307 USA. */
  89392. + License along with the GNU C Library; if not, see
  89393. + <http://www.gnu.org/licenses/>. */
  89394. #include "pthreadP.h"
  89395. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_getpshared.c uClibc-git/libpthread/nptl/pthread_rwlockattr_getpshared.c
  89396. --- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_getpshared.c 2012-05-15 09:20:09.000000000 +0200
  89397. +++ uClibc-git/libpthread/nptl/pthread_rwlockattr_getpshared.c 2014-06-02 17:40:35.038717652 +0200
  89398. @@ -13,9 +13,8 @@
  89399. Lesser General Public License for more details.
  89400. You should have received a copy of the GNU Lesser General Public
  89401. - License along with the GNU C Library; if not, write to the Free
  89402. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89403. - 02111-1307 USA. */
  89404. + License along with the GNU C Library; if not, see
  89405. + <http://www.gnu.org/licenses/>. */
  89406. #include "pthreadP.h"
  89407. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_init.c uClibc-git/libpthread/nptl/pthread_rwlockattr_init.c
  89408. --- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_init.c 2012-05-15 09:20:09.000000000 +0200
  89409. +++ uClibc-git/libpthread/nptl/pthread_rwlockattr_init.c 2014-06-02 17:40:35.038717652 +0200
  89410. @@ -13,9 +13,8 @@
  89411. Lesser General Public License for more details.
  89412. You should have received a copy of the GNU Lesser General Public
  89413. - License along with the GNU C Library; if not, write to the Free
  89414. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89415. - 02111-1307 USA. */
  89416. + License along with the GNU C Library; if not, see
  89417. + <http://www.gnu.org/licenses/>. */
  89418. #include "pthreadP.h"
  89419. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_setkind_np.c uClibc-git/libpthread/nptl/pthread_rwlockattr_setkind_np.c
  89420. --- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_setkind_np.c 2012-05-15 09:20:09.000000000 +0200
  89421. +++ uClibc-git/libpthread/nptl/pthread_rwlockattr_setkind_np.c 2014-06-02 17:40:35.038717652 +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 "pthreadP.h"
  89432. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_setpshared.c uClibc-git/libpthread/nptl/pthread_rwlockattr_setpshared.c
  89433. --- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_setpshared.c 2012-05-15 09:20:09.000000000 +0200
  89434. +++ uClibc-git/libpthread/nptl/pthread_rwlockattr_setpshared.c 2014-06-02 17:40:35.038717652 +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 "pthreadP.h"
  89445. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_destroy.c uClibc-git/libpthread/nptl/pthread_rwlock_destroy.c
  89446. --- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_destroy.c 2012-05-15 09:20:09.000000000 +0200
  89447. +++ uClibc-git/libpthread/nptl/pthread_rwlock_destroy.c 2014-06-02 17:40:35.038717652 +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 "pthreadP.h"
  89457. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_init.c uClibc-git/libpthread/nptl/pthread_rwlock_init.c
  89458. --- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_init.c 2012-05-15 09:20:09.000000000 +0200
  89459. +++ uClibc-git/libpthread/nptl/pthread_rwlock_init.c 2014-06-02 17:40:35.038717652 +0200
  89460. @@ -13,9 +13,8 @@
  89461. Lesser General Public License for more details.
  89462. You should have received a copy of the GNU Lesser General Public
  89463. - License along with the GNU C Library; if not, write to the Free
  89464. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89465. - 02111-1307 USA. */
  89466. + License along with the GNU C Library; if not, see
  89467. + <http://www.gnu.org/licenses/>. */
  89468. #include "pthreadP.h"
  89469. #include <bits/kernel-features.h>
  89470. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_tryrdlock.c uClibc-git/libpthread/nptl/pthread_rwlock_tryrdlock.c
  89471. --- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_tryrdlock.c 2012-05-15 09:20:09.000000000 +0200
  89472. +++ uClibc-git/libpthread/nptl/pthread_rwlock_tryrdlock.c 2014-06-02 17:40:35.038717652 +0200
  89473. @@ -13,9 +13,8 @@
  89474. Lesser General Public License for more details.
  89475. You should have received a copy of the GNU Lesser General Public
  89476. - License along with the GNU C Library; if not, write to the Free
  89477. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89478. - 02111-1307 USA. */
  89479. + License along with the GNU C Library; if not, see
  89480. + <http://www.gnu.org/licenses/>. */
  89481. #include <errno.h>
  89482. #include "pthreadP.h"
  89483. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_trywrlock.c uClibc-git/libpthread/nptl/pthread_rwlock_trywrlock.c
  89484. --- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_trywrlock.c 2012-05-15 09:20:09.000000000 +0200
  89485. +++ uClibc-git/libpthread/nptl/pthread_rwlock_trywrlock.c 2014-06-02 17:40:35.038717652 +0200
  89486. @@ -13,9 +13,8 @@
  89487. Lesser General Public License for more details.
  89488. You should have received a copy of the GNU Lesser General Public
  89489. - License along with the GNU C Library; if not, write to the Free
  89490. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89491. - 02111-1307 USA. */
  89492. + License along with the GNU C Library; if not, see
  89493. + <http://www.gnu.org/licenses/>. */
  89494. #include <errno.h>
  89495. #include "pthreadP.h"
  89496. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_self.c uClibc-git/libpthread/nptl/pthread_self.c
  89497. --- uClibc-0.9.33.2/libpthread/nptl/pthread_self.c 2012-05-15 09:20:09.000000000 +0200
  89498. +++ uClibc-git/libpthread/nptl/pthread_self.c 2014-06-02 17:40:35.038717652 +0200
  89499. @@ -13,9 +13,8 @@
  89500. Lesser General Public License for more details.
  89501. You should have received a copy of the GNU Lesser General Public
  89502. - License along with the GNU C Library; if not, write to the Free
  89503. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89504. - 02111-1307 USA. */
  89505. + License along with the GNU C Library; if not, see
  89506. + <http://www.gnu.org/licenses/>. */
  89507. #include "pthreadP.h"
  89508. #include <tls.h>
  89509. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_setcancelstate.c uClibc-git/libpthread/nptl/pthread_setcancelstate.c
  89510. --- uClibc-0.9.33.2/libpthread/nptl/pthread_setcancelstate.c 2012-05-15 09:20:09.000000000 +0200
  89511. +++ uClibc-git/libpthread/nptl/pthread_setcancelstate.c 2014-06-02 17:40:35.038717652 +0200
  89512. @@ -13,9 +13,8 @@
  89513. Lesser General Public License for more details.
  89514. You should have received a copy of the GNU Lesser General Public
  89515. - License along with the GNU C Library; if not, write to the Free
  89516. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89517. - 02111-1307 USA. */
  89518. + License along with the GNU C Library; if not, see
  89519. + <http://www.gnu.org/licenses/>. */
  89520. #include <errno.h>
  89521. #include "pthreadP.h"
  89522. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_setcanceltype.c uClibc-git/libpthread/nptl/pthread_setcanceltype.c
  89523. --- uClibc-0.9.33.2/libpthread/nptl/pthread_setcanceltype.c 2012-05-15 09:20:09.000000000 +0200
  89524. +++ uClibc-git/libpthread/nptl/pthread_setcanceltype.c 2014-06-02 17:40:35.038717652 +0200
  89525. @@ -13,9 +13,8 @@
  89526. Lesser General Public License for more details.
  89527. You should have received a copy of the GNU Lesser General Public
  89528. - License along with the GNU C Library; if not, write to the Free
  89529. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89530. - 02111-1307 USA. */
  89531. + License along with the GNU C Library; if not, see
  89532. + <http://www.gnu.org/licenses/>. */
  89533. #include <errno.h>
  89534. #include "pthreadP.h"
  89535. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_setconcurrency.c uClibc-git/libpthread/nptl/pthread_setconcurrency.c
  89536. --- uClibc-0.9.33.2/libpthread/nptl/pthread_setconcurrency.c 2012-05-15 09:20:09.000000000 +0200
  89537. +++ uClibc-git/libpthread/nptl/pthread_setconcurrency.c 2014-06-02 17:40:35.038717652 +0200
  89538. @@ -13,9 +13,8 @@
  89539. Lesser General Public License for more details.
  89540. You should have received a copy of the GNU Lesser General Public
  89541. - License along with the GNU C Library; if not, write to the Free
  89542. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89543. - 02111-1307 USA. */
  89544. + License along with the GNU C Library; if not, see
  89545. + <http://www.gnu.org/licenses/>. */
  89546. #include <errno.h>
  89547. #include "pthreadP.h"
  89548. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_setschedparam.c uClibc-git/libpthread/nptl/pthread_setschedparam.c
  89549. --- uClibc-0.9.33.2/libpthread/nptl/pthread_setschedparam.c 2012-05-15 09:20:09.000000000 +0200
  89550. +++ uClibc-git/libpthread/nptl/pthread_setschedparam.c 2014-06-02 17:40:35.042717675 +0200
  89551. @@ -13,9 +13,8 @@
  89552. Lesser General Public License for more details.
  89553. You should have received a copy of the GNU Lesser General Public
  89554. - License along with the GNU C Library; if not, write to the Free
  89555. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89556. - 02111-1307 USA. */
  89557. + License along with the GNU C Library; if not, see
  89558. + <http://www.gnu.org/licenses/>. */
  89559. #include <errno.h>
  89560. #include <sched.h>
  89561. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_setschedprio.c uClibc-git/libpthread/nptl/pthread_setschedprio.c
  89562. --- uClibc-0.9.33.2/libpthread/nptl/pthread_setschedprio.c 2012-05-15 09:20:09.000000000 +0200
  89563. +++ uClibc-git/libpthread/nptl/pthread_setschedprio.c 2014-06-02 17:40:35.042717675 +0200
  89564. @@ -13,9 +13,8 @@
  89565. Lesser General Public License for more details.
  89566. You should have received a copy of the GNU Lesser General Public
  89567. - License along with the GNU C Library; if not, write to the Free
  89568. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89569. - 02111-1307 USA. */
  89570. + License along with the GNU C Library; if not, see
  89571. + <http://www.gnu.org/licenses/>. */
  89572. #include <errno.h>
  89573. #include <sched.h>
  89574. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_setspecific.c uClibc-git/libpthread/nptl/pthread_setspecific.c
  89575. --- uClibc-0.9.33.2/libpthread/nptl/pthread_setspecific.c 2012-05-15 09:20:09.000000000 +0200
  89576. +++ uClibc-git/libpthread/nptl/pthread_setspecific.c 2014-06-02 17:40:35.042717675 +0200
  89577. @@ -13,9 +13,8 @@
  89578. Lesser General Public License for more details.
  89579. You should have received a copy of the GNU Lesser General Public
  89580. - License along with the GNU C Library; if not, write to the Free
  89581. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89582. - 02111-1307 USA. */
  89583. + License along with the GNU C Library; if not, see
  89584. + <http://www.gnu.org/licenses/>. */
  89585. #include <errno.h>
  89586. #include <stdlib.h>
  89587. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_testcancel.c uClibc-git/libpthread/nptl/pthread_testcancel.c
  89588. --- uClibc-0.9.33.2/libpthread/nptl/pthread_testcancel.c 2012-05-15 09:20:09.000000000 +0200
  89589. +++ uClibc-git/libpthread/nptl/pthread_testcancel.c 2014-06-02 17:40:35.042717675 +0200
  89590. @@ -13,9 +13,8 @@
  89591. Lesser General Public License for more details.
  89592. You should have received a copy of the GNU Lesser General Public
  89593. - License along with the GNU C Library; if not, write to the Free
  89594. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89595. - 02111-1307 USA. */
  89596. + License along with the GNU C Library; if not, see
  89597. + <http://www.gnu.org/licenses/>. */
  89598. #include <stdlib.h>
  89599. #include "pthreadP.h"
  89600. @@ -24,5 +23,6 @@
  89601. void
  89602. pthread_testcancel (void)
  89603. {
  89604. + int cancelhandling;
  89605. CANCELLATION_P (THREAD_SELF);
  89606. }
  89607. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_timedjoin.c uClibc-git/libpthread/nptl/pthread_timedjoin.c
  89608. --- uClibc-0.9.33.2/libpthread/nptl/pthread_timedjoin.c 2012-05-15 09:20:09.000000000 +0200
  89609. +++ uClibc-git/libpthread/nptl/pthread_timedjoin.c 2014-06-02 17:40:35.042717675 +0200
  89610. @@ -13,9 +13,8 @@
  89611. Lesser General Public License for more details.
  89612. You should have received a copy of the GNU Lesser General Public
  89613. - License along with the GNU C Library; if not, write to the Free
  89614. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89615. - 02111-1307 USA. */
  89616. + License along with the GNU C Library; if not, see
  89617. + <http://www.gnu.org/licenses/>. */
  89618. #include <errno.h>
  89619. #include <stdlib.h>
  89620. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_tryjoin.c uClibc-git/libpthread/nptl/pthread_tryjoin.c
  89621. --- uClibc-0.9.33.2/libpthread/nptl/pthread_tryjoin.c 2012-05-15 09:20:09.000000000 +0200
  89622. +++ uClibc-git/libpthread/nptl/pthread_tryjoin.c 2014-06-02 17:40:35.042717675 +0200
  89623. @@ -13,9 +13,8 @@
  89624. Lesser General Public License for more details.
  89625. You should have received a copy of the GNU Lesser General Public
  89626. - License along with the GNU C Library; if not, write to the Free
  89627. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89628. - 02111-1307 USA. */
  89629. + License along with the GNU C Library; if not, see
  89630. + <http://www.gnu.org/licenses/>. */
  89631. #include <errno.h>
  89632. #include <stdlib.h>
  89633. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pt-system.c uClibc-git/libpthread/nptl/pt-system.c
  89634. --- uClibc-0.9.33.2/libpthread/nptl/pt-system.c 2012-05-15 09:20:09.000000000 +0200
  89635. +++ uClibc-git/libpthread/nptl/pt-system.c 2014-06-02 17:40:35.034717630 +0200
  89636. @@ -13,9 +13,8 @@
  89637. Lesser General Public License for more details.
  89638. You should have received a copy of the GNU Lesser General Public
  89639. - License along with the GNU C Library; if not, write to the Free
  89640. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89641. - 02111-1307 USA. */
  89642. + License along with the GNU C Library; if not, see
  89643. + <http://www.gnu.org/licenses/>. */
  89644. #include <errno.h>
  89645. #include <stdlib.h>
  89646. diff -Nur uClibc-0.9.33.2/libpthread/nptl/res.c uClibc-git/libpthread/nptl/res.c
  89647. --- uClibc-0.9.33.2/libpthread/nptl/res.c 2012-05-15 09:20:09.000000000 +0200
  89648. +++ uClibc-git/libpthread/nptl/res.c 2014-06-02 17:40:35.042717675 +0200
  89649. @@ -12,9 +12,8 @@
  89650. Lesser General Public License for more details.
  89651. You should have received a copy of the GNU Lesser General Public
  89652. - License along with the GNU C Library; if not, write to the Free
  89653. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89654. - 02111-1307 USA. */
  89655. + License along with the GNU C Library; if not, see
  89656. + <http://www.gnu.org/licenses/>. */
  89657. #include <features.h>
  89658. #include <tls.h>
  89659. diff -Nur uClibc-0.9.33.2/libpthread/nptl/semaphore.h uClibc-git/libpthread/nptl/semaphore.h
  89660. --- uClibc-0.9.33.2/libpthread/nptl/semaphore.h 2012-05-15 09:20:09.000000000 +0200
  89661. +++ uClibc-git/libpthread/nptl/semaphore.h 2014-06-02 17:40:35.042717675 +0200
  89662. @@ -12,9 +12,8 @@
  89663. Lesser General Public License for more details.
  89664. You should have received a copy of the GNU Lesser General Public
  89665. - License along with the GNU C Library; if not, write to the Free
  89666. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89667. - 02111-1307 USA. */
  89668. + License along with the GNU C Library; if not, see
  89669. + <http://www.gnu.org/licenses/>. */
  89670. #ifndef _SEMAPHORE_H
  89671. #define _SEMAPHORE_H 1
  89672. @@ -40,13 +39,13 @@
  89673. extern int sem_destroy (sem_t *__sem) __THROW;
  89674. /* Open a named semaphore NAME with open flags OFLAG. */
  89675. -extern sem_t *sem_open (__const char *__name, int __oflag, ...) __THROW;
  89676. +extern sem_t *sem_open (const char *__name, int __oflag, ...) __THROW;
  89677. /* Close descriptor for named semaphore SEM. */
  89678. extern int sem_close (sem_t *__sem) __THROW;
  89679. /* Remove named semaphore NAME. */
  89680. -extern int sem_unlink (__const char *__name) __THROW;
  89681. +extern int sem_unlink (const char *__name) __THROW;
  89682. /* Wait for SEM being posted.
  89683. @@ -60,7 +59,7 @@
  89684. This function is a cancellation point and therefore not marked with
  89685. __THROW. */
  89686. extern int sem_timedwait (sem_t *__restrict __sem,
  89687. - __const struct timespec *__restrict __abstime);
  89688. + const struct timespec *__restrict __abstime);
  89689. #endif
  89690. /* Test whether SEM is posted. */
  89691. diff -Nur uClibc-0.9.33.2/libpthread/nptl/semaphoreP.h uClibc-git/libpthread/nptl/semaphoreP.h
  89692. --- uClibc-0.9.33.2/libpthread/nptl/semaphoreP.h 2012-05-15 09:20:09.000000000 +0200
  89693. +++ uClibc-git/libpthread/nptl/semaphoreP.h 2014-06-02 17:40:35.042717675 +0200
  89694. @@ -13,9 +13,8 @@
  89695. Lesser General Public License for more details.
  89696. You should have received a copy of the GNU Lesser General Public
  89697. - License along with the GNU C Library; if not, write to the Free
  89698. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89699. - 02111-1307 USA. */
  89700. + License along with the GNU C Library; if not, see
  89701. + <http://www.gnu.org/licenses/>. */
  89702. #include <semaphore.h>
  89703. #include "pthreadP.h"
  89704. @@ -56,14 +55,3 @@
  89705. /* Comparison function for search in tree with existing mappings. */
  89706. extern int __sem_search (const void *a, const void *b) attribute_hidden;
  89707. -
  89708. -
  89709. -/* Prototypes of functions with multiple interfaces. */
  89710. -extern int __new_sem_init (sem_t *sem, int pshared, unsigned int value);
  89711. -extern int __old_sem_init (sem_t *sem, int pshared, unsigned int value);
  89712. -extern int __new_sem_destroy (sem_t *sem);
  89713. -extern int __new_sem_post (sem_t *sem);
  89714. -extern int __new_sem_wait (sem_t *sem);
  89715. -extern int __old_sem_wait (sem_t *sem);
  89716. -extern int __new_sem_trywait (sem_t *sem);
  89717. -extern int __new_sem_getvalue (sem_t *sem, int *sval);
  89718. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sem_close.c uClibc-git/libpthread/nptl/sem_close.c
  89719. --- uClibc-0.9.33.2/libpthread/nptl/sem_close.c 2012-05-15 09:20:09.000000000 +0200
  89720. +++ uClibc-git/libpthread/nptl/sem_close.c 2014-06-02 17:40:35.042717675 +0200
  89721. @@ -13,9 +13,8 @@
  89722. Lesser General Public License for more details.
  89723. You should have received a copy of the GNU Lesser General Public
  89724. - License along with the GNU C Library; if not, write to the Free
  89725. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89726. - 02111-1307 USA. */
  89727. + License along with the GNU C Library; if not, see
  89728. + <http://www.gnu.org/licenses/>. */
  89729. #include <errno.h>
  89730. #include <search.h>
  89731. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sem_destroy.c uClibc-git/libpthread/nptl/sem_destroy.c
  89732. --- uClibc-0.9.33.2/libpthread/nptl/sem_destroy.c 2012-05-15 09:20:09.000000000 +0200
  89733. +++ uClibc-git/libpthread/nptl/sem_destroy.c 2014-06-02 17:40:35.042717675 +0200
  89734. @@ -13,16 +13,15 @@
  89735. Lesser General Public License for more details.
  89736. You should have received a copy of the GNU Lesser General Public
  89737. - License along with the GNU C Library; if not, write to the Free
  89738. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89739. - 02111-1307 USA. */
  89740. + License along with the GNU C Library; if not, see
  89741. + <http://www.gnu.org/licenses/>. */
  89742. #include <semaphore.h>
  89743. #include "semaphoreP.h"
  89744. int
  89745. -__new_sem_destroy (
  89746. +sem_destroy (
  89747. sem_t *sem)
  89748. {
  89749. /* XXX Check for valid parameter. */
  89750. @@ -30,4 +29,3 @@
  89751. /* Nothing to do. */
  89752. return 0;
  89753. }
  89754. -weak_alias(__new_sem_destroy, sem_destroy)
  89755. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sem_getvalue.c uClibc-git/libpthread/nptl/sem_getvalue.c
  89756. --- uClibc-0.9.33.2/libpthread/nptl/sem_getvalue.c 2012-05-15 09:20:09.000000000 +0200
  89757. +++ uClibc-git/libpthread/nptl/sem_getvalue.c 2014-06-02 17:40:35.042717675 +0200
  89758. @@ -13,16 +13,15 @@
  89759. Lesser General Public License for more details.
  89760. You should have received a copy of the GNU Lesser General Public
  89761. - License along with the GNU C Library; if not, write to the Free
  89762. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89763. - 02111-1307 USA. */
  89764. + License along with the GNU C Library; if not, see
  89765. + <http://www.gnu.org/licenses/>. */
  89766. #include <semaphore.h>
  89767. #include "semaphoreP.h"
  89768. int
  89769. -__new_sem_getvalue (
  89770. +sem_getvalue (
  89771. sem_t *sem,
  89772. int *sval)
  89773. {
  89774. @@ -34,4 +33,3 @@
  89775. return 0;
  89776. }
  89777. -weak_alias(__new_sem_getvalue, sem_getvalue)
  89778. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sem_init.c uClibc-git/libpthread/nptl/sem_init.c
  89779. --- uClibc-0.9.33.2/libpthread/nptl/sem_init.c 2012-05-15 09:20:09.000000000 +0200
  89780. +++ uClibc-git/libpthread/nptl/sem_init.c 2014-06-02 17:40:35.042717675 +0200
  89781. @@ -13,9 +13,8 @@
  89782. Lesser General Public License for more details.
  89783. You should have received a copy of the GNU Lesser General Public
  89784. - License along with the GNU C Library; if not, write to the Free
  89785. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89786. - 02111-1307 USA. */
  89787. + License along with the GNU C Library; if not, see
  89788. + <http://www.gnu.org/licenses/>. */
  89789. #include <errno.h>
  89790. #include <semaphore.h>
  89791. @@ -25,7 +24,7 @@
  89792. int
  89793. -__new_sem_init (
  89794. +sem_init (
  89795. sem_t *sem,
  89796. int pshared,
  89797. unsigned int value)
  89798. @@ -53,4 +52,3 @@
  89799. return 0;
  89800. }
  89801. -weak_alias(__new_sem_init, sem_init)
  89802. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sem_open.c uClibc-git/libpthread/nptl/sem_open.c
  89803. --- uClibc-0.9.33.2/libpthread/nptl/sem_open.c 2012-05-15 09:20:09.000000000 +0200
  89804. +++ uClibc-git/libpthread/nptl/sem_open.c 2014-06-02 17:40:35.042717675 +0200
  89805. @@ -13,9 +13,8 @@
  89806. Lesser General Public License for more details.
  89807. You should have received a copy of the GNU Lesser General Public
  89808. - License along with the GNU C Library; if not, write to the Free
  89809. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89810. - 02111-1307 USA. */
  89811. + License along with the GNU C Library; if not, see
  89812. + <http://www.gnu.org/licenses/>. */
  89813. #include <errno.h>
  89814. #include <fcntl.h>
  89815. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sem_unlink.c uClibc-git/libpthread/nptl/sem_unlink.c
  89816. --- uClibc-0.9.33.2/libpthread/nptl/sem_unlink.c 2012-05-15 09:20:09.000000000 +0200
  89817. +++ uClibc-git/libpthread/nptl/sem_unlink.c 2014-06-02 17:40:35.042717675 +0200
  89818. @@ -13,9 +13,8 @@
  89819. Lesser General Public License for more details.
  89820. You should have received a copy of the GNU Lesser General Public
  89821. - License along with the GNU C Library; if not, write to the Free
  89822. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89823. - 02111-1307 USA. */
  89824. + License along with the GNU C Library; if not, see
  89825. + <http://www.gnu.org/licenses/>. */
  89826. #include <errno.h>
  89827. #include <semaphore.h>
  89828. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/alpha/dl-tls.h
  89829. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
  89830. +++ uClibc-git/libpthread/nptl/sysdeps/alpha/dl-tls.h 2014-06-02 17:40:35.042717675 +0200
  89831. @@ -13,9 +13,8 @@
  89832. Lesser General Public License for more details.
  89833. You should have received a copy of the GNU Lesser General Public
  89834. - License along with the GNU C Library; if not, write to the Free
  89835. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89836. - 02111-1307 USA. */
  89837. + License along with the GNU C Library; if not, see
  89838. + <http://www.gnu.org/licenses/>. */
  89839. /* Type used for the representation of TLS information in the GOT. */
  89840. 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
  89841. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/elf/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
  89842. +++ uClibc-git/libpthread/nptl/sysdeps/alpha/elf/pt-initfini.c 2014-06-02 17:40:35.042717675 +0200
  89843. @@ -13,9 +13,8 @@
  89844. Lesser General Public License for more details.
  89845. You should have received a copy of the GNU Lesser General Public
  89846. - License along with the GNU C Library; if not, write to the Free
  89847. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89848. - 02111-1307 USA. */
  89849. + License along with the GNU C Library; if not, see
  89850. + <http://www.gnu.org/licenses/>. */
  89851. /* This file is compiled into assembly code which is then munged by a sed
  89852. script into two files: crti.s and crtn.s.
  89853. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/alpha/jmpbuf-unwind.h
  89854. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
  89855. +++ uClibc-git/libpthread/nptl/sysdeps/alpha/jmpbuf-unwind.h 2014-06-02 17:40:35.042717675 +0200
  89856. @@ -13,9 +13,8 @@
  89857. Lesser General Public License for more details.
  89858. You should have received a copy of the GNU Lesser General Public
  89859. - License along with the GNU C Library; if not, write to the Free
  89860. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89861. - 02111-1307 USA. */
  89862. + License along with the GNU C Library; if not, see
  89863. + <http://www.gnu.org/licenses/>. */
  89864. #include <setjmp.h>
  89865. #include <stdint.h>
  89866. @@ -26,6 +25,3 @@
  89867. #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  89868. ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_SP] - (_adj))
  89869. -
  89870. -/* We use the normal lobngjmp for unwinding. */
  89871. -#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
  89872. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/libc-tls.c uClibc-git/libpthread/nptl/sysdeps/alpha/libc-tls.c
  89873. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/libc-tls.c 2012-05-15 09:20:09.000000000 +0200
  89874. +++ uClibc-git/libpthread/nptl/sysdeps/alpha/libc-tls.c 2014-06-02 17:40:35.062717785 +0200
  89875. @@ -13,9 +13,8 @@
  89876. Lesser General Public License for more details.
  89877. You should have received a copy of the GNU Lesser General Public
  89878. - License along with the GNU C Library; if not, write to the Free
  89879. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89880. - 02111-1307 USA. */
  89881. + License along with the GNU C Library; if not, see
  89882. + <http://www.gnu.org/licenses/>. */
  89883. #include <sysdeps/generic/libc-tls.c>
  89884. #include <dl-tls.h>
  89885. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/Makefile uClibc-git/libpthread/nptl/sysdeps/alpha/Makefile
  89886. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/Makefile 2012-05-15 09:20:09.000000000 +0200
  89887. +++ uClibc-git/libpthread/nptl/sysdeps/alpha/Makefile 2014-06-02 17:40:35.042717675 +0200
  89888. @@ -12,9 +12,8 @@
  89889. # Lesser General Public License for more details.
  89890. #
  89891. # You should have received a copy of the GNU Lesser General Public
  89892. -# License along with the GNU C Library; if not, write to the Free
  89893. -# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89894. -# 02111-1307 USA.
  89895. +# License along with the GNU C Library; see the file COPYING.LIB. If
  89896. +# not, see <http://www.gnu.org/licenses/>.
  89897. ifeq ($(subdir),csu)
  89898. gen-as-const-headers += tcb-offsets.sym
  89899. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/alpha/pthreaddef.h
  89900. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
  89901. +++ uClibc-git/libpthread/nptl/sysdeps/alpha/pthreaddef.h 2014-06-02 17:40:35.062717785 +0200
  89902. @@ -12,9 +12,8 @@
  89903. Lesser General Public License for more details.
  89904. You should have received a copy of the GNU Lesser General Public
  89905. - License along with the GNU C Library; if not, write to the Free
  89906. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89907. - 02111-1307 USA. */
  89908. + License along with the GNU C Library; if not, see
  89909. + <http://www.gnu.org/licenses/>. */
  89910. /* Default stack size. */
  89911. #define ARCH_STACK_DEFAULT_SIZE (4 * 1024 * 1024)
  89912. 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
  89913. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/pthread_spin_lock.S 2012-05-15 09:20:09.000000000 +0200
  89914. +++ uClibc-git/libpthread/nptl/sysdeps/alpha/pthread_spin_lock.S 2014-06-02 17:40:35.062717785 +0200
  89915. @@ -13,9 +13,8 @@
  89916. Lesser General Public License for more details.
  89917. You should have received a copy of the GNU Lesser General Public
  89918. - License along with the GNU C Library; if not, write to the Free
  89919. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89920. - 02111-1307 USA. */
  89921. + License along with the GNU C Library; if not, see
  89922. + <http://www.gnu.org/licenses/>. */
  89923. .text
  89924. 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
  89925. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
  89926. +++ uClibc-git/libpthread/nptl/sysdeps/alpha/pthread_spin_trylock.S 2014-06-02 17:40:35.062717785 +0200
  89927. @@ -13,9 +13,8 @@
  89928. Lesser General Public License for more details.
  89929. You should have received a copy of the GNU Lesser General Public
  89930. - License along with the GNU C Library; if not, write to the Free
  89931. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89932. - 02111-1307 USA. */
  89933. + License along with the GNU C Library; if not, see
  89934. + <http://www.gnu.org/licenses/>. */
  89935. #define _ERRNO_H 1
  89936. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/tls.h uClibc-git/libpthread/nptl/sysdeps/alpha/tls.h
  89937. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/tls.h 2012-05-15 09:20:09.000000000 +0200
  89938. +++ uClibc-git/libpthread/nptl/sysdeps/alpha/tls.h 2014-06-02 17:40:35.062717785 +0200
  89939. @@ -13,9 +13,8 @@
  89940. Lesser General Public License for more details.
  89941. You should have received a copy of the GNU Lesser General Public
  89942. - License along with the GNU C Library; if not, write to the Free
  89943. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89944. - 02111-1307 USA. */
  89945. + License along with the GNU C Library; if not, see
  89946. + <http://www.gnu.org/licenses/>. */
  89947. #ifndef _TLS_H
  89948. #define _TLS_H 1
  89949. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/arm/dl-tls.h
  89950. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
  89951. +++ uClibc-git/libpthread/nptl/sysdeps/arm/dl-tls.h 2014-06-02 17:40:35.062717785 +0200
  89952. @@ -13,9 +13,8 @@
  89953. Lesser General Public License for more details.
  89954. You should have received a copy of the GNU Lesser General Public
  89955. - License along with the GNU C Library; if not, write to the Free
  89956. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89957. - 02111-1307 USA. */
  89958. + License along with the GNU C Library; if not, see
  89959. + <http://www.gnu.org/licenses/>. */
  89960. /* Type used for the representation of TLS information in the GOT. */
  89961. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/arm/jmpbuf-unwind.h
  89962. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
  89963. +++ uClibc-git/libpthread/nptl/sysdeps/arm/jmpbuf-unwind.h 2014-06-02 17:40:35.062717785 +0200
  89964. @@ -12,9 +12,8 @@
  89965. Lesser General Public License for more details.
  89966. You should have received a copy of the GNU Lesser General Public
  89967. - License along with the GNU C Library; if not, write to the Free
  89968. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89969. - 02111-1307 USA. */
  89970. + License along with the GNU C Library; if not, see
  89971. + <http://www.gnu.org/licenses/>. */
  89972. #include <setjmp.h>
  89973. #include <stdint.h>
  89974. @@ -31,6 +30,3 @@
  89975. #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  89976. ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[__JMP_BUF_SP] - (_adj))
  89977. -
  89978. -/* We use the normal longjmp for unwinding. */
  89979. -#define __libc_unwind_longjmp(buf, val) longjmp (buf, val)
  89980. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/libc-tls.c uClibc-git/libpthread/nptl/sysdeps/arm/libc-tls.c
  89981. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/libc-tls.c 2012-05-15 09:20:09.000000000 +0200
  89982. +++ uClibc-git/libpthread/nptl/sysdeps/arm/libc-tls.c 2014-06-02 17:40:35.062717785 +0200
  89983. @@ -13,9 +13,8 @@
  89984. Lesser General Public License for more details.
  89985. You should have received a copy of the GNU Lesser General Public
  89986. - License along with the GNU C Library; if not, write to the Free
  89987. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89988. - 02111-1307 USA. */
  89989. + License along with the GNU C Library; if not, see
  89990. + <http://www.gnu.org/licenses/>. */
  89991. #include <sysdeps/generic/libc-tls.c>
  89992. #include <dl-tls.h>
  89993. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/arm/pthreaddef.h
  89994. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
  89995. +++ uClibc-git/libpthread/nptl/sysdeps/arm/pthreaddef.h 2014-06-02 17:40:35.062717785 +0200
  89996. @@ -12,9 +12,8 @@
  89997. Lesser General Public License for more details.
  89998. You should have received a copy of the GNU Lesser General Public
  89999. - License along with the GNU C Library; if not, write to the Free
  90000. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90001. - 02111-1307 USA. */
  90002. + License along with the GNU C Library; if not, see
  90003. + <http://www.gnu.org/licenses/>. */
  90004. /* Default stack size. */
  90005. #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
  90006. 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
  90007. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/pthread_spin_lock.S 2012-05-15 09:20:09.000000000 +0200
  90008. +++ uClibc-git/libpthread/nptl/sysdeps/arm/pthread_spin_lock.S 2014-06-02 17:40:35.062717785 +0200
  90009. @@ -12,9 +12,8 @@
  90010. Lesser General Public License for more details.
  90011. You should have received a copy of the GNU Lesser General Public
  90012. - License along with the GNU C Library; if not, write to the Free
  90013. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90014. - 02111-1307 USA. */
  90015. + License along with the GNU C Library; if not, see
  90016. + <http://www.gnu.org/licenses/>. */
  90017. #include <sysdep.h>
  90018. 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
  90019. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
  90020. +++ uClibc-git/libpthread/nptl/sysdeps/arm/pthread_spin_trylock.S 2014-06-02 17:40:35.062717785 +0200
  90021. @@ -12,9 +12,8 @@
  90022. Lesser General Public License for more details.
  90023. You should have received a copy of the GNU Lesser General Public
  90024. - License along with the GNU C Library; if not, write to the Free
  90025. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90026. - 02111-1307 USA. */
  90027. + License along with the GNU C Library; if not, see
  90028. + <http://www.gnu.org/licenses/>. */
  90029. #define _ERRNO_H 1
  90030. #include <bits/errno.h>
  90031. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/tls.h uClibc-git/libpthread/nptl/sysdeps/arm/tls.h
  90032. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/tls.h 2012-05-15 09:20:09.000000000 +0200
  90033. +++ uClibc-git/libpthread/nptl/sysdeps/arm/tls.h 2014-06-02 17:40:35.062717785 +0200
  90034. @@ -13,9 +13,8 @@
  90035. Lesser General Public License for more details.
  90036. You should have received a copy of the GNU Lesser General Public
  90037. - License along with the GNU C Library; if not, write to the Free
  90038. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90039. - 02111-1307 USA. */
  90040. + License along with the GNU C Library; if not, see
  90041. + <http://www.gnu.org/licenses/>. */
  90042. #ifndef _TLS_H
  90043. #define _TLS_H 1
  90044. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/generic/dl-tls.c uClibc-git/libpthread/nptl/sysdeps/generic/dl-tls.c
  90045. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/generic/dl-tls.c 2012-05-15 09:20:09.000000000 +0200
  90046. +++ uClibc-git/libpthread/nptl/sysdeps/generic/dl-tls.c 2014-06-02 17:40:35.062717785 +0200
  90047. @@ -13,9 +13,8 @@
  90048. Lesser General Public License for more details.
  90049. You should have received a copy of the GNU Lesser General Public
  90050. - License along with the GNU C Library; if not, write to the Free
  90051. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90052. - 02111-1307 USA. */
  90053. + License along with the GNU C Library; if not, see
  90054. + <http://www.gnu.org/licenses/>. */
  90055. #if defined SHARED || defined NOT_IN_libc
  90056. # error in buildsystem: This file is for libc.a
  90057. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/generic/libc-tls.c uClibc-git/libpthread/nptl/sysdeps/generic/libc-tls.c
  90058. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/generic/libc-tls.c 2012-05-15 09:20:09.000000000 +0200
  90059. +++ uClibc-git/libpthread/nptl/sysdeps/generic/libc-tls.c 2014-06-02 17:40:35.062717785 +0200
  90060. @@ -13,9 +13,8 @@
  90061. Lesser General Public License for more details.
  90062. You should have received a copy of the GNU Lesser General Public
  90063. - License along with the GNU C Library; if not, write to the Free
  90064. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90065. - 02111-1307 USA. */
  90066. + License along with the GNU C Library; if not, see
  90067. + <http://www.gnu.org/licenses/>. */
  90068. #include <errno.h>
  90069. #include <ldsodefs.h>
  90070. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/generic/lowlevellock.h uClibc-git/libpthread/nptl/sysdeps/generic/lowlevellock.h
  90071. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/generic/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
  90072. +++ uClibc-git/libpthread/nptl/sysdeps/generic/lowlevellock.h 2014-06-02 17:40:35.062717785 +0200
  90073. @@ -14,9 +14,8 @@
  90074. Lesser General Public License for more details.
  90075. You should have received a copy of the GNU Lesser General Public
  90076. - License along with the GNU C Library; if not, write to the Free
  90077. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90078. - 02111-1307 USA. */
  90079. + License along with the GNU C Library; if not, see
  90080. + <http://www.gnu.org/licenses/>. */
  90081. #include <atomic.h>
  90082. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/i386/dl-tls.h
  90083. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
  90084. +++ uClibc-git/libpthread/nptl/sysdeps/i386/dl-tls.h 2014-06-02 17:40:35.062717785 +0200
  90085. @@ -13,9 +13,8 @@
  90086. Lesser General Public License for more details.
  90087. You should have received a copy of the GNU Lesser General Public
  90088. - License along with the GNU C Library; if not, write to the Free
  90089. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90090. - 02111-1307 USA. */
  90091. + License along with the GNU C Library; if not, see
  90092. + <http://www.gnu.org/licenses/>. */
  90093. /* Type used for the representation of TLS information in the GOT. */
  90094. 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
  90095. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i486/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
  90096. +++ uClibc-git/libpthread/nptl/sysdeps/i386/i486/pthread_spin_trylock.S 2014-06-02 17:40:35.062717785 +0200
  90097. @@ -13,9 +13,8 @@
  90098. Lesser General Public License for more details.
  90099. You should have received a copy of the GNU Lesser General Public
  90100. - License along with the GNU C Library; if not, write to the Free
  90101. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90102. - 02111-1307 USA. */
  90103. + License along with the GNU C Library; if not, see
  90104. + <http://www.gnu.org/licenses/>. */
  90105. #include <pthread-errnos.h>
  90106. 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
  90107. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i586/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
  90108. +++ uClibc-git/libpthread/nptl/sysdeps/i386/i586/pthread_spin_trylock.S 2014-06-02 17:40:35.062717785 +0200
  90109. @@ -13,8 +13,7 @@
  90110. Lesser General Public License for more details.
  90111. You should have received a copy of the GNU Lesser General Public
  90112. - License along with the GNU C Library; if not, write to the Free
  90113. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90114. - 02111-1307 USA. */
  90115. + License along with the GNU C Library; if not, see
  90116. + <http://www.gnu.org/licenses/>. */
  90117. #include "../i486/pthread_spin_trylock.S"
  90118. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i686/Makefile uClibc-git/libpthread/nptl/sysdeps/i386/i686/Makefile
  90119. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i686/Makefile 2012-05-15 09:20:09.000000000 +0200
  90120. +++ uClibc-git/libpthread/nptl/sysdeps/i386/i686/Makefile 2014-06-02 17:40:35.062717785 +0200
  90121. @@ -13,9 +13,8 @@
  90122. # Lesser General Public License for more details.
  90123. # You should have received a copy of the GNU Lesser General Public
  90124. -# License along with the GNU C Library; if not, write to the Free
  90125. -# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90126. -# 02111-1307 USA.
  90127. +# License along with the GNU C Library; see the file COPYING.LIB. If
  90128. +# not, see <http://www.gnu.org/licenses/>.
  90129. ifeq ($(subdir),nptl)
  90130. # It turns out that stack coloring is in general not good on P4s. Some
  90131. 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
  90132. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i686/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
  90133. +++ uClibc-git/libpthread/nptl/sysdeps/i386/i686/pthread_spin_trylock.S 2014-06-02 17:40:35.062717785 +0200
  90134. @@ -13,9 +13,8 @@
  90135. Lesser General Public License for more details.
  90136. You should have received a copy of the GNU Lesser General Public
  90137. - License along with the GNU C Library; if not, write to the Free
  90138. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90139. - 02111-1307 USA. */
  90140. + License along with the GNU C Library; if not, see
  90141. + <http://www.gnu.org/licenses/>. */
  90142. #define HAVE_CMOV 1
  90143. #include "../i486/pthread_spin_trylock.S"
  90144. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i686/tls.h uClibc-git/libpthread/nptl/sysdeps/i386/i686/tls.h
  90145. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i686/tls.h 2012-05-15 09:20:09.000000000 +0200
  90146. +++ uClibc-git/libpthread/nptl/sysdeps/i386/i686/tls.h 2014-06-02 17:40:35.062717785 +0200
  90147. @@ -13,9 +13,8 @@
  90148. Lesser General Public License for more details.
  90149. You should have received a copy of the GNU Lesser General Public
  90150. - License along with the GNU C Library; if not, write to the Free
  90151. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90152. - 02111-1307 USA. */
  90153. + License along with the GNU C Library; if not, see
  90154. + <http://www.gnu.org/licenses/>. */
  90155. #ifndef _TLS_H
  90156. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/i386/jmpbuf-unwind.h
  90157. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
  90158. +++ uClibc-git/libpthread/nptl/sysdeps/i386/jmpbuf-unwind.h 2014-06-02 17:40:35.062717785 +0200
  90159. @@ -13,9 +13,8 @@
  90160. Lesser General Public License for more details.
  90161. You should have received a copy of the GNU Lesser General Public
  90162. - License along with the GNU C Library; if not, write to the Free
  90163. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90164. - 02111-1307 USA. */
  90165. + License along with the GNU C Library; if not, see
  90166. + <http://www.gnu.org/licenses/>. */
  90167. #include <setjmp.h>
  90168. #include <stdint.h>
  90169. @@ -26,7 +25,3 @@
  90170. #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  90171. ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_SP] - (_adj))
  90172. -
  90173. -/* We use the normal lobngjmp for unwinding. */
  90174. -extern __typeof(longjmp) __libc_longjmp attribute_noreturn;
  90175. -#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
  90176. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/Makefile uClibc-git/libpthread/nptl/sysdeps/i386/Makefile
  90177. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/Makefile 2012-05-15 09:20:09.000000000 +0200
  90178. +++ uClibc-git/libpthread/nptl/sysdeps/i386/Makefile 2014-06-02 17:40:35.062717785 +0200
  90179. @@ -12,9 +12,8 @@
  90180. # Lesser General Public License for more details.
  90181. # You should have received a copy of the GNU Lesser General Public
  90182. -# License along with the GNU C Library; if not, write to the Free
  90183. -# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90184. -# 02111-1307 USA.
  90185. +# License along with the GNU C Library; see the file COPYING.LIB. If
  90186. +# not, see <http://www.gnu.org/licenses/>.
  90187. ifeq ($(subdir),csu)
  90188. gen-as-const-headers += tcb-offsets.sym
  90189. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/i386/pthreaddef.h
  90190. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
  90191. +++ uClibc-git/libpthread/nptl/sysdeps/i386/pthreaddef.h 2014-06-02 17:40:35.066717808 +0200
  90192. @@ -13,9 +13,8 @@
  90193. Lesser General Public License for more details.
  90194. You should have received a copy of the GNU Lesser General Public
  90195. - License along with the GNU C Library; if not, write to the Free
  90196. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90197. - 02111-1307 USA. */
  90198. + License along with the GNU C Library; if not, see
  90199. + <http://www.gnu.org/licenses/>. */
  90200. /* Default stack size. */
  90201. #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
  90202. 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
  90203. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/pthread_spin_init.c 2012-05-15 09:20:09.000000000 +0200
  90204. +++ uClibc-git/libpthread/nptl/sysdeps/i386/pthread_spin_init.c 2014-06-02 17:40:35.066717808 +0200
  90205. @@ -13,8 +13,7 @@
  90206. Lesser General Public License for more details.
  90207. You should have received a copy of the GNU Lesser General Public
  90208. - License along with the GNU C Library; if not, write to the Free
  90209. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90210. - 02111-1307 USA. */
  90211. + License along with the GNU C Library; if not, see
  90212. + <http://www.gnu.org/licenses/>. */
  90213. /* Not needed. pthread_spin_init is an alias for pthread_spin_unlock. */
  90214. 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
  90215. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/pthread_spin_lock.c 2012-05-15 09:20:09.000000000 +0200
  90216. +++ uClibc-git/libpthread/nptl/sysdeps/i386/pthread_spin_lock.c 2014-06-02 17:40:35.066717808 +0200
  90217. @@ -13,9 +13,8 @@
  90218. Lesser General Public License for more details.
  90219. You should have received a copy of the GNU Lesser General Public
  90220. - License along with the GNU C Library; if not, write to the Free
  90221. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90222. - 02111-1307 USA. */
  90223. + License along with the GNU C Library; if not, see
  90224. + <http://www.gnu.org/licenses/>. */
  90225. #include "pthreadP.h"
  90226. 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
  90227. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/pthread_spin_unlock.S 2012-05-15 09:20:09.000000000 +0200
  90228. +++ uClibc-git/libpthread/nptl/sysdeps/i386/pthread_spin_unlock.S 2014-06-02 17:40:35.066717808 +0200
  90229. @@ -13,9 +13,8 @@
  90230. Lesser General Public License for more details.
  90231. You should have received a copy of the GNU Lesser General Public
  90232. - License along with the GNU C Library; if not, write to the Free
  90233. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90234. - 02111-1307 USA. */
  90235. + License along with the GNU C Library; if not, see
  90236. + <http://www.gnu.org/licenses/>. */
  90237. .globl pthread_spin_unlock
  90238. .type pthread_spin_unlock,@function
  90239. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/tls.h uClibc-git/libpthread/nptl/sysdeps/i386/tls.h
  90240. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/tls.h 2012-05-15 09:20:09.000000000 +0200
  90241. +++ uClibc-git/libpthread/nptl/sysdeps/i386/tls.h 2014-06-02 17:40:35.066717808 +0200
  90242. @@ -13,9 +13,8 @@
  90243. Lesser General Public License for more details.
  90244. You should have received a copy of the GNU Lesser General Public
  90245. - License along with the GNU C Library; if not, write to the Free
  90246. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90247. - 02111-1307 USA. */
  90248. + License along with the GNU C Library; if not, see
  90249. + <http://www.gnu.org/licenses/>. */
  90250. #ifndef _TLS_H
  90251. #define _TLS_H 1
  90252. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/Makefile.commonarch uClibc-git/libpthread/nptl/sysdeps/Makefile.commonarch
  90253. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/Makefile.commonarch 2012-05-15 09:20:09.000000000 +0200
  90254. +++ uClibc-git/libpthread/nptl/sysdeps/Makefile.commonarch 2014-06-02 17:40:35.042717675 +0200
  90255. @@ -47,9 +47,8 @@
  90256. $(libpthread_arch_OUT)/gen_tcb-offsets.s: $(libpthread_arch_OUT)/gen_tcb-offsets.c | headers
  90257. $(compile.c)
  90258. libpthread-generated-y += $(libpthread_arch_OUT)/gen_tcb-offsets.s
  90259. -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"
  90260. $(libpthread_arch_OUT)/tcb-offsets.h: $(libpthread_arch_OUT)/gen_tcb-offsets.s
  90261. - $(do_sed) $(PTHREAD_TCB_OFFSET_MANGLE) $< > $@
  90262. + $(do_sed) $(PTHREAD_GENERATE_MANGLE) $< > $@
  90263. @if test ! -s $@ ; then rm -f $@ ; false ; fi
  90264. pregen-headers-$(UCLIBC_HAS_THREADS_NATIVE) += $(libpthread_arch_OUT)/tcb-offsets.h
  90265. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/metag/dl-tls.h
  90266. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/dl-tls.h 1970-01-01 01:00:00.000000000 +0100
  90267. +++ uClibc-git/libpthread/nptl/sysdeps/metag/dl-tls.h 2014-06-02 17:40:35.066717808 +0200
  90268. @@ -0,0 +1,29 @@
  90269. +/* Thread-local storage handling in the ELF dynamic linker. Meta version.
  90270. + Copyright (C) 2002 Free Software Foundation, Inc.
  90271. + This file is part of the GNU C Library.
  90272. +
  90273. + The GNU C Library is free software; you can redistribute it and/or
  90274. + modify it under the terms of the GNU Lesser General Public
  90275. + License as published by the Free Software Foundation; either
  90276. + version 2.1 of the License, or (at your option) any later version.
  90277. +
  90278. + The GNU C Library is distributed in the hope that it will be useful,
  90279. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  90280. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  90281. + Lesser General Public License for more details.
  90282. +
  90283. + You should have received a copy of the GNU Lesser General Public
  90284. + License along with the GNU C Library; if not, write to the Free
  90285. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90286. + 02111-1307 USA. */
  90287. +
  90288. +
  90289. +/* Type used for the representation of TLS information in the GOT. */
  90290. +typedef struct
  90291. +{
  90292. + unsigned long int ti_module;
  90293. + unsigned long int ti_offset;
  90294. +} tls_index;
  90295. +
  90296. +
  90297. +extern void *__tls_get_addr (tls_index *ti);
  90298. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/metag/jmpbuf-unwind.h
  90299. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  90300. +++ uClibc-git/libpthread/nptl/sysdeps/metag/jmpbuf-unwind.h 2014-06-02 17:40:35.066717808 +0200
  90301. @@ -0,0 +1,36 @@
  90302. +/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
  90303. + This file is part of the GNU C Library.
  90304. + Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
  90305. +
  90306. + The GNU C Library is free software; you can redistribute it and/or
  90307. + modify it under the terms of the GNU Lesser General Public
  90308. + License as published by the Free Software Foundation; either
  90309. + version 2.1 of the License, or (at your option) any later version.
  90310. +
  90311. + The GNU C Library is distributed in the hope that it will be useful,
  90312. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  90313. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  90314. + Lesser General Public License for more details.
  90315. +
  90316. + You should have received a copy of the GNU Lesser General Public
  90317. + License along with the GNU C Library; if not, write to the Free
  90318. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90319. + 02111-1307 USA. */
  90320. +
  90321. +#include <setjmp.h>
  90322. +#include <stdint.h>
  90323. +#include <unwind.h>
  90324. +
  90325. +/* Test if longjmp to JMPBUF would unwind the frame
  90326. + containing a local variable at ADDRESS. */
  90327. +#undef _JMPBUF_UNWINDS
  90328. +#define _JMPBUF_UNWINDS(jmpbuf, address, demangle) \
  90329. + ((void *) (address) > (void *) demangle (jmpbuf[JB_SP]))
  90330. +
  90331. +#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
  90332. + _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
  90333. +
  90334. +#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  90335. + ((uintptr_t) (_address) - (_adj) > (uintptr_t) (_jmpbuf)[JB_SP] - (_adj))
  90336. +
  90337. +#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
  90338. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/libc-tls.c uClibc-git/libpthread/nptl/sysdeps/metag/libc-tls.c
  90339. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/libc-tls.c 1970-01-01 01:00:00.000000000 +0100
  90340. +++ uClibc-git/libpthread/nptl/sysdeps/metag/libc-tls.c 2014-06-02 17:40:35.066717808 +0200
  90341. @@ -0,0 +1,33 @@
  90342. +/*
  90343. + * Thread-local storage handling in statically linked binaries. Meta version.
  90344. + * Copyright (C) 2009 Free Software Foundation, Inc.
  90345. + *
  90346. + * Based on GNU C Library (file: libc/sysdeps/sh/libc-tls.c)
  90347. + *
  90348. + * Copyright (C) 2010 STMicroelectronics Ltd.
  90349. + * Copyright (C) 2013 Imagination Technologies Ltd.
  90350. + *
  90351. + * Author: Filippo Arcidiacono <filippo.arcidiacono@st.com>
  90352. + *
  90353. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  90354. + *
  90355. + */
  90356. +
  90357. +#include <sysdeps/generic/libc-tls.c>
  90358. +#include <dl-tls.h>
  90359. +
  90360. +#if defined (USE_TLS) && (USE_TLS)
  90361. +
  90362. +/* On Meta, linker optimizations are not required, so __tls_get_addr
  90363. + can be called even in statically linked binaries. In this case module
  90364. + must be always 1 and PT_TLS segment exist in the binary, otherwise it
  90365. + would not link. */
  90366. +
  90367. +void *
  90368. +__tls_get_addr (tls_index *ti)
  90369. +{
  90370. + dtv_t *dtv = THREAD_DTV ();
  90371. + return (char *) dtv[1].pointer.val + ti->ti_offset;
  90372. +}
  90373. +
  90374. +#endif
  90375. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/Makefile.arch uClibc-git/libpthread/nptl/sysdeps/metag/Makefile.arch
  90376. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/Makefile.arch 1970-01-01 01:00:00.000000000 +0100
  90377. +++ uClibc-git/libpthread/nptl/sysdeps/metag/Makefile.arch 2014-06-02 17:40:35.066717808 +0200
  90378. @@ -0,0 +1,17 @@
  90379. +# Makefile for uClibc NPTL
  90380. +#
  90381. +# Copyright (C) 2005 Steven J. Hill <sjhill@uclibc.org>
  90382. +#
  90383. +# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  90384. +#
  90385. +
  90386. +CFLAGS-pthread_spin_init.c = -DNOT_IN_libc -DIS_IN_libpthread
  90387. +ASFLAGS-pthread_spin_lock.S = -DNOT_IN_libc -DIS_IN_libpthread
  90388. +ASFLAGS-pthread_spin_unlock.S = -DNOT_IN_libc -DIS_IN_libpthread
  90389. +ASFLAGS-pthread_spin_trylock.S = -DNOT_IN_libc -DIS_IN_libpthread
  90390. +
  90391. +ASFLAGS-pthread_spin_lock.c += -D_GNU_SOURCE
  90392. +
  90393. +CFLAGS-metag = $(SSP_ALL_CFLAGS)
  90394. +
  90395. +libc_arch_a_CSRC := libc-tls.c
  90396. 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
  90397. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/metag_load_tp.S 1970-01-01 01:00:00.000000000 +0100
  90398. +++ uClibc-git/libpthread/nptl/sysdeps/metag/metag_load_tp.S 2014-06-02 17:40:35.066717808 +0200
  90399. @@ -0,0 +1,7 @@
  90400. +/*
  90401. + * Copyright (C) 2013 Imagination Technologies Ltd.
  90402. + *
  90403. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  90404. + */
  90405. +
  90406. +#include <../../../../ldso/ldso/metag/metag_load_tp.S>
  90407. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/metag/pthreaddef.h
  90408. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthreaddef.h 1970-01-01 01:00:00.000000000 +0100
  90409. +++ uClibc-git/libpthread/nptl/sysdeps/metag/pthreaddef.h 2014-06-02 17:40:35.066717808 +0200
  90410. @@ -0,0 +1,40 @@
  90411. +/* Copyright (C) 2003 Free Software Foundation, Inc.
  90412. + This file is part of the GNU C Library.
  90413. +
  90414. + The GNU C Library is free software; you can redistribute it and/or
  90415. + modify it under the terms of the GNU Lesser General Public
  90416. + License as published by the Free Software Foundation; either
  90417. + version 2.1 of the License, or (at your option) any later version.
  90418. +
  90419. + The GNU C Library is distributed in the hope that it will be useful,
  90420. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  90421. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  90422. + Lesser General Public License for more details.
  90423. +
  90424. + You should have received a copy of the GNU Lesser General Public
  90425. + License along with the GNU C Library; if not, write to the Free
  90426. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90427. + 02111-1307 USA. */
  90428. +
  90429. +#include <sysdep.h>
  90430. +
  90431. +/* Default stack size. */
  90432. +#define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
  90433. +
  90434. +/* Required stack pointer alignment at beginning. */
  90435. +#define STACK_ALIGN 8
  90436. +
  90437. +/* Minimal stack size after allocating thread descriptor and guard size. */
  90438. +#define MINIMAL_REST_STACK 2048
  90439. +
  90440. +/* Alignment requirement for TCB. */
  90441. +#define TCB_ALIGNMENT 8
  90442. +
  90443. +
  90444. +/* Location of current stack frame. */
  90445. +#define CURRENT_STACK_FRAME __builtin_frame_address (0)
  90446. +
  90447. +
  90448. +/* XXX Until we have a better place keep the definitions here. */
  90449. +#define __exit_thread_inline(val) \
  90450. + INLINE_SYSCALL (exit, 1, (val))
  90451. 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
  90452. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthread_spin_init.c 1970-01-01 01:00:00.000000000 +0100
  90453. +++ uClibc-git/libpthread/nptl/sysdeps/metag/pthread_spin_init.c 2014-06-02 17:40:35.066717808 +0200
  90454. @@ -0,0 +1,20 @@
  90455. +/* Copyright (C) 2002 Free Software Foundation, Inc.
  90456. + This file is part of the GNU C Library.
  90457. + Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
  90458. +
  90459. + The GNU C Library is free software; you can redistribute it and/or
  90460. + modify it under the terms of the GNU Lesser General Public
  90461. + License as published by the Free Software Foundation; either
  90462. + version 2.1 of the License, or (at your option) any later version.
  90463. +
  90464. + The GNU C Library is distributed in the hope that it will be useful,
  90465. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  90466. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  90467. + Lesser General Public License for more details.
  90468. +
  90469. + You should have received a copy of the GNU Lesser General Public
  90470. + License along with the GNU C Library; if not, write to the Free
  90471. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90472. + 02111-1307 USA. */
  90473. +
  90474. +/* Not needed. pthread_spin_init is an alias for pthread_spin_unlock. */
  90475. 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
  90476. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthread_spin_lock.S 1970-01-01 01:00:00.000000000 +0100
  90477. +++ uClibc-git/libpthread/nptl/sysdeps/metag/pthread_spin_lock.S 2014-06-02 17:40:35.066717808 +0200
  90478. @@ -0,0 +1,20 @@
  90479. +! Copyright (C) 2013 Imagination Technologies Ltd.
  90480. +
  90481. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  90482. +
  90483. + .text
  90484. + .global _pthread_spin_lock
  90485. + .type _pthread_spin_lock,function
  90486. +_pthread_spin_lock:
  90487. +1: LNKGETD D0Ar2, [D1Ar1]
  90488. + CMP D0Ar2, #0
  90489. + ADD D0Ar2, D0Ar2, #1
  90490. + LNKSETDEQ [D1Ar1], D0Ar2
  90491. + BNE 1b
  90492. + DEFR D0Ar2, TXSTAT
  90493. + ANDT D0Ar2, D0Ar2, #HI(0x3f000000)
  90494. + CMPT D0Ar2, #HI(0x02000000)
  90495. + BNZ 1b
  90496. + MOV D0Re0, #0
  90497. + MOV PC, D1RtP
  90498. + .size _pthread_spin_lock,.-_pthread_spin_lock
  90499. 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
  90500. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthread_spin_trylock.S 1970-01-01 01:00:00.000000000 +0100
  90501. +++ uClibc-git/libpthread/nptl/sysdeps/metag/pthread_spin_trylock.S 2014-06-02 17:40:35.066717808 +0200
  90502. @@ -0,0 +1,24 @@
  90503. +! Copyright (C) 2013 Imagination Technologies Ltd.
  90504. +
  90505. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  90506. +
  90507. +#include <pthread-errnos.h>
  90508. +
  90509. + .text
  90510. + .global _pthread_spin_trylock
  90511. + .type _pthread_spin_trylock,function
  90512. +_pthread_spin_trylock:
  90513. +1: MOVT D0Re0, #HI(#EBUSY)
  90514. + ADD D0Re0, D0Re0, #LO(#EBUSY)
  90515. + LNKGETD D0Ar2, [D1Ar1]
  90516. + CMP D0Ar2, #0
  90517. + ADD D0Ar2, D0Ar2, #1
  90518. + LNKSETDEQ [D1Ar1], D0Ar2
  90519. + BNE 2f
  90520. + DEFR D0Ar2, TXSTAT
  90521. + ANDT D0Ar2, D0Ar2, #HI(0x3f000000)
  90522. + CMPT D0Ar2, #HI(0x02000000)
  90523. + BNZ 1b
  90524. + MOV D0Re0, #0
  90525. +2: MOV PC, D1RtP
  90526. + .size _pthread_spin_trylock,.-_pthread_spin_trylock
  90527. 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
  90528. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthread_spin_unlock.S 1970-01-01 01:00:00.000000000 +0100
  90529. +++ uClibc-git/libpthread/nptl/sysdeps/metag/pthread_spin_unlock.S 2014-06-02 17:40:35.066717808 +0200
  90530. @@ -0,0 +1,16 @@
  90531. +! Copyright (C) 2013 Imagination Technologies Ltd.
  90532. +
  90533. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  90534. +
  90535. + .text
  90536. + .global _pthread_spin_unlock
  90537. + .type _pthread_spin_unlock,function
  90538. +_pthread_spin_unlock:
  90539. + MOV D0Re0, #0
  90540. + SETD [D1Ar1], D0Re0
  90541. + MOV PC, D1RtP
  90542. + .size _pthread_spin_unlock,.-_pthread_spin_unlock
  90543. +
  90544. + /* The implementation of pthread_spin_init is identical. */
  90545. + .global _pthread_spin_init
  90546. +_pthread_spin_init = _pthread_spin_unlock
  90547. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/tcb-offsets.sym uClibc-git/libpthread/nptl/sysdeps/metag/tcb-offsets.sym
  90548. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/tcb-offsets.sym 1970-01-01 01:00:00.000000000 +0100
  90549. +++ uClibc-git/libpthread/nptl/sysdeps/metag/tcb-offsets.sym 2014-06-02 17:40:35.066717808 +0200
  90550. @@ -0,0 +1,15 @@
  90551. +#include <sysdep.h>
  90552. +#include <tls.h>
  90553. +
  90554. +RESULT offsetof (struct pthread, result)
  90555. +TID offsetof (struct pthread, tid)
  90556. +PID offsetof (struct pthread, pid)
  90557. +CANCELHANDLING offsetof (struct pthread, cancelhandling)
  90558. +CLEANUP_JMP_BUF offsetof (struct pthread, cleanup_jmp_buf)
  90559. +MULTIPLE_THREADS_OFFSET offsetof (struct pthread, header.multiple_threads)
  90560. +TLS_PRE_TCB_SIZE sizeof (struct pthread)
  90561. +MUTEX_FUTEX offsetof (pthread_mutex_t, __data.__lock)
  90562. +POINTER_GUARD offsetof (tcbhead_t, pointer_guard)
  90563. +#ifndef __ASSUME_PRIVATE_FUTEX
  90564. +PRIVATE_FUTEX offsetof (struct pthread, header.private_futex)
  90565. +#endif
  90566. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/tls.h uClibc-git/libpthread/nptl/sysdeps/metag/tls.h
  90567. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/tls.h 1970-01-01 01:00:00.000000000 +0100
  90568. +++ uClibc-git/libpthread/nptl/sysdeps/metag/tls.h 2014-06-02 17:40:35.066717808 +0200
  90569. @@ -0,0 +1,163 @@
  90570. +/* Definition for thread-local data handling. NPTL/Meta version.
  90571. + Copyright (C) 2003, 2005, 2006, 2007 Free Software Foundation, Inc.
  90572. + This file is part of the GNU C Library.
  90573. +
  90574. + The GNU C Library is free software; you can redistribute it and/or
  90575. + modify it under the terms of the GNU Lesser General Public
  90576. + License as published by the Free Software Foundation; either
  90577. + version 2.1 of the License, or (at your option) any later version.
  90578. +
  90579. + The GNU C Library is distributed in the hope that it will be useful,
  90580. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  90581. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  90582. + Lesser General Public License for more details.
  90583. +
  90584. + You should have received a copy of the GNU Lesser General Public
  90585. + License along with the GNU C Library; if not, write to the Free
  90586. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90587. + 02111-1307 USA. */
  90588. +
  90589. +#ifndef _TLS_H
  90590. +#define _TLS_H
  90591. +
  90592. +#ifndef __ASSEMBLER__
  90593. +# include <stdbool.h>
  90594. +# include <stddef.h>
  90595. +# include <stdint.h>
  90596. +# include <stdlib.h>
  90597. +# include <list.h>
  90598. +# include <sysdep.h>
  90599. +# include <bits/kernel-features.h>
  90600. +
  90601. +/* Type for the dtv. */
  90602. +typedef union dtv
  90603. +{
  90604. + size_t counter;
  90605. + struct
  90606. + {
  90607. + void *val;
  90608. + bool is_static;
  90609. + } pointer;
  90610. +} dtv_t;
  90611. +
  90612. +typedef struct
  90613. +{
  90614. + dtv_t *dtv;
  90615. + uintptr_t pointer_guard;
  90616. +} tcbhead_t;
  90617. +
  90618. +# define TLS_MULTIPLE_THREADS_IN_TCB 1
  90619. +
  90620. +#else /* __ASSEMBLER__ */
  90621. +# include <tcb-offsets.h>
  90622. +#endif /* __ASSEMBLER__ */
  90623. +
  90624. +
  90625. +/* We require TLS support in the tools. */
  90626. +#define HAVE_TLS_SUPPORT
  90627. +#define HAVE___THREAD 1
  90628. +#define HAVE_TLS_MODEL_ATTRIBUTE 1
  90629. +/* Signal that TLS support is available. */
  90630. +# define USE_TLS 1
  90631. +
  90632. +#ifndef __ASSEMBLER__
  90633. +
  90634. +/* Get system call information. */
  90635. +# include <sysdep.h>
  90636. +
  90637. +/* This is the size of the initial TCB. */
  90638. +# define TLS_INIT_TCB_SIZE sizeof (tcbhead_t)
  90639. +
  90640. +/* Alignment requirements for the initial TCB. */
  90641. +# define TLS_INIT_TCB_ALIGN __alignof__ (tcbhead_t)
  90642. +
  90643. +/* This is the size of the TCB. */
  90644. +# define TLS_TCB_SIZE sizeof (tcbhead_t)
  90645. +
  90646. +/* This is the size we need before TCB. */
  90647. +# define TLS_PRE_TCB_SIZE sizeof (struct pthread)
  90648. +
  90649. +/* Alignment requirements for the TCB. */
  90650. +# define TLS_TCB_ALIGN __alignof__ (struct pthread)
  90651. +
  90652. +/* The TLS blocks start right after the TCB. */
  90653. +# define TLS_DTV_AT_TP 1
  90654. +
  90655. +/* Get the thread descriptor definition. */
  90656. +# include <descr.h>
  90657. +
  90658. +/* Install the dtv pointer. The pointer passed is to the element with
  90659. + index -1 which contain the length. */
  90660. +# define INSTALL_DTV(tcbp, dtvp) \
  90661. + ((tcbhead_t *) (tcbp))->dtv = (dtvp) + 1
  90662. +
  90663. +/* Install new dtv for current thread. */
  90664. +# define INSTALL_NEW_DTV(dtv) \
  90665. + (((tcbhead_t *)__builtin_thread_pointer ())->dtv = (dtv))
  90666. +
  90667. +/* Return dtv of given thread descriptor. */
  90668. +# define GET_DTV(tcbp) \
  90669. + (((tcbhead_t *) (tcbp))->dtv)
  90670. +
  90671. +/* Code to initially initialize the thread pointer. This might need
  90672. + special attention since 'errno' is not yet available and if the
  90673. + operation can cause a failure 'errno' must not be touched. */
  90674. +# define TLS_INIT_TP(tcbp, secondcall) \
  90675. + ({ INTERNAL_SYSCALL_DECL (err); \
  90676. + long result_var; \
  90677. + result_var = INTERNAL_SYSCALL (metag_set_tls, err, 1, (tcbp)); \
  90678. + INTERNAL_SYSCALL_ERROR_P (result_var, err) \
  90679. + ? "unknown error" : NULL; })
  90680. +
  90681. +/* Return the address of the dtv for the current thread. */
  90682. +# define THREAD_DTV() \
  90683. + (((tcbhead_t *)__builtin_thread_pointer ())->dtv)
  90684. +
  90685. +/* Return the thread descriptor for the current thread.
  90686. + The contained asm must *not* be marked volatile since otherwise
  90687. + assignments like
  90688. + struct pthread *self = thread_self();
  90689. + do not get optimized away. */
  90690. +# define THREAD_SELF \
  90691. + ((struct pthread *)__builtin_thread_pointer () - 1)
  90692. +
  90693. +/* Magic for libthread_db to know how to do THREAD_SELF. */
  90694. +# define DB_THREAD_SELF \
  90695. + CONST_THREAD_AREA (32, sizeof (struct pthread))
  90696. +
  90697. +/* Access to data in the thread descriptor is easy. */
  90698. +#define THREAD_GETMEM(descr, member) \
  90699. + descr->member
  90700. +#define THREAD_GETMEM_NC(descr, member, idx) \
  90701. + descr->member[idx]
  90702. +#define THREAD_SETMEM(descr, member, value) \
  90703. + descr->member = (value)
  90704. +#define THREAD_SETMEM_NC(descr, member, idx, value) \
  90705. + descr->member[idx] = (value)
  90706. +
  90707. +/* Get and set the global scope generation counter in struct pthread. */
  90708. +#define THREAD_GSCOPE_FLAG_UNUSED 0
  90709. +#define THREAD_GSCOPE_FLAG_USED 1
  90710. +#define THREAD_GSCOPE_FLAG_WAIT 2
  90711. +#define THREAD_GSCOPE_RESET_FLAG() \
  90712. + do \
  90713. + { int __res \
  90714. + = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \
  90715. + THREAD_GSCOPE_FLAG_UNUSED); \
  90716. + if (__res == THREAD_GSCOPE_FLAG_WAIT) \
  90717. + lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \
  90718. + } \
  90719. + while (0)
  90720. +#define THREAD_GSCOPE_SET_FLAG() \
  90721. + do \
  90722. + { \
  90723. + THREAD_SELF->header.gscope_flag = THREAD_GSCOPE_FLAG_USED; \
  90724. + atomic_write_barrier (); \
  90725. + } \
  90726. + while (0)
  90727. +#define THREAD_GSCOPE_WAIT() \
  90728. + GL(dl_wait_lookup_done) ()
  90729. +
  90730. +#endif /* __ASSEMBLER__ */
  90731. +
  90732. +#endif /* tls.h */
  90733. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/mips/dl-tls.h
  90734. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
  90735. +++ uClibc-git/libpthread/nptl/sysdeps/mips/dl-tls.h 2014-06-02 17:40:35.066717808 +0200
  90736. @@ -13,9 +13,8 @@
  90737. Lesser General Public License for more details.
  90738. You should have received a copy of the GNU Lesser General Public
  90739. - License along with the GNU C Library; if not, write to the Free
  90740. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90741. - 02111-1307 USA. */
  90742. + License along with the GNU C Library; if not, see
  90743. + <http://www.gnu.org/licenses/>. */
  90744. /* Type used for the representation of TLS information in the GOT. */
  90745. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/mips/jmpbuf-unwind.h
  90746. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
  90747. +++ uClibc-git/libpthread/nptl/sysdeps/mips/jmpbuf-unwind.h 2014-06-02 17:40:35.066717808 +0200
  90748. @@ -12,9 +12,8 @@
  90749. Lesser General Public License for more details.
  90750. You should have received a copy of the GNU Lesser General Public
  90751. - License along with the GNU C Library; if not, write to the Free
  90752. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90753. - 02111-1307 USA. */
  90754. + License along with the GNU C Library; if not, see
  90755. + <http://www.gnu.org/licenses/>. */
  90756. #include <setjmp.h>
  90757. #include <stdint.h>
  90758. @@ -25,6 +24,3 @@
  90759. #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  90760. ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[0].__sp - (_adj))
  90761. -
  90762. -/* We use the normal longjmp for unwinding. */
  90763. -#define __libc_unwind_longjmp(buf, val) longjmp (buf, val)
  90764. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/libc-tls.c uClibc-git/libpthread/nptl/sysdeps/mips/libc-tls.c
  90765. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/libc-tls.c 2012-05-15 09:20:09.000000000 +0200
  90766. +++ uClibc-git/libpthread/nptl/sysdeps/mips/libc-tls.c 2014-06-02 17:40:35.066717808 +0200
  90767. @@ -13,9 +13,8 @@
  90768. Lesser General Public License for more details.
  90769. You should have received a copy of the GNU Lesser General Public
  90770. - License along with the GNU C Library; if not, write to the Free
  90771. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90772. - 02111-1307 USA. */
  90773. + License along with the GNU C Library; if not, see
  90774. + <http://www.gnu.org/licenses/>. */
  90775. #include <sysdeps/generic/libc-tls.c>
  90776. #include <dl-tls.h>
  90777. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/mips/pthreaddef.h
  90778. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
  90779. +++ uClibc-git/libpthread/nptl/sysdeps/mips/pthreaddef.h 2014-06-02 17:40:35.066717808 +0200
  90780. @@ -12,9 +12,8 @@
  90781. Lesser General Public License for more details.
  90782. You should have received a copy of the GNU Lesser General Public
  90783. - License along with the GNU C Library; if not, write to the Free
  90784. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90785. - 02111-1307 USA. */
  90786. + License along with the GNU C Library; if not, see
  90787. + <http://www.gnu.org/licenses/>. */
  90788. /* Default stack size. */
  90789. #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
  90790. 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
  90791. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/pthread_spin_lock.S 2012-05-15 09:20:09.000000000 +0200
  90792. +++ uClibc-git/libpthread/nptl/sysdeps/mips/pthread_spin_lock.S 2014-06-02 17:40:35.066717808 +0200
  90793. @@ -12,9 +12,8 @@
  90794. Lesser General Public License for more details.
  90795. You should have received a copy of the GNU Lesser General Public
  90796. - License along with the GNU C Library; if not, write to the Free
  90797. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90798. - 02111-1307 USA. */
  90799. + License along with the GNU C Library; if not, see
  90800. + <http://www.gnu.org/licenses/>. */
  90801. #include <sys/asm.h>
  90802. #include <sysdep.h>
  90803. 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
  90804. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
  90805. +++ uClibc-git/libpthread/nptl/sysdeps/mips/pthread_spin_trylock.S 2014-06-02 17:40:35.066717808 +0200
  90806. @@ -12,9 +12,8 @@
  90807. Lesser General Public License for more details.
  90808. You should have received a copy of the GNU Lesser General Public
  90809. - License along with the GNU C Library; if not, write to the Free
  90810. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90811. - 02111-1307 USA. */
  90812. + License along with the GNU C Library; if not, see
  90813. + <http://www.gnu.org/licenses/>. */
  90814. #include <sys/asm.h>
  90815. #include <sysdep.h>
  90816. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/regdef.h uClibc-git/libpthread/nptl/sysdeps/mips/regdef.h
  90817. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/regdef.h 2012-05-15 09:20:09.000000000 +0200
  90818. +++ uClibc-git/libpthread/nptl/sysdeps/mips/regdef.h 2014-06-02 17:40:35.066717808 +0200
  90819. @@ -13,9 +13,8 @@
  90820. Lesser General Public License for more details.
  90821. You should have received a copy of the GNU Lesser General Public
  90822. - License along with the GNU C Library; if not, write to the Free
  90823. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90824. - 02111-1307 USA. */
  90825. + License along with the GNU C Library; if not, see
  90826. + <http://www.gnu.org/licenses/>. */
  90827. #ifndef _REGDEF_H
  90828. #define _REGDEF_H
  90829. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/tls.h uClibc-git/libpthread/nptl/sysdeps/mips/tls.h
  90830. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/tls.h 2012-05-15 09:20:09.000000000 +0200
  90831. +++ uClibc-git/libpthread/nptl/sysdeps/mips/tls.h 2014-06-02 17:40:35.066717808 +0200
  90832. @@ -13,9 +13,8 @@
  90833. Lesser General Public License for more details.
  90834. You should have received a copy of the GNU Lesser General Public
  90835. - License along with the GNU C Library; if not, write to the Free
  90836. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90837. - 02111-1307 USA. */
  90838. + License along with the GNU C Library; if not, see
  90839. + <http://www.gnu.org/licenses/>. */
  90840. #ifndef _TLS_H
  90841. #define _TLS_H 1
  90842. @@ -121,7 +120,7 @@
  90843. operation can cause a failure 'errno' must not be touched. */
  90844. # define TLS_INIT_TP(tcbp, secondcall) \
  90845. ({ INTERNAL_SYSCALL_DECL (err); \
  90846. - long result_var; \
  90847. + long result_var attribute_unused; \
  90848. result_var = INTERNAL_SYSCALL (set_thread_area, err, 1, \
  90849. (char *) (tcbp) + TLS_TCB_OFFSET); \
  90850. INTERNAL_SYSCALL_ERROR_P (result_var, err) \
  90851. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/powerpc/dl-tls.h
  90852. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
  90853. +++ uClibc-git/libpthread/nptl/sysdeps/powerpc/dl-tls.h 2014-06-02 17:40:35.066717808 +0200
  90854. @@ -13,9 +13,8 @@
  90855. Lesser General Public License for more details.
  90856. You should have received a copy of the GNU Lesser General Public
  90857. - License along with the GNU C Library; if not, write to the Free
  90858. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90859. - 02111-1307 USA. */
  90860. + License along with the GNU C Library; if not, see
  90861. + <http://www.gnu.org/licenses/>. */
  90862. /* Type used for the representation of TLS information in the TOC. */
  90863. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/powerpc/jmpbuf-unwind.h
  90864. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
  90865. +++ uClibc-git/libpthread/nptl/sysdeps/powerpc/jmpbuf-unwind.h 2014-06-02 17:40:35.066717808 +0200
  90866. @@ -13,9 +13,8 @@
  90867. Lesser General Public License for more details.
  90868. You should have received a copy of the GNU Lesser General Public
  90869. - License along with the GNU C Library; if not, write to the Free
  90870. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90871. - 02111-1307 USA. */
  90872. + License along with the GNU C Library; if not, see
  90873. + <http://www.gnu.org/licenses/>. */
  90874. #include <setjmp.h>
  90875. #include <stdint.h>
  90876. @@ -26,6 +25,3 @@
  90877. #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  90878. ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_GPR1] - (_adj))
  90879. -
  90880. -/* We use the normal lobngjmp for unwinding. */
  90881. -#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
  90882. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/powerpc/pthreaddef.h
  90883. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
  90884. +++ uClibc-git/libpthread/nptl/sysdeps/powerpc/pthreaddef.h 2014-06-02 17:40:35.066717808 +0200
  90885. @@ -12,9 +12,8 @@
  90886. Lesser General Public License for more details.
  90887. You should have received a copy of the GNU Lesser General Public
  90888. - License along with the GNU C Library; if not, write to the Free
  90889. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90890. - 02111-1307 USA. */
  90891. + License along with the GNU C Library; if not, see
  90892. + <http://www.gnu.org/licenses/>. */
  90893. /* Default stack size. */
  90894. #define ARCH_STACK_DEFAULT_SIZE (4 * 1024 * 1024)
  90895. 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
  90896. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/pthread_spin_lock.c 2012-05-15 09:20:09.000000000 +0200
  90897. +++ uClibc-git/libpthread/nptl/sysdeps/powerpc/pthread_spin_lock.c 2014-06-02 17:40:35.066717808 +0200
  90898. @@ -13,9 +13,8 @@
  90899. Lesser General Public License for more details.
  90900. You should have received a copy of the GNU Lesser General Public
  90901. - License along with the GNU C Library; if not, write to the Free
  90902. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90903. - 02111-1307 USA. */
  90904. + License along with the GNU C Library; if not, see
  90905. + <http://www.gnu.org/licenses/>. */
  90906. #include "pthreadP.h"
  90907. 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
  90908. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/pthread_spin_trylock.c 2012-05-15 09:20:09.000000000 +0200
  90909. +++ uClibc-git/libpthread/nptl/sysdeps/powerpc/pthread_spin_trylock.c 2014-06-02 17:40:35.066717808 +0200
  90910. @@ -13,9 +13,8 @@
  90911. Lesser General Public License for more details.
  90912. You should have received a copy of the GNU Lesser General Public
  90913. - License along with the GNU C Library; if not, write to the Free
  90914. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90915. - 02111-1307 USA. */
  90916. + License along with the GNU C Library; if not, see
  90917. + <http://www.gnu.org/licenses/>. */
  90918. #include <errno.h>
  90919. #include "pthreadP.h"
  90920. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/tls.h uClibc-git/libpthread/nptl/sysdeps/powerpc/tls.h
  90921. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/tls.h 2012-05-15 09:20:09.000000000 +0200
  90922. +++ uClibc-git/libpthread/nptl/sysdeps/powerpc/tls.h 2014-06-02 17:40:35.070717830 +0200
  90923. @@ -13,9 +13,8 @@
  90924. Lesser General Public License for more details.
  90925. You should have received a copy of the GNU Lesser General Public
  90926. - License along with the GNU C Library; if not, write to the Free
  90927. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90928. - 02111-1307 USA. */
  90929. + License along with the GNU C Library; if not, see
  90930. + <http://www.gnu.org/licenses/>. */
  90931. #ifndef _TLS_H
  90932. #define _TLS_H 1
  90933. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/allocalim.h uClibc-git/libpthread/nptl/sysdeps/pthread/allocalim.h
  90934. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/allocalim.h 2012-05-15 09:20:09.000000000 +0200
  90935. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/allocalim.h 2014-06-02 17:40:35.070717830 +0200
  90936. @@ -13,9 +13,8 @@
  90937. Lesser General Public License for more details.
  90938. You should have received a copy of the GNU Lesser General Public
  90939. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  90940. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  90941. - Boston, MA 02111-1307, USA. */
  90942. + License along with the GNU C Library; see the file COPYING.LIB. If
  90943. + not, see <http://www.gnu.org/licenses/>. */
  90944. #include <alloca.h>
  90945. #include <limits.h>
  90946. 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
  90947. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/bits/libc-lock.h 2012-05-15 09:20:09.000000000 +0200
  90948. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/bits/libc-lock.h 2014-06-02 17:40:35.070717830 +0200
  90949. @@ -13,9 +13,8 @@
  90950. Lesser General Public License for more details.
  90951. You should have received a copy of the GNU Lesser General Public
  90952. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  90953. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  90954. - Boston, MA 02111-1307, USA. */
  90955. + License along with the GNU C Library; see the file COPYING.LIB. If
  90956. + not, see <http://www.gnu.org/licenses/>. */
  90957. #ifndef _BITS_LIBC_LOCK_H
  90958. #define _BITS_LIBC_LOCK_H 1
  90959. @@ -475,7 +474,7 @@
  90960. library. */
  90961. extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
  90962. - __const pthread_mutexattr_t *__mutex_attr);
  90963. + const pthread_mutexattr_t *__mutex_attr);
  90964. extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
  90965. @@ -494,7 +493,7 @@
  90966. #ifdef __USE_UNIX98
  90967. extern int __pthread_rwlock_init (pthread_rwlock_t *__rwlock,
  90968. - __const pthread_rwlockattr_t *__attr);
  90969. + const pthread_rwlockattr_t *__attr);
  90970. extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
  90971. @@ -513,7 +512,7 @@
  90972. void (*__destr_function) (void *));
  90973. extern int __pthread_setspecific (pthread_key_t __key,
  90974. - __const void *__pointer);
  90975. + const void *__pointer);
  90976. extern void *__pthread_getspecific (pthread_key_t __key);
  90977. 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
  90978. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/bits/libc-tsd.h 2012-05-15 09:20:09.000000000 +0200
  90979. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/bits/libc-tsd.h 2014-06-02 17:40:35.070717830 +0200
  90980. @@ -13,9 +13,8 @@
  90981. Lesser General Public License for more details.
  90982. You should have received a copy of the GNU Lesser General Public
  90983. - License along with the GNU C Library; if not, write to the Free
  90984. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90985. - 02111-1307 USA. */
  90986. + License along with the GNU C Library; if not, see
  90987. + <http://www.gnu.org/licenses/>. */
  90988. #ifndef _GENERIC_BITS_LIBC_TSD_H
  90989. #define _GENERIC_BITS_LIBC_TSD_H 1
  90990. 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
  90991. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/bits/stdio-lock.h 2012-05-15 09:20:09.000000000 +0200
  90992. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/bits/stdio-lock.h 2014-06-02 17:40:35.070717830 +0200
  90993. @@ -13,9 +13,8 @@
  90994. Lesser General Public License for more details.
  90995. You should have received a copy of the GNU Lesser General Public
  90996. - License along with the GNU C Library; if not, write to the Free
  90997. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90998. - 02111-1307 USA. */
  90999. + License along with the GNU C Library; if not, see
  91000. + <http://www.gnu.org/licenses/>. */
  91001. #ifndef _BITS_STDIO_LOCK_H
  91002. #define _BITS_STDIO_LOCK_H 1
  91003. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/createthread.c uClibc-git/libpthread/nptl/sysdeps/pthread/createthread.c
  91004. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/createthread.c 2012-05-15 09:20:09.000000000 +0200
  91005. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/createthread.c 2014-06-02 17:40:35.070717830 +0200
  91006. @@ -13,9 +13,8 @@
  91007. Lesser General Public License for more details.
  91008. You should have received a copy of the GNU Lesser General Public
  91009. - License along with the GNU C Library; if not, write to the Free
  91010. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91011. - 02111-1307 USA. */
  91012. + License along with the GNU C Library; if not, see
  91013. + <http://www.gnu.org/licenses/>. */
  91014. #include <sched.h>
  91015. #include <setjmp.h>
  91016. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/librt-cancellation.c uClibc-git/libpthread/nptl/sysdeps/pthread/librt-cancellation.c
  91017. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/librt-cancellation.c 2012-05-15 09:20:09.000000000 +0200
  91018. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/librt-cancellation.c 2014-06-02 17:40:35.070717830 +0200
  91019. @@ -13,9 +13,8 @@
  91020. Lesser General Public License for more details.
  91021. You should have received a copy of the GNU Lesser General Public
  91022. - License along with the GNU C Library; if not, write to the Free
  91023. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91024. - 02111-1307 USA. */
  91025. + License along with the GNU C Library; if not, see
  91026. + <http://www.gnu.org/licenses/>. */
  91027. #include "pthreadP.h"
  91028. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/list.h uClibc-git/libpthread/nptl/sysdeps/pthread/list.h
  91029. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/list.h 2012-05-15 09:20:09.000000000 +0200
  91030. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/list.h 2014-06-02 17:40:35.070717830 +0200
  91031. @@ -13,9 +13,8 @@
  91032. Lesser General Public License for more details.
  91033. You should have received a copy of the GNU Lesser General Public
  91034. - License along with the GNU C Library; if not, write to the Free
  91035. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91036. - 02111-1307 USA. */
  91037. + License along with the GNU C Library; if not, see
  91038. + <http://www.gnu.org/licenses/>. */
  91039. #ifndef _LIST_H
  91040. #define _LIST_H 1
  91041. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/Makefile.in uClibc-git/libpthread/nptl/sysdeps/pthread/Makefile.in
  91042. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  91043. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/Makefile.in 2014-06-02 17:40:35.070717830 +0200
  91044. @@ -33,7 +33,6 @@
  91045. pthread_spin_init.c \
  91046. pthread_spin_unlock.c \
  91047. pt-longjmp.c \
  91048. - pt-sigaction.c \
  91049. tpp.c
  91050. CFLAGS-pthread = $(SSP_ALL_CFLAGS) -DNOT_IN_libc -DIS_IN_libpthread
  91051. CFLAGS-pthread_barrier_wait.c = -D_GNU_SOURCE
  91052. @@ -49,8 +48,7 @@
  91053. CFLAGS-rt-unwind-resume.c = -DIS_IN_librt \
  91054. -fexceptions -fasynchronous-unwind-tables
  91055. -libpthread-so-y += $(patsubst %,$(libpthread_pthread_OUT)/%.oS, \
  91056. - unwind-forcedunwind)
  91057. +libpthread-so-y += $(patsubst %,$(libpthread_pthread_OUT)/%.oS, unwind-forcedunwind)
  91058. librt-pt-routines-y = librt-cancellation.c
  91059. librt-pt-shared-only-routines-y = rt-unwind-resume.c
  91060. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/malloc-machine.h uClibc-git/libpthread/nptl/sysdeps/pthread/malloc-machine.h
  91061. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/malloc-machine.h 2012-05-15 09:20:09.000000000 +0200
  91062. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/malloc-machine.h 2014-06-02 17:40:35.070717830 +0200
  91063. @@ -14,9 +14,8 @@
  91064. Lesser General Public License for more details.
  91065. You should have received a copy of the GNU Lesser General Public
  91066. - License along with the GNU C Library; if not, write to the Free
  91067. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91068. - 02111-1307 USA. */
  91069. + License along with the GNU C Library; if not, see
  91070. + <http://www.gnu.org/licenses/>. */
  91071. #ifndef _MALLOC_MACHINE_H
  91072. #define _MALLOC_MACHINE_H
  91073. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/posix-timer.h uClibc-git/libpthread/nptl/sysdeps/pthread/posix-timer.h
  91074. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/posix-timer.h 2012-05-15 09:20:09.000000000 +0200
  91075. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/posix-timer.h 2014-06-02 17:40:35.070717830 +0200
  91076. @@ -14,9 +14,8 @@
  91077. Lesser General Public License for more details.
  91078. You should have received a copy of the GNU Lesser General Public
  91079. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  91080. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  91081. - Boston, MA 02111-1307, USA. */
  91082. + License along with the GNU C Library; see the file COPYING.LIB. If
  91083. + not, see <http://www.gnu.org/licenses/>. */
  91084. #include <limits.h>
  91085. #include <signal.h>
  91086. 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
  91087. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_barrier_destroy.c 2012-05-15 09:20:09.000000000 +0200
  91088. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_barrier_destroy.c 2014-06-02 17:40:35.070717830 +0200
  91089. @@ -13,9 +13,8 @@
  91090. Lesser General Public License for more details.
  91091. You should have received a copy of the GNU Lesser General Public
  91092. - License along with the GNU C Library; if not, write to the Free
  91093. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91094. - 02111-1307 USA. */
  91095. + License along with the GNU C Library; if not, see
  91096. + <http://www.gnu.org/licenses/>. */
  91097. #include <errno.h>
  91098. #include "pthreadP.h"
  91099. 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
  91100. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_barrier_init.c 2012-05-15 09:20:09.000000000 +0200
  91101. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_barrier_init.c 2014-06-02 17:40:35.070717830 +0200
  91102. @@ -13,9 +13,8 @@
  91103. Lesser General Public License for more details.
  91104. You should have received a copy of the GNU Lesser General Public
  91105. - License along with the GNU C Library; if not, write to the Free
  91106. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91107. - 02111-1307 USA. */
  91108. + License along with the GNU C Library; if not, see
  91109. + <http://www.gnu.org/licenses/>. */
  91110. #include <errno.h>
  91111. #include "pthreadP.h"
  91112. 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
  91113. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_barrier_wait.c 2012-05-15 09:20:09.000000000 +0200
  91114. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_barrier_wait.c 2014-06-02 17:40:35.070717830 +0200
  91115. @@ -13,9 +13,8 @@
  91116. Lesser General Public License for more details.
  91117. You should have received a copy of the GNU Lesser General Public
  91118. - License along with the GNU C Library; if not, write to the Free
  91119. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91120. - 02111-1307 USA. */
  91121. + License along with the GNU C Library; if not, see
  91122. + <http://www.gnu.org/licenses/>. */
  91123. #include <errno.h>
  91124. #include <sysdep.h>
  91125. 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
  91126. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_cond_broadcast.c 2012-05-15 09:20:09.000000000 +0200
  91127. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_cond_broadcast.c 2014-06-02 17:40:35.070717830 +0200
  91128. @@ -13,9 +13,8 @@
  91129. Lesser General Public License for more details.
  91130. You should have received a copy of the GNU Lesser General Public
  91131. - License along with the GNU C Library; if not, write to the Free
  91132. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91133. - 02111-1307 USA. */
  91134. + License along with the GNU C Library; if not, see
  91135. + <http://www.gnu.org/licenses/>. */
  91136. #include <endian.h>
  91137. #include <errno.h>
  91138. 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
  91139. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_cond_signal.c 2012-05-15 09:20:09.000000000 +0200
  91140. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_cond_signal.c 2014-06-02 17:40:35.070717830 +0200
  91141. @@ -13,9 +13,8 @@
  91142. Lesser General Public License for more details.
  91143. You should have received a copy of the GNU Lesser General Public
  91144. - License along with the GNU C Library; if not, write to the Free
  91145. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91146. - 02111-1307 USA. */
  91147. + License along with the GNU C Library; if not, see
  91148. + <http://www.gnu.org/licenses/>. */
  91149. #include <endian.h>
  91150. #include <errno.h>
  91151. 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
  91152. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_cond_timedwait.c 2012-05-15 09:20:09.000000000 +0200
  91153. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_cond_timedwait.c 2014-06-02 17:40:35.070717830 +0200
  91154. @@ -13,9 +13,8 @@
  91155. Lesser General Public License for more details.
  91156. You should have received a copy of the GNU Lesser General Public
  91157. - License along with the GNU C Library; if not, write to the Free
  91158. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91159. - 02111-1307 USA. */
  91160. + License along with the GNU C Library; if not, see
  91161. + <http://www.gnu.org/licenses/>. */
  91162. #include <endian.h>
  91163. #include <errno.h>
  91164. @@ -100,8 +99,10 @@
  91165. {
  91166. #ifdef __NR_clock_gettime
  91167. INTERNAL_SYSCALL_DECL (err);
  91168. - int ret;
  91169. - ret = INTERNAL_SYSCALL (clock_gettime, err, 2,
  91170. +# ifndef __ASSUME_POSIX_TIMERS
  91171. + int ret =
  91172. +# endif
  91173. + INTERNAL_SYSCALL (clock_gettime, err, 2,
  91174. (cond->__data.__nwaiters
  91175. & ((1 << COND_NWAITERS_SHIFT) - 1)),
  91176. &rt);
  91177. 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
  91178. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_cond_wait.c 2012-05-15 09:20:09.000000000 +0200
  91179. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_cond_wait.c 2014-06-02 17:40:35.070717830 +0200
  91180. @@ -13,9 +13,8 @@
  91181. Lesser General Public License for more details.
  91182. You should have received a copy of the GNU Lesser General Public
  91183. - License along with the GNU C Library; if not, write to the Free
  91184. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91185. - 02111-1307 USA. */
  91186. + License along with the GNU C Library; if not, see
  91187. + <http://www.gnu.org/licenses/>. */
  91188. #include <endian.h>
  91189. #include <errno.h>
  91190. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread-functions.h uClibc-git/libpthread/nptl/sysdeps/pthread/pthread-functions.h
  91191. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread-functions.h 2012-05-15 09:20:09.000000000 +0200
  91192. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread-functions.h 2014-06-02 17:40:35.070717830 +0200
  91193. @@ -13,9 +13,8 @@
  91194. Lesser General Public License for more details.
  91195. You should have received a copy of the GNU Lesser General Public
  91196. - License along with the GNU C Library; if not, write to the Free
  91197. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91198. - 02111-1307 USA. */
  91199. + License along with the GNU C Library; if not, see
  91200. + <http://www.gnu.org/licenses/>. */
  91201. #ifndef _PTHREAD_FUNCTIONS_H
  91202. #define _PTHREAD_FUNCTIONS_H 1
  91203. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread.h uClibc-git/libpthread/nptl/sysdeps/pthread/pthread.h
  91204. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread.h 2012-05-15 09:20:09.000000000 +0200
  91205. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread.h 2014-06-02 17:40:35.070717830 +0200
  91206. @@ -13,9 +13,8 @@
  91207. Lesser General Public License for more details.
  91208. You should have received a copy of the GNU Lesser General Public
  91209. - License along with the GNU C Library; if not, write to the Free
  91210. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91211. - 02111-1307 USA. */
  91212. + License along with the GNU C Library; if not, see
  91213. + <http://www.gnu.org/licenses/>. */
  91214. #ifndef _PTHREAD_H
  91215. #define _PTHREAD_H 1
  91216. @@ -228,7 +227,7 @@
  91217. getting passed ARG. Creation attributed come from ATTR. The new
  91218. handle is stored in *NEWTHREAD. */
  91219. extern int pthread_create (pthread_t *__restrict __newthread,
  91220. - __const pthread_attr_t *__restrict __attr,
  91221. + const pthread_attr_t *__restrict __attr,
  91222. void *(*__start_routine) (void *),
  91223. void *__restrict __arg) __THROW __nonnull ((1, 3));
  91224. @@ -258,7 +257,7 @@
  91225. This function is a cancellation point and therefore not marked with
  91226. __THROW. */
  91227. extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
  91228. - __const struct timespec *__abstime);
  91229. + const struct timespec *__abstime);
  91230. #endif
  91231. /* Indicate that the thread TH is never to be joined with PTHREAD_JOIN.
  91232. @@ -287,7 +286,7 @@
  91233. __THROW __nonnull ((1));
  91234. /* Get detach state attribute. */
  91235. -extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
  91236. +extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr,
  91237. int *__detachstate)
  91238. __THROW __nonnull ((1, 2));
  91239. @@ -298,7 +297,7 @@
  91240. /* Get the size of the guard area created for stack overflow protection. */
  91241. -extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr,
  91242. +extern int pthread_attr_getguardsize (const pthread_attr_t *__attr,
  91243. size_t *__guardsize)
  91244. __THROW __nonnull ((1, 2));
  91245. @@ -309,18 +308,18 @@
  91246. /* Return in *PARAM the scheduling parameters of *ATTR. */
  91247. -extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
  91248. +extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict
  91249. __attr,
  91250. struct sched_param *__restrict __param)
  91251. __THROW __nonnull ((1, 2));
  91252. /* Set scheduling parameters (priority, etc) in *ATTR according to PARAM. */
  91253. extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
  91254. - __const struct sched_param *__restrict
  91255. + const struct sched_param *__restrict
  91256. __param) __THROW __nonnull ((1, 2));
  91257. /* Return in *POLICY the scheduling policy of *ATTR. */
  91258. -extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
  91259. +extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict
  91260. __attr, int *__restrict __policy)
  91261. __THROW __nonnull ((1, 2));
  91262. @@ -329,7 +328,7 @@
  91263. __THROW __nonnull ((1));
  91264. /* Return in *INHERIT the scheduling inheritance mode of *ATTR. */
  91265. -extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
  91266. +extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict
  91267. __attr, int *__restrict __inherit)
  91268. __THROW __nonnull ((1, 2));
  91269. @@ -340,7 +339,7 @@
  91270. /* Return in *SCOPE the scheduling contention scope of *ATTR. */
  91271. -extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
  91272. +extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr,
  91273. int *__restrict __scope)
  91274. __THROW __nonnull ((1, 2));
  91275. @@ -349,7 +348,7 @@
  91276. __THROW __nonnull ((1));
  91277. /* Return the previously set address for the stack. */
  91278. -extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
  91279. +extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict
  91280. __attr, void **__restrict __stackaddr)
  91281. __THROW __nonnull ((1, 2)) __attribute_deprecated__;
  91282. @@ -362,7 +361,7 @@
  91283. __THROW __nonnull ((1)) __attribute_deprecated__;
  91284. /* Return the currently used minimal stack size. */
  91285. -extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
  91286. +extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict
  91287. __attr, size_t *__restrict __stacksize)
  91288. __THROW __nonnull ((1, 2));
  91289. @@ -375,7 +374,7 @@
  91290. #ifdef __USE_XOPEN2K
  91291. /* Return the previously set address for the stack. */
  91292. -extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
  91293. +extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr,
  91294. void **__restrict __stackaddr,
  91295. size_t *__restrict __stacksize)
  91296. __THROW __nonnull ((1, 2, 3));
  91297. @@ -392,12 +391,12 @@
  91298. the processors represented in CPUSET. */
  91299. extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
  91300. size_t __cpusetsize,
  91301. - __const cpu_set_t *__cpuset)
  91302. + const cpu_set_t *__cpuset)
  91303. __THROW __nonnull ((1, 3));
  91304. /* Get bit set in CPUSET representing the processors threads created with
  91305. ATTR can run on. */
  91306. -extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr,
  91307. +extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr,
  91308. size_t __cpusetsize,
  91309. cpu_set_t *__cpuset)
  91310. __THROW __nonnull ((1, 3));
  91311. @@ -416,7 +415,7 @@
  91312. /* Set the scheduling parameters for TARGET_THREAD according to POLICY
  91313. and *PARAM. */
  91314. extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
  91315. - __const struct sched_param *__param)
  91316. + const struct sched_param *__param)
  91317. __THROW __nonnull ((3));
  91318. /* Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD. */
  91319. @@ -449,7 +448,7 @@
  91320. /* Limit specified thread TH to run only on the processors represented
  91321. in CPUSET. */
  91322. extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
  91323. - __const cpu_set_t *__cpuset)
  91324. + const cpu_set_t *__cpuset)
  91325. __THROW __nonnull ((3));
  91326. /* Get bit set in CPUSET representing the processors TH can run on. */
  91327. @@ -581,6 +580,7 @@
  91328. function the compiler is free to decide inlining the change when
  91329. needed or fall back on the copy which must exist somewhere
  91330. else. */
  91331. +void __pthread_cleanup_routine (struct __pthread_cleanup_frame *__frame);
  91332. __extern_inline void
  91333. __pthread_cleanup_routine (struct __pthread_cleanup_frame *__frame)
  91334. {
  91335. @@ -724,7 +724,7 @@
  91336. /* Initialize a mutex. */
  91337. extern int pthread_mutex_init (pthread_mutex_t *__mutex,
  91338. - __const pthread_mutexattr_t *__mutexattr)
  91339. + const pthread_mutexattr_t *__mutexattr)
  91340. __THROW __nonnull ((1));
  91341. /* Destroy a mutex. */
  91342. @@ -742,7 +742,7 @@
  91343. #ifdef __USE_XOPEN2K
  91344. /* Wait until lock becomes available, or specified time passes. */
  91345. extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
  91346. - __const struct timespec *__restrict
  91347. + const struct timespec *__restrict
  91348. __abstime) __THROW __nonnull ((1, 2));
  91349. #endif
  91350. @@ -752,7 +752,7 @@
  91351. /* Get the priority ceiling of MUTEX. */
  91352. -extern int pthread_mutex_getprioceiling (__const pthread_mutex_t *
  91353. +extern int pthread_mutex_getprioceiling (const pthread_mutex_t *
  91354. __restrict __mutex,
  91355. int *__restrict __prioceiling)
  91356. __THROW __nonnull ((1, 2));
  91357. @@ -788,7 +788,7 @@
  91358. __THROW __nonnull ((1));
  91359. /* Get the process-shared flag of the mutex attribute ATTR. */
  91360. -extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
  91361. +extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t *
  91362. __restrict __attr,
  91363. int *__restrict __pshared)
  91364. __THROW __nonnull ((1, 2));
  91365. @@ -800,7 +800,7 @@
  91366. #if defined __USE_UNIX98 || defined __USE_XOPEN2K8
  91367. /* Return in *KIND the mutex kind attribute in *ATTR. */
  91368. -extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
  91369. +extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict
  91370. __attr, int *__restrict __kind)
  91371. __THROW __nonnull ((1, 2));
  91372. @@ -812,7 +812,7 @@
  91373. #endif
  91374. /* Return in *PROTOCOL the mutex protocol attribute in *ATTR. */
  91375. -extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t *
  91376. +extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t *
  91377. __restrict __attr,
  91378. int *__restrict __protocol)
  91379. __THROW __nonnull ((1, 2));
  91380. @@ -824,7 +824,7 @@
  91381. __THROW __nonnull ((1));
  91382. /* Return in *PRIOCEILING the mutex prioceiling attribute in *ATTR. */
  91383. -extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t *
  91384. +extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t *
  91385. __restrict __attr,
  91386. int *__restrict __prioceiling)
  91387. __THROW __nonnull ((1, 2));
  91388. @@ -836,11 +836,11 @@
  91389. #ifdef __USE_XOPEN2K
  91390. /* Get the robustness flag of the mutex attribute ATTR. */
  91391. -extern int pthread_mutexattr_getrobust (__const pthread_mutexattr_t *__attr,
  91392. +extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr,
  91393. int *__robustness)
  91394. __THROW __nonnull ((1, 2));
  91395. # ifdef __USE_GNU
  91396. -extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr,
  91397. +extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr,
  91398. int *__robustness)
  91399. __THROW __nonnull ((1, 2));
  91400. # endif
  91401. @@ -863,7 +863,7 @@
  91402. /* Initialize read-write lock RWLOCK using attributes ATTR, or use
  91403. the default values if later is NULL. */
  91404. extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
  91405. - __const pthread_rwlockattr_t *__restrict
  91406. + const pthread_rwlockattr_t *__restrict
  91407. __attr) __THROW __nonnull ((1));
  91408. /* Destroy read-write lock RWLOCK. */
  91409. @@ -881,7 +881,7 @@
  91410. # ifdef __USE_XOPEN2K
  91411. /* Try to acquire read lock for RWLOCK or return after specfied time. */
  91412. extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
  91413. - __const struct timespec *__restrict
  91414. + const struct timespec *__restrict
  91415. __abstime) __THROW __nonnull ((1, 2));
  91416. # endif
  91417. @@ -896,7 +896,7 @@
  91418. # ifdef __USE_XOPEN2K
  91419. /* Try to acquire write lock for RWLOCK or return after specfied time. */
  91420. extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
  91421. - __const struct timespec *__restrict
  91422. + const struct timespec *__restrict
  91423. __abstime) __THROW __nonnull ((1, 2));
  91424. # endif
  91425. @@ -916,7 +916,7 @@
  91426. __THROW __nonnull ((1));
  91427. /* Return current setting of process-shared attribute of ATTR in PSHARED. */
  91428. -extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
  91429. +extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *
  91430. __restrict __attr,
  91431. int *__restrict __pshared)
  91432. __THROW __nonnull ((1, 2));
  91433. @@ -927,7 +927,7 @@
  91434. __THROW __nonnull ((1));
  91435. /* Return current setting of reader/writer preference. */
  91436. -extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *
  91437. +extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t *
  91438. __restrict __attr,
  91439. int *__restrict __pref)
  91440. __THROW __nonnull ((1, 2));
  91441. @@ -943,7 +943,7 @@
  91442. /* Initialize condition variable COND using attributes ATTR, or use
  91443. the default values if later is NULL. */
  91444. extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
  91445. - __const pthread_condattr_t *__restrict
  91446. + const pthread_condattr_t *__restrict
  91447. __cond_attr) __THROW __nonnull ((1));
  91448. /* Destroy condition variable COND. */
  91449. @@ -976,7 +976,7 @@
  91450. __THROW. */
  91451. extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
  91452. pthread_mutex_t *__restrict __mutex,
  91453. - __const struct timespec *__restrict
  91454. + const struct timespec *__restrict
  91455. __abstime) __nonnull ((1, 2, 3));
  91456. /* Functions for handling condition variable attributes. */
  91457. @@ -990,7 +990,7 @@
  91458. __THROW __nonnull ((1));
  91459. /* Get the process-shared flag of the condition variable attribute ATTR. */
  91460. -extern int pthread_condattr_getpshared (__const pthread_condattr_t *
  91461. +extern int pthread_condattr_getpshared (const pthread_condattr_t *
  91462. __restrict __attr,
  91463. int *__restrict __pshared)
  91464. __THROW __nonnull ((1, 2));
  91465. @@ -1001,7 +1001,7 @@
  91466. #ifdef __USE_XOPEN2K
  91467. /* Get the clock selected for the conditon variable attribute ATTR. */
  91468. -extern int pthread_condattr_getclock (__const pthread_condattr_t *
  91469. +extern int pthread_condattr_getclock (const pthread_condattr_t *
  91470. __restrict __attr,
  91471. __clockid_t *__restrict __clock_id)
  91472. __THROW __nonnull ((1, 2));
  91473. @@ -1043,7 +1043,7 @@
  91474. /* Initialize BARRIER with the attributes in ATTR. The barrier is
  91475. opened when COUNT waiters arrived. */
  91476. extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
  91477. - __const pthread_barrierattr_t *__restrict
  91478. + const pthread_barrierattr_t *__restrict
  91479. __attr, unsigned int __count)
  91480. __THROW __nonnull ((1));
  91481. @@ -1065,7 +1065,7 @@
  91482. __THROW __nonnull ((1));
  91483. /* Get the process-shared flag of the barrier attribute ATTR. */
  91484. -extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
  91485. +extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t *
  91486. __restrict __attr,
  91487. int *__restrict __pshared)
  91488. __THROW __nonnull ((1, 2));
  91489. @@ -1097,7 +1097,7 @@
  91490. /* Store POINTER in the thread-specific data slot identified by KEY. */
  91491. extern int pthread_setspecific (pthread_key_t __key,
  91492. - __const void *__pointer) __THROW ;
  91493. + const void *__pointer) __THROW ;
  91494. #ifdef __USE_XOPEN2K
  91495. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_once.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_once.c
  91496. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_once.c 2012-05-15 09:20:09.000000000 +0200
  91497. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_once.c 2014-06-02 17:40:35.070717830 +0200
  91498. @@ -13,9 +13,8 @@
  91499. Lesser General Public License for more details.
  91500. You should have received a copy of the GNU Lesser General Public
  91501. - License along with the GNU C Library; if not, write to the Free
  91502. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91503. - 02111-1307 USA. */
  91504. + License along with the GNU C Library; if not, see
  91505. + <http://www.gnu.org/licenses/>. */
  91506. #include "pthreadP.h"
  91507. #include <lowlevellock.h>
  91508. 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
  91509. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_rdlock.c 2012-05-15 09:20:09.000000000 +0200
  91510. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_rdlock.c 2014-06-02 17:40:35.070717830 +0200
  91511. @@ -13,9 +13,8 @@
  91512. Lesser General Public License for more details.
  91513. You should have received a copy of the GNU Lesser General Public
  91514. - License along with the GNU C Library; if not, write to the Free
  91515. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91516. - 02111-1307 USA. */
  91517. + License along with the GNU C Library; if not, see
  91518. + <http://www.gnu.org/licenses/>. */
  91519. #include <errno.h>
  91520. #include <sysdep.h>
  91521. 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
  91522. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c 2012-05-15 09:20:09.000000000 +0200
  91523. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c 2014-06-02 17:40:35.070717830 +0200
  91524. @@ -13,9 +13,8 @@
  91525. Lesser General Public License for more details.
  91526. You should have received a copy of the GNU Lesser General Public
  91527. - License along with the GNU C Library; if not, write to the Free
  91528. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91529. - 02111-1307 USA. */
  91530. + License along with the GNU C Library; if not, see
  91531. + <http://www.gnu.org/licenses/>. */
  91532. #include <errno.h>
  91533. #include <sysdep.h>
  91534. 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
  91535. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_timedwrlock.c 2012-05-15 09:20:09.000000000 +0200
  91536. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_timedwrlock.c 2014-06-02 17:40:35.070717830 +0200
  91537. @@ -13,9 +13,8 @@
  91538. Lesser General Public License for more details.
  91539. You should have received a copy of the GNU Lesser General Public
  91540. - License along with the GNU C Library; if not, write to the Free
  91541. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91542. - 02111-1307 USA. */
  91543. + License along with the GNU C Library; if not, see
  91544. + <http://www.gnu.org/licenses/>. */
  91545. #include <errno.h>
  91546. #include <sysdep.h>
  91547. 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
  91548. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_unlock.c 2012-05-15 09:20:09.000000000 +0200
  91549. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_unlock.c 2014-06-02 17:40:35.070717830 +0200
  91550. @@ -13,9 +13,8 @@
  91551. Lesser General Public License for more details.
  91552. You should have received a copy of the GNU Lesser General Public
  91553. - License along with the GNU C Library; if not, write to the Free
  91554. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91555. - 02111-1307 USA. */
  91556. + License along with the GNU C Library; if not, see
  91557. + <http://www.gnu.org/licenses/>. */
  91558. #include <errno.h>
  91559. #include <sysdep.h>
  91560. 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
  91561. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_wrlock.c 2012-05-15 09:20:09.000000000 +0200
  91562. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_wrlock.c 2014-06-02 17:40:35.070717830 +0200
  91563. @@ -13,9 +13,8 @@
  91564. Lesser General Public License for more details.
  91565. You should have received a copy of the GNU Lesser General Public
  91566. - License along with the GNU C Library; if not, write to the Free
  91567. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91568. - 02111-1307 USA. */
  91569. + License along with the GNU C Library; if not, see
  91570. + <http://www.gnu.org/licenses/>. */
  91571. #include <errno.h>
  91572. #include <sysdep.h>
  91573. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_sigmask.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_sigmask.c
  91574. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_sigmask.c 2012-05-15 09:20:09.000000000 +0200
  91575. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_sigmask.c 2014-06-02 17:40:35.070717830 +0200
  91576. @@ -13,9 +13,8 @@
  91577. Lesser General Public License for more details.
  91578. You should have received a copy of the GNU Lesser General Public
  91579. - License along with the GNU C Library; if not, write to the Free
  91580. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91581. - 02111-1307 USA. */
  91582. + License along with the GNU C Library; if not, see
  91583. + <http://www.gnu.org/licenses/>. */
  91584. #include <errno.h>
  91585. #include <signal.h>
  91586. 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
  91587. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_spin_destroy.c 2012-05-15 09:20:09.000000000 +0200
  91588. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_spin_destroy.c 2014-06-02 17:40:35.070717830 +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; if not, write to the Free
  91593. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91594. - 02111-1307 USA. */
  91595. + License along with the GNU C Library; if not, see
  91596. + <http://www.gnu.org/licenses/>. */
  91597. #include "pthreadP.h"
  91598. 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
  91599. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_spin_init.c 2012-05-15 09:20:09.000000000 +0200
  91600. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_spin_init.c 2014-06-02 17:40:35.070717830 +0200
  91601. @@ -14,9 +14,8 @@
  91602. Lesser General Public License for more details.
  91603. You should have received a copy of the GNU Lesser General Public
  91604. - License along with the GNU C Library; if not, write to the Free
  91605. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91606. - 02111-1307 USA. */
  91607. + License along with the GNU C Library; if not, see
  91608. + <http://www.gnu.org/licenses/>. */
  91609. #include "pthreadP.h"
  91610. 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
  91611. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_spin_unlock.c 2012-05-15 09:20:09.000000000 +0200
  91612. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_spin_unlock.c 2014-06-02 17:40:35.070717830 +0200
  91613. @@ -14,9 +14,8 @@
  91614. Lesser General Public License for more details.
  91615. You should have received a copy of the GNU Lesser General Public
  91616. - License along with the GNU C Library; if not, write to the Free
  91617. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91618. - 02111-1307 USA. */
  91619. + License along with the GNU C Library; if not, see
  91620. + <http://www.gnu.org/licenses/>. */
  91621. #include "pthreadP.h"
  91622. #include <atomic.h>
  91623. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pt-initfini.c uClibc-git/libpthread/nptl/sysdeps/pthread/pt-initfini.c
  91624. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
  91625. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pt-initfini.c 2014-06-02 17:40:35.070717830 +0200
  91626. @@ -23,8 +23,7 @@
  91627. You should have received a copy of the GNU Lesser General Public
  91628. License along with the GNU C Library; see the file COPYING.LIB. If not,
  91629. - write to the Free Software Foundation, 59 Temple Place - Suite 330,
  91630. - Boston, MA 02111-1307, USA. */
  91631. + see <http://www.gnu.org/licenses/>. */
  91632. /* This file is compiled into assembly code which is then munged by a sed
  91633. script into two files: crti.s and crtn.s.
  91634. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pt-longjmp.c uClibc-git/libpthread/nptl/sysdeps/pthread/pt-longjmp.c
  91635. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pt-longjmp.c 2012-05-15 09:20:09.000000000 +0200
  91636. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pt-longjmp.c 2014-06-02 17:40:35.070717830 +0200
  91637. @@ -13,14 +13,15 @@
  91638. Lesser General Public License for more details.
  91639. You should have received a copy of the GNU Lesser General Public
  91640. - License along with the GNU C Library; if not, write to the Free
  91641. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91642. - 02111-1307 USA. */
  91643. + License along with the GNU C Library; if not, see
  91644. + <http://www.gnu.org/licenses/>. */
  91645. #include <setjmp.h>
  91646. #include <stdlib.h>
  91647. #include "pthreadP.h"
  91648. +extern __typeof(longjmp) __libc_longjmp attribute_noreturn;
  91649. +
  91650. void
  91651. longjmp (jmp_buf env, int val)
  91652. {
  91653. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pt-sigaction.c uClibc-git/libpthread/nptl/sysdeps/pthread/pt-sigaction.c
  91654. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pt-sigaction.c 2012-05-15 09:20:09.000000000 +0200
  91655. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pt-sigaction.c 2014-06-02 17:40:35.070717830 +0200
  91656. @@ -13,9 +13,8 @@
  91657. Lesser General Public License for more details.
  91658. You should have received a copy of the GNU Lesser General Public
  91659. - License along with the GNU C Library; if not, write to the Free
  91660. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91661. - 02111-1307 USA. */
  91662. + License along with the GNU C Library; if not, see
  91663. + <http://www.gnu.org/licenses/>. */
  91664. #include <pthreadP.h>
  91665. #include <signal.h>
  91666. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/setxid.h uClibc-git/libpthread/nptl/sysdeps/pthread/setxid.h
  91667. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/setxid.h 2012-05-15 09:20:09.000000000 +0200
  91668. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/setxid.h 2014-06-02 17:40:35.086717918 +0200
  91669. @@ -12,9 +12,8 @@
  91670. Lesser General Public License for more details.
  91671. You should have received a copy of the GNU Lesser General Public
  91672. - License along with the GNU C Library; if not, write to the Free
  91673. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91674. - 02111-1307 USA. */
  91675. + License along with the GNU C Library; if not, see
  91676. + <http://www.gnu.org/licenses/>. */
  91677. #include <pthreadP.h>
  91678. #include <sysdep.h>
  91679. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/sigfillset.c uClibc-git/libpthread/nptl/sysdeps/pthread/sigfillset.c
  91680. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/sigfillset.c 1970-01-01 01:00:00.000000000 +0100
  91681. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/sigfillset.c 2014-06-02 17:40:35.086717918 +0200
  91682. @@ -0,0 +1,20 @@
  91683. +/* Copyright (C) 2003, 2005 Free Software Foundation, Inc.
  91684. + This file is part of the GNU C Library.
  91685. +
  91686. + The GNU C Library is free software; you can redistribute it and/or
  91687. + modify it under the terms of the GNU Lesser General Public
  91688. + License as published by the Free Software Foundation; either
  91689. + version 2.1 of the License, or (at your option) any later version.
  91690. +
  91691. + The GNU C Library is distributed in the hope that it will be useful,
  91692. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  91693. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  91694. + Lesser General Public License for more details.
  91695. +
  91696. + You should have received a copy of the GNU Lesser General Public
  91697. + License along with the GNU C Library; if not, see
  91698. + <http://www.gnu.org/licenses/>. */
  91699. +
  91700. +#include <pthreadP.h>
  91701. +
  91702. +#include <../../../../libc/signal/sigfillset.c>
  91703. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/sigprocmask.c uClibc-git/libpthread/nptl/sysdeps/pthread/sigprocmask.c
  91704. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/sigprocmask.c 1970-01-01 01:00:00.000000000 +0100
  91705. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/sigprocmask.c 2014-06-02 17:40:35.086717918 +0200
  91706. @@ -0,0 +1,21 @@
  91707. +/* Copyright (C) 1997,1998,1999,2000,2001,2003 Free Software Foundation, Inc.
  91708. + This file is part of the GNU C Library.
  91709. +
  91710. + The GNU C Library is free software; you can redistribute it and/or
  91711. + modify it under the terms of the GNU Lesser General Public
  91712. + License as published by the Free Software Foundation; either
  91713. + version 2.1 of the License, or (at your option) any later version.
  91714. +
  91715. + The GNU C Library is distributed in the hope that it will be useful,
  91716. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  91717. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  91718. + Lesser General Public License for more details.
  91719. +
  91720. + You should have received a copy of the GNU Lesser General Public
  91721. + License along with the GNU C Library; if not, see
  91722. + <http://www.gnu.org/licenses/>. */
  91723. +
  91724. +#include <pthreadP.h>
  91725. +#undef _LARGEFILE64_SOURCE
  91726. +
  91727. +#include <../../../../libc/sysdeps/linux/common/sigprocmask.c>
  91728. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_create.c uClibc-git/libpthread/nptl/sysdeps/pthread/timer_create.c
  91729. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_create.c 2012-05-15 09:20:09.000000000 +0200
  91730. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/timer_create.c 2014-06-02 17:40:35.086717918 +0200
  91731. @@ -13,9 +13,8 @@
  91732. Lesser General Public License for more details.
  91733. You should have received a copy of the GNU Lesser General Public
  91734. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  91735. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  91736. - Boston, MA 02111-1307, USA. */
  91737. + License along with the GNU C Library; see the file COPYING.LIB. If
  91738. + not, see <http://www.gnu.org/licenses/>. */
  91739. #include <errno.h>
  91740. #include <signal.h>
  91741. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_delete.c uClibc-git/libpthread/nptl/sysdeps/pthread/timer_delete.c
  91742. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_delete.c 2012-05-15 09:20:09.000000000 +0200
  91743. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/timer_delete.c 2014-06-02 17:40:35.086717918 +0200
  91744. @@ -13,9 +13,8 @@
  91745. Lesser General Public License for more details.
  91746. You should have received a copy of the GNU Lesser General Public
  91747. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  91748. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  91749. - Boston, MA 02111-1307, USA. */
  91750. + License along with the GNU C Library; see the file COPYING.LIB. If
  91751. + not, see <http://www.gnu.org/licenses/>. */
  91752. #include <assert.h>
  91753. #include <errno.h>
  91754. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_getoverr.c uClibc-git/libpthread/nptl/sysdeps/pthread/timer_getoverr.c
  91755. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_getoverr.c 2012-05-15 09:20:09.000000000 +0200
  91756. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/timer_getoverr.c 2014-06-02 17:40:35.086717918 +0200
  91757. @@ -13,9 +13,8 @@
  91758. Lesser General Public License for more details.
  91759. You should have received a copy of the GNU Lesser General Public
  91760. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  91761. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  91762. - Boston, MA 02111-1307, USA. */
  91763. + License along with the GNU C Library; see the file COPYING.LIB. If
  91764. + not, see <http://www.gnu.org/licenses/>. */
  91765. #include <errno.h>
  91766. #include <pthread.h>
  91767. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_gettime.c uClibc-git/libpthread/nptl/sysdeps/pthread/timer_gettime.c
  91768. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_gettime.c 2012-05-15 09:20:09.000000000 +0200
  91769. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/timer_gettime.c 2014-06-02 17:40:35.086717918 +0200
  91770. @@ -13,9 +13,8 @@
  91771. Lesser General Public License for more details.
  91772. You should have received a copy of the GNU Lesser General Public
  91773. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  91774. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  91775. - Boston, MA 02111-1307, USA. */
  91776. + License along with the GNU C Library; see the file COPYING.LIB. If
  91777. + not, see <http://www.gnu.org/licenses/>. */
  91778. #include <errno.h>
  91779. #include <pthread.h>
  91780. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_routines.c uClibc-git/libpthread/nptl/sysdeps/pthread/timer_routines.c
  91781. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_routines.c 2012-05-15 09:20:09.000000000 +0200
  91782. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/timer_routines.c 2014-06-02 17:40:35.086717918 +0200
  91783. @@ -14,9 +14,8 @@
  91784. Lesser General Public License for more details.
  91785. You should have received a copy of the GNU Lesser General Public
  91786. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  91787. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  91788. - Boston, MA 02111-1307, USA. */
  91789. + License along with the GNU C Library; see the file COPYING.LIB. If
  91790. + not, see <http://www.gnu.org/licenses/>. */
  91791. #include <assert.h>
  91792. #include <errno.h>
  91793. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_settime.c uClibc-git/libpthread/nptl/sysdeps/pthread/timer_settime.c
  91794. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_settime.c 2012-05-15 09:20:09.000000000 +0200
  91795. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/timer_settime.c 2014-06-02 17:40:35.086717918 +0200
  91796. @@ -13,9 +13,8 @@
  91797. Lesser General Public License for more details.
  91798. You should have received a copy of the GNU Lesser General Public
  91799. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  91800. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  91801. - Boston, MA 02111-1307, USA. */
  91802. + License along with the GNU C Library; see the file COPYING.LIB. If
  91803. + not, see <http://www.gnu.org/licenses/>. */
  91804. #include <errno.h>
  91805. #include <pthread.h>
  91806. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/tpp.c uClibc-git/libpthread/nptl/sysdeps/pthread/tpp.c
  91807. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/tpp.c 2012-05-15 09:20:09.000000000 +0200
  91808. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/tpp.c 2014-06-02 17:40:35.086717918 +0200
  91809. @@ -14,9 +14,8 @@
  91810. Lesser General Public License for more details.
  91811. You should have received a copy of the GNU Lesser General Public
  91812. - License along with the GNU C Library; if not, write to the Free
  91813. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91814. - 02111-1307 USA. */
  91815. + License along with the GNU C Library; if not, see
  91816. + <http://www.gnu.org/licenses/>. */
  91817. #include <assert.h>
  91818. #include <atomic.h>
  91819. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/unwind-forcedunwind.c uClibc-git/libpthread/nptl/sysdeps/pthread/unwind-forcedunwind.c
  91820. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/unwind-forcedunwind.c 2012-05-15 09:20:09.000000000 +0200
  91821. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/unwind-forcedunwind.c 2014-06-02 17:40:35.086717918 +0200
  91822. @@ -13,9 +13,8 @@
  91823. Lesser General Public License for more details.
  91824. You should have received a copy of the GNU Lesser General Public
  91825. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  91826. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  91827. - Boston, MA 02111-1307, USA. */
  91828. + License along with the GNU C Library; see the file COPYING.LIB. If
  91829. + not, see <http://www.gnu.org/licenses/>. */
  91830. #include <dlfcn.h>
  91831. #include <stdio.h>
  91832. @@ -112,6 +111,11 @@
  91833. _Unwind_Reason_Code
  91834. __gcc_personality_v0 (int version, _Unwind_Action actions,
  91835. _Unwind_Exception_Class exception_class,
  91836. + struct _Unwind_Exception *ue_header,
  91837. + struct _Unwind_Context *context);
  91838. +_Unwind_Reason_Code
  91839. +__gcc_personality_v0 (int version, _Unwind_Action actions,
  91840. + _Unwind_Exception_Class exception_class,
  91841. struct _Unwind_Exception *ue_header,
  91842. struct _Unwind_Context *context)
  91843. {
  91844. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/unwind-resume.c uClibc-git/libpthread/nptl/sysdeps/pthread/unwind-resume.c
  91845. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/unwind-resume.c 2012-05-15 09:20:09.000000000 +0200
  91846. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/unwind-resume.c 2014-06-02 17:40:35.090717940 +0200
  91847. @@ -13,9 +13,8 @@
  91848. Lesser General Public License for more details.
  91849. You should have received a copy of the GNU Lesser General Public
  91850. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  91851. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  91852. - Boston, MA 02111-1307, USA. */
  91853. + License along with the GNU C Library; see the file COPYING.LIB. If
  91854. + not, see <http://www.gnu.org/licenses/>. */
  91855. #include <dlfcn.h>
  91856. #include <stdio.h>
  91857. @@ -66,6 +65,11 @@
  91858. _Unwind_Reason_Code
  91859. __gcc_personality_v0 (int version, _Unwind_Action actions,
  91860. _Unwind_Exception_Class exception_class,
  91861. + struct _Unwind_Exception *ue_header,
  91862. + struct _Unwind_Context *context);
  91863. +_Unwind_Reason_Code
  91864. +__gcc_personality_v0 (int version, _Unwind_Action actions,
  91865. + _Unwind_Exception_Class exception_class,
  91866. struct _Unwind_Exception *ue_header,
  91867. struct _Unwind_Context *context)
  91868. {
  91869. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/sh/dl-tls.h
  91870. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
  91871. +++ uClibc-git/libpthread/nptl/sysdeps/sh/dl-tls.h 2014-06-02 17:40:35.090717940 +0200
  91872. @@ -13,9 +13,8 @@
  91873. Lesser General Public License for more details.
  91874. You should have received a copy of the GNU Lesser General Public
  91875. - License along with the GNU C Library; if not, write to the Free
  91876. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91877. - 02111-1307 USA. */
  91878. + License along with the GNU C Library; if not, see
  91879. + <http://www.gnu.org/licenses/>. */
  91880. /* Type used for the representation of TLS information in the GOT. */
  91881. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/sh/jmpbuf-unwind.h
  91882. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
  91883. +++ uClibc-git/libpthread/nptl/sysdeps/sh/jmpbuf-unwind.h 2014-06-02 17:40:35.090717940 +0200
  91884. @@ -13,9 +13,8 @@
  91885. Lesser General Public License for more details.
  91886. You should have received a copy of the GNU Lesser General Public
  91887. - License along with the GNU C Library; if not, write to the Free
  91888. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91889. - 02111-1307 USA. */
  91890. + License along with the GNU C Library; if not, see
  91891. + <http://www.gnu.org/licenses/>. */
  91892. #include <setjmp.h>
  91893. #include <stdint.h>
  91894. @@ -26,8 +25,3 @@
  91895. #define _JMPBUF_UNWINDS_ADJ(jmpbuf, address, adj) \
  91896. ((uintptr_t) (address) - (adj) < (uintptr_t) (jmpbuf)[0].__regs[7] - (adj))
  91897. -
  91898. -extern __typeof(longjmp) __libc_longjmp attribute_noreturn;
  91899. -
  91900. -/* We use the normal lobngjmp for unwinding. */
  91901. -#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
  91902. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/sh/pthreaddef.h
  91903. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
  91904. +++ uClibc-git/libpthread/nptl/sysdeps/sh/pthreaddef.h 2014-06-02 17:40:35.090717940 +0200
  91905. @@ -12,9 +12,8 @@
  91906. Lesser General Public License for more details.
  91907. You should have received a copy of the GNU Lesser General Public
  91908. - License along with the GNU C Library; if not, write to the Free
  91909. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91910. - 02111-1307 USA. */
  91911. + License along with the GNU C Library; if not, see
  91912. + <http://www.gnu.org/licenses/>. */
  91913. #include <sysdep.h>
  91914. 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
  91915. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthread_spin_init.c 2012-05-15 09:20:09.000000000 +0200
  91916. +++ uClibc-git/libpthread/nptl/sysdeps/sh/pthread_spin_init.c 2014-06-02 17:40:35.090717940 +0200
  91917. @@ -13,8 +13,7 @@
  91918. Lesser General Public License for more details.
  91919. You should have received a copy of the GNU Lesser General Public
  91920. - License along with the GNU C Library; if not, write to the Free
  91921. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91922. - 02111-1307 USA. */
  91923. + License along with the GNU C Library; if not, see
  91924. + <http://www.gnu.org/licenses/>. */
  91925. /* Not needed. pthread_spin_init is an alias for pthread_spin_unlock. */
  91926. 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
  91927. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthread_spin_lock.c 2012-05-15 09:20:09.000000000 +0200
  91928. +++ uClibc-git/libpthread/nptl/sysdeps/sh/pthread_spin_lock.c 2014-06-02 17:40:35.090717940 +0200
  91929. @@ -12,9 +12,8 @@
  91930. Lesser General Public License for more details.
  91931. You should have received a copy of the GNU Lesser General Public
  91932. - License along with the GNU C Library; if not, write to the Free
  91933. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91934. - 02111-1307 USA. */
  91935. + License along with the GNU C Library; if not, see
  91936. + <http://www.gnu.org/licenses/>. */
  91937. #include "pthreadP.h"
  91938. 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
  91939. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
  91940. +++ uClibc-git/libpthread/nptl/sysdeps/sh/pthread_spin_trylock.S 2014-06-02 17:40:35.090717940 +0200
  91941. @@ -12,9 +12,8 @@
  91942. Lesser General Public License for more details.
  91943. You should have received a copy of the GNU Lesser General Public
  91944. - License along with the GNU C Library; if not, write to the Free
  91945. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91946. - 02111-1307 USA. */
  91947. + License along with the GNU C Library; if not, see
  91948. + <http://www.gnu.org/licenses/>. */
  91949. #include <pthread-errnos.h>
  91950. 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
  91951. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthread_spin_unlock.S 2012-05-15 09:20:09.000000000 +0200
  91952. +++ uClibc-git/libpthread/nptl/sysdeps/sh/pthread_spin_unlock.S 2014-06-02 17:40:35.090717940 +0200
  91953. @@ -12,9 +12,8 @@
  91954. Lesser General Public License for more details.
  91955. You should have received a copy of the GNU Lesser General Public
  91956. - License along with the GNU C Library; if not, write to the Free
  91957. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91958. - 02111-1307 USA. */
  91959. + License along with the GNU C Library; if not, see
  91960. + <http://www.gnu.org/licenses/>. */
  91961. .globl pthread_spin_unlock
  91962. .type pthread_spin_unlock,@function
  91963. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/tls.h uClibc-git/libpthread/nptl/sysdeps/sh/tls.h
  91964. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/tls.h 2012-05-15 09:20:09.000000000 +0200
  91965. +++ uClibc-git/libpthread/nptl/sysdeps/sh/tls.h 2014-06-02 17:40:35.090717940 +0200
  91966. @@ -13,9 +13,8 @@
  91967. Lesser General Public License for more details.
  91968. You should have received a copy of the GNU Lesser General Public
  91969. - License along with the GNU C Library; if not, write to the Free
  91970. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91971. - 02111-1307 USA. */
  91972. + License along with the GNU C Library; if not, see
  91973. + <http://www.gnu.org/licenses/>. */
  91974. #ifndef _TLS_H
  91975. #define _TLS_H
  91976. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/sparc/dl-tls.h
  91977. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
  91978. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/dl-tls.h 2014-06-02 17:40:35.090717940 +0200
  91979. @@ -13,9 +13,8 @@
  91980. Lesser General Public License for more details.
  91981. You should have received a copy of the GNU Lesser General Public
  91982. - License along with the GNU C Library; if not, write to the Free
  91983. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91984. - 02111-1307 USA. */
  91985. + License along with the GNU C Library; if not, see
  91986. + <http://www.gnu.org/licenses/>. */
  91987. /* Type used for the representation of TLS information in the GOT. */
  91988. 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
  91989. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
  91990. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/jmpbuf-unwind.h 2014-06-02 17:40:35.090717940 +0200
  91991. @@ -13,9 +13,8 @@
  91992. Lesser General Public License for more details.
  91993. You should have received a copy of the GNU Lesser General Public
  91994. - License along with the GNU C Library; if not, write to the Free
  91995. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91996. - 02111-1307 USA. */
  91997. + License along with the GNU C Library; if not, see
  91998. + <http://www.gnu.org/licenses/>. */
  91999. #include <setjmp.h>
  92000. #include <stdint.h>
  92001. @@ -26,7 +25,3 @@
  92002. #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  92003. ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_SP] - (_adj))
  92004. -
  92005. -/* We use the normal longjmp for unwinding. */
  92006. -extern __typeof(longjmp) __libc_longjmp attribute_noreturn;
  92007. -#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
  92008. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/pthreaddef.h
  92009. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
  92010. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/pthreaddef.h 2014-06-02 17:40:35.090717940 +0200
  92011. @@ -12,9 +12,8 @@
  92012. Lesser General Public License for more details.
  92013. You should have received a copy of the GNU Lesser General Public
  92014. - License along with the GNU C Library; if not, write to the Free
  92015. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92016. - 02111-1307 USA. */
  92017. + License along with the GNU C Library; if not, see
  92018. + <http://www.gnu.org/licenses/>. */
  92019. /* Default stack size. */
  92020. #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
  92021. 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
  92022. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/pthread_spin_lock.c 2012-05-15 09:20:09.000000000 +0200
  92023. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/pthread_spin_lock.c 2014-06-02 17:40:35.090717940 +0200
  92024. @@ -13,16 +13,15 @@
  92025. Lesser General Public License for more details.
  92026. You should have received a copy of the GNU Lesser General Public
  92027. - License along with the GNU C Library; if not, write to the Free
  92028. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92029. - 02111-1307 USA. */
  92030. + License along with the GNU C Library; if not, see
  92031. + <http://www.gnu.org/licenses/>. */
  92032. #include "pthreadP.h"
  92033. int
  92034. pthread_spin_lock (pthread_spinlock_t *lock)
  92035. {
  92036. - __asm__ __volatile
  92037. + __asm__ __volatile__
  92038. ("1: ldstub [%0], %%g2\n"
  92039. " orcc %%g2, 0x0, %%g0\n"
  92040. " bne,a 2f\n"
  92041. 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
  92042. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/pthread_spin_trylock.c 2012-05-15 09:20:09.000000000 +0200
  92043. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/pthread_spin_trylock.c 2014-06-02 17:40:35.090717940 +0200
  92044. @@ -13,9 +13,8 @@
  92045. Lesser General Public License for more details.
  92046. You should have received a copy of the GNU Lesser General Public
  92047. - License along with the GNU C Library; if not, write to the Free
  92048. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92049. - 02111-1307 USA. */
  92050. + License along with the GNU C Library; if not, see
  92051. + <http://www.gnu.org/licenses/>. */
  92052. #include <errno.h>
  92053. #include "pthreadP.h"
  92054. 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
  92055. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c 2012-05-15 09:20:09.000000000 +0200
  92056. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c 2014-06-02 17:40:35.090717940 +0200
  92057. @@ -13,16 +13,15 @@
  92058. Lesser General Public License for more details.
  92059. You should have received a copy of the GNU Lesser General Public
  92060. - License along with the GNU C Library; if not, write to the Free
  92061. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92062. - 02111-1307 USA. */
  92063. + License along with the GNU C Library; if not, see
  92064. + <http://www.gnu.org/licenses/>. */
  92065. #include "pthreadP.h"
  92066. int
  92067. pthread_spin_lock (pthread_spinlock_t *lock)
  92068. {
  92069. - __asm__ __volatile
  92070. + __asm__ __volatile__
  92071. ("1: ldstub [%0], %%g2\n"
  92072. " brnz,pn %%g2, 2f\n"
  92073. " membar #StoreLoad | #StoreStore\n"
  92074. 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
  92075. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
  92076. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/jmpbuf-unwind.h 2014-06-02 17:40:35.090717940 +0200
  92077. @@ -13,9 +13,8 @@
  92078. Lesser General Public License for more details.
  92079. You should have received a copy of the GNU Lesser General Public
  92080. - License along with the GNU C Library; if not, write to the Free
  92081. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92082. - 02111-1307 USA. */
  92083. + License along with the GNU C Library; if not, see
  92084. + <http://www.gnu.org/licenses/>. */
  92085. #include <setjmp.h>
  92086. #include <stdint.h>
  92087. @@ -26,6 +25,3 @@
  92088. #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  92089. ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_SP] - (_adj))
  92090. -
  92091. -/* We use the normal lobngjmp for unwinding. */
  92092. -#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
  92093. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/pthreaddef.h
  92094. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
  92095. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/pthreaddef.h 2014-06-02 17:40:35.090717940 +0200
  92096. @@ -12,9 +12,8 @@
  92097. Lesser General Public License for more details.
  92098. You should have received a copy of the GNU Lesser General Public
  92099. - License along with the GNU C Library; if not, write to the Free
  92100. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92101. - 02111-1307 USA. */
  92102. + License along with the GNU C Library; if not, see
  92103. + <http://www.gnu.org/licenses/>. */
  92104. /* Default stack size. */
  92105. #define ARCH_STACK_DEFAULT_SIZE (4 * 1024 * 1024)
  92106. 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
  92107. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_lock.c 2012-05-15 09:20:09.000000000 +0200
  92108. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_lock.c 2014-06-02 17:40:35.090717940 +0200
  92109. @@ -13,16 +13,15 @@
  92110. Lesser General Public License for more details.
  92111. You should have received a copy of the GNU Lesser General Public
  92112. - License along with the GNU C Library; if not, write to the Free
  92113. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92114. - 02111-1307 USA. */
  92115. + License along with the GNU C Library; if not, see
  92116. + <http://www.gnu.org/licenses/>. */
  92117. #include "pthreadP.h"
  92118. int
  92119. pthread_spin_lock (pthread_spinlock_t *lock)
  92120. {
  92121. - __asm__ __volatile
  92122. + __asm__ __volatile__
  92123. ("1: ldstub [%0], %%g5\n"
  92124. " brnz,pn %%g5, 2f\n"
  92125. " membar #StoreLoad | #StoreStore\n"
  92126. 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
  92127. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_trylock.c 2012-05-15 09:20:09.000000000 +0200
  92128. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_trylock.c 2014-06-02 17:40:35.090717940 +0200
  92129. @@ -13,9 +13,8 @@
  92130. Lesser General Public License for more details.
  92131. You should have received a copy of the GNU Lesser General Public
  92132. - License along with the GNU C Library; if not, write to the Free
  92133. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92134. - 02111-1307 USA. */
  92135. + License along with the GNU C Library; if not, see
  92136. + <http://www.gnu.org/licenses/>. */
  92137. #include <errno.h>
  92138. #include "pthreadP.h"
  92139. @@ -24,7 +23,7 @@
  92140. pthread_spin_trylock (pthread_spinlock_t *lock)
  92141. {
  92142. int res;
  92143. - __asm__ __volatile
  92144. + __asm__ __volatile__
  92145. ("ldstub [%1], %0\n"
  92146. "membar #StoreLoad | #StoreStore"
  92147. : "=r" (res)
  92148. 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
  92149. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_unlock.c 2012-05-15 09:20:09.000000000 +0200
  92150. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_unlock.c 2014-06-02 17:40:35.090717940 +0200
  92151. @@ -14,9 +14,8 @@
  92152. Lesser General Public License for more details.
  92153. You should have received a copy of the GNU Lesser General Public
  92154. - License along with the GNU C Library; if not, write to the Free
  92155. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92156. - 02111-1307 USA. */
  92157. + License along with the GNU C Library; if not, see
  92158. + <http://www.gnu.org/licenses/>. */
  92159. #include "pthreadP.h"
  92160. #include <atomic.h>
  92161. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/tls.h uClibc-git/libpthread/nptl/sysdeps/sparc/tls.h
  92162. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/tls.h 2012-05-15 09:20:09.000000000 +0200
  92163. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/tls.h 2014-06-02 17:40:35.090717940 +0200
  92164. @@ -13,9 +13,8 @@
  92165. Lesser General Public License for more details.
  92166. You should have received a copy of the GNU Lesser General Public
  92167. - License along with the GNU C Library; if not, write to the Free
  92168. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92169. - 02111-1307 USA. */
  92170. + License along with the GNU C Library; if not, see
  92171. + <http://www.gnu.org/licenses/>. */
  92172. #ifndef _TLS_H
  92173. #define _TLS_H
  92174. 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
  92175. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h 2012-05-15 09:20:09.000000000 +0200
  92176. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h 2014-06-02 17:40:35.094717962 +0200
  92177. @@ -14,8 +14,7 @@
  92178. You should have received a copy of the GNU Library General Public
  92179. License along with the GNU C Library; see the file COPYING.LIB. If not,
  92180. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  92181. - Boston, MA 02111-1307, USA. */
  92182. + see <http://www.gnu.org/licenses/>. */
  92183. /* The kernel header pollutes the namespace with the NR_OPEN symbol
  92184. and defines LINK_MAX although filesystems have different maxima. A
  92185. 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
  92186. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
  92187. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h 2014-06-02 17:40:35.094717962 +0200
  92188. @@ -13,9 +13,8 @@
  92189. Lesser General Public License for more details.
  92190. You should have received a copy of the GNU Lesser General Public
  92191. - License along with the GNU C Library; if not, write to the Free
  92192. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92193. - 02111-1307 USA. */
  92194. + License along with the GNU C Library; if not, see
  92195. + <http://www.gnu.org/licenses/>. */
  92196. #ifndef _BITS_PTHREADTYPES_H
  92197. #define _BITS_PTHREADTYPES_H 1
  92198. 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
  92199. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
  92200. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h 2014-06-02 17:40:35.094717962 +0200
  92201. @@ -13,9 +13,8 @@
  92202. Lesser General Public License for more details.
  92203. You should have received a copy of the GNU Lesser General Public
  92204. - License along with the GNU C Library; if not, write to the Free
  92205. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92206. - 02111-1307 USA. */
  92207. + License along with the GNU C Library; if not, see
  92208. + <http://www.gnu.org/licenses/>. */
  92209. #ifndef _SEMAPHORE_H
  92210. # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
  92211. 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
  92212. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/createthread.c 2012-05-15 09:20:09.000000000 +0200
  92213. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/createthread.c 2014-06-02 17:40:35.094717962 +0200
  92214. @@ -12,9 +12,8 @@
  92215. Lesser General Public License for more details.
  92216. You should have received a copy of the GNU Lesser General Public
  92217. - License along with the GNU C Library; if not, write to the Free
  92218. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92219. - 02111-1307 USA. */
  92220. + License along with the GNU C Library; if not, see
  92221. + <http://www.gnu.org/licenses/>. */
  92222. /* Value passed to 'clone' for initialization of the thread register. */
  92223. #define TLS_VALUE (pd + 1)
  92224. 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
  92225. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/fork.c 2012-05-15 09:20:09.000000000 +0200
  92226. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/fork.c 2014-06-02 17:40:35.094717962 +0200
  92227. @@ -12,9 +12,8 @@
  92228. Lesser General Public License for more details.
  92229. You should have received a copy of the GNU Lesser General Public
  92230. - License along with the GNU C Library; if not, write to the Free
  92231. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92232. - 02111-1307 USA. */
  92233. + License along with the GNU C Library; if not, see
  92234. + <http://www.gnu.org/licenses/>. */
  92235. #include <sched.h>
  92236. #include <signal.h>
  92237. 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
  92238. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
  92239. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h 2014-06-02 17:40:35.094717962 +0200
  92240. @@ -12,9 +12,8 @@
  92241. Lesser General Public License for more details.
  92242. You should have received a copy of the GNU Lesser General Public
  92243. - License along with the GNU C Libr \ary; if not, write to the Free
  92244. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92245. - 02111-1307 USA. */
  92246. + License along with the GNU C Library; see the file COPYING.LIB. If
  92247. + not, see <http://www.gnu.org/licenses/>. */
  92248. #ifndef _LOWLEVELLOCK_H
  92249. #define _LOWLEVELLOCK_H 1
  92250. 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
  92251. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pthread_once.c 2012-05-15 09:20:09.000000000 +0200
  92252. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pthread_once.c 2014-06-02 17:40:35.094717962 +0200
  92253. @@ -12,9 +12,8 @@
  92254. Lesser General Public License for more details.
  92255. You should have received a copy of the GNU Lesser General Public
  92256. - License along with the GNU C Library; if not, write to the Free
  92257. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92258. - 02111-1307 USA. */
  92259. + License along with the GNU C Library; if not, see
  92260. + <http://www.gnu.org/licenses/>. */
  92261. #include "pthreadP.h"
  92262. #include <lowlevellock.h>
  92263. 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
  92264. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
  92265. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pt-vfork.S 2014-06-02 17:40:35.094717962 +0200
  92266. @@ -12,9 +12,8 @@
  92267. Lesser General Public License for more details.
  92268. You should have received a copy of the GNU Lesser General Public
  92269. - License along with the GNU C Library; if not, write to the Free
  92270. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92271. - 02111-1307 USA. */
  92272. + License along with the GNU C Library; if not, see
  92273. + <http://www.gnu.org/licenses/>. */
  92274. #include <sysdep.h>
  92275. #include <tcb-offsets.h>
  92276. 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
  92277. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  92278. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h 2014-06-02 17:40:35.094717962 +0200
  92279. @@ -12,9 +12,8 @@
  92280. Lesser General Public License for more details.
  92281. You should have received a copy of the GNU Lesser General Public
  92282. - License along with the GNU C Library; if not, write to the Free
  92283. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92284. - 02111-1307 USA. */
  92285. + License along with the GNU C Library; if not, see
  92286. + <http://www.gnu.org/licenses/>. */
  92287. #include <sysdep.h>
  92288. #include <tls.h>
  92289. 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
  92290. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/vfork.S 2012-05-15 09:20:09.000000000 +0200
  92291. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/vfork.S 2014-06-02 17:40:35.094717962 +0200
  92292. @@ -12,9 +12,8 @@
  92293. Lesser General Public License for more details.
  92294. You should have received a copy of the GNU Lesser General Public
  92295. - License along with the GNU C Library; if not, write to the Free
  92296. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92297. - 02111-1307 USA. */
  92298. + License along with the GNU C Library; if not, see
  92299. + <http://www.gnu.org/licenses/>. */
  92300. #include <sysdep.h>
  92301. #include <tcb-offsets.h>
  92302. 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
  92303. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
  92304. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/bits/pthreadtypes.h 2014-06-02 17:40:35.094717962 +0200
  92305. @@ -12,9 +12,8 @@
  92306. Lesser General Public License for more details.
  92307. You should have received a copy of the GNU Lesser General Public
  92308. - License along with the GNU C Library; if not, write to the Free
  92309. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92310. - 02111-1307 USA. */
  92311. + License along with the GNU C Library; if not, see
  92312. + <http://www.gnu.org/licenses/>. */
  92313. #ifndef _BITS_PTHREADTYPES_H
  92314. #define _BITS_PTHREADTYPES_H 1
  92315. 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
  92316. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
  92317. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/bits/semaphore.h 2014-06-02 17:40:35.094717962 +0200
  92318. @@ -12,9 +12,8 @@
  92319. Lesser General Public License for more details.
  92320. You should have received a copy of the GNU Lesser General Public
  92321. - License along with the GNU C Library; if not, write to the Free
  92322. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92323. - 02111-1307 USA. */
  92324. + License along with the GNU C Library; if not, see
  92325. + <http://www.gnu.org/licenses/>. */
  92326. #ifndef _SEMAPHORE_H
  92327. # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
  92328. 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
  92329. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/createthread.c 2012-05-15 09:20:09.000000000 +0200
  92330. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/createthread.c 2014-06-02 17:40:35.094717962 +0200
  92331. @@ -12,9 +12,8 @@
  92332. Lesser General Public License for more details.
  92333. You should have received a copy of the GNU Lesser General Public
  92334. - License along with the GNU C Library; if not, write to the Free
  92335. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92336. - 02111-1307 USA. */
  92337. + License along with the GNU C Library; if not, see
  92338. + <http://www.gnu.org/licenses/>. */
  92339. /* Value passed to 'clone' for initialization of the thread register. */
  92340. #define TLS_VALUE (pd + 1)
  92341. 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
  92342. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/fork.c 2012-05-15 09:20:09.000000000 +0200
  92343. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/fork.c 2014-06-02 17:40:35.094717962 +0200
  92344. @@ -13,9 +13,8 @@
  92345. Lesser General Public License for more details.
  92346. You should have received a copy of the GNU Lesser General Public
  92347. - License along with the GNU C Library; if not, write to the Free
  92348. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92349. - 02111-1307 USA. */
  92350. + License along with the GNU C Library; if not, see
  92351. + <http://www.gnu.org/licenses/>. */
  92352. #include <sched.h>
  92353. #include <signal.h>
  92354. 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
  92355. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/libc-lowlevellock.c 2012-05-15 09:20:09.000000000 +0200
  92356. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/libc-lowlevellock.c 2014-06-02 17:40:35.094717962 +0200
  92357. @@ -13,9 +13,8 @@
  92358. Lesser General Public License for more details.
  92359. You should have received a copy of the GNU Lesser General Public
  92360. - License along with the GNU C Library; if not, write to the Free
  92361. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92362. - 02111-1307 USA. */
  92363. + License along with the GNU C Library; if not, see
  92364. + <http://www.gnu.org/licenses/>. */
  92365. /* No difference to lowlevellock.c, except we lose a couple of functions. */
  92366. #include "lowlevellock.c"
  92367. 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
  92368. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/lowlevellock.c 2012-05-15 09:20:09.000000000 +0200
  92369. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/lowlevellock.c 2014-06-02 17:40:35.094717962 +0200
  92370. @@ -13,9 +13,8 @@
  92371. Lesser General Public License for more details.
  92372. You should have received a copy of the GNU Lesser General Public
  92373. - License along with the GNU C Library; if not, write to the Free
  92374. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92375. - 02111-1307 USA. */
  92376. + License along with the GNU C Library; if not, see
  92377. + <http://www.gnu.org/licenses/>. */
  92378. #include <errno.h>
  92379. #include <sysdep.h>
  92380. 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
  92381. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
  92382. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/lowlevellock.h 2014-06-02 17:40:35.094717962 +0200
  92383. @@ -12,9 +12,8 @@
  92384. Lesser General Public License for more details.
  92385. You should have received a copy of the GNU Lesser General Public
  92386. - License along with the GNU C Library; if not, write to the Free
  92387. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92388. - 02111-1307 USA. */
  92389. + License along with the GNU C Library; if not, see
  92390. + <http://www.gnu.org/licenses/>. */
  92391. #ifndef _LOWLEVELLOCK_H
  92392. #define _LOWLEVELLOCK_H 1
  92393. 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
  92394. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pthread_once.c 2012-05-15 09:20:09.000000000 +0200
  92395. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pthread_once.c 2014-06-02 17:40:35.094717962 +0200
  92396. @@ -12,9 +12,8 @@
  92397. Lesser General Public License for more details.
  92398. You should have received a copy of the GNU Lesser General Public
  92399. - License along with the GNU C Library; if not, write to the Free
  92400. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92401. - 02111-1307 USA. */
  92402. + License along with the GNU C Library; if not, see
  92403. + <http://www.gnu.org/licenses/>. */
  92404. #include "pthreadP.h"
  92405. #include <lowlevellock.h>
  92406. 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
  92407. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
  92408. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pt-vfork.S 2014-06-02 17:40:35.094717962 +0200
  92409. @@ -12,9 +12,8 @@
  92410. Lesser General Public License for more details.
  92411. You should have received a copy of the GNU Lesser General Public
  92412. - License along with the GNU C Library; if not, write to the Free
  92413. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92414. - 02111-1307 USA. */
  92415. + License along with the GNU C Library; if not, see
  92416. + <http://www.gnu.org/licenses/>. */
  92417. #include <tcb-offsets.h>
  92418. @@ -35,4 +34,4 @@
  92419. cmp r0, #0; /* If we are the parent... */ \
  92420. strne r3, [r2, #PID_OFFSET] /* ... restore the saved PID. */
  92421. -#INCLUDE <../../../../../../../LIBC/SYSDEPS/LINUX/ARM/VFORK.S>
  92422. +#include "../../../../../../../libc/sysdeps/linux/arm/vfork.S"
  92423. 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
  92424. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  92425. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h 2014-06-02 17:40:35.094717962 +0200
  92426. @@ -12,9 +12,8 @@
  92427. Lesser General Public License for more details.
  92428. You should have received a copy of the GNU Lesser General Public
  92429. - License along with the GNU C Library; if not, write to the Free
  92430. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92431. - 02111-1307 USA. */
  92432. + License along with the GNU C Library; if not, see
  92433. + <http://www.gnu.org/licenses/>. */
  92434. #include <sysdep.h>
  92435. #include <tcb-offsets.h>
  92436. 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
  92437. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c 2012-05-15 09:20:09.000000000 +0200
  92438. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c 2014-06-02 17:40:35.098717984 +0200
  92439. @@ -13,9 +13,8 @@
  92440. Lesser General Public License for more details.
  92441. You should have received a copy of the GNU Lesser General Public
  92442. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  92443. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  92444. - Boston, MA 02111-1307, USA. */
  92445. + License along with the GNU C Library; see the file COPYING.LIB. If
  92446. + not, see <http://www.gnu.org/licenses/>. */
  92447. #include <dlfcn.h>
  92448. #include <stdio.h>
  92449. 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
  92450. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c 2012-05-15 09:20:09.000000000 +0200
  92451. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c 2014-06-02 17:40:35.098717984 +0200
  92452. @@ -13,9 +13,8 @@
  92453. Lesser General Public License for more details.
  92454. You should have received a copy of the GNU Lesser General Public
  92455. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  92456. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  92457. - Boston, MA 02111-1307, USA. */
  92458. + License along with the GNU C Library; see the file COPYING.LIB. If
  92459. + not, see <http://www.gnu.org/licenses/>. */
  92460. #include <dlfcn.h>
  92461. #include <stdio.h>
  92462. 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
  92463. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/vfork.S 2012-05-15 09:20:09.000000000 +0200
  92464. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/vfork.S 2014-06-02 17:40:35.098717984 +0200
  92465. @@ -12,9 +12,8 @@
  92466. Lesser General Public License for more details.
  92467. You should have received a copy of the GNU Lesser General Public
  92468. - License along with the GNU C Library; if not, write to the Free
  92469. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92470. - 02111-1307 USA. */
  92471. + License along with the GNU C Library; if not, see
  92472. + <http://www.gnu.org/licenses/>. */
  92473. #include <tcb-offsets.h>
  92474. 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
  92475. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/bits/local_lim.h 2012-05-15 09:20:09.000000000 +0200
  92476. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/bits/local_lim.h 2014-06-02 17:40:35.098717984 +0200
  92477. @@ -13,9 +13,8 @@
  92478. Lesser General Public License for more details.
  92479. You should have received a copy of the GNU Lesser General Public
  92480. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  92481. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  92482. - Boston, MA 02111-1307, USA. */
  92483. + License along with the GNU C Library; see the file COPYING.LIB. If
  92484. + not, see <http://www.gnu.org/licenses/>. */
  92485. /* The kernel header pollutes the namespace with the NR_OPEN symbol
  92486. and defines LINK_MAX although filesystems have different maxima. A
  92487. 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
  92488. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h 2012-05-15 09:20:09.000000000 +0200
  92489. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h 2014-06-02 17:40:35.098717984 +0200
  92490. @@ -13,9 +13,8 @@
  92491. Lesser General Public License for more details.
  92492. You should have received a copy of the GNU Lesser General Public
  92493. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  92494. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  92495. - Boston, MA 02111-1307, USA. */
  92496. + License along with the GNU C Library; see the file COPYING.LIB. If
  92497. + not, see <http://www.gnu.org/licenses/>. */
  92498. #ifndef _BITS_POSIX_OPT_H
  92499. #define _BITS_POSIX_OPT_H 1
  92500. 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
  92501. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/createthread.c 2012-05-15 09:20:09.000000000 +0200
  92502. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/createthread.c 2014-06-02 17:40:35.098717984 +0200
  92503. @@ -13,9 +13,8 @@
  92504. Lesser General Public License for more details.
  92505. You should have received a copy of the GNU Lesser General Public
  92506. - License along with the GNU C Library; if not, write to the Free
  92507. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92508. - 02111-1307 USA. */
  92509. + License along with the GNU C Library; if not, see
  92510. + <http://www.gnu.org/licenses/>. */
  92511. /* Value passed to 'clone' for initialization of the thread register. */
  92512. #define TLS_VALUE pd
  92513. 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
  92514. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/exit-thread.S 2012-05-15 09:20:09.000000000 +0200
  92515. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/exit-thread.S 2014-06-02 17:40:35.098717984 +0200
  92516. @@ -12,9 +12,8 @@
  92517. Lesser General Public License for more details.
  92518. You should have received a copy of the GNU Lesser General Public
  92519. - License along with the GNU C Library; if not, write to the Free
  92520. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92521. - 02111-1307 USA. */
  92522. + License along with the GNU C Library; if not, see
  92523. + <http://www.gnu.org/licenses/>. */
  92524. #include <sysdep.h>
  92525. 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
  92526. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/fork.c 2012-05-15 09:20:09.000000000 +0200
  92527. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/fork.c 2014-06-02 17:40:35.098717984 +0200
  92528. @@ -13,9 +13,8 @@
  92529. Lesser General Public License for more details.
  92530. You should have received a copy of the GNU Lesser General Public
  92531. - License along with the GNU C Library; if not, write to the Free
  92532. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92533. - 02111-1307 USA. */
  92534. + License along with the GNU C Library; if not, see
  92535. + <http://www.gnu.org/licenses/>. */
  92536. #include <assert.h>
  92537. #include <stdlib.h>
  92538. @@ -58,9 +57,15 @@
  92539. #endif
  92540. }
  92541. -extern __typeof(fork) __libc_fork;
  92542. pid_t
  92543. -__libc_fork (void)
  92544. +#if defined __arm__ && defined __thumb__ && __GNUC_PREREQ (4,6)
  92545. +/* GCC PR target/53735
  92546. + * In thumb1 we run out of registers when compiling with Os so relax that
  92547. + * to have more registers available for spilling by using O2 here.
  92548. + */
  92549. +attribute_optimize("O2")
  92550. +#endif
  92551. +fork (void)
  92552. {
  92553. pid_t pid;
  92554. struct used_handler
  92555. @@ -223,7 +228,4 @@
  92556. return pid;
  92557. }
  92558. -weak_alias(__libc_fork,__fork)
  92559. -libc_hidden_proto(fork)
  92560. -weak_alias(__libc_fork,fork)
  92561. -libc_hidden_weak(fork)
  92562. +libc_hidden_def(fork)
  92563. 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
  92564. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/fork.h 2012-05-15 09:20:09.000000000 +0200
  92565. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/fork.h 2014-06-02 17:40:35.098717984 +0200
  92566. @@ -13,9 +13,8 @@
  92567. Lesser General Public License for more details.
  92568. You should have received a copy of the GNU Lesser General Public
  92569. - License along with the GNU C Library; if not, write to the Free
  92570. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92571. - 02111-1307 USA. */
  92572. + License along with the GNU C Library; if not, see
  92573. + <http://www.gnu.org/licenses/>. */
  92574. #include <lowlevellock.h>
  92575. 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
  92576. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/getpid.c 2012-05-15 09:20:09.000000000 +0200
  92577. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/getpid.c 2014-06-02 17:40:35.098717984 +0200
  92578. @@ -13,14 +13,17 @@
  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 <unistd.h>
  92587. #include <tls.h>
  92588. #include <sysdep.h>
  92589. +#ifdef __NR_getxpid
  92590. +# undef __NR_getpid
  92591. +# define __NR_getpid __NR_getxpid
  92592. +#endif
  92593. #ifndef NOT_IN_libc
  92594. static inline __attribute__((always_inline)) pid_t really_getpid (pid_t oldval);
  92595. @@ -46,8 +49,7 @@
  92596. }
  92597. #endif
  92598. -extern __typeof(getpid) __getpid;
  92599. -pid_t
  92600. +static pid_t
  92601. __getpid (void)
  92602. {
  92603. #ifdef NOT_IN_libc
  92604. @@ -60,6 +62,8 @@
  92605. #endif
  92606. return result;
  92607. }
  92608. -libc_hidden_proto(getpid)
  92609. weak_alias(__getpid, getpid)
  92610. libc_hidden_weak(getpid)
  92611. +#if !defined NOT_IN_libc && !defined __NR_getppid
  92612. +strong_alias(getpid,getppid)
  92613. +#endif
  92614. 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
  92615. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
  92616. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h 2014-06-02 17:40:35.098717984 +0200
  92617. @@ -12,9 +12,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. #ifndef _BITS_PTHREADTYPES_H
  92626. #define _BITS_PTHREADTYPES_H 1
  92627. 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
  92628. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
  92629. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/bits/semaphore.h 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. #ifndef _SEMAPHORE_H
  92639. # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
  92640. 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
  92641. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/createthread.c 2012-05-15 09:20:09.000000000 +0200
  92642. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/createthread.c 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. /* The "thread register" gets initialized from a segment descriptor.
  92652. Initialize such a descriptor first. */
  92653. 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
  92654. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/fork.c 2012-05-15 09:20:09.000000000 +0200
  92655. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/fork.c 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 <sched.h>
  92665. #include <signal.h>
  92666. 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
  92667. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
  92668. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S 2014-06-02 17:40:35.098717984 +0200
  92669. @@ -13,8 +13,7 @@
  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 "lowlevellock.S"
  92678. 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
  92679. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
  92680. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S 2014-06-02 17:40:35.098717984 +0200
  92681. @@ -13,9 +13,8 @@
  92682. Lesser General Public License for more details.
  92683. You should have received a copy of the GNU Lesser General Public
  92684. - License along with the GNU C Library; if not, write to the Free
  92685. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92686. - 02111-1307 USA. */
  92687. + License along with the GNU C Library; if not, see
  92688. + <http://www.gnu.org/licenses/>. */
  92689. #include <sysdep.h>
  92690. #include <pthread-errnos.h>
  92691. 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
  92692. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S 2012-05-15 09:20:09.000000000 +0200
  92693. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S 2014-06-02 17:40:35.098717984 +0200
  92694. @@ -13,9 +13,8 @@
  92695. Lesser General Public License for more details.
  92696. You should have received a copy of the GNU Lesser General Public
  92697. - License along with the GNU C Library; if not, write to the Free
  92698. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92699. - 02111-1307 USA. */
  92700. + License along with the GNU C Library; if not, see
  92701. + <http://www.gnu.org/licenses/>. */
  92702. #include <sysdep.h>
  92703. #include <pthread-errnos.h>
  92704. 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
  92705. --- 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
  92706. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S 2014-06-02 17:40:35.098717984 +0200
  92707. @@ -13,9 +13,8 @@
  92708. Lesser General Public License for more details.
  92709. You should have received a copy of the GNU Lesser General Public
  92710. - License along with the GNU C Library; if not, write to the Free
  92711. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92712. - 02111-1307 USA. */
  92713. + License along with the GNU C Library; if not, see
  92714. + <http://www.gnu.org/licenses/>. */
  92715. #include <sysdep.h>
  92716. #include <lowlevellock.h>
  92717. 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
  92718. --- 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
  92719. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S 2014-06-02 17:40:35.098717984 +0200
  92720. @@ -13,9 +13,8 @@
  92721. Lesser General Public License for more details.
  92722. You should have received a copy of the GNU Lesser General Public
  92723. - License along with the GNU C Library; if not, write to the Free
  92724. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92725. - 02111-1307 USA. */
  92726. + License along with the GNU C Library; if not, see
  92727. + <http://www.gnu.org/licenses/>. */
  92728. #include <sysdep.h>
  92729. #include <lowlevellock.h>
  92730. 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
  92731. --- 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
  92732. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S 2014-06-02 17:40:35.098717984 +0200
  92733. @@ -13,9 +13,8 @@
  92734. Lesser General Public License for more details.
  92735. You should have received a copy of the GNU Lesser General Public
  92736. - License along with the GNU C Library; if not, write to the Free
  92737. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92738. - 02111-1307 USA. */
  92739. + License along with the GNU C Library; if not, see
  92740. + <http://www.gnu.org/licenses/>. */
  92741. #include <sysdep.h>
  92742. #include <lowlevellock.h>
  92743. 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
  92744. --- 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
  92745. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S 2014-06-13 18:29:20.838293415 +0200
  92746. @@ -13,9 +13,8 @@
  92747. Lesser General Public License for more details.
  92748. You should have received a copy of the GNU Lesser General Public
  92749. - License along with the GNU C Library; if not, write to the Free
  92750. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92751. - 02111-1307 USA. */
  92752. + License along with the GNU C Library; if not, see
  92753. + <http://www.gnu.org/licenses/>. */
  92754. #include <sysdep.h>
  92755. #include <lowlevellock.h>
  92756. @@ -23,6 +22,7 @@
  92757. #include <pthread-errnos.h>
  92758. #include <pthread-pi-defines.h>
  92759. #include <bits/kernel-features.h>
  92760. +#include <tcb-offsets.h>
  92761. .text
  92762. 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
  92763. --- 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
  92764. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2014-06-02 17:40:35.098717984 +0200
  92765. @@ -13,9 +13,8 @@
  92766. Lesser General Public License for more details.
  92767. You should have received a copy of the GNU Lesser General Public
  92768. - License along with the GNU C Library; if not, write to the Free
  92769. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92770. - 02111-1307 USA. */
  92771. + License along with the GNU C Library; if not, see
  92772. + <http://www.gnu.org/licenses/>. */
  92773. #include <sysdep.h>
  92774. #include <lowlevellock.h>
  92775. 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
  92776. --- 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
  92777. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S 2014-06-02 17:40:35.098717984 +0200
  92778. @@ -13,9 +13,8 @@
  92779. Lesser General Public License for more details.
  92780. You should have received a copy of the GNU Lesser General Public
  92781. - License along with the GNU C Library; if not, write to the Free
  92782. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92783. - 02111-1307 USA. */
  92784. + License along with the GNU C Library; if not, see
  92785. + <http://www.gnu.org/licenses/>. */
  92786. #include <sysdep.h>
  92787. #include <lowlevellock.h>
  92788. 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
  92789. --- 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
  92790. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S 2014-06-02 17:40:35.098717984 +0200
  92791. @@ -13,9 +13,8 @@
  92792. Lesser General Public License for more details.
  92793. You should have received a copy of the GNU Lesser General Public
  92794. - License along with the GNU C Library; if not, write to the Free
  92795. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92796. - 02111-1307 USA. */
  92797. + License along with the GNU C Library; if not, see
  92798. + <http://www.gnu.org/licenses/>. */
  92799. #include <sysdep.h>
  92800. #include <lowlevellock.h>
  92801. 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
  92802. --- 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
  92803. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S 2014-06-02 17:40:35.098717984 +0200
  92804. @@ -13,9 +13,8 @@
  92805. Lesser General Public License for more details.
  92806. You should have received a copy of the GNU Lesser General Public
  92807. - License along with the GNU C Library; if not, write to the Free
  92808. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92809. - 02111-1307 USA. */
  92810. + License along with the GNU C Library; if not, see
  92811. + <http://www.gnu.org/licenses/>. */
  92812. #include <sysdep.h>
  92813. #include <lowlevellock.h>
  92814. 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
  92815. --- 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
  92816. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S 2014-06-02 17:40:35.098717984 +0200
  92817. @@ -13,9 +13,8 @@
  92818. Lesser General Public License for more details.
  92819. You should have received a copy of the GNU Lesser General Public
  92820. - License along with the GNU C Library; if not, write to the Free
  92821. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92822. - 02111-1307 USA. */
  92823. + License along with the GNU C Library; if not, see
  92824. + <http://www.gnu.org/licenses/>. */
  92825. #include <sysdep.h>
  92826. #include <lowlevellock.h>
  92827. 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
  92828. --- 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
  92829. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S 2014-06-02 17:40:35.098717984 +0200
  92830. @@ -13,9 +13,8 @@
  92831. Lesser General Public License for more details.
  92832. You should have received a copy of the GNU Lesser General Public
  92833. - License along with the GNU C Library; if not, write to the Free
  92834. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92835. - 02111-1307 USA. */
  92836. + License along with the GNU C Library; if not, see
  92837. + <http://www.gnu.org/licenses/>. */
  92838. #include <sysdep.h>
  92839. #include <lowlevellock.h>
  92840. 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
  92841. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_post.S 2012-05-15 09:20:09.000000000 +0200
  92842. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_post.S 2014-06-02 17:40:35.098717984 +0200
  92843. @@ -13,9 +13,8 @@
  92844. Lesser General Public License for more details.
  92845. You should have received a copy of the GNU Lesser General Public
  92846. - License along with the GNU C Library; if not, write to the Free
  92847. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92848. - 02111-1307 USA. */
  92849. + License along with the GNU C Library; if not, see
  92850. + <http://www.gnu.org/licenses/>. */
  92851. #include <sysdep.h>
  92852. #include <pthread-errnos.h>
  92853. @@ -25,10 +24,10 @@
  92854. .text
  92855. - .globl __new_sem_post
  92856. - .type __new_sem_post,@function
  92857. + .globl sem_post
  92858. + .type sem_post,@function
  92859. .align 16
  92860. -__new_sem_post:
  92861. +sem_post:
  92862. cfi_startproc
  92863. pushl %ebx
  92864. cfi_adjust_cfa_offset(4)
  92865. @@ -126,9 +125,7 @@
  92866. cfi_restore(%ebx)
  92867. ret
  92868. cfi_endproc
  92869. - .size __new_sem_post,.-__new_sem_post
  92870. -weak_alias(__new_sem_post, sem_post)
  92871. -
  92872. + .size sem_post,.-sem_post
  92873. #ifdef __PIC__
  92874. .section .gnu.linkonce.t.__x86.get_pc_thunk.bx,"ax",@progbits
  92875. 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
  92876. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S 2012-05-15 09:20:09.000000000 +0200
  92877. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S 2014-06-02 17:40:35.098717984 +0200
  92878. @@ -13,9 +13,8 @@
  92879. Lesser General Public License for more details.
  92880. You should have received a copy of the GNU Lesser General Public
  92881. - License along with the GNU C Library; if not, write to the Free
  92882. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92883. - 02111-1307 USA. */
  92884. + License along with the GNU C Library; if not, see
  92885. + <http://www.gnu.org/licenses/>. */
  92886. #include <sysdep.h>
  92887. #include <pthread-errnos.h>
  92888. 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
  92889. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S 2012-05-15 09:20:09.000000000 +0200
  92890. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S 2014-06-02 17:40:35.102718006 +0200
  92891. @@ -13,9 +13,8 @@
  92892. Lesser General Public License for more details.
  92893. You should have received a copy of the GNU Lesser General Public
  92894. - License along with the GNU C Library; if not, write to the Free
  92895. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92896. - 02111-1307 USA. */
  92897. + License along with the GNU C Library; if not, see
  92898. + <http://www.gnu.org/licenses/>. */
  92899. #include <sysdep.h>
  92900. #include <pthread-errnos.h>
  92901. @@ -23,10 +22,10 @@
  92902. .text
  92903. - .globl __new_sem_trywait
  92904. - .type __new_sem_trywait,@function
  92905. + .globl sem_trywait
  92906. + .type sem_trywait,@function
  92907. .align 16
  92908. -__new_sem_trywait:
  92909. +sem_trywait:
  92910. movl 4(%esp), %ecx
  92911. movl (%ecx), %eax
  92912. @@ -63,9 +62,7 @@
  92913. #endif
  92914. orl $-1, %eax
  92915. ret
  92916. - .size __new_sem_trywait,.-__new_sem_trywait
  92917. -weak_alias(__new_sem_trywait, sem_trywait)
  92918. -
  92919. + .size sem_trywait,.-sem_trywait
  92920. #ifdef __PIC__
  92921. .section .gnu.linkonce.t.__x86.get_pc_thunk.cx,"ax",@progbits
  92922. 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
  92923. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_wait.S 2012-05-15 09:20:09.000000000 +0200
  92924. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_wait.S 2014-06-02 17:40:35.102718006 +0200
  92925. @@ -13,9 +13,8 @@
  92926. Lesser General Public License for more details.
  92927. You should have received a copy of the GNU Lesser General Public
  92928. - License along with the GNU C Library; if not, write to the Free
  92929. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92930. - 02111-1307 USA. */
  92931. + License along with the GNU C Library; if not, see
  92932. + <http://www.gnu.org/licenses/>. */
  92933. #include <sysdep.h>
  92934. #include <pthread-errnos.h>
  92935. @@ -29,10 +28,10 @@
  92936. .text
  92937. - .globl __new_sem_wait
  92938. - .type __new_sem_wait,@function
  92939. + .globl sem_wait
  92940. + .type sem_wait,@function
  92941. .align 16
  92942. -__new_sem_wait:
  92943. +sem_wait:
  92944. .LSTARTCODE:
  92945. pushl %ebx
  92946. .Lpush_ebx:
  92947. @@ -129,8 +128,7 @@
  92948. orl $-1, %eax
  92949. jmp 9b
  92950. - .size __new_sem_wait,.-__new_sem_wait
  92951. -weak_alias(__new_sem_wait, sem_wait)
  92952. + .size sem_wait,.-sem_wait
  92953. .type sem_wait_cleanup,@function
  92954. 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
  92955. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
  92956. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/lowlevellock.S 2014-06-02 17:40:35.102718006 +0200
  92957. @@ -13,8 +13,7 @@
  92958. Lesser General Public License for more details.
  92959. You should have received a copy of the GNU Lesser General Public
  92960. - License along with the GNU C Library; if not, write to the Free
  92961. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92962. - 02111-1307 USA. */
  92963. + License along with the GNU C Library; if not, see
  92964. + <http://www.gnu.org/licenses/>. */
  92965. #include "../i486/lowlevellock.S"
  92966. 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
  92967. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S 2012-05-15 09:20:09.000000000 +0200
  92968. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S 2014-06-02 17:40:35.102718006 +0200
  92969. @@ -13,8 +13,7 @@
  92970. Lesser General Public License for more details.
  92971. You should have received a copy of the GNU Lesser General Public
  92972. - License along with the GNU C Library; if not, write to the Free
  92973. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92974. - 02111-1307 USA. */
  92975. + License along with the GNU C Library; if not, see
  92976. + <http://www.gnu.org/licenses/>. */
  92977. #include "../i486/lowlevelrobustlock.S"
  92978. 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
  92979. --- 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
  92980. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_barrier_wait.S 2014-06-02 17:40:35.102718006 +0200
  92981. @@ -13,8 +13,7 @@
  92982. Lesser General Public License for more details.
  92983. You should have received a copy of the GNU Lesser General Public
  92984. - License along with the GNU C Library; if not, write to the Free
  92985. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92986. - 02111-1307 USA. */
  92987. + License along with the GNU C Library; if not, see
  92988. + <http://www.gnu.org/licenses/>. */
  92989. #include "../i486/pthread_barrier_wait.S"
  92990. 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
  92991. --- 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
  92992. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S 2014-06-02 17:40:35.102718006 +0200
  92993. @@ -13,8 +13,7 @@
  92994. Lesser General Public License for more details.
  92995. You should have received a copy of the GNU Lesser General Public
  92996. - License along with the GNU C Library; if not, write to the Free
  92997. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92998. - 02111-1307 USA. */
  92999. + License along with the GNU C Library; if not, see
  93000. + <http://www.gnu.org/licenses/>. */
  93001. #include "../i486/pthread_cond_broadcast.S"
  93002. 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
  93003. --- 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
  93004. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S 2014-06-02 17:40:35.102718006 +0200
  93005. @@ -13,8 +13,7 @@
  93006. Lesser General Public License for more details.
  93007. You should have received a copy of the GNU Lesser General Public
  93008. - License along with the GNU C Library; if not, write to the Free
  93009. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93010. - 02111-1307 USA. */
  93011. + License along with the GNU C Library; if not, see
  93012. + <http://www.gnu.org/licenses/>. */
  93013. #include "../i486/pthread_cond_signal.S"
  93014. 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
  93015. --- 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
  93016. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S 2014-06-02 17:40:35.102718006 +0200
  93017. @@ -13,8 +13,7 @@
  93018. Lesser General Public License for more details.
  93019. You should have received a copy of the GNU Lesser General Public
  93020. - License along with the GNU C Library; if not, write to the Free
  93021. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93022. - 02111-1307 USA. */
  93023. + License along with the GNU C Library; if not, see
  93024. + <http://www.gnu.org/licenses/>. */
  93025. #include "../i486/pthread_cond_timedwait.S"
  93026. 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
  93027. --- 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
  93028. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S 2014-06-02 17:40:35.102718006 +0200
  93029. @@ -13,8 +13,7 @@
  93030. Lesser General Public License for more details.
  93031. You should have received a copy of the GNU Lesser General Public
  93032. - License along with the GNU C Library; if not, write to the Free
  93033. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93034. - 02111-1307 USA. */
  93035. + License along with the GNU C Library; if not, see
  93036. + <http://www.gnu.org/licenses/>. */
  93037. #include "../i486/pthread_cond_wait.S"
  93038. 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
  93039. --- 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
  93040. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S 2014-06-02 17:40:35.102718006 +0200
  93041. @@ -13,8 +13,7 @@
  93042. Lesser General Public License for more details.
  93043. You should have received a copy of the GNU Lesser General Public
  93044. - License along with the GNU C Library; if not, write to the Free
  93045. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93046. - 02111-1307 USA. */
  93047. + License along with the GNU C Library; if not, see
  93048. + <http://www.gnu.org/licenses/>. */
  93049. #include "../i486/pthread_rwlock_rdlock.S"
  93050. 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
  93051. --- 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
  93052. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S 2014-06-02 17:40:35.102718006 +0200
  93053. @@ -13,8 +13,7 @@
  93054. Lesser General Public License for more details.
  93055. You should have received a copy of the GNU Lesser General Public
  93056. - License along with the GNU C Library; if not, write to the Free
  93057. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93058. - 02111-1307 USA. */
  93059. + License along with the GNU C Library; if not, see
  93060. + <http://www.gnu.org/licenses/>. */
  93061. #include "../i486/pthread_rwlock_timedrdlock.S"
  93062. 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
  93063. --- 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
  93064. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S 2014-06-02 17:40:35.102718006 +0200
  93065. @@ -13,8 +13,7 @@
  93066. Lesser General Public License for more details.
  93067. You should have received a copy of the GNU Lesser General Public
  93068. - License along with the GNU C Library; if not, write to the Free
  93069. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93070. - 02111-1307 USA. */
  93071. + License along with the GNU C Library; if not, see
  93072. + <http://www.gnu.org/licenses/>. */
  93073. #include "../i486/pthread_rwlock_timedwrlock.S"
  93074. 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
  93075. --- 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
  93076. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S 2014-06-02 17:40:35.102718006 +0200
  93077. @@ -13,8 +13,7 @@
  93078. Lesser General Public License for more details.
  93079. You should have received a copy of the GNU Lesser General Public
  93080. - License along with the GNU C Library; if not, write to the Free
  93081. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93082. - 02111-1307 USA. */
  93083. + License along with the GNU C Library; if not, see
  93084. + <http://www.gnu.org/licenses/>. */
  93085. #include "../i486/pthread_rwlock_unlock.S"
  93086. 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
  93087. --- 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
  93088. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S 2014-06-02 17:40:35.102718006 +0200
  93089. @@ -13,8 +13,7 @@
  93090. Lesser General Public License for more details.
  93091. You should have received a copy of the GNU Lesser General Public
  93092. - License along with the GNU C Library; if not, write to the Free
  93093. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93094. - 02111-1307 USA. */
  93095. + License along with the GNU C Library; if not, see
  93096. + <http://www.gnu.org/licenses/>. */
  93097. #include "../i486/pthread_rwlock_wrlock.S"
  93098. 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
  93099. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_post.S 2012-05-15 09:20:09.000000000 +0200
  93100. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_post.S 2014-06-02 17:40:35.102718006 +0200
  93101. @@ -13,8 +13,7 @@
  93102. Lesser General Public License for more details.
  93103. You should have received a copy of the GNU Lesser General Public
  93104. - License along with the GNU C Library; if not, write to the Free
  93105. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93106. - 02111-1307 USA. */
  93107. + License along with the GNU C Library; if not, see
  93108. + <http://www.gnu.org/licenses/>. */
  93109. #include "../i486/sem_post.S"
  93110. 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
  93111. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S 2012-05-15 09:20:09.000000000 +0200
  93112. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S 2014-06-02 17:40:35.102718006 +0200
  93113. @@ -13,8 +13,7 @@
  93114. Lesser General Public License for more details.
  93115. You should have received a copy of the GNU Lesser General Public
  93116. - License along with the GNU C Library; if not, write to the Free
  93117. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93118. - 02111-1307 USA. */
  93119. + License along with the GNU C Library; if not, see
  93120. + <http://www.gnu.org/licenses/>. */
  93121. #include "../i486/sem_timedwait.S"
  93122. 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
  93123. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S 2012-05-15 09:20:09.000000000 +0200
  93124. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S 2014-06-02 17:40:35.102718006 +0200
  93125. @@ -13,8 +13,7 @@
  93126. Lesser General Public License for more details.
  93127. You should have received a copy of the GNU Lesser General Public
  93128. - License along with the GNU C Library; if not, write to the Free
  93129. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93130. - 02111-1307 USA. */
  93131. + License along with the GNU C Library; if not, see
  93132. + <http://www.gnu.org/licenses/>. */
  93133. #include "../i486/sem_trywait.S"
  93134. 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
  93135. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_wait.S 2012-05-15 09:20:09.000000000 +0200
  93136. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_wait.S 2014-06-02 17:40:35.102718006 +0200
  93137. @@ -13,8 +13,7 @@
  93138. Lesser General Public License for more details.
  93139. You should have received a copy of the GNU Lesser General Public
  93140. - License along with the GNU C Library; if not, write to the Free
  93141. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93142. - 02111-1307 USA. */
  93143. + License along with the GNU C Library; if not, see
  93144. + <http://www.gnu.org/licenses/>. */
  93145. #include "../i486/sem_wait.S"
  93146. 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
  93147. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
  93148. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/lowlevellock.S 2014-06-02 17:40:35.102718006 +0200
  93149. @@ -13,8 +13,7 @@
  93150. Lesser General Public License for more details.
  93151. You should have received a copy of the GNU Lesser General Public
  93152. - License along with the GNU C Library; if not, write to the Free
  93153. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93154. - 02111-1307 USA. */
  93155. + License along with the GNU C Library; if not, see
  93156. + <http://www.gnu.org/licenses/>. */
  93157. #include "../i486/lowlevellock.S"
  93158. 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
  93159. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S 2012-05-15 09:20:09.000000000 +0200
  93160. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S 2014-06-02 17:40:35.102718006 +0200
  93161. @@ -13,8 +13,7 @@
  93162. Lesser General Public License for more details.
  93163. You should have received a copy of the GNU Lesser General Public
  93164. - License along with the GNU C Library; if not, write to the Free
  93165. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93166. - 02111-1307 USA. */
  93167. + License along with the GNU C Library; if not, see
  93168. + <http://www.gnu.org/licenses/>. */
  93169. #include "../i486/lowlevelrobustlock.S"
  93170. 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
  93171. --- 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
  93172. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_barrier_wait.S 2014-06-02 17:40:35.102718006 +0200
  93173. @@ -13,8 +13,7 @@
  93174. Lesser General Public License for more details.
  93175. You should have received a copy of the GNU Lesser General Public
  93176. - License along with the GNU C Library; if not, write to the Free
  93177. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93178. - 02111-1307 USA. */
  93179. + License along with the GNU C Library; if not, see
  93180. + <http://www.gnu.org/licenses/>. */
  93181. #include "../i486/pthread_barrier_wait.S"
  93182. 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
  93183. --- 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
  93184. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S 2014-06-02 17:40:35.102718006 +0200
  93185. @@ -13,8 +13,7 @@
  93186. Lesser General Public License for more details.
  93187. You should have received a copy of the GNU Lesser General Public
  93188. - License along with the GNU C Library; if not, write to the Free
  93189. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93190. - 02111-1307 USA. */
  93191. + License along with the GNU C Library; if not, see
  93192. + <http://www.gnu.org/licenses/>. */
  93193. #include "../i486/pthread_cond_broadcast.S"
  93194. 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
  93195. --- 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
  93196. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S 2014-06-02 17:40:35.102718006 +0200
  93197. @@ -13,8 +13,7 @@
  93198. Lesser General Public License for more details.
  93199. You should have received a copy of the GNU Lesser General Public
  93200. - License along with the GNU C Library; if not, write to the Free
  93201. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93202. - 02111-1307 USA. */
  93203. + License along with the GNU C Library; if not, see
  93204. + <http://www.gnu.org/licenses/>. */
  93205. #include "../i486/pthread_cond_signal.S"
  93206. 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
  93207. --- 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
  93208. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S 2014-06-02 17:40:35.102718006 +0200
  93209. @@ -13,9 +13,8 @@
  93210. Lesser General Public License for more details.
  93211. You should have received a copy of the GNU Lesser General Public
  93212. - License along with the GNU C Library; if not, write to the Free
  93213. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93214. - 02111-1307 USA. */
  93215. + License along with the GNU C Library; if not, see
  93216. + <http://www.gnu.org/licenses/>. */
  93217. #define HAVE_CMOV 1
  93218. #include "../i486/pthread_cond_timedwait.S"
  93219. 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
  93220. --- 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
  93221. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S 2014-06-02 17:40:35.102718006 +0200
  93222. @@ -13,8 +13,7 @@
  93223. Lesser General Public License for more details.
  93224. You should have received a copy of the GNU Lesser General Public
  93225. - License along with the GNU C Library; if not, write to the Free
  93226. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93227. - 02111-1307 USA. */
  93228. + License along with the GNU C Library; if not, see
  93229. + <http://www.gnu.org/licenses/>. */
  93230. #include "../i486/pthread_cond_wait.S"
  93231. 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
  93232. --- 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
  93233. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S 2014-06-02 17:40:35.102718006 +0200
  93234. @@ -13,8 +13,7 @@
  93235. Lesser General Public License for more details.
  93236. You should have received a copy of the GNU Lesser General Public
  93237. - License along with the GNU C Library; if not, write to the Free
  93238. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93239. - 02111-1307 USA. */
  93240. + License along with the GNU C Library; if not, see
  93241. + <http://www.gnu.org/licenses/>. */
  93242. #include "../i486/pthread_rwlock_rdlock.S"
  93243. 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
  93244. --- 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
  93245. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S 2014-06-02 17:40:35.102718006 +0200
  93246. @@ -13,8 +13,7 @@
  93247. Lesser General Public License for more details.
  93248. You should have received a copy of the GNU Lesser General Public
  93249. - License along with the GNU C Library; if not, write to the Free
  93250. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93251. - 02111-1307 USA. */
  93252. + License along with the GNU C Library; if not, see
  93253. + <http://www.gnu.org/licenses/>. */
  93254. #include "../i486/pthread_rwlock_timedrdlock.S"
  93255. 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
  93256. --- 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
  93257. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S 2014-06-02 17:40:35.102718006 +0200
  93258. @@ -13,8 +13,7 @@
  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 "../i486/pthread_rwlock_timedwrlock.S"
  93267. 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
  93268. --- 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
  93269. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S 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. #define HAVE_CMOV 1
  93279. #include "../i486/pthread_rwlock_unlock.S"
  93280. 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
  93281. --- 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
  93282. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S 2014-06-02 17:40:35.102718006 +0200
  93283. @@ -13,8 +13,7 @@
  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 "../i486/pthread_rwlock_wrlock.S"
  93292. 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
  93293. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_post.S 2012-05-15 09:20:09.000000000 +0200
  93294. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_post.S 2014-06-02 17:40:35.102718006 +0200
  93295. @@ -13,8 +13,7 @@
  93296. Lesser General Public License for more details.
  93297. You should have received a copy of the GNU Lesser General Public
  93298. - License along with the GNU C Library; if not, write to the Free
  93299. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93300. - 02111-1307 USA. */
  93301. + License along with the GNU C Library; if not, see
  93302. + <http://www.gnu.org/licenses/>. */
  93303. #include "../i486/sem_post.S"
  93304. 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
  93305. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S 2012-05-15 09:20:09.000000000 +0200
  93306. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S 2014-06-02 17:40:35.102718006 +0200
  93307. @@ -13,8 +13,7 @@
  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. #include "../i486/sem_timedwait.S"
  93316. 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
  93317. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S 2012-05-15 09:20:09.000000000 +0200
  93318. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S 2014-06-02 17:40:35.102718006 +0200
  93319. @@ -13,8 +13,7 @@
  93320. Lesser General Public License for more details.
  93321. You should have received a copy of the GNU Lesser General Public
  93322. - License along with the GNU C Library; if not, write to the Free
  93323. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93324. - 02111-1307 USA. */
  93325. + License along with the GNU C Library; if not, see
  93326. + <http://www.gnu.org/licenses/>. */
  93327. #include "../i486/sem_trywait.S"
  93328. 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
  93329. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_wait.S 2012-05-15 09:20:09.000000000 +0200
  93330. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_wait.S 2014-06-02 17:40:35.102718006 +0200
  93331. @@ -13,8 +13,7 @@
  93332. Lesser General Public License for more details.
  93333. You should have received a copy of the GNU Lesser General Public
  93334. - License along with the GNU C Library; if not, write to the Free
  93335. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93336. - 02111-1307 USA. */
  93337. + License along with the GNU C Library; if not, see
  93338. + <http://www.gnu.org/licenses/>. */
  93339. #include "../i486/sem_wait.S"
  93340. 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
  93341. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
  93342. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h 2014-06-02 17:40:35.102718006 +0200
  93343. @@ -13,9 +13,8 @@
  93344. Lesser General Public License for more details.
  93345. You should have received a copy of the GNU Lesser General Public
  93346. - License along with the GNU C Library; if not, write to the Free
  93347. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93348. - 02111-1307 USA. */
  93349. + License along with the GNU C Library; if not, see
  93350. + <http://www.gnu.org/licenses/>. */
  93351. #ifndef _LOWLEVELLOCK_H
  93352. #define _LOWLEVELLOCK_H 1
  93353. 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
  93354. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S 2012-05-15 09:20:09.000000000 +0200
  93355. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S 2014-06-02 17:40:35.102718006 +0200
  93356. @@ -13,9 +13,8 @@
  93357. Lesser General Public License for more details.
  93358. You should have received a copy of the GNU Lesser General Public
  93359. - License along with the GNU C Library; if not, write to the Free
  93360. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93361. - 02111-1307 USA. */
  93362. + License along with the GNU C Library; if not, see
  93363. + <http://www.gnu.org/licenses/>. */
  93364. #include <unwindbuf.h>
  93365. #include <sysdep.h>
  93366. 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
  93367. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
  93368. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pt-vfork.S 2014-06-02 17:40:35.102718006 +0200
  93369. @@ -13,9 +13,8 @@
  93370. Lesser General Public License for more details.
  93371. You should have received a copy of the GNU Lesser General Public
  93372. - License along with the GNU C Library; if not, write to the Free
  93373. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93374. - 02111-1307 USA. */
  93375. + License along with the GNU C Library; if not, see
  93376. + <http://www.gnu.org/licenses/>. */
  93377. #include <sysdep.h>
  93378. #define _ERRNO_H 1
  93379. 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
  93380. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/smp.h 2012-05-15 09:20:09.000000000 +0200
  93381. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/smp.h 2014-06-02 17:40:35.102718006 +0200
  93382. @@ -14,8 +14,7 @@
  93383. You should have received a copy of the GNU Library General Public
  93384. License along with the GNU C Library; see the file COPYING.LIB. If not,
  93385. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  93386. - Boston, MA 02111-1307, USA. */
  93387. + see <http://www.gnu.org/licenses/>. */
  93388. #include <errno.h>
  93389. #include <fcntl.h>
  93390. 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
  93391. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  93392. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h 2014-06-02 17:40:35.102718006 +0200
  93393. @@ -13,9 +13,8 @@
  93394. Lesser General Public License for more details.
  93395. You should have received a copy of the GNU Lesser General Public
  93396. - License along with the GNU C Library; if not, write to the Free
  93397. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93398. - 02111-1307 USA. */
  93399. + License along with the GNU C Library; if not, see
  93400. + <http://www.gnu.org/licenses/>. */
  93401. #include <sysdep.h>
  93402. #include <tls.h>
  93403. 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
  93404. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/vfork.S 2012-05-15 09:20:09.000000000 +0200
  93405. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/vfork.S 2014-06-02 17:40:35.102718006 +0200
  93406. @@ -12,9 +12,8 @@
  93407. Lesser General Public License for more details.
  93408. You should have received a copy of the GNU Lesser General Public
  93409. - License along with the GNU C Library; if not, write to the Free
  93410. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93411. - 02111-1307 USA. */
  93412. + License along with the GNU C Library; if not, see
  93413. + <http://www.gnu.org/licenses/>. */
  93414. #include <tcb-offsets.h>
  93415. 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
  93416. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/internaltypes.h 2012-05-15 09:20:09.000000000 +0200
  93417. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/internaltypes.h 2014-06-02 17:40:35.102718006 +0200
  93418. @@ -13,9 +13,8 @@
  93419. Lesser General Public License for more details.
  93420. You should have received a copy of the GNU Lesser General Public
  93421. - License along with the GNU C Library; if not, write to the Free
  93422. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93423. - 02111-1307 USA. */
  93424. + License along with the GNU C Library; if not, see
  93425. + <http://www.gnu.org/licenses/>. */
  93426. #ifndef _INTERNALTYPES_H
  93427. #define _INTERNALTYPES_H 1
  93428. 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
  93429. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/jmp-unwind.c 2012-05-15 09:20:09.000000000 +0200
  93430. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/jmp-unwind.c 2014-06-02 17:40:35.102718006 +0200
  93431. @@ -13,9 +13,8 @@
  93432. Lesser General Public License for more details.
  93433. You should have received a copy of the GNU Lesser General Public
  93434. - License along with the GNU C Library; if not, write to the Free
  93435. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93436. - 02111-1307 USA. */
  93437. + License along with the GNU C Library; if not, see
  93438. + <http://www.gnu.org/licenses/>. */
  93439. #include <setjmp.h>
  93440. #include <stddef.h>
  93441. @@ -25,7 +24,6 @@
  93442. #pragma weak __pthread_cleanup_upto
  93443. -void _longjmp_unwind (jmp_buf env, int val);
  93444. void
  93445. _longjmp_unwind (jmp_buf env, int val)
  93446. {
  93447. @@ -38,3 +36,4 @@
  93448. __pthread_cleanup_upto (env->__jmpbuf, CURRENT_STACK_FRAME);
  93449. #endif
  93450. }
  93451. +libc_hidden_def(_longjmp_unwind)
  93452. 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
  93453. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/libc-lowlevellock.c 2012-05-15 09:20:09.000000000 +0200
  93454. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/libc-lowlevellock.c 2014-06-02 17:40:35.102718006 +0200
  93455. @@ -13,9 +13,8 @@
  93456. Lesser General Public License for more details.
  93457. You should have received a copy of the GNU Lesser General Public
  93458. - License along with the GNU C Library; if not, write to the Free
  93459. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93460. - 02111-1307 USA. */
  93461. + License along with the GNU C Library; if not, see
  93462. + <http://www.gnu.org/licenses/>. */
  93463. /* No difference to lowlevellock.c, except we lose a couple of functions. */
  93464. #include "lowlevellock.c"
  93465. 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
  93466. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/libc_multiple_threads.c 2012-05-15 09:20:09.000000000 +0200
  93467. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/libc_multiple_threads.c 2014-06-02 17:40:35.102718006 +0200
  93468. @@ -13,9 +13,8 @@
  93469. Lesser General Public License for more details.
  93470. You should have received a copy of the GNU Lesser General Public
  93471. - License along with the GNU C Library; if not, write to the Free
  93472. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93473. - 02111-1307 USA. */
  93474. + License along with the GNU C Library; if not, see
  93475. + <http://www.gnu.org/licenses/>. */
  93476. #include <pthreadP.h>
  93477. 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
  93478. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c 2012-05-15 09:20:09.000000000 +0200
  93479. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c 2014-06-02 17:40:35.102718006 +0200
  93480. @@ -13,9 +13,8 @@
  93481. Lesser General Public License for more details.
  93482. You should have received a copy of the GNU Lesser General Public
  93483. - License along with the GNU C Library; if not, write to the Free
  93484. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93485. - 02111-1307 USA. */
  93486. + License along with the GNU C Library; if not, see
  93487. + <http://www.gnu.org/licenses/>. */
  93488. #include <unistd.h>
  93489. #include <list.h>
  93490. 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
  93491. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevellock.c 2012-05-15 09:20:09.000000000 +0200
  93492. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevellock.c 2014-06-02 17:40:35.102718006 +0200
  93493. @@ -14,9 +14,8 @@
  93494. Lesser General Public License for more details.
  93495. You should have received a copy of the GNU Lesser General Public
  93496. - License along with the GNU C Library; if not, write to the Free
  93497. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93498. - 02111-1307 USA. */
  93499. + License along with the GNU C Library; if not, see
  93500. + <http://www.gnu.org/licenses/>. */
  93501. #include <errno.h>
  93502. #include <sysdep.h>
  93503. 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
  93504. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.c 2012-05-15 09:20:09.000000000 +0200
  93505. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.c 2014-06-02 17:40:35.102718006 +0200
  93506. @@ -13,9 +13,8 @@
  93507. Lesser General Public License for more details.
  93508. You should have received a copy of the GNU Lesser General Public
  93509. - License along with the GNU C Library; if not, write to the Free
  93510. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93511. - 02111-1307 USA. */
  93512. + License along with the GNU C Library; if not, see
  93513. + <http://www.gnu.org/licenses/>. */
  93514. #include <errno.h>
  93515. #include <sysdep.h>
  93516. 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
  93517. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch 2012-05-15 09:20:09.000000000 +0200
  93518. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch 2014-06-02 17:40:35.094717962 +0200
  93519. @@ -62,22 +62,24 @@
  93520. pthread_getcpuclockid.c pthread_kill.c \
  93521. pthread_mutex_cond_lock.c pthread_yield.c \
  93522. sem_post.c sem_timedwait.c sem_trywait.c sem_wait.c \
  93523. - pt-fork.c pt-sleep.c pthread_sigqueue.c pt-tempname.c \
  93524. - sigtimedwait.c sigwaitinfo.c sigwait.c \
  93525. + pt-tempname.c \
  93526. + pthread_sigqueue.c \
  93527. lowlevellock.c lowlevelrobustlock.c
  93528. +# pt-sleep.c pt-fork.c sigtimedwait.c sigwaitinfo.c sigwait.c
  93529. libpthread_linux_SSRC := #ptw-close.S ptw-open.S ptw-waitid.S ptw-waidpid.S ptw-write.S
  93530. libc_linux_CSRC += libc_pthread_init.c libc_multiple_threads.c \
  93531. register-atfork.c unregister-atfork.c getpid.c \
  93532. - raise.c sleep.c jmp-unwind.c libc-lowlevellock.c
  93533. + raise.c jmp-unwind.c libc-lowlevellock.c
  93534. + #sleep.c
  93535. librt_linux_CSRC += mq_notify.c timer_create.c timer_delete.c \
  93536. timer_getoverr.c timer_gettime.c timer_routines.c \
  93537. timer_settime.c
  93538. # These provide both a cancellable and a not cancellable implementation
  93539. -libc_linux_SSRC = close.S open.S write.S read.S waitpid.S
  93540. +libc_linux_SSRC = #close.S open.S write.S read.S waitpid.S
  93541. libc_linux_SSRC := $(filter-out $(libc_linux_arch_SSRC-OMIT),$(libc_linux_SSRC))
  93542. libpthread_linux_CSRC := $(filter-out $(notdir $(libpthread_linux_arch_OBJS:.o=.c)),$(libpthread_linux_CSRC))
  93543. @@ -141,13 +143,14 @@
  93544. CFLAGS-OMIT-getpid.c = -DNOT_IN_libc -DIS_IN_libpthread
  93545. CFLAGS-OMIT-raise.c = -DNOT_IN_libc -DIS_IN_libpthread
  93546. CFLAGS-OMIT-sleep.c = -DNOT_IN_libc -DIS_IN_libpthread
  93547. +CFLAGS-OMIT-jmp-unwind.c = -DNOT_IN_libc -DIS_IN_libpthread
  93548. CFLAGS-OMIT-libc-lowlevellock.c = -DNOT_IN_libc -DIS_IN_libpthread
  93549. -CFLAGS-OMIT-close.S = -DNOT_IN_libc -DIS_IN_libpthread
  93550. -CFLAGS-OMIT-open.S = -DNOT_IN_libc -DIS_IN_libpthread
  93551. -CFLAGS-OMIT-read.S = -DNOT_IN_libc -DIS_IN_libpthread
  93552. -CFLAGS-OMIT-write.S = -DNOT_IN_libc -DIS_IN_libpthread
  93553. -CFLAGS-OMIT-waitpid.S = -DNOT_IN_libc -DIS_IN_libpthread
  93554. +#CFLAGS-OMIT-close.S = -DNOT_IN_libc -DIS_IN_libpthread
  93555. +#CFLAGS-OMIT-open.S = -DNOT_IN_libc -DIS_IN_libpthread
  93556. +#CFLAGS-OMIT-read.S = -DNOT_IN_libc -DIS_IN_libpthread
  93557. +#CFLAGS-OMIT-write.S = -DNOT_IN_libc -DIS_IN_libpthread
  93558. +#CFLAGS-OMIT-waitpid.S = -DNOT_IN_libc -DIS_IN_libpthread
  93559. CFLAGS-OMIT-mq_notify.c = -DIS_IN_libpthread
  93560. CFLAGS-OMIT-timer_create.c = -DIS_IN_libpthread
  93561. @@ -157,11 +160,11 @@
  93562. CFLAGS-OMIT-timer_routines.c = -DIS_IN_libpthread
  93563. CFLAGS-OMIT-timer_settime.c = -DIS_IN_libpthread
  93564. -ASFLAGS-open.S = -D_LIBC_REENTRANT
  93565. -ASFLAGS-close.S = -D_LIBC_REENTRANT
  93566. -ASFLAGS-read.S = -D_LIBC_REENTRANT
  93567. -ASFLAGS-write.S = -D_LIBC_REENTRANT
  93568. -ASFLAGS-waitpid.S = -D_LIBC_REENTRANT
  93569. +#ASFLAGS-open.S = -D_LIBC_REENTRANT
  93570. +#ASFLAGS-close.S = -D_LIBC_REENTRANT
  93571. +#ASFLAGS-read.S = -D_LIBC_REENTRANT
  93572. +#ASFLAGS-write.S = -D_LIBC_REENTRANT
  93573. +#ASFLAGS-waitpid.S = -D_LIBC_REENTRANT
  93574. #
  93575. # Create header files.
  93576. @@ -174,8 +177,6 @@
  93577. CFLAGS-gen_structsem.c = -S
  93578. CFLAGS-gen_unwindbuf.c = -S
  93579. -PTHREAD_GENERATE_MANGLE ?= -n "s/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*\$$/\#define \1 \2/p"
  93580. -
  93581. PTHREAD_LINUX_SYM := $(notdir $(wildcard $(libpthread_linux_DIR)/*.sym))
  93582. PTHREAD_LINUX_SYM_C := $(addprefix $(libpthread_linux_OUT)/gen_,$(PTHREAD_LINUX_SYM:.sym=.c))
  93583. PTHREAD_LINUX_SYM_S := $(PTHREAD_LINUX_SYM_C:.c=.s)
  93584. 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
  93585. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/bits/pthreadtypes.h 1970-01-01 01:00:00.000000000 +0100
  93586. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/bits/pthreadtypes.h 2014-06-02 17:40:35.106718029 +0200
  93587. @@ -0,0 +1,181 @@
  93588. +/* Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
  93589. + This file is part of the GNU C Library.
  93590. +
  93591. + The GNU C Library is free software; you can redistribute it and/or
  93592. + modify it under the terms of the GNU Lesser General Public
  93593. + License as published by the Free Software Foundation; either
  93594. + version 2.1 of the License, or (at your option) any later version.
  93595. +
  93596. + The GNU C Library is distributed in the hope that it will be useful,
  93597. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  93598. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  93599. + Lesser General Public License for more details.
  93600. +
  93601. + You should have received a copy of the GNU Lesser General Public
  93602. + License along with the GNU C Library; if not, write to the Free
  93603. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93604. + 02111-1307 USA. */
  93605. +
  93606. +#ifndef _BITS_PTHREADTYPES_H
  93607. +#define _BITS_PTHREADTYPES_H 1
  93608. +
  93609. +#include <endian.h>
  93610. +
  93611. +#define __SIZEOF_PTHREAD_ATTR_T 36
  93612. +#define __SIZEOF_PTHREAD_MUTEX_T 24
  93613. +#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
  93614. +#define __SIZEOF_PTHREAD_COND_T 48
  93615. +#define __SIZEOF_PTHREAD_COND_COMPAT_T 12
  93616. +#define __SIZEOF_PTHREAD_CONDATTR_T 4
  93617. +#define __SIZEOF_PTHREAD_RWLOCK_T 32
  93618. +#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
  93619. +#define __SIZEOF_PTHREAD_BARRIER_T 20
  93620. +#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
  93621. +
  93622. +
  93623. +/* Thread identifiers. The structure of the attribute type is not
  93624. + exposed on purpose. */
  93625. +typedef unsigned long int pthread_t;
  93626. +
  93627. +
  93628. +typedef union
  93629. +{
  93630. + char __size[__SIZEOF_PTHREAD_ATTR_T];
  93631. + long int __align;
  93632. +} pthread_attr_t;
  93633. +
  93634. +
  93635. +typedef struct __pthread_internal_slist
  93636. +{
  93637. + struct __pthread_internal_slist *__next;
  93638. +} __pthread_slist_t;
  93639. +
  93640. +
  93641. +/* Data structures for mutex handling. The structure of the attribute
  93642. + type is not exposed on purpose. */
  93643. +typedef union
  93644. +{
  93645. + struct __pthread_mutex_s
  93646. + {
  93647. + int __lock;
  93648. + unsigned int __count;
  93649. + int __owner;
  93650. + /* KIND must stay at this position in the structure to maintain
  93651. + binary compatibility. */
  93652. + int __kind;
  93653. + unsigned int __nusers;
  93654. + __extension__ union
  93655. + {
  93656. + int __spins;
  93657. + __pthread_slist_t __list;
  93658. + };
  93659. + } __data;
  93660. + char __size[__SIZEOF_PTHREAD_MUTEX_T];
  93661. + long int __align;
  93662. +} pthread_mutex_t;
  93663. +
  93664. +typedef union
  93665. +{
  93666. + char __size[__SIZEOF_PTHREAD_MUTEXATTR_T];
  93667. + long int __align;
  93668. +} pthread_mutexattr_t;
  93669. +
  93670. +
  93671. +/* Data structure for conditional variable handling. The structure of
  93672. + the attribute type is not exposed on purpose. */
  93673. +typedef union
  93674. +{
  93675. + struct
  93676. + {
  93677. + int __lock;
  93678. + unsigned int __futex;
  93679. + __extension__ unsigned long long int __total_seq;
  93680. + __extension__ unsigned long long int __wakeup_seq;
  93681. + __extension__ unsigned long long int __woken_seq;
  93682. + void *__mutex;
  93683. + unsigned int __nwaiters;
  93684. + unsigned int __broadcast_seq;
  93685. + } __data;
  93686. + char __size[__SIZEOF_PTHREAD_COND_T];
  93687. + __extension__ long long int __align;
  93688. +} pthread_cond_t;
  93689. +
  93690. +typedef union
  93691. +{
  93692. + char __size[__SIZEOF_PTHREAD_CONDATTR_T];
  93693. + long int __align;
  93694. +} pthread_condattr_t;
  93695. +
  93696. +
  93697. +/* Keys for thread-specific data */
  93698. +typedef unsigned int pthread_key_t;
  93699. +
  93700. +
  93701. +/* Once-only execution */
  93702. +typedef int pthread_once_t;
  93703. +
  93704. +
  93705. +#if defined __USE_UNIX98 || defined __USE_XOPEN2K
  93706. +/* Data structure for read-write lock variable handling. The
  93707. + structure of the attribute type is not exposed on purpose. */
  93708. +typedef union
  93709. +{
  93710. + struct
  93711. + {
  93712. + int __lock;
  93713. + unsigned int __nr_readers;
  93714. + unsigned int __readers_wakeup;
  93715. + unsigned int __writer_wakeup;
  93716. + unsigned int __nr_readers_queued;
  93717. + unsigned int __nr_writers_queued;
  93718. +#if __BYTE_ORDER == __BIG_ENDIAN
  93719. + unsigned char __pad1;
  93720. + unsigned char __pad2;
  93721. + unsigned char __shared;
  93722. + /* FLAGS must stay at this position in the structure to maintain
  93723. + binary compatibility. */
  93724. + unsigned char __flags;
  93725. +#else
  93726. + /* FLAGS must stay at this position in the structure to maintain
  93727. + binary compatibility. */
  93728. + unsigned char __flags;
  93729. + unsigned char __shared;
  93730. + unsigned char __pad1;
  93731. + unsigned char __pad2;
  93732. +#endif
  93733. + int __writer;
  93734. + } __data;
  93735. + char __size[__SIZEOF_PTHREAD_RWLOCK_T];
  93736. + long int __align;
  93737. +} pthread_rwlock_t;
  93738. +
  93739. +typedef union
  93740. +{
  93741. + char __size[__SIZEOF_PTHREAD_RWLOCKATTR_T];
  93742. + long int __align;
  93743. +} pthread_rwlockattr_t;
  93744. +#endif
  93745. +
  93746. +
  93747. +#ifdef __USE_XOPEN2K
  93748. +/* POSIX spinlock data type. */
  93749. +typedef volatile int pthread_spinlock_t;
  93750. +
  93751. +
  93752. +/* POSIX barriers data type. The structure of the type is
  93753. + deliberately not exposed. */
  93754. +typedef union
  93755. +{
  93756. + char __size[__SIZEOF_PTHREAD_BARRIER_T];
  93757. + long int __align;
  93758. +} pthread_barrier_t;
  93759. +
  93760. +typedef union
  93761. +{
  93762. + char __size[__SIZEOF_PTHREAD_BARRIERATTR_T];
  93763. + int __align;
  93764. +} pthread_barrierattr_t;
  93765. +#endif
  93766. +
  93767. +
  93768. +#endif /* bits/pthreadtypes.h */
  93769. 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
  93770. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/bits/semaphore.h 1970-01-01 01:00:00.000000000 +0100
  93771. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/bits/semaphore.h 2014-06-02 17:40:35.106718029 +0200
  93772. @@ -0,0 +1,35 @@
  93773. +/* Copyright (C) 2002, 2005, 2007 Free Software Foundation, Inc.
  93774. + This file is part of the GNU C Library.
  93775. +
  93776. + The GNU C Library is free software; you can redistribute it and/or
  93777. + modify it under the terms of the GNU Lesser General Public
  93778. + License as published by the Free Software Foundation; either
  93779. + version 2.1 of the License, or (at your option) any later version.
  93780. +
  93781. + The GNU C Library is distributed in the hope that it will be useful,
  93782. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  93783. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  93784. + Lesser General Public License for more details.
  93785. +
  93786. + You should have received a copy of the GNU Lesser General Public
  93787. + License along with the GNU C Library; if not, write to the Free
  93788. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93789. + 02111-1307 USA. */
  93790. +
  93791. +#ifndef _SEMAPHORE_H
  93792. +# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
  93793. +#endif
  93794. +
  93795. +
  93796. +#define __SIZEOF_SEM_T 16
  93797. +
  93798. +
  93799. +/* Value returned if `sem_open' failed. */
  93800. +#define SEM_FAILED ((sem_t *) 0)
  93801. +
  93802. +
  93803. +typedef union
  93804. +{
  93805. + char __size[__SIZEOF_SEM_T];
  93806. + long int __align;
  93807. +} sem_t;
  93808. 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
  93809. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/clone.S 1970-01-01 01:00:00.000000000 +0100
  93810. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/clone.S 2014-06-02 17:40:35.106718029 +0200
  93811. @@ -0,0 +1,9 @@
  93812. +/*
  93813. + * Copyright (C) 2013 Imagination Technologies Ltd.
  93814. + *
  93815. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  93816. + */
  93817. +
  93818. +#define RESET_PID
  93819. +#include <tcb-offsets.h>
  93820. +#include "../../../../../../../libc/sysdeps/linux/metag/clone.S"
  93821. 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
  93822. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/createthread.c 1970-01-01 01:00:00.000000000 +0100
  93823. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/createthread.c 2014-06-02 17:40:35.106718029 +0200
  93824. @@ -0,0 +1,23 @@
  93825. +/* Copyright (C) 2005 Free Software Foundation, Inc.
  93826. + This file is part of the GNU C Library.
  93827. +
  93828. + The GNU C Library is free software; you can redistribute it and/or
  93829. + modify it under the terms of the GNU Lesser General Public
  93830. + License as published by the Free Software Foundation; either
  93831. + version 2.1 of the License, or (at your option) any later version.
  93832. +
  93833. + The GNU C Library is distributed in the hope that it will be useful,
  93834. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  93835. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  93836. + Lesser General Public License for more details.
  93837. +
  93838. + You should have received a copy of the GNU Lesser General Public
  93839. + License along with the GNU C Library; if not, write to the Free
  93840. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93841. + 02111-1307 USA. */
  93842. +
  93843. +/* Value passed to 'clone' for initialization of the thread register. */
  93844. +#define TLS_VALUE (pd + 1)
  93845. +
  93846. +/* Get the real implementation. */
  93847. +#include <sysdeps/pthread/createthread.c>
  93848. 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
  93849. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/fork.c 1970-01-01 01:00:00.000000000 +0100
  93850. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/fork.c 2014-06-02 17:40:35.106718029 +0200
  93851. @@ -0,0 +1,31 @@
  93852. +/* Copyright (C) 2005 Free Software Foundation, Inc.
  93853. + This file is part of the GNU C Library.
  93854. + Contributed by Phil Blundell <pb@nexus.co.uk>, 2005
  93855. +
  93856. + The GNU C Library is free software; you can redistribute it and/or
  93857. + modify it under the terms of the GNU Lesser General Public
  93858. + License as published by the Free Software Foundation; either
  93859. + version 2.1 of the License, or (at your option) any later version.
  93860. +
  93861. + The GNU C Library is distributed in the hope that it will be useful,
  93862. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  93863. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  93864. + Lesser General Public License for more details.
  93865. +
  93866. + You should have received a copy of the GNU Lesser General Public
  93867. + License along with the GNU C Library; if not, write to the Free
  93868. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93869. + 02111-1307 USA. */
  93870. +
  93871. +#include <sched.h>
  93872. +#include <signal.h>
  93873. +#include <sysdep.h>
  93874. +#include <tls.h>
  93875. +
  93876. +
  93877. +#define ARCH_FORK() \
  93878. + INLINE_SYSCALL (clone, 5, \
  93879. + CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, \
  93880. + NULL, NULL, &THREAD_SELF->tid, NULL)
  93881. +
  93882. +#include "../fork.c"
  93883. 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
  93884. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/libc-lowlevellock.c 1970-01-01 01:00:00.000000000 +0100
  93885. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/libc-lowlevellock.c 2014-06-02 17:40:35.106718029 +0200
  93886. @@ -0,0 +1,21 @@
  93887. +/* Copyright (C) 2003 Free Software Foundation, Inc.
  93888. + This file is part of the GNU C Library.
  93889. + Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
  93890. +
  93891. + The GNU C Library is free software; you can redistribute it and/or
  93892. + modify it under the terms of the GNU Lesser General Public
  93893. + License as published by the Free Software Foundation; either
  93894. + version 2.1 of the License, or (at your option) any later version.
  93895. +
  93896. + The GNU C Library is distributed in the hope that it will be useful,
  93897. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  93898. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  93899. + Lesser General Public License for more details.
  93900. +
  93901. + You should have received a copy of the GNU Lesser General Public
  93902. + License along with the GNU C Library; if not, write to the Free
  93903. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93904. + 02111-1307 USA. */
  93905. +
  93906. +/* No difference to lowlevellock.c, except we lose a couple of functions. */
  93907. +#include "lowlevellock.c"
  93908. 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
  93909. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/lowlevellock.c 1970-01-01 01:00:00.000000000 +0100
  93910. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/lowlevellock.c 2014-06-02 17:40:35.106718029 +0200
  93911. @@ -0,0 +1,134 @@
  93912. +/* low level locking for pthread library. Generic futex-using version.
  93913. + Copyright (C) 2003, 2005, 2007 Free Software Foundation, Inc.
  93914. + This file is part of the GNU C Library.
  93915. +
  93916. + The GNU C Library is free software; you can redistribute it and/or
  93917. + modify it under the terms of the GNU Lesser General Public
  93918. + License as published by the Free Software Foundation; either
  93919. + version 2.1 of the License, or (at your option) any later version.
  93920. +
  93921. + The GNU C Library is distributed in the hope that it will be useful,
  93922. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  93923. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  93924. + Lesser General Public License for more details.
  93925. +
  93926. + You should have received a copy of the GNU Lesser General Public
  93927. + License along with the GNU C Library; if not, write to the Free
  93928. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93929. + 02111-1307 USA. */
  93930. +
  93931. +#include <errno.h>
  93932. +#include <sysdep.h>
  93933. +#include <lowlevellock.h>
  93934. +#include <sys/time.h>
  93935. +#include <tls.h>
  93936. +
  93937. +void
  93938. +__lll_lock_wait_private (int *futex)
  93939. +{
  93940. + do
  93941. + {
  93942. + int oldval = atomic_compare_and_exchange_val_acq (futex, 2, 1);
  93943. + if (oldval != 0)
  93944. + lll_futex_wait (futex, 2, LLL_PRIVATE);
  93945. + }
  93946. + while (atomic_compare_and_exchange_bool_acq (futex, 2, 0) != 0);
  93947. +}
  93948. +
  93949. +
  93950. +/* These functions don't get included in libc.so */
  93951. +#ifdef IS_IN_libpthread
  93952. +void
  93953. +__lll_lock_wait (int *futex, int private)
  93954. +{
  93955. + do
  93956. + {
  93957. + int oldval = atomic_compare_and_exchange_val_acq (futex, 2, 1);
  93958. + if (oldval != 0)
  93959. + lll_futex_wait (futex, 2, private);
  93960. + }
  93961. + while (atomic_compare_and_exchange_bool_acq (futex, 2, 0) != 0);
  93962. +}
  93963. +
  93964. +
  93965. +int
  93966. +__lll_timedlock_wait (int *futex, const struct timespec *abstime, int private)
  93967. +{
  93968. + struct timespec rt;
  93969. +
  93970. + /* Reject invalid timeouts. */
  93971. + if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
  93972. + return EINVAL;
  93973. +
  93974. + /* Upgrade the lock. */
  93975. + if (atomic_exchange_acq (futex, 2) == 0)
  93976. + return 0;
  93977. +
  93978. + do
  93979. + {
  93980. + struct timeval tv;
  93981. +
  93982. + /* Get the current time. */
  93983. + (void) gettimeofday (&tv, NULL);
  93984. +
  93985. + /* Compute relative timeout. */
  93986. + rt.tv_sec = abstime->tv_sec - tv.tv_sec;
  93987. + rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
  93988. + if (rt.tv_nsec < 0)
  93989. + {
  93990. + rt.tv_nsec += 1000000000;
  93991. + --rt.tv_sec;
  93992. + }
  93993. +
  93994. + /* Already timed out? */
  93995. + if (rt.tv_sec < 0)
  93996. + return ETIMEDOUT;
  93997. +
  93998. + // XYZ: Lost the lock to check whether it was private.
  93999. + lll_futex_timed_wait (futex, 2, &rt, private);
  94000. + }
  94001. + while (atomic_compare_and_exchange_bool_acq (futex, 2, 0) != 0);
  94002. +
  94003. + return 0;
  94004. +}
  94005. +
  94006. +
  94007. +int
  94008. +__lll_timedwait_tid (int *tidp, const struct timespec *abstime)
  94009. +{
  94010. + int tid;
  94011. +
  94012. + if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
  94013. + return EINVAL;
  94014. +
  94015. + /* Repeat until thread terminated. */
  94016. + while ((tid = *tidp) != 0)
  94017. + {
  94018. + struct timeval tv;
  94019. + struct timespec rt;
  94020. +
  94021. + /* Get the current time. */
  94022. + (void) gettimeofday (&tv, NULL);
  94023. +
  94024. + /* Compute relative timeout. */
  94025. + rt.tv_sec = abstime->tv_sec - tv.tv_sec;
  94026. + rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
  94027. + if (rt.tv_nsec < 0)
  94028. + {
  94029. + rt.tv_nsec += 1000000000;
  94030. + --rt.tv_sec;
  94031. + }
  94032. +
  94033. + /* Already timed out? */
  94034. + if (rt.tv_sec < 0)
  94035. + return ETIMEDOUT;
  94036. +
  94037. + /* Wait until thread terminates. */
  94038. + // XYZ: Lost the lock to check whether it was private.
  94039. + if (lll_futex_timed_wait (tidp, tid, &rt, LLL_SHARED) == -ETIMEDOUT)
  94040. + return ETIMEDOUT;
  94041. + }
  94042. +
  94043. + return 0;
  94044. +}
  94045. +#endif
  94046. 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
  94047. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/lowlevellock.h 1970-01-01 01:00:00.000000000 +0100
  94048. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/lowlevellock.h 2014-06-02 17:40:35.106718029 +0200
  94049. @@ -0,0 +1,279 @@
  94050. +/* Copyright (C) 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
  94051. + This file is part of the GNU C Library.
  94052. +
  94053. + The GNU C Library is free software; you can redistribute it and/or
  94054. + modify it under the terms of the GNU Lesser General Public
  94055. + License as published by the Free Software Foundation; either
  94056. + version 2.1 of the License, or (at your option) any later version.
  94057. +
  94058. + The GNU C Library is distributed in the hope that it will be useful,
  94059. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  94060. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  94061. + Lesser General Public License for more details.
  94062. +
  94063. + You should have received a copy of the GNU Lesser General Public
  94064. + License along with the GNU C Library; if not, write to the Free
  94065. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94066. + 02111-1307 USA. */
  94067. +
  94068. +#ifndef _LOWLEVELLOCK_H
  94069. +#define _LOWLEVELLOCK_H 1
  94070. +
  94071. +#include <time.h>
  94072. +#include <sys/param.h>
  94073. +#include <bits/pthreadtypes.h>
  94074. +#include <atomic.h>
  94075. +#include <sysdep.h>
  94076. +#include <bits/kernel-features.h>
  94077. +
  94078. +#define FUTEX_WAIT 0
  94079. +#define FUTEX_WAKE 1
  94080. +#define FUTEX_REQUEUE 3
  94081. +#define FUTEX_CMP_REQUEUE 4
  94082. +#define FUTEX_WAKE_OP 5
  94083. +#define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE ((4 << 24) | 1)
  94084. +#define FUTEX_LOCK_PI 6
  94085. +#define FUTEX_UNLOCK_PI 7
  94086. +#define FUTEX_TRYLOCK_PI 8
  94087. +#define FUTEX_WAIT_BITSET 9
  94088. +#define FUTEX_WAKE_BITSET 10
  94089. +#define FUTEX_PRIVATE_FLAG 128
  94090. +#define FUTEX_CLOCK_REALTIME 256
  94091. +
  94092. +#define FUTEX_BITSET_MATCH_ANY 0xffffffff
  94093. +
  94094. +/* Values for 'private' parameter of locking macros. Yes, the
  94095. + definition seems to be backwards. But it is not. The bit will be
  94096. + reversed before passing to the system call. */
  94097. +#define LLL_PRIVATE 0
  94098. +#define LLL_SHARED FUTEX_PRIVATE_FLAG
  94099. +
  94100. +
  94101. +#if !defined NOT_IN_libc || defined IS_IN_rtld
  94102. +/* In libc.so or ld.so all futexes are private. */
  94103. +# ifdef __ASSUME_PRIVATE_FUTEX
  94104. +# define __lll_private_flag(fl, private) \
  94105. + ((fl) | FUTEX_PRIVATE_FLAG)
  94106. +# else
  94107. +# define __lll_private_flag(fl, private) \
  94108. + ((fl) | THREAD_GETMEM (THREAD_SELF, header.private_futex))
  94109. +# endif
  94110. +#else
  94111. +# ifdef __ASSUME_PRIVATE_FUTEX
  94112. +# define __lll_private_flag(fl, private) \
  94113. + (((fl) | FUTEX_PRIVATE_FLAG) ^ (private))
  94114. +# else
  94115. +# define __lll_private_flag(fl, private) \
  94116. + (__builtin_constant_p (private) \
  94117. + ? ((private) == 0 \
  94118. + ? ((fl) | THREAD_GETMEM (THREAD_SELF, header.private_futex)) \
  94119. + : (fl)) \
  94120. + : ((fl) | (((private) ^ FUTEX_PRIVATE_FLAG) \
  94121. + & THREAD_GETMEM (THREAD_SELF, header.private_futex))))
  94122. +# endif
  94123. +#endif
  94124. +
  94125. +
  94126. +#define lll_futex_wait(futexp, val, private) \
  94127. + lll_futex_timed_wait(futexp, val, NULL, private)
  94128. +
  94129. +#define lll_futex_timed_wait(futexp, val, timespec, private) \
  94130. + ({ \
  94131. + INTERNAL_SYSCALL_DECL (__err); \
  94132. + long int __ret; \
  94133. + __ret = INTERNAL_SYSCALL (futex, __err, 4, (futexp), \
  94134. + __lll_private_flag (FUTEX_WAIT, private), \
  94135. + (val), (timespec)); \
  94136. + __ret; \
  94137. + })
  94138. +
  94139. +#define lll_futex_wake(futexp, nr, private) \
  94140. + ({ \
  94141. + INTERNAL_SYSCALL_DECL (__err); \
  94142. + long int __ret; \
  94143. + __ret = INTERNAL_SYSCALL (futex, __err, 4, (futexp), \
  94144. + __lll_private_flag (FUTEX_WAKE, private), \
  94145. + (nr), 0); \
  94146. + __ret; \
  94147. + })
  94148. +
  94149. +#define lll_robust_dead(futexv, private) \
  94150. + do \
  94151. + { \
  94152. + int *__futexp = &(futexv); \
  94153. + atomic_or (__futexp, FUTEX_OWNER_DIED); \
  94154. + lll_futex_wake (__futexp, 1, private); \
  94155. + } \
  94156. + while (0)
  94157. +
  94158. +/* Returns non-zero if error happened, zero if success. */
  94159. +#define lll_futex_requeue(futexp, nr_wake, nr_move, mutex, val, private) \
  94160. + ({ \
  94161. + INTERNAL_SYSCALL_DECL (__err); \
  94162. + long int __ret; \
  94163. + __ret = INTERNAL_SYSCALL (futex, __err, 6, (futexp), \
  94164. + __lll_private_flag (FUTEX_CMP_REQUEUE, private),\
  94165. + (nr_wake), (nr_move), (mutex), (val)); \
  94166. + INTERNAL_SYSCALL_ERROR_P (__ret, __err); \
  94167. + })
  94168. +
  94169. +
  94170. +/* Returns non-zero if error happened, zero if success. */
  94171. +#define lll_futex_wake_unlock(futexp, nr_wake, nr_wake2, futexp2, private) \
  94172. + ({ \
  94173. + INTERNAL_SYSCALL_DECL (__err); \
  94174. + long int __ret; \
  94175. + __ret = INTERNAL_SYSCALL (futex, __err, 6, (futexp), \
  94176. + __lll_private_flag (FUTEX_WAKE_OP, private), \
  94177. + (nr_wake), (nr_wake2), (futexp2), \
  94178. + FUTEX_OP_CLEAR_WAKE_IF_GT_ONE); \
  94179. + INTERNAL_SYSCALL_ERROR_P (__ret, __err); \
  94180. + })
  94181. +
  94182. +
  94183. +#define lll_trylock(lock) \
  94184. + atomic_compare_and_exchange_val_acq(&(lock), 1, 0)
  94185. +
  94186. +#define lll_cond_trylock(lock) \
  94187. + atomic_compare_and_exchange_val_acq(&(lock), 2, 0)
  94188. +
  94189. +#define __lll_robust_trylock(futex, id) \
  94190. + (atomic_compare_and_exchange_val_acq (futex, id, 0) != 0)
  94191. +#define lll_robust_trylock(lock, id) \
  94192. + __lll_robust_trylock (&(lock), id)
  94193. +
  94194. +extern void __lll_lock_wait_private (int *futex) attribute_hidden;
  94195. +extern void __lll_lock_wait (int *futex, int private) attribute_hidden;
  94196. +extern int __lll_robust_lock_wait (int *futex, int private) attribute_hidden;
  94197. +
  94198. +#define __lll_lock(futex, private) \
  94199. + ((void) ({ \
  94200. + int *__futex = (futex); \
  94201. + if (unlikely(atomic_compare_and_exchange_val_acq (__futex, 1, 0))) \
  94202. + { \
  94203. + if (__builtin_constant_p (private) && (private) == LLL_PRIVATE) \
  94204. + __lll_lock_wait_private (__futex); \
  94205. + else \
  94206. + __lll_lock_wait (__futex, private); \
  94207. + } \
  94208. + }))
  94209. +#define lll_lock(futex, private) __lll_lock (&(futex), private)
  94210. +
  94211. +
  94212. +#define __lll_robust_lock(futex, id, private) \
  94213. + ({ \
  94214. + int *__futex = (futex); \
  94215. + int __val = 0; \
  94216. + \
  94217. + if (unlikely(atomic_compare_and_exchange_bool_acq (__futex, id, 0))) \
  94218. + __val = __lll_robust_lock_wait (__futex, private); \
  94219. + __val; \
  94220. + })
  94221. +#define lll_robust_lock(futex, id, private) \
  94222. + __lll_robust_lock (&(futex), id, private)
  94223. +
  94224. +
  94225. +#define __lll_cond_lock(futex, private) \
  94226. + ((void) ({ \
  94227. + int *__futex = (futex); \
  94228. + if (unlikely(atomic_exchange_acq (__futex, 2))) \
  94229. + __lll_lock_wait (__futex, private); \
  94230. + }))
  94231. +#define lll_cond_lock(futex, private) __lll_cond_lock (&(futex), private)
  94232. +
  94233. +
  94234. +#define lll_robust_cond_lock(futex, id, private) \
  94235. + __lll_robust_lock (&(futex), (id) | FUTEX_WAITERS, private)
  94236. +
  94237. +
  94238. +extern int __lll_timedlock_wait (int *futex, const struct timespec *,
  94239. + int private) attribute_hidden;
  94240. +extern int __lll_robust_timedlock_wait (int *futex, const struct timespec *,
  94241. + int private) attribute_hidden;
  94242. +
  94243. +#define __lll_timedlock(futex, abstime, private) \
  94244. + ({ \
  94245. + int *__futex = (futex); \
  94246. + int __val = 0; \
  94247. + \
  94248. + if (unlikely(atomic_exchange_acq (__futex, 1))) \
  94249. + __val = __lll_timedlock_wait (__futex, abstime, private); \
  94250. + __val; \
  94251. + })
  94252. +#define lll_timedlock(futex, abstime, private) \
  94253. + __lll_timedlock (&(futex), abstime, private)
  94254. +
  94255. +
  94256. +#define __lll_robust_timedlock(futex, abstime, id, private) \
  94257. + ({ \
  94258. + int *__futex = (futex); \
  94259. + int __val = 0; \
  94260. + \
  94261. + if (unlikely(atomic_compare_and_exchange_bool_acq (__futex, id, 0))) \
  94262. + __val = __lll_robust_timedlock_wait (__futex, abstime, private); \
  94263. + __val; \
  94264. + })
  94265. +#define lll_robust_timedlock(futex, abstime, id, private) \
  94266. + __lll_robust_timedlock (&(futex), abstime, id, private)
  94267. +
  94268. +
  94269. +#define __lll_unlock(futex, private) \
  94270. + (void) \
  94271. + ({ int *__futex = (futex); \
  94272. + int __oldval = atomic_exchange_rel (__futex, 0); \
  94273. + if (unlikely(__oldval > 1)) \
  94274. + lll_futex_wake (__futex, 1, private); \
  94275. + })
  94276. +#define lll_unlock(futex, private) __lll_unlock(&(futex), private)
  94277. +
  94278. +
  94279. +#define __lll_robust_unlock(futex, private) \
  94280. + (void) \
  94281. + ({ int *__futex = (futex); \
  94282. + int __oldval = atomic_exchange_rel (__futex, 0); \
  94283. + if (unlikely(__oldval & FUTEX_WAITERS)) \
  94284. + lll_futex_wake (__futex, 1, private); \
  94285. + })
  94286. +#define lll_robust_unlock(futex, private) \
  94287. + __lll_robust_unlock(&(futex), private)
  94288. +
  94289. +
  94290. +#define lll_islocked(futex) \
  94291. + (futex != 0)
  94292. +
  94293. +
  94294. +/* Our internal lock implementation is identical to the binary-compatible
  94295. + mutex implementation. */
  94296. +
  94297. +/* Initializers for lock. */
  94298. +#define LLL_LOCK_INITIALIZER (0)
  94299. +#define LLL_LOCK_INITIALIZER_LOCKED (1)
  94300. +
  94301. +/* The states of a lock are:
  94302. + 0 - untaken
  94303. + 1 - taken by one user
  94304. + >1 - taken by more users */
  94305. +
  94306. +/* The kernel notifies a process which uses CLONE_CLEARTID via futex
  94307. + wakeup when the clone terminates. The memory location contains the
  94308. + thread ID while the clone is running and is reset to zero
  94309. + afterwards. */
  94310. +#define lll_wait_tid(tid) \
  94311. + do { \
  94312. + __typeof (tid) __tid; \
  94313. + while ((__tid = (tid)) != 0) \
  94314. + lll_futex_wait (&(tid), __tid, LLL_SHARED);\
  94315. + } while (0)
  94316. +
  94317. +extern int __lll_timedwait_tid (int *, const struct timespec *)
  94318. + attribute_hidden;
  94319. +
  94320. +#define lll_timedwait_tid(tid, abstime) \
  94321. + ({ \
  94322. + int __res = 0; \
  94323. + if ((tid) != 0) \
  94324. + __res = __lll_timedwait_tid (&(tid), (abstime)); \
  94325. + __res; \
  94326. + })
  94327. +
  94328. +#endif /* lowlevellock.h */
  94329. 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
  94330. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile 1970-01-01 01:00:00.000000000 +0100
  94331. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile 2014-06-02 17:40:35.102718006 +0200
  94332. @@ -0,0 +1,13 @@
  94333. +# Makefile for uClibc NPTL
  94334. +#
  94335. +# Copyright (C) 2005 Steven J. Hill <sjhill@uclibc.org>
  94336. +#
  94337. +# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  94338. +#
  94339. +
  94340. +top_srcdir=../../../../../../../
  94341. +top_builddir=../../../../../../../
  94342. +all: objs
  94343. +include $(top_builddir)Rules.mak
  94344. +include Makefile.arch
  94345. +include $(top_srcdir)Makerules
  94346. 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
  94347. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile.arch 1970-01-01 01:00:00.000000000 +0100
  94348. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile.arch 2014-06-02 17:40:35.102718006 +0200
  94349. @@ -0,0 +1,31 @@
  94350. +# Makefile for uClibc NPTL
  94351. +#
  94352. +# Copyright (C) 2006 Steven J. Hill <sjhill@uclibc.org>
  94353. +#
  94354. +# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  94355. +#
  94356. +
  94357. +libpthread_linux_arch_SSRC = pt-vfork.S
  94358. +libpthread_linux_arch_CSRC = pthread_once.c \
  94359. + pt-__syscall_rt_sigaction.c pt-__syscall_error.c \
  94360. + lowlevellock.c
  94361. +
  94362. +libc_linux_arch_CSRC = fork.c libc-lowlevellock.c
  94363. +libc_linux_arch_SSRC = clone.S vfork.S
  94364. +libc_linux_arch_SSRC-OMIT = waitpid.S
  94365. +
  94366. +CFLAGS += $(SSP_ALL_CFLAGS)
  94367. +
  94368. +CFLAGS-pthread_once.c = -DNOT_IN_libc -DIS_IN_libpthread
  94369. +CFLAGS-pt-__syscall_rt_sigaction.c = -DNOT_IN_libc -DIS_IN_libpthread
  94370. +CFLAGS-lowlevellock.c = -DNOT_IN_libc -DIS_IN_libpthread
  94371. +CFLAGS-pt-__syscall_error.c = -DNOT_IN_libc -DIS_IN_libpthread
  94372. +ASFLAGS-vfork.S = -DIS_IN_libc -DNOT_IN_libpthread
  94373. +ASFLAGS-clone.S = -DIS_IN_libc -DNOT_IN_libpthread
  94374. +ASFLAGS-pt-vfork.S = -DNOT_IN_libc -DIS_IN_libpthread
  94375. +
  94376. +ifeq ($(UCLIBC_HAS_STDIO_FUTEXES),y)
  94377. +CFLAGS-fork.c = -D__USE_STDIO_FUTEXES__
  94378. +endif
  94379. +CFLAGS-OMIT-fork.c = -DNOT_IN_libc -DIS_IN_libpthread
  94380. +CFLAGS-OMIT-libc-lowlevellock.c = -DNOT_IN_libc -DIS_IN_libpthread
  94381. 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
  94382. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-gettimeofday.c 1970-01-01 01:00:00.000000000 +0100
  94383. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-gettimeofday.c 2014-06-02 17:40:35.106718029 +0200
  94384. @@ -0,0 +1,11 @@
  94385. +/*
  94386. + * Copyright (C) 2013 Imagination Technologies Ltd.
  94387. + *
  94388. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  94389. + */
  94390. +
  94391. +#include <sys/syscall.h>
  94392. +#include <sys/time.h>
  94393. +
  94394. +int gettimeofday (struct timeval *, struct timezone *) attribute_hidden;
  94395. +_syscall2(int, gettimeofday, struct timeval *, tv, struct timezone *, tz);
  94396. 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
  94397. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pthread_once.c 1970-01-01 01:00:00.000000000 +0100
  94398. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pthread_once.c 2014-06-02 17:40:35.106718029 +0200
  94399. @@ -0,0 +1,100 @@
  94400. +/* Copyright (C) 2004, 2005 Free Software Foundation, Inc.
  94401. + This file is part of the GNU C Library.
  94402. +
  94403. + The GNU C Library is free software; you can redistribute it and/or
  94404. + modify it under the terms of the GNU Lesser General Public
  94405. + License as published by the Free Software Foundation; either
  94406. + version 2.1 of the License, or (at your option) any later version.
  94407. +
  94408. + The GNU C Library is distributed in the hope that it will be useful,
  94409. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  94410. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  94411. + Lesser General Public License for more details.
  94412. +
  94413. + You should have received a copy of the GNU Lesser General Public
  94414. + License along with the GNU C Library; if not, write to the Free
  94415. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94416. + 02111-1307 USA. */
  94417. +
  94418. +#include "pthreadP.h"
  94419. +#include <lowlevellock.h>
  94420. +
  94421. +unsigned long int __fork_generation attribute_hidden;
  94422. +
  94423. +static void
  94424. +clear_once_control (void *arg)
  94425. +{
  94426. + pthread_once_t *once_control = (pthread_once_t *) arg;
  94427. +
  94428. + *once_control = 0;
  94429. + lll_futex_wake (once_control, INT_MAX, LLL_PRIVATE);
  94430. +}
  94431. +
  94432. +int
  94433. +attribute_protected
  94434. +__pthread_once (pthread_once_t *once_control, void (*init_routine) (void))
  94435. +{
  94436. + for (;;)
  94437. + {
  94438. + int oldval;
  94439. + int newval;
  94440. +
  94441. + /* Pseudo code:
  94442. + newval = __fork_generation | 1;
  94443. + oldval = *once_control;
  94444. + if ((oldval & 2) == 0)
  94445. + *once_control = newval;
  94446. + Do this atomically.
  94447. + */
  94448. + do
  94449. + {
  94450. + newval = __fork_generation | 1;
  94451. + oldval = *once_control;
  94452. + if (oldval & 2)
  94453. + break;
  94454. + } while (atomic_compare_and_exchange_val_acq (once_control, newval, oldval) != oldval);
  94455. +
  94456. + /* Check if the initializer has already been done. */
  94457. + if ((oldval & 2) != 0)
  94458. + return 0;
  94459. +
  94460. + /* Check if another thread already runs the initializer. */
  94461. + if ((oldval & 1) == 0)
  94462. + break;
  94463. +
  94464. + /* Check whether the initializer execution was interrupted by a fork. */
  94465. + if (oldval != newval)
  94466. + break;
  94467. +
  94468. + /* Same generation, some other thread was faster. Wait. */
  94469. + lll_futex_wait (once_control, oldval, LLL_PRIVATE);
  94470. + }
  94471. +
  94472. + /* This thread is the first here. Do the initialization.
  94473. + Register a cleanup handler so that in case the thread gets
  94474. + interrupted the initialization can be restarted. */
  94475. + pthread_cleanup_push (clear_once_control, once_control);
  94476. +
  94477. + init_routine ();
  94478. +
  94479. + pthread_cleanup_pop (0);
  94480. +
  94481. + /* Say that the initialisation is done. */
  94482. + *once_control = __fork_generation | 2;
  94483. +
  94484. + /* Wake up all other threads. */
  94485. + lll_futex_wake (once_control, INT_MAX, LLL_PRIVATE);
  94486. +
  94487. + return 0;
  94488. +}
  94489. +weak_alias (__pthread_once, pthread_once)
  94490. +strong_alias (__pthread_once, __pthread_once_internal)
  94491. +
  94492. +#if defined(__USING_SJLJ_EXCEPTIONS__) && !defined(__PIC__)
  94493. +/* When statically linked, if pthread_create is used, this file
  94494. + will be brought in. The exception handling code in GCC assumes
  94495. + that if pthread_create is available, so are these. */
  94496. +const void *include_pthread_getspecific attribute_hidden = pthread_getspecific;
  94497. +const void *include_pthread_setspecific attribute_hidden = pthread_setspecific;
  94498. +const void *include_pthread_key_create attribute_hidden = pthread_key_create;
  94499. +#endif
  94500. 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
  94501. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_error.c 1970-01-01 01:00:00.000000000 +0100
  94502. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_error.c 2014-06-02 17:40:35.106718029 +0200
  94503. @@ -0,0 +1,7 @@
  94504. +/*
  94505. + * Copyright (C) 2013 Imagination Technologies Ltd.
  94506. + *
  94507. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  94508. + */
  94509. +
  94510. +#include <../../../../../../../libc/sysdeps/linux/metag/__syscall_error.c>
  94511. 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
  94512. --- 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
  94513. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_rt_sigaction.c 2014-06-02 17:40:35.106718029 +0200
  94514. @@ -0,0 +1,7 @@
  94515. +/*
  94516. + * Copyright (C) 2013 Imagination Technologies Ltd.
  94517. + *
  94518. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  94519. + */
  94520. +
  94521. +#include <../../../../../../../libc/sysdeps/linux/common/__syscall_rt_sigaction.c>
  94522. 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
  94523. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-vfork.S 1970-01-01 01:00:00.000000000 +0100
  94524. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-vfork.S 2014-06-02 17:40:35.106718029 +0200
  94525. @@ -0,0 +1,51 @@
  94526. +/* Copyright (C) 2005 Free Software Foundation, Inc.
  94527. + This file is part of the GNU C Library.
  94528. +
  94529. + The GNU C Library is free software; you can redistribute it and/or
  94530. + modify it under the terms of the GNU Lesser General Public
  94531. + License as published by the Free Software Foundation; either
  94532. + version 2.1 of the License, or (at your option) any later version.
  94533. +
  94534. + The GNU C Library is distributed in the hope that it will be useful,
  94535. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  94536. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  94537. + Lesser General Public License for more details.
  94538. +
  94539. + You should have received a copy of the GNU Lesser General Public
  94540. + License along with the GNU C Library; if not, write to the Free
  94541. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94542. + 02111-1307 USA. */
  94543. +
  94544. +#include <tcb-offsets.h>
  94545. +#include <asm/unistd.h>
  94546. +
  94547. +#ifdef __PIC__
  94548. +#define __VFORK_METAG_LOAD_TP ___metag_load_tp@PLT
  94549. +#else
  94550. +#define __VFORK_METAG_LOAD_TP ___metag_load_tp
  94551. +#endif
  94552. +
  94553. +/* Save the PID value. */
  94554. +#define SAVE_PID \
  94555. + SETL [A0StP++], D0FrT, D1RtP; \
  94556. + CALLR D1RtP, __VFORK_METAG_LOAD_TP; \
  94557. + SUB D0Re0, D0Re0, #TLS_PRE_TCB_SIZE; \
  94558. + GETD D0FrT, [D0Re0 + #PID]; \
  94559. + NEG D0FrT, D0FrT; \
  94560. + SETD [D0Re0 + #PID], D0FrT; \
  94561. + GETL D0FrT, D1RtP, [--A0StP];
  94562. +
  94563. +#define RESTORE_PID \
  94564. + CMP D0Re0, #0; \
  94565. + BEQ 1f; \
  94566. + MSETL [A0StP++], D0Re0, D0FrT; \
  94567. + CALLR D1RtP, __VFORK_METAG_LOAD_TP; \
  94568. + SUB D0Re0, D0Re0, #TLS_PRE_TCB_SIZE; \
  94569. + GETD D0FrT, [D0Re0 + #PID]; \
  94570. + NEG D0FrT, D0FrT; \
  94571. + SETD [D0Re0 + #PID], D0FrT; \
  94572. + GETL D0FrT, D1RtP, [--A0StP]; \
  94573. + GETL D0Re0, D1Re0, [--A0StP]; \
  94574. +1:
  94575. +
  94576. +#include <../../../../../../../libc/sysdeps/linux/metag/vfork.S>
  94577. 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
  94578. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/sysdep-cancel.h 1970-01-01 01:00:00.000000000 +0100
  94579. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/sysdep-cancel.h 2014-06-02 17:40:35.106718029 +0200
  94580. @@ -0,0 +1,152 @@
  94581. +/* Copyright (C) 2003, 2004, 2005, 2009 Free Software Foundation, Inc.
  94582. + This file is part of the GNU C Library.
  94583. +
  94584. + The GNU C Library is free software; you can redistribute it and/or
  94585. + modify it under the terms of the GNU Lesser General Public
  94586. + License as published by the Free Software Foundation; either
  94587. + version 2.1 of the License, or (at your option) any later version.
  94588. +
  94589. + The GNU C Library is distributed in the hope that it will be useful,
  94590. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  94591. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  94592. + Lesser General Public License for more details.
  94593. +
  94594. + You should have received a copy of the GNU Lesser General Public
  94595. + License along with the GNU C Library; if not, write to the Free
  94596. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94597. + 02111-1307 USA. */
  94598. +
  94599. +#include <tls.h>
  94600. +#include <sysdep.h>
  94601. +#ifndef __ASSEMBLER__
  94602. +# include <pthreadP.h>
  94603. +#endif
  94604. +
  94605. +#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
  94606. +
  94607. +/* NOTE: We do mark syscalls with unwind annotations, for the benefit of
  94608. + cancellation; but they're really only accurate at the point of the
  94609. + syscall. The ARM unwind directives are not rich enough without adding
  94610. + a custom personality function. */
  94611. +
  94612. +#ifdef __ASSEMBLER__
  94613. +#undef ret
  94614. +#define ret \
  94615. + CMP D0Re0, #-4095; \
  94616. + MOVLO PC, D1RtP; \
  94617. + MOV D1Ar1, D0Re0; \
  94618. + B SYSCALL_ERROR;
  94619. +#endif /* __ASSEMBLER__ */
  94620. +
  94621. +# undef PSEUDO
  94622. +# define PSEUDO(name, syscall_name, args) \
  94623. + .section ".text"; \
  94624. + .type ___##syscall_name##_nocancel,%function; \
  94625. + .globl ___##syscall_name##_nocancel; \
  94626. + ___##syscall_name##_nocancel: \
  94627. + cfi_startproc; \
  94628. + DO_CALL (syscall_name, args); \
  94629. + MOV PC, D1RtP; \
  94630. + cfi_endproc; \
  94631. + .size ___##syscall_name##_nocancel,.-___##syscall_name##_nocancel; \
  94632. + .globl _##name; \
  94633. + .type _##name, @function; \
  94634. +name##: \
  94635. +_##name##: \
  94636. + DOCARGS_##args; \
  94637. + SINGLE_THREAD_P; \
  94638. + UNDOCARGS_##args; \
  94639. + BNE .Lpseudo_cancel; \
  94640. + cfi_remember_state; \
  94641. + DO_CALL (syscall_name, 0); \
  94642. + ret \
  94643. + cfi_restore_state; \
  94644. + .Lpseudo_cancel: \
  94645. + MSETL [A0StP++], D0FrT, D0.5; \
  94646. + DOCARGS_##args; /* save syscall args etc. around CENABLE. */ \
  94647. + CENABLE; \
  94648. + MOV D0FrT, D0Re0; /* put mask in safe place. */ \
  94649. + UNDOCARGS_##args; /* restore syscall args. */ \
  94650. + DO_CALL(syscall_name, 0); /* do the call. */ \
  94651. + MOV D0.5, D0Re0; /* save syscall return value. */ \
  94652. + MOV D1Ar1, D0FrT; /* get mask back. */ \
  94653. + CDISABLE; \
  94654. + MOV D0Re0, D0.5; /* retrieve return value. */ \
  94655. + GETL D0.5, D1.5, [--A0StP]; \
  94656. + GETL D0FrT, D1RtP, [--A0StP];
  94657. +
  94658. +# define DOCARGS_0
  94659. +# define UNDOCARGS_0
  94660. +
  94661. +# define DOCARGS_1 \
  94662. + SETL [A0StP++], D1Ar1, D0Ar2
  94663. +# define UNDOCARGS_1 \
  94664. + GETL D1Ar1, D0Ar2, [--A0StP]
  94665. +
  94666. +# define DOCARGS_2 DOCARGS_1
  94667. +
  94668. +# define UNDOCARGS_2 UNDOCARGS_2
  94669. +
  94670. +# define DOCARGS_3 \
  94671. + MSETL [A0StP++], D1Ar1, D1Ar3
  94672. +
  94673. +# define UNDOCARGS_3 \
  94674. + GETL D1Ar1, D0Ar2, [--A0StP]; \
  94675. + GETL D1Ar3, D0Ar4, [--A0StP]
  94676. +
  94677. +# define DOCARGS_4 DOCARGS_3
  94678. +# define UNDOCARGS_4 UNDOCARGS_3
  94679. +
  94680. +# define DOCARGS_5 \
  94681. + MSETL [A0StP++], D1Ar1, D1Ar3, D1Ar5
  94682. +# define UNDOCARGS_5 \
  94683. + GETL D1Ar1, D0Ar2, [--A0StP]; \
  94684. + GETL D1Ar3, D0Ar4, [--A0StP]; \
  94685. + GETL D1Ar5, D0Ar6, [--A0StP]
  94686. +
  94687. +# define DOCARGS_6 DOCARGS_5
  94688. +# define UNDOCARGS_6 UNDOCARGS_5
  94689. +
  94690. +# ifdef IS_IN_libpthread
  94691. +# define CENABLE CALLR D1RtP, ___pthread_enable_asynccancel@PLT
  94692. +# define CDISABLE CALLR D1RtP, ___pthread_disable_asynccancel@PLT
  94693. +# define __local_multiple_threads __pthread_multiple_threads
  94694. +# elif !defined NOT_IN_libc
  94695. +# define CENABLE CALLR D1RtP, ___libc_enable_asynccancel@PLT
  94696. +# define CDISABLE CALLR D1RtP, ___libc_disable_asynccancel@PLT
  94697. +# define __local_multiple_threads __libc_multiple_threads
  94698. +# elif defined IS_IN_librt
  94699. +# define CENABLE CALLR D1RtP, ___librt_enable_asynccancel@PLT
  94700. +# define CDISABLE CALLR D1RtP, ___librt_disable_asynccancel@PLT
  94701. +# else
  94702. +# error Unsupported library
  94703. +# endif
  94704. +
  94705. +#ifndef __ASSEMBLER__
  94706. +# define SINGLE_THREAD_P \
  94707. + likely(THREAD_GETMEM (THREAD_SELF, \
  94708. + header.multiple_threads) == 0)
  94709. +#else
  94710. +# define SINGLE_THREAD_P \
  94711. + SETL [A0StP++], D0FrT, D1RtP; \
  94712. + CALLR D1RtP, ___metag_load_tp@PLT; \
  94713. + SUB D0Re0, D0Re0, #TLS_PRE_TCB_SIZE; \
  94714. + GETD D0Re0, [D0Re0 + #MULTIPLE_THREADS_OFFSET]; \
  94715. + CMP D0Re0, #0; \
  94716. + GETL D0FrT, D1RtP, [--A0StP]
  94717. +#endif
  94718. +
  94719. +
  94720. +#elif !defined __ASSEMBLER__
  94721. +
  94722. +/* For rtld, et cetera. */
  94723. +# define SINGLE_THREAD_P 1
  94724. +# define NO_CANCELLATION 1
  94725. +
  94726. +#endif
  94727. +
  94728. +#ifndef __ASSEMBLER__
  94729. +# define RTLD_SINGLE_THREAD_P \
  94730. + likely(THREAD_GETMEM (THREAD_SELF, \
  94731. + header.multiple_threads) == 0)
  94732. +#endif
  94733. 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
  94734. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/vfork.S 1970-01-01 01:00:00.000000000 +0100
  94735. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/vfork.S 2014-06-02 17:40:35.106718029 +0200
  94736. @@ -0,0 +1,56 @@
  94737. +/* Copyright (C) 2005 Free Software Foundation, Inc.
  94738. + This file is part of the GNU C Library.
  94739. +
  94740. + The GNU C Library is free software; you can redistribute it and/or
  94741. + modify it under the terms of the GNU Lesser General Public
  94742. + License as published by the Free Software Foundation; either
  94743. + version 2.1 of the License, or (at your option) any later version.
  94744. +
  94745. + The GNU C Library is distributed in the hope that it will be useful,
  94746. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  94747. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  94748. + Lesser General Public License for more details.
  94749. +
  94750. + You should have received a copy of the GNU Lesser General Public
  94751. + License along with the GNU C Library; if not, write to the Free
  94752. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94753. + 02111-1307 USA. */
  94754. +
  94755. +#include <tcb-offsets.h>
  94756. +#include <asm/unistd.h>
  94757. +
  94758. +#ifdef __PIC__
  94759. +#define __VFORK_METAG_LOAD_TP ___metag_load_tp@PLT
  94760. +#else
  94761. +#define __VFORK_METAG_LOAD_TP ___metag_load_tp
  94762. +#endif
  94763. +
  94764. +/* Save the PID value. */
  94765. +#define SAVE_PID \
  94766. + SETL [A0StP++], D0FrT, D1RtP; \
  94767. + CALLR D1RtP, __VFORK_METAG_LOAD_TP; \
  94768. + SUB D0Re0, D0Re0, #TLS_PRE_TCB_SIZE; \
  94769. + GETD D0FrT, [D0Re0 + #PID]; \
  94770. + NEGS D0FrT, D0FrT; \
  94771. + BNZ 1f; \
  94772. + MOVT D0FrT, #0x8000; \
  94773. +1: SETD [D0Re0 + #PID], D0FrT; \
  94774. + GETL D0FrT, D1RtP, [--A0StP];
  94775. +
  94776. +#define RESTORE_PID \
  94777. + CMP D0Re0, #0; \
  94778. + BEQ 1f; \
  94779. + MSETL [A0StP++], D0Re0, D0FrT; \
  94780. + CALLR D1RtP, __VFORK_METAG_LOAD_TP; \
  94781. + SUB D0Re0, D0Re0, #TLS_PRE_TCB_SIZE; \
  94782. + GETD D0FrT, [D0Re0 + #PID]; \
  94783. + NEG D0FrT, D0FrT; \
  94784. + MOVT D1Re0, #0x8000; \
  94785. + CMP D0FrT, D1Re0; \
  94786. + XOREQ D0FrT, D0FrT, D0FrT; \
  94787. + SETD [D0Re0 + #PID], D0FrT; \
  94788. + GETL D0FrT, D1RtP, [--A0StP]; \
  94789. + GETL D0Re0, D1Re0, [--A0StP]; \
  94790. +1:
  94791. +
  94792. +#include <../../../../../../../libc/sysdeps/linux/metag/vfork.S>
  94793. 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
  94794. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
  94795. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h 2014-06-02 17:40:35.106718029 +0200
  94796. @@ -13,9 +13,8 @@
  94797. Lesser General Public License for more details.
  94798. You should have received a copy of the GNU Lesser General Public
  94799. - License along with the GNU C Library; if not, write to the Free
  94800. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94801. - 02111-1307 USA. */
  94802. + License along with the GNU C Library; if not, see
  94803. + <http://www.gnu.org/licenses/>. */
  94804. #ifndef _BITS_PTHREADTYPES_H
  94805. #define _BITS_PTHREADTYPES_H 1
  94806. 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
  94807. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
  94808. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/bits/semaphore.h 2014-06-02 17:40:35.106718029 +0200
  94809. @@ -12,9 +12,8 @@
  94810. Lesser General Public License for more details.
  94811. You should have received a copy of the GNU Lesser General Public
  94812. - License along with the GNU C Library; if not, write to the Free
  94813. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94814. - 02111-1307 USA. */
  94815. + License along with the GNU C Library; if not, see
  94816. + <http://www.gnu.org/licenses/>. */
  94817. #ifndef _SEMAPHORE_H
  94818. # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
  94819. 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
  94820. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/createthread.c 2012-05-15 09:20:09.000000000 +0200
  94821. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/createthread.c 2014-06-02 17:40:35.106718029 +0200
  94822. @@ -12,9 +12,8 @@
  94823. Lesser General Public License for more details.
  94824. You should have received a copy of the GNU Lesser General Public
  94825. - License along with the GNU C Library; if not, write to the Free
  94826. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94827. - 02111-1307 USA. */
  94828. + License along with the GNU C Library; if not, see
  94829. + <http://www.gnu.org/licenses/>. */
  94830. /* Value passed to 'clone' for initialization of the thread register. */
  94831. #define TLS_VALUE ((void *) (pd) \
  94832. 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
  94833. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
  94834. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/lowlevellock.h 2014-06-02 17:40:35.106718029 +0200
  94835. @@ -13,9 +13,8 @@
  94836. Lesser General Public License for more details.
  94837. You should have received a copy of the GNU Lesser General Public
  94838. - License along with the GNU C Library; if not, write to the Free
  94839. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94840. - 02111-1307 USA. */
  94841. + License along with the GNU C Library; if not, see
  94842. + <http://www.gnu.org/licenses/>. */
  94843. #ifndef _LOWLEVELLOCK_H
  94844. #define _LOWLEVELLOCK_H 1
  94845. @@ -81,7 +80,7 @@
  94846. #define lll_futex_timed_wait(futexp, val, timespec, private) \
  94847. ({ \
  94848. INTERNAL_SYSCALL_DECL (__err); \
  94849. - long int __ret; \
  94850. + long int __ret attribute_unused; \
  94851. __ret = INTERNAL_SYSCALL (futex, __err, 4, (long) (futexp), \
  94852. __lll_private_flag (FUTEX_WAIT, private), \
  94853. (val), (timespec)); \
  94854. @@ -91,7 +90,7 @@
  94855. #define lll_futex_wake(futexp, nr, private) \
  94856. ({ \
  94857. INTERNAL_SYSCALL_DECL (__err); \
  94858. - long int __ret; \
  94859. + long int __ret attribute_unused; \
  94860. __ret = INTERNAL_SYSCALL (futex, __err, 4, (long) (futexp), \
  94861. __lll_private_flag (FUTEX_WAKE, private), \
  94862. (nr), 0); \
  94863. @@ -111,7 +110,7 @@
  94864. #define lll_futex_requeue(futexp, nr_wake, nr_move, mutex, val, private) \
  94865. ({ \
  94866. INTERNAL_SYSCALL_DECL (__err); \
  94867. - long int __ret; \
  94868. + long int __ret attribute_unused; \
  94869. __ret = INTERNAL_SYSCALL (futex, __err, 6, (long) (futexp), \
  94870. __lll_private_flag (FUTEX_CMP_REQUEUE, private),\
  94871. (nr_wake), (nr_move), (mutex), (val)); \
  94872. @@ -122,7 +121,7 @@
  94873. #define lll_futex_wake_unlock(futexp, nr_wake, nr_wake2, futexp2, private) \
  94874. ({ \
  94875. INTERNAL_SYSCALL_DECL (__err); \
  94876. - long int __ret; \
  94877. + long int __ret attribute_unused; \
  94878. \
  94879. __ret = INTERNAL_SYSCALL (futex, __err, 6, (futexp), \
  94880. __lll_private_flag (FUTEX_WAKE_OP, private), \
  94881. 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
  94882. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pthread_once.c 2012-05-15 09:20:09.000000000 +0200
  94883. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pthread_once.c 2014-06-02 17:40:35.106718029 +0200
  94884. @@ -13,9 +13,8 @@
  94885. Lesser General Public License for more details.
  94886. You should have received a copy of the GNU Lesser General Public
  94887. - License along with the GNU C Library; if not, write to the Free
  94888. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94889. - 02111-1307 USA. */
  94890. + License along with the GNU C Library; if not, see
  94891. + <http://www.gnu.org/licenses/>. */
  94892. #include "pthreadP.h"
  94893. #include <lowlevellock.h>
  94894. 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
  94895. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
  94896. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pt-vfork.S 2014-06-02 17:40:35.106718029 +0200
  94897. @@ -12,9 +12,8 @@
  94898. Lesser General Public License for more details.
  94899. You should have received a copy of the GNU Lesser General Public
  94900. - License along with the GNU C Library; if not, write to the Free
  94901. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94902. - 02111-1307 USA. */
  94903. + License along with the GNU C Library; if not, see
  94904. + <http://www.gnu.org/licenses/>. */
  94905. #include <features.h>
  94906. #include <tls.h>
  94907. 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
  94908. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  94909. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h 2014-06-02 17:40:35.106718029 +0200
  94910. @@ -12,9 +12,8 @@
  94911. Lesser General Public License for more details.
  94912. You should have received a copy of the GNU Lesser General Public
  94913. - License along with the GNU C Library; if not, write to the Free
  94914. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94915. - 02111-1307 USA. */
  94916. + License along with the GNU C Library; if not, see
  94917. + <http://www.gnu.org/licenses/>. */
  94918. #include <sysdep.h>
  94919. #include <tls.h>
  94920. 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
  94921. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/vfork.S 2012-05-15 09:20:09.000000000 +0200
  94922. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/vfork.S 2014-06-02 17:40:35.106718029 +0200
  94923. @@ -12,9 +12,8 @@
  94924. Lesser General Public License for more details.
  94925. You should have received a copy of the GNU Lesser General Public
  94926. - License along with the GNU C Library; if not, write to the Free
  94927. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94928. - 02111-1307 USA. */
  94929. + License along with the GNU C Library; if not, see
  94930. + <http://www.gnu.org/licenses/>. */
  94931. #include <features.h>
  94932. #include <tls.h>
  94933. 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
  94934. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mq_notify.c 2012-05-15 09:20:09.000000000 +0200
  94935. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mq_notify.c 2014-06-02 17:40:35.106718029 +0200
  94936. @@ -13,9 +13,8 @@
  94937. Lesser General Public License for more details.
  94938. You should have received a copy of the GNU Lesser General Public
  94939. - License along with the GNU C Library; if not, write to the Free
  94940. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94941. - 02111-1307 USA. */
  94942. + License along with the GNU C Library; if not, see
  94943. + <http://www.gnu.org/licenses/>. */
  94944. #include <assert.h>
  94945. #include <errno.h>
  94946. 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
  94947. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/not-cancel.h 2012-05-15 09:20:09.000000000 +0200
  94948. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/not-cancel.h 2014-06-02 17:40:35.106718029 +0200
  94949. @@ -14,18 +14,26 @@
  94950. Lesser General Public License for more details.
  94951. You should have received a copy of the GNU Lesser General Public
  94952. - License along with the GNU C Library; if not, write to the Free
  94953. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94954. - 02111-1307 USA. */
  94955. + License along with the GNU C Library; if not, see
  94956. + <http://www.gnu.org/licenses/>. */
  94957. #include <sys/types.h>
  94958. #include <sysdep.h>
  94959. /* Uncancelable open. */
  94960. +#if defined __NR_openat && !defined __NR_open
  94961. +#define open_not_cancel(name, flags, mode) \
  94962. + INLINE_SYSCALL (openat, 4, AT_FDCWD, (const char *) (name), \
  94963. + (flags), (mode))
  94964. +#define open_not_cancel_2(name, flags) \
  94965. + INLINE_SYSCALL (openat, 3, AT_FDCWD, (const char *) (name), \
  94966. + (flags))
  94967. +#else
  94968. #define open_not_cancel(name, flags, mode) \
  94969. INLINE_SYSCALL (open, 3, (const char *) (name), (flags), (mode))
  94970. #define open_not_cancel_2(name, flags) \
  94971. INLINE_SYSCALL (open, 2, (const char *) (name), (flags))
  94972. +#endif
  94973. /* Uncancelable openat. */
  94974. #if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
  94975. 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
  94976. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
  94977. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h 2014-06-02 17:40:35.110718051 +0200
  94978. @@ -14,9 +14,8 @@
  94979. Lesser General Public License for more details.
  94980. You should have received a copy of the GNU Lesser General Public
  94981. - License along with the GNU C Library; if not, write to the Free
  94982. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94983. - 02111-1307 USA. */
  94984. + License along with the GNU C Library; if not, see
  94985. + <http://www.gnu.org/licenses/>. */
  94986. #ifndef _BITS_PTHREADTYPES_H
  94987. #define _BITS_PTHREADTYPES_H 1
  94988. 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
  94989. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
  94990. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h 2014-06-02 17:40:35.110718051 +0200
  94991. @@ -14,9 +14,8 @@
  94992. Lesser General Public License for more details.
  94993. You should have received a copy of the GNU Lesser General Public
  94994. - License along with the GNU C Library; if not, write to the Free
  94995. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94996. - 02111-1307 USA. */
  94997. + License along with the GNU C Library; if not, see
  94998. + <http://www.gnu.org/licenses/>. */
  94999. #ifndef _SEMAPHORE_H
  95000. # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
  95001. 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
  95002. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/createthread.c 2012-05-15 09:20:09.000000000 +0200
  95003. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/createthread.c 2014-06-02 17:40:35.110718051 +0200
  95004. @@ -13,9 +13,8 @@
  95005. Lesser General Public License for more details.
  95006. You should have received a copy of the GNU Lesser General Public
  95007. - License along with the GNU C Library; if not, write to the Free
  95008. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95009. - 02111-1307 USA. */
  95010. + License along with the GNU C Library; if not, see
  95011. + <http://www.gnu.org/licenses/>. */
  95012. /* Value passed to 'clone' for initialization of the thread register. */
  95013. #define TLS_VALUE ((void *) (pd) \
  95014. 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
  95015. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
  95016. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h 2014-06-02 17:40:35.110718051 +0200
  95017. @@ -13,9 +13,8 @@
  95018. Lesser General Public License for more details.
  95019. You should have received a copy of the GNU Lesser General Public
  95020. - License along with the GNU C Library; if not, write to the Free
  95021. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95022. - 02111-1307 USA. */
  95023. + License along with the GNU C Library; if not, see
  95024. + <http://www.gnu.org/licenses/>. */
  95025. #ifndef _LOWLEVELLOCK_H
  95026. #define _LOWLEVELLOCK_H 1
  95027. 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
  95028. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
  95029. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S 2014-06-02 17:40:35.110718051 +0200
  95030. @@ -13,9 +13,8 @@
  95031. Lesser General Public License for more details.
  95032. You should have received a copy of the GNU Lesser General Public
  95033. - License along with the GNU C Library; if not, write to the Free
  95034. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95035. - 02111-1307 USA. */
  95036. + License along with the GNU C Library; if not, see
  95037. + <http://www.gnu.org/licenses/>. */
  95038. #include <sysdep.h>
  95039. #define _ERRNO_H 1
  95040. 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
  95041. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  95042. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h 2014-06-02 17:40:35.110718051 +0200
  95043. @@ -14,9 +14,8 @@
  95044. Lesser General Public License for more details.
  95045. You should have received a copy of the GNU Lesser General Public
  95046. - License along with the GNU C Library; if not, write to the Free
  95047. - Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
  95048. - 02110-1301 USA. */
  95049. + License along with the GNU C Library; if not, see
  95050. + <http://www.gnu.org/licenses/>. */
  95051. #include <sysdep.h>
  95052. #include <tls.h>
  95053. 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
  95054. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S 2012-05-15 09:20:09.000000000 +0200
  95055. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S 2014-06-02 17:40:35.110718051 +0200
  95056. @@ -13,9 +13,8 @@
  95057. Lesser General Public License for more details.
  95058. You should have received a copy of the GNU Lesser General Public
  95059. - License along with the GNU C Library; if not, write to the Free
  95060. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95061. - 02111-1307 USA. */
  95062. + License along with the GNU C Library; if not, see
  95063. + <http://www.gnu.org/licenses/>. */
  95064. #include <sysdep.h>
  95065. #define _ERRNO_H 1
  95066. 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
  95067. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
  95068. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S 2014-06-02 17:40:35.110718051 +0200
  95069. @@ -13,9 +13,8 @@
  95070. Lesser General Public License for more details.
  95071. You should have received a copy of the GNU Lesser General Public
  95072. - License along with the GNU C Library; if not, write to the Free
  95073. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95074. - 02111-1307 USA. */
  95075. + License along with the GNU C Library; if not, see
  95076. + <http://www.gnu.org/licenses/>. */
  95077. #include <sysdep.h>
  95078. #define _ERRNO_H 1
  95079. 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
  95080. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  95081. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h 2014-06-02 17:40:35.110718051 +0200
  95082. @@ -14,9 +14,8 @@
  95083. Lesser General Public License for more details.
  95084. You should have received a copy of the GNU Lesser General Public
  95085. - License along with the GNU C Library; if not, write to the Free
  95086. - Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
  95087. - 02110-1301 USA. */
  95088. + License along with the GNU C Library; if not, see
  95089. + <http://www.gnu.org/licenses/>. */
  95090. #include <sysdep.h>
  95091. #include <tls.h>
  95092. 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
  95093. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S 2012-05-15 09:20:09.000000000 +0200
  95094. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S 2014-06-02 17:40:35.126718139 +0200
  95095. @@ -13,9 +13,8 @@
  95096. Lesser General Public License for more details.
  95097. You should have received a copy of the GNU Lesser General Public
  95098. - License along with the GNU C Library; if not, write to the Free
  95099. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95100. - 02111-1307 USA. */
  95101. + License along with the GNU C Library; if not, see
  95102. + <http://www.gnu.org/licenses/>. */
  95103. #include <sysdep.h>
  95104. #define _ERRNO_H 1
  95105. 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
  95106. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c 2012-05-15 09:20:09.000000000 +0200
  95107. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c 2014-06-02 17:40:35.126718139 +0200
  95108. @@ -13,9 +13,8 @@
  95109. Lesser General Public License for more details.
  95110. You should have received a copy of the GNU Lesser General Public
  95111. - License along with the GNU C Library; if not, write to the Free
  95112. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95113. - 02111-1307 USA. */
  95114. + License along with the GNU C Library; if not, see
  95115. + <http://www.gnu.org/licenses/>. */
  95116. #include "pthreadP.h"
  95117. #include <lowlevellock.h>
  95118. 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
  95119. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_spin_unlock.c 2012-05-15 09:20:09.000000000 +0200
  95120. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_spin_unlock.c 2014-06-02 17:40:35.126718139 +0200
  95121. @@ -13,9 +13,8 @@
  95122. Lesser General Public License for more details.
  95123. You should have received a copy of the GNU Lesser General Public
  95124. - License along with the GNU C Library; if not, write to the Free
  95125. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95126. - 02111-1307 USA. */
  95127. + License along with the GNU C Library; if not, see
  95128. + <http://www.gnu.org/licenses/>. */
  95129. #include "pthreadP.h"
  95130. #include <lowlevellock.h>
  95131. 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
  95132. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c 2012-05-15 09:20:09.000000000 +0200
  95133. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c 2014-06-02 17:40:35.126718139 +0200
  95134. @@ -13,9 +13,8 @@
  95135. Lesser General Public License for more details.
  95136. You should have received a copy of the GNU Lesser General Public
  95137. - License along with the GNU C Library; if not, write to the Free
  95138. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95139. - 02111-1307 USA. */
  95140. + License along with the GNU C Library; if not, see
  95141. + <http://www.gnu.org/licenses/>. */
  95142. #include <setjmp.h>
  95143. #include <stdlib.h>
  95144. 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
  95145. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/sem_post.c 2012-05-15 09:20:09.000000000 +0200
  95146. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/sem_post.c 2014-06-02 17:40:35.126718139 +0200
  95147. @@ -14,9 +14,8 @@
  95148. Lesser General Public License for more details.
  95149. You should have received a copy of the GNU Lesser General Public
  95150. - License along with the GNU C Library; if not, write to the Free
  95151. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95152. - 02111-1307 USA. */
  95153. + License along with the GNU C Library; if not, see
  95154. + <http://www.gnu.org/licenses/>. */
  95155. #include <errno.h>
  95156. #include <sysdep.h>
  95157. @@ -25,7 +24,7 @@
  95158. #include <semaphore.h>
  95159. int
  95160. -__new_sem_post (sem_t *sem)
  95161. +sem_post (sem_t *sem)
  95162. {
  95163. struct new_sem *isem = (struct new_sem *) sem;
  95164. @@ -44,4 +43,3 @@
  95165. }
  95166. return 0;
  95167. }
  95168. -weak_alias(__new_sem_post, sem_post)
  95169. 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
  95170. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pt-fork.c 2012-05-15 09:20:09.000000000 +0200
  95171. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pt-fork.c 2014-06-02 17:40:35.126718139 +0200
  95172. @@ -13,17 +13,16 @@
  95173. Lesser General Public License for more details.
  95174. You should have received a copy of the GNU Lesser General Public
  95175. - License along with the GNU C Library; if not, write to the Free
  95176. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95177. - 02111-1307 USA. */
  95178. + License along with the GNU C Library; if not, see
  95179. + <http://www.gnu.org/licenses/>. */
  95180. #include <unistd.h>
  95181. -extern int __libc_fork (void);
  95182. -
  95183. -pid_t
  95184. +#if 0
  95185. +static pid_t
  95186. __fork (void)
  95187. {
  95188. return __libc_fork ();
  95189. }
  95190. strong_alias (__fork, fork)
  95191. +#endif
  95192. 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
  95193. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c 2012-05-15 09:20:09.000000000 +0200
  95194. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c 2014-06-02 17:40:35.130718162 +0200
  95195. @@ -13,9 +13,8 @@
  95196. Lesser General Public License for more details.
  95197. You should have received a copy of the GNU Lesser General Public
  95198. - License along with the GNU C Library; if not, write to the Free
  95199. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95200. - 02111-1307 USA. */
  95201. + License along with the GNU C Library; if not, see
  95202. + <http://www.gnu.org/licenses/>. */
  95203. #include <assert.h>
  95204. #include <errno.h>
  95205. 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
  95206. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c 2012-05-15 09:20:09.000000000 +0200
  95207. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c 2014-06-02 17:40:35.130718162 +0200
  95208. @@ -13,9 +13,8 @@
  95209. Lesser General Public License for more details.
  95210. You should have received a copy of the GNU Lesser General Public
  95211. - License along with the GNU C Library; if not, write to the Free
  95212. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95213. - 02111-1307 USA. */
  95214. + License along with the GNU C Library; if not, see
  95215. + <http://www.gnu.org/licenses/>. */
  95216. #include <assert.h>
  95217. #include <errno.h>
  95218. 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
  95219. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_getaffinity.c 2012-05-15 09:20:09.000000000 +0200
  95220. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_getaffinity.c 2014-06-02 17:40:35.130718162 +0200
  95221. @@ -13,9 +13,8 @@
  95222. Lesser General Public License for more details.
  95223. You should have received a copy of the GNU Lesser General Public
  95224. - License along with the GNU C Library; if not, write to the Free
  95225. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95226. - 02111-1307 USA. */
  95227. + License along with the GNU C Library; if not, see
  95228. + <http://www.gnu.org/licenses/>. */
  95229. #include <errno.h>
  95230. #include <limits.h>
  95231. 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
  95232. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c 2012-05-15 09:20:09.000000000 +0200
  95233. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c 2014-06-02 17:40:35.130718162 +0200
  95234. @@ -12,9 +12,8 @@
  95235. Lesser General Public License for more details.
  95236. You should have received a copy of the GNU Lesser General Public
  95237. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  95238. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  95239. - Boston, MA 02111-1307, USA. */
  95240. + License along with the GNU C Library; see the file COPYING.LIB. If
  95241. + not, see <http://www.gnu.org/licenses/>. */
  95242. #include <errno.h>
  95243. #include <pthreadP.h>
  95244. 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
  95245. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_kill.c 2012-05-15 09:20:09.000000000 +0200
  95246. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_kill.c 2014-06-02 17:40:35.130718162 +0200
  95247. @@ -13,9 +13,8 @@
  95248. Lesser General Public License for more details.
  95249. You should have received a copy of the GNU Lesser General Public
  95250. - License along with the GNU C Library; if not, write to the Free
  95251. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95252. - 02111-1307 USA. */
  95253. + License along with the GNU C Library; if not, see
  95254. + <http://www.gnu.org/licenses/>. */
  95255. #include <errno.h>
  95256. #include <signal.h>
  95257. 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
  95258. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_setaffinity.c 2012-05-15 09:20:09.000000000 +0200
  95259. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_setaffinity.c 2014-06-02 17:40:35.130718162 +0200
  95260. @@ -13,9 +13,8 @@
  95261. Lesser General Public License for more details.
  95262. You should have received a copy of the GNU Lesser General Public
  95263. - License along with the GNU C Library; if not, write to the Free
  95264. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95265. - 02111-1307 USA. */
  95266. + License along with the GNU C Library; if not, see
  95267. + <http://www.gnu.org/licenses/>. */
  95268. #include <alloca.h>
  95269. #include <errno.h>
  95270. 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
  95271. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c 2012-05-15 09:20:09.000000000 +0200
  95272. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c 2014-06-02 17:40:35.130718162 +0200
  95273. @@ -13,9 +13,8 @@
  95274. Lesser General Public License for more details.
  95275. You should have received a copy of the GNU Lesser General Public
  95276. - License along with the GNU C Library; if not, write to the Free
  95277. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95278. - 02111-1307 USA. */
  95279. + License along with the GNU C Library; if not, see
  95280. + <http://www.gnu.org/licenses/>. */
  95281. #include <errno.h>
  95282. #include <signal.h>
  95283. 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
  95284. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_yield.c 2012-05-15 09:20:09.000000000 +0200
  95285. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_yield.c 2014-06-02 17:40:35.130718162 +0200
  95286. @@ -13,9 +13,8 @@
  95287. Lesser General Public License for more details.
  95288. You should have received a copy of the GNU Lesser General Public
  95289. - License along with the GNU C Library; if not, write to the Free
  95290. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95291. - 02111-1307 USA. */
  95292. + License along with the GNU C Library; if not, see
  95293. + <http://www.gnu.org/licenses/>. */
  95294. #include <pthread.h>
  95295. #include <sched.h>
  95296. 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
  95297. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pt-raise.c 2012-05-15 09:20:09.000000000 +0200
  95298. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pt-raise.c 2014-06-02 17:40:35.126718139 +0200
  95299. @@ -13,9 +13,8 @@
  95300. Lesser General Public License for more details.
  95301. You should have received a copy of the GNU Lesser General Public
  95302. - License along with the GNU C Library; if not, write to the Free
  95303. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95304. - 02111-1307 USA. */
  95305. + License along with the GNU C Library; if not, see
  95306. + <http://www.gnu.org/licenses/>. */
  95307. #include <errno.h>
  95308. #include <signal.h>
  95309. 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
  95310. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/raise.c 2012-05-15 09:20:09.000000000 +0200
  95311. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/raise.c 2014-06-02 17:40:35.130718162 +0200
  95312. @@ -13,9 +13,8 @@
  95313. Lesser General Public License for more details.
  95314. You should have received a copy of the GNU Lesser General Public
  95315. - License along with the GNU C Library; if not, write to the Free
  95316. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95317. - 02111-1307 USA. */
  95318. + License along with the GNU C Library; if not, see
  95319. + <http://www.gnu.org/licenses/>. */
  95320. #include <errno.h>
  95321. #include <limits.h>
  95322. 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
  95323. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/register-atfork.c 2012-05-15 09:20:09.000000000 +0200
  95324. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/register-atfork.c 2014-06-02 17:40:35.130718162 +0200
  95325. @@ -13,9 +13,8 @@
  95326. Lesser General Public License for more details.
  95327. You should have received a copy of the GNU Lesser General Public
  95328. - License along with the GNU C Library; if not, write to the Free
  95329. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95330. - 02111-1307 USA. */
  95331. + License along with the GNU C Library; if not, see
  95332. + <http://www.gnu.org/licenses/>. */
  95333. #include <errno.h>
  95334. #include <stdlib.h>
  95335. 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
  95336. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sem_post.c 2012-05-15 09:20:09.000000000 +0200
  95337. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sem_post.c 2014-06-02 17:40:35.130718162 +0200
  95338. @@ -14,9 +14,8 @@
  95339. Lesser General Public License for more details.
  95340. You should have received a copy of the GNU Lesser General Public
  95341. - License along with the GNU C Library; if not, write to the Free
  95342. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95343. - 02111-1307 USA. */
  95344. + License along with the GNU C Library; if not, see
  95345. + <http://www.gnu.org/licenses/>. */
  95346. #include <errno.h>
  95347. #include <sysdep.h>
  95348. @@ -26,7 +25,7 @@
  95349. #include <tls.h>
  95350. int
  95351. -__new_sem_post (sem_t *sem)
  95352. +sem_post (sem_t *sem)
  95353. {
  95354. struct new_sem *isem = (struct new_sem *) sem;
  95355. @@ -55,4 +54,3 @@
  95356. }
  95357. return 0;
  95358. }
  95359. -weak_alias(__new_sem_post, sem_post)
  95360. 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
  95361. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sem_timedwait.c 2012-05-15 09:20:09.000000000 +0200
  95362. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sem_timedwait.c 2014-06-02 17:40:35.130718162 +0200
  95363. @@ -14,9 +14,8 @@
  95364. Lesser General Public License for more details.
  95365. You should have received a copy of the GNU Lesser General Public
  95366. - License along with the GNU C Library; if not, write to the Free
  95367. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95368. - 02111-1307 USA. */
  95369. + License along with the GNU C Library; if not, see
  95370. + <http://www.gnu.org/licenses/>. */
  95371. #include <errno.h>
  95372. #include <sysdep.h>
  95373. 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
  95374. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sem_trywait.c 2012-05-15 09:20:09.000000000 +0200
  95375. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sem_trywait.c 2014-06-02 17:40:35.130718162 +0200
  95376. @@ -14,9 +14,8 @@
  95377. Lesser General Public License for more details.
  95378. You should have received a copy of the GNU Lesser General Public
  95379. - License along with the GNU C Library; if not, write to the Free
  95380. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95381. - 02111-1307 USA. */
  95382. + License along with the GNU C Library; if not, see
  95383. + <http://www.gnu.org/licenses/>. */
  95384. #include <errno.h>
  95385. #include <sysdep.h>
  95386. @@ -26,7 +25,7 @@
  95387. int
  95388. -__new_sem_trywait (sem_t *sem)
  95389. +sem_trywait (sem_t *sem)
  95390. {
  95391. int *futex = (int *) sem;
  95392. int val;
  95393. @@ -41,4 +40,3 @@
  95394. __set_errno (EAGAIN);
  95395. return -1;
  95396. }
  95397. -weak_alias(__new_sem_trywait, sem_trywait)
  95398. 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
  95399. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sem_wait.c 2012-05-15 09:20:09.000000000 +0200
  95400. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sem_wait.c 2014-06-02 17:40:35.130718162 +0200
  95401. @@ -14,9 +14,8 @@
  95402. Lesser General Public License for more details.
  95403. You should have received a copy of the GNU Lesser General Public
  95404. - License along with the GNU C Library; if not, write to the Free
  95405. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95406. - 02111-1307 USA. */
  95407. + License along with the GNU C Library; if not, see
  95408. + <http://www.gnu.org/licenses/>. */
  95409. #include <errno.h>
  95410. #include <sysdep.h>
  95411. @@ -38,7 +37,7 @@
  95412. int
  95413. -__new_sem_wait (sem_t *sem)
  95414. +sem_wait (sem_t *sem)
  95415. {
  95416. struct new_sem *isem = (struct new_sem *) sem;
  95417. int err;
  95418. @@ -81,4 +80,3 @@
  95419. return err;
  95420. }
  95421. -weak_alias(__new_sem_wait, sem_wait)
  95422. 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
  95423. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
  95424. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h 2014-06-02 17:40:35.130718162 +0200
  95425. @@ -14,9 +14,8 @@
  95426. Lesser General Public License for more details.
  95427. You should have received a copy of the GNU Lesser General Public
  95428. - License along with the GNU C Library; if not, write to the Free
  95429. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95430. - 02111-1307 USA. */
  95431. + License along with the GNU C Library; if not, see
  95432. + <http://www.gnu.org/licenses/>. */
  95433. #ifndef _BITS_PTHREADTYPES_H
  95434. #define _BITS_PTHREADTYPES_H 1
  95435. 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
  95436. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
  95437. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/bits/semaphore.h 2014-06-02 17:40:35.130718162 +0200
  95438. @@ -13,9 +13,8 @@
  95439. Lesser General Public License for more details.
  95440. You should have received a copy of the GNU Lesser General Public
  95441. - License along with the GNU C Library; if not, write to the Free
  95442. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95443. - 02111-1307 USA. */
  95444. + License along with the GNU C Library; if not, see
  95445. + <http://www.gnu.org/licenses/>. */
  95446. #ifndef _SEMAPHORE_H
  95447. # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
  95448. 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
  95449. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/createthread.c 2012-05-15 09:20:09.000000000 +0200
  95450. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/createthread.c 2014-06-02 17:40:35.130718162 +0200
  95451. @@ -12,9 +12,8 @@
  95452. Lesser General Public License for more details.
  95453. You should have received a copy of the GNU Lesser General Public
  95454. - License along with the GNU C Library; if not, write to the Free
  95455. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95456. - 02111-1307 USA. */
  95457. + License along with the GNU C Library; if not, see
  95458. + <http://www.gnu.org/licenses/>. */
  95459. /* Value passed to 'clone' for initialization of the thread register. */
  95460. #define TLS_VALUE (pd + 1)
  95461. 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
  95462. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/fork.c 2012-05-15 09:20:09.000000000 +0200
  95463. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/fork.c 2014-06-02 17:40:35.134718184 +0200
  95464. @@ -12,9 +12,8 @@
  95465. Lesser General Public License for more details.
  95466. You should have received a copy of the GNU Lesser General Public
  95467. - License along with the GNU C Library; if not, write to the Free
  95468. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95469. - 02111-1307 USA. */
  95470. + License along with the GNU C Library; if not, see
  95471. + <http://www.gnu.org/licenses/>. */
  95472. #include <sched.h>
  95473. #include <signal.h>
  95474. 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
  95475. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
  95476. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S 2014-06-02 17:40:35.134718184 +0200
  95477. @@ -12,8 +12,7 @@
  95478. Lesser General Public License for more details.
  95479. You should have received a copy of the GNU Lesser General Public
  95480. - License along with the GNU C Library; if not, write to the Free
  95481. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95482. - 02111-1307 USA. */
  95483. + License along with the GNU C Library; if not, see
  95484. + <http://www.gnu.org/licenses/>. */
  95485. #include "lowlevellock.S"
  95486. 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
  95487. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h 2012-05-15 09:20:09.000000000 +0200
  95488. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h 2014-06-02 17:40:35.134718184 +0200
  95489. @@ -12,9 +12,8 @@
  95490. Lesser General Public License for more details.
  95491. You should have received a copy of the GNU Lesser General Public
  95492. - License along with the GNU C Library; if not, write to the Free
  95493. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95494. - 02111-1307 USA. */
  95495. + License along with the GNU C Library; if not, see
  95496. + <http://www.gnu.org/licenses/>. */
  95497. #ifdef __ASSEMBLER__
  95498. 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
  95499. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
  95500. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h 2014-06-02 17:40:35.134718184 +0200
  95501. @@ -13,9 +13,8 @@
  95502. Lesser General Public License for more details.
  95503. You should have received a copy of the GNU Lesser General Public
  95504. - License along with the GNU C Library; if not, write to the Free
  95505. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95506. - 02111-1307 USA. */
  95507. + License along with the GNU C Library; if not, see
  95508. + <http://www.gnu.org/licenses/>. */
  95509. #ifndef _LOWLEVELLOCK_H
  95510. #define _LOWLEVELLOCK_H 1
  95511. @@ -396,9 +395,9 @@
  95512. #define lll_wait_tid(tid) \
  95513. do { \
  95514. - __typeof (tid) *__tid = &(tid); \
  95515. - while (*__tid != 0) \
  95516. - lll_futex_wait (__tid, *__tid, LLL_SHARED); \
  95517. + __typeof (tid) __tid; \
  95518. + while ((__tid = (tid)) != 0) \
  95519. + lll_futex_wait (&(tid), __tid, LLL_SHARED); \
  95520. } while (0)
  95521. extern int __lll_timedwait_tid (int *tid, const struct timespec *abstime)
  95522. 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
  95523. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
  95524. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S 2014-06-02 17:40:35.134718184 +0200
  95525. @@ -13,9 +13,8 @@
  95526. Lesser General Public License for more details.
  95527. You should have received a copy of the GNU Lesser General Public
  95528. - License along with the GNU C Library; if not, write to the Free
  95529. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95530. - 02111-1307 USA. */
  95531. + License along with the GNU C Library; if not, see
  95532. + <http://www.gnu.org/licenses/>. */
  95533. #include <sysdep.h>
  95534. #include <pthread-errnos.h>
  95535. 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
  95536. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S 2012-05-15 09:20:09.000000000 +0200
  95537. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S 2014-06-02 17:40:35.134718184 +0200
  95538. @@ -13,9 +13,8 @@
  95539. Lesser General Public License for more details.
  95540. You should have received a copy of the GNU Lesser General Public
  95541. - License along with the GNU C Library; if not, write to the Free
  95542. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95543. - 02111-1307 USA. */
  95544. + License along with the GNU C Library; if not, see
  95545. + <http://www.gnu.org/licenses/>. */
  95546. #include <sysdep.h>
  95547. #include <pthread-errnos.h>
  95548. 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
  95549. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S 2012-05-15 09:20:09.000000000 +0200
  95550. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S 2014-06-02 17:40:35.134718184 +0200
  95551. @@ -12,9 +12,8 @@
  95552. Lesser General Public License for more details.
  95553. You should have received a copy of the GNU Lesser General Public
  95554. - License along with the GNU C Library; if not, write to the Free
  95555. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95556. - 02111-1307 USA. */
  95557. + License along with the GNU C Library; if not, see
  95558. + <http://www.gnu.org/licenses/>. */
  95559. #include <sysdep.h>
  95560. #include <lowlevellock.h>
  95561. 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
  95562. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S 2012-05-15 09:20:09.000000000 +0200
  95563. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S 2014-06-02 17:40:35.134718184 +0200
  95564. @@ -12,9 +12,8 @@
  95565. Lesser General Public License for more details.
  95566. You should have received a copy of the GNU Lesser General Public
  95567. - License along with the GNU C Library; if not, write to the Free
  95568. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95569. - 02111-1307 USA. */
  95570. + License along with the GNU C Library; if not, see
  95571. + <http://www.gnu.org/licenses/>. */
  95572. #include <sysdep.h>
  95573. #include <lowlevellock.h>
  95574. 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
  95575. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S 2012-05-15 09:20:09.000000000 +0200
  95576. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S 2014-06-02 17:40:35.134718184 +0200
  95577. @@ -12,9 +12,8 @@
  95578. Lesser General Public License for more details.
  95579. You should have received a copy of the GNU Lesser General Public
  95580. - License along with the GNU C Library; if not, write to the Free
  95581. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95582. - 02111-1307 USA. */
  95583. + License along with the GNU C Library; if not, see
  95584. + <http://www.gnu.org/licenses/>. */
  95585. #include <sysdep.h>
  95586. #include <lowlevellock.h>
  95587. 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
  95588. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S 2012-05-15 09:20:09.000000000 +0200
  95589. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S 2014-06-02 17:40:35.134718184 +0200
  95590. @@ -12,9 +12,8 @@
  95591. Lesser General Public License for more details.
  95592. You should have received a copy of the GNU Lesser General Public
  95593. - License along with the GNU C Library; if not, write to the Free
  95594. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95595. - 02111-1307 USA. */
  95596. + License along with the GNU C Library; if not, see
  95597. + <http://www.gnu.org/licenses/>. */
  95598. #include <sysdep.h>
  95599. #include <lowlevellock.h>
  95600. 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
  95601. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S 2012-05-15 09:20:09.000000000 +0200
  95602. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S 2014-06-02 17:40:35.134718184 +0200
  95603. @@ -12,9 +12,8 @@
  95604. Lesser General Public License for more details.
  95605. You should have received a copy of the GNU Lesser General Public
  95606. - License along with the GNU C Library; if not, write to the Free
  95607. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95608. - 02111-1307 USA. */
  95609. + License along with the GNU C Library; if not, see
  95610. + <http://www.gnu.org/licenses/>. */
  95611. #include <sysdep.h>
  95612. #include <lowlevellock.h>
  95613. 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
  95614. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S 2012-05-15 09:20:09.000000000 +0200
  95615. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S 2014-06-02 17:40:35.134718184 +0200
  95616. @@ -12,9 +12,8 @@
  95617. Lesser General Public License for more details.
  95618. You should have received a copy of the GNU Lesser General Public
  95619. - License along with the GNU C Library; if not, write to the Free
  95620. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95621. - 02111-1307 USA. */
  95622. + License along with the GNU C Library; if not, see
  95623. + <http://www.gnu.org/licenses/>. */
  95624. #include <unwindbuf.h>
  95625. #include <sysdep.h>
  95626. 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
  95627. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S 2012-05-15 09:20:09.000000000 +0200
  95628. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S 2014-06-02 17:40:35.134718184 +0200
  95629. @@ -12,9 +12,8 @@
  95630. Lesser General Public License for more details.
  95631. You should have received a copy of the GNU Lesser General Public
  95632. - License along with the GNU C Library; if not, write to the Free
  95633. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95634. - 02111-1307 USA. */
  95635. + License along with the GNU C Library; if not, see
  95636. + <http://www.gnu.org/licenses/>. */
  95637. #include <sysdep.h>
  95638. #include <lowlevellock.h>
  95639. 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
  95640. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S 2012-05-15 09:20:09.000000000 +0200
  95641. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S 2014-06-02 17:40:35.134718184 +0200
  95642. @@ -12,9 +12,8 @@
  95643. Lesser General Public License for more details.
  95644. You should have received a copy of the GNU Lesser General Public
  95645. - License along with the GNU C Library; if not, write to the Free
  95646. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95647. - 02111-1307 USA. */
  95648. + License along with the GNU C Library; if not, see
  95649. + <http://www.gnu.org/licenses/>. */
  95650. #include <sysdep.h>
  95651. #include <lowlevellock.h>
  95652. 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
  95653. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S 2012-05-15 09:20:09.000000000 +0200
  95654. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S 2014-06-02 17:40:35.134718184 +0200
  95655. @@ -12,9 +12,8 @@
  95656. Lesser General Public License for more details.
  95657. You should have received a copy of the GNU Lesser General Public
  95658. - License along with the GNU C Library; if not, write to the Free
  95659. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95660. - 02111-1307 USA. */
  95661. + License along with the GNU C Library; if not, see
  95662. + <http://www.gnu.org/licenses/>. */
  95663. #include <sysdep.h>
  95664. #include <lowlevellock.h>
  95665. 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
  95666. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S 2012-05-15 09:20:09.000000000 +0200
  95667. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S 2014-06-02 17:40:35.134718184 +0200
  95668. @@ -12,9 +12,8 @@
  95669. Lesser General Public License for more details.
  95670. You should have received a copy of the GNU Lesser General Public
  95671. - License along with the GNU C Library; if not, write to the Free
  95672. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95673. - 02111-1307 USA. */
  95674. + License along with the GNU C Library; if not, see
  95675. + <http://www.gnu.org/licenses/>. */
  95676. #include <sysdep.h>
  95677. #include <lowlevellock.h>
  95678. 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
  95679. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S 2012-05-15 09:20:09.000000000 +0200
  95680. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S 2014-06-02 17:40:35.134718184 +0200
  95681. @@ -12,9 +12,8 @@
  95682. Lesser General Public License for more details.
  95683. You should have received a copy of the GNU Lesser General Public
  95684. - License along with the GNU C Library; if not, write to the Free
  95685. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95686. - 02111-1307 USA. */
  95687. + License along with the GNU C Library; if not, see
  95688. + <http://www.gnu.org/licenses/>. */
  95689. #include <sysdep.h>
  95690. #include <lowlevellock.h>
  95691. 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
  95692. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
  95693. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-initfini.c 2014-06-02 17:40:35.134718184 +0200
  95694. @@ -23,8 +23,7 @@
  95695. You should have received a copy of the GNU Library General Public
  95696. License along with the GNU C Library; see the file COPYING.LIB. If not,
  95697. - write to the Free Software Foundation, 59 Temple Place - Suite 330,
  95698. - Boston, MA 02111-1307, USA. */
  95699. + see <http://www.gnu.org/licenses/>. */
  95700. /* This file is compiled into assembly code which is then munged by a sed
  95701. script into two files: crti.s and crtn.s.
  95702. 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
  95703. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
  95704. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-vfork.S 2014-06-02 17:40:35.134718184 +0200
  95705. @@ -12,9 +12,8 @@
  95706. Lesser General Public License for more details.
  95707. You should have received a copy of the GNU Lesser General Public
  95708. - License along with the GNU C Library; if not, write to the Free
  95709. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95710. - 02111-1307 USA. */
  95711. + License along with the GNU C Library; if not, see
  95712. + <http://www.gnu.org/licenses/>. */
  95713. #include <sysdep.h>
  95714. #define _ERRNO_H 1
  95715. 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
  95716. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_post.S 2012-05-15 09:20:09.000000000 +0200
  95717. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_post.S 2014-06-02 17:40:35.134718184 +0200
  95718. @@ -12,9 +12,8 @@
  95719. Lesser General Public License for more details.
  95720. You should have received a copy of the GNU Lesser General Public
  95721. - License along with the GNU C Library; if not, write to the Free
  95722. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95723. - 02111-1307 USA. */
  95724. + License along with the GNU C Library; if not, see
  95725. + <http://www.gnu.org/licenses/>. */
  95726. #include <sysdep.h>
  95727. #include <pthread-errnos.h>
  95728. @@ -25,10 +24,10 @@
  95729. .text
  95730. - .globl __new_sem_post
  95731. - .type __new_sem_post,@function
  95732. + .globl sem_post
  95733. + .type sem_post,@function
  95734. .align 5
  95735. -__new_sem_post:
  95736. +sem_post:
  95737. mov.l @(VALUE,r4), r2
  95738. 0:
  95739. mov.l .Lmax, r1
  95740. @@ -106,5 +105,4 @@
  95741. .Lerrloc3:
  95742. .long __errno_location@PLT-(.Lerrloc3b-.)
  95743. #endif
  95744. - .size __new_sem_post,.-__new_sem_post
  95745. - weak_alias(__new_sem_post, sem_post)
  95746. + .size sem_post,.-sem_post
  95747. 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
  95748. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S 2012-05-15 09:20:09.000000000 +0200
  95749. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S 2014-06-02 17:40:35.134718184 +0200
  95750. @@ -12,9 +12,8 @@
  95751. Lesser General Public License for more details.
  95752. You should have received a copy of the GNU Lesser General Public
  95753. - License along with the GNU C Library; if not, write to the Free
  95754. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95755. - 02111-1307 USA. */
  95756. + License along with the GNU C Library; if not, see
  95757. + <http://www.gnu.org/licenses/>. */
  95758. #include <sysdep.h>
  95759. #include <pthread-errnos.h>
  95760. 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
  95761. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_trywait.S 2012-05-15 09:20:09.000000000 +0200
  95762. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_trywait.S 2014-06-02 17:40:35.134718184 +0200
  95763. @@ -12,9 +12,8 @@
  95764. Lesser General Public License for more details.
  95765. You should have received a copy of the GNU Lesser General Public
  95766. - License along with the GNU C Library; if not, write to the Free
  95767. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95768. - 02111-1307 USA. */
  95769. + License along with the GNU C Library; if not, see
  95770. + <http://www.gnu.org/licenses/>. */
  95771. #include <sysdep.h>
  95772. #include <pthread-errnos.h>
  95773. @@ -24,10 +23,10 @@
  95774. .text
  95775. - .globl __new_sem_trywait
  95776. - .type __new_sem_trywait,@function
  95777. + .globl sem_trywait
  95778. + .type sem_trywait,@function
  95779. .align 5
  95780. -__new_sem_trywait:
  95781. +sem_trywait:
  95782. mov.l r12, @-r15
  95783. mov.l r8, @-r15
  95784. sts.l pr, @-r15
  95785. @@ -86,5 +85,4 @@
  95786. .Lerrloc1:
  95787. .long __errno_location@PLT-(.Lerrloc1b-.)
  95788. #endif
  95789. - .size __new_sem_trywait,.-__new_sem_trywait
  95790. - weak_alias(__new_sem_trywait, sem_trywait)
  95791. + .size sem_trywait,.-sem_trywait
  95792. 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
  95793. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_wait.S 2012-05-15 09:20:09.000000000 +0200
  95794. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_wait.S 2014-06-02 17:40:35.134718184 +0200
  95795. @@ -12,9 +12,8 @@
  95796. Lesser General Public License for more details.
  95797. You should have received a copy of the GNU Lesser General Public
  95798. - License along with the GNU C Library; if not, write to the Free
  95799. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95800. - 02111-1307 USA. */
  95801. + License along with the GNU C Library; if not, see
  95802. + <http://www.gnu.org/licenses/>. */
  95803. #include <sysdep.h>
  95804. #include <pthread-errnos.h>
  95805. @@ -30,10 +29,10 @@
  95806. .text
  95807. - .globl __new_sem_wait
  95808. - .type __new_sem_wait,@function
  95809. + .globl sem_wait
  95810. + .type sem_wait,@function
  95811. .align 5
  95812. -__new_sem_wait:
  95813. +sem_wait:
  95814. .LSTARTCODE:
  95815. mov.l r8, @-r15
  95816. .Lpush_r8:
  95817. @@ -161,8 +160,7 @@
  95818. .long __pthread_enable_asynccancel-.Lenable0b
  95819. .Ldisable0:
  95820. .long __pthread_disable_asynccancel-.Ldisable0b
  95821. - .size __new_sem_wait,.-__new_sem_wait
  95822. - weak_alias(__new_sem_wait, sem_wait)
  95823. + .size sem_wait,.-sem_wait
  95824. .type sem_wait_cleanup,@function
  95825. 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
  95826. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/smp.h 2012-05-15 09:20:09.000000000 +0200
  95827. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/smp.h 2014-06-02 17:40:35.134718184 +0200
  95828. @@ -14,8 +14,7 @@
  95829. You should have received a copy of the GNU Library General Public
  95830. License along with the GNU C Library; see the file COPYING.LIB. If not,
  95831. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  95832. - Boston, MA 02111-1307, USA. */
  95833. + see <http://www.gnu.org/licenses/>. */
  95834. static inline int
  95835. is_smp_system (void)
  95836. 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
  95837. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  95838. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h 2014-06-02 17:40:35.134718184 +0200
  95839. @@ -12,9 +12,8 @@
  95840. Lesser General Public License for more details.
  95841. You should have received a copy of the GNU Lesser General Public
  95842. - License along with the GNU C Library; if not, write to the Free
  95843. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95844. - 02111-1307 USA. */
  95845. + License along with the GNU C Library; if not, see
  95846. + <http://www.gnu.org/licenses/>. */
  95847. #include <tls.h>
  95848. #include <sysdep.h>
  95849. 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
  95850. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/vfork.S 2012-05-15 09:20:09.000000000 +0200
  95851. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/vfork.S 2014-06-02 17:40:35.134718184 +0200
  95852. @@ -12,9 +12,8 @@
  95853. Lesser General Public License for more details.
  95854. You should have received a copy of the GNU Lesser General Public
  95855. - License along with the GNU C Library; if not, write to the Free
  95856. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95857. - 02111-1307 USA. */
  95858. + License along with the GNU C Library; if not, see
  95859. + <http://www.gnu.org/licenses/>. */
  95860. #include <sysdep.h>
  95861. #define _ERRNO_H 1
  95862. 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
  95863. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sigtimedwait.c 2012-05-15 09:20:09.000000000 +0200
  95864. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sigtimedwait.c 2014-06-02 17:40:35.134718184 +0200
  95865. @@ -12,9 +12,8 @@
  95866. Lesser General Public License for more details.
  95867. You should have received a copy of the GNU Lesser General Public
  95868. - License along with the GNU C Library; if not, write to the Free
  95869. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95870. - 02111-1307 USA. */
  95871. + License along with the GNU C Library; if not, see
  95872. + <http://www.gnu.org/licenses/>. */
  95873. #include <pthreadP.h>
  95874. #include <errno.h>
  95875. @@ -67,7 +66,7 @@
  95876. /* Return any pending signal or wait for one for the given time. */
  95877. -int attribute_hidden
  95878. +int
  95879. __sigtimedwait (const sigset_t *set, siginfo_t *info,
  95880. const struct timespec *timeout)
  95881. {
  95882. 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
  95883. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sigwaitinfo.c 2012-05-15 09:20:09.000000000 +0200
  95884. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sigwaitinfo.c 2014-06-02 17:40:35.134718184 +0200
  95885. @@ -12,9 +12,8 @@
  95886. Lesser General Public License for more details.
  95887. You should have received a copy of the GNU Lesser General Public
  95888. - License along with the GNU C Library; if not, write to the Free
  95889. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95890. - 02111-1307 USA. */
  95891. + License along with the GNU C Library; if not, see
  95892. + <http://www.gnu.org/licenses/>. */
  95893. #include <pthreadP.h>
  95894. #include <errno.h>
  95895. 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
  95896. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/smp.h 2012-05-15 09:20:09.000000000 +0200
  95897. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/smp.h 2014-06-02 17:40:35.134718184 +0200
  95898. @@ -14,8 +14,7 @@
  95899. You should have received a copy of the GNU Library General Public
  95900. License along with the GNU C Library; see the file COPYING.LIB. If not,
  95901. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  95902. - Boston, MA 02111-1307, USA. */
  95903. + see <http://www.gnu.org/licenses/>. */
  95904. /* Test whether the machine has more than one processor. This is not the
  95905. best test but good enough. More complicated tests would require `malloc'
  95906. 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
  95907. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h 2012-05-15 09:20:09.000000000 +0200
  95908. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h 2014-06-02 17:40:35.134718184 +0200
  95909. @@ -14,8 +14,7 @@
  95910. You should have received a copy of the GNU Library General Public
  95911. License along with the GNU C Library; see the file COPYING.LIB. If not,
  95912. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  95913. - Boston, MA 02111-1307, USA. */
  95914. + see <http://www.gnu.org/licenses/>. */
  95915. /* The kernel header pollutes the namespace with the NR_OPEN symbol
  95916. and defines LINK_MAX although filesystems have different maxima. A
  95917. 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
  95918. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
  95919. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h 2014-06-02 17:40:35.134718184 +0200
  95920. @@ -14,9 +14,8 @@
  95921. Lesser General Public License for more details.
  95922. You should have received a copy of the GNU Lesser General Public
  95923. - License along with the GNU C Library; if not, write to the Free
  95924. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95925. - 02111-1307 USA. */
  95926. + License along with the GNU C Library; if not, see
  95927. + <http://www.gnu.org/licenses/>. */
  95928. #ifndef _BITS_PTHREADTYPES_H
  95929. #define _BITS_PTHREADTYPES_H 1
  95930. 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
  95931. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
  95932. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/semaphore.h 2014-06-02 17:40:35.134718184 +0200
  95933. @@ -14,9 +14,8 @@
  95934. Lesser General Public License for more details.
  95935. You should have received a copy of the GNU Lesser General Public
  95936. - License along with the GNU C Library; if not, write to the Free
  95937. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95938. - 02111-1307 USA. */
  95939. + License along with the GNU C Library; if not, see
  95940. + <http://www.gnu.org/licenses/>. */
  95941. #ifndef _SEMAPHORE_H
  95942. # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
  95943. 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
  95944. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/fork.c 2012-05-15 09:20:09.000000000 +0200
  95945. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/fork.c 2014-06-02 17:40:35.134718184 +0200
  95946. @@ -13,9 +13,8 @@
  95947. Lesser General Public License for more details.
  95948. You should have received a copy of the GNU Lesser General Public
  95949. - License along with the GNU C Library; if not, write to the Free
  95950. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95951. - 02111-1307 USA. */
  95952. + License along with the GNU C Library; if not, see
  95953. + <http://www.gnu.org/licenses/>. */
  95954. #include <sched.h>
  95955. #include <signal.h>
  95956. 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
  95957. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/libc-lowlevellock.c 2012-05-15 09:20:09.000000000 +0200
  95958. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/libc-lowlevellock.c 2014-06-02 17:40:35.134718184 +0200
  95959. @@ -13,9 +13,8 @@
  95960. Lesser General Public License for more details.
  95961. You should have received a copy of the GNU Lesser General Public
  95962. - License along with the GNU C Library; if not, write to the Free
  95963. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95964. - 02111-1307 USA. */
  95965. + License along with the GNU C Library; if not, see
  95966. + <http://www.gnu.org/licenses/>. */
  95967. /* No difference to lowlevellock.c, except we lose a couple of functions. */
  95968. #include "lowlevellock.c"
  95969. 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
  95970. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.c 2012-05-15 09:20:09.000000000 +0200
  95971. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.c 2014-06-02 17:40:35.134718184 +0200
  95972. @@ -14,9 +14,8 @@
  95973. Lesser General Public License for more details.
  95974. You should have received a copy of the GNU Lesser General Public
  95975. - License along with the GNU C Library; if not, write to the Free
  95976. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95977. - 02111-1307 USA. */
  95978. + License along with the GNU C Library; if not, see
  95979. + <http://www.gnu.org/licenses/>. */
  95980. #include <errno.h>
  95981. #include <sysdep.h>
  95982. 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
  95983. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
  95984. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h 2014-06-02 17:40:35.134718184 +0200
  95985. @@ -14,9 +14,8 @@
  95986. Lesser General Public License for more details.
  95987. You should have received a copy of the GNU Lesser General Public
  95988. - License along with the GNU C Libr \ary; if not, write to the Free
  95989. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95990. - 02111-1307 USA. */
  95991. + License along with the GNU C Library; see the file COPYING.LIB. If
  95992. + not, see <http://www.gnu.org/licenses/>. */
  95993. #ifndef _LOWLEVELLOCK_H
  95994. #define _LOWLEVELLOCK_H 1
  95995. 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
  95996. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c 2012-05-15 09:20:09.000000000 +0200
  95997. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c 2014-06-02 17:40:35.134718184 +0200
  95998. @@ -13,9 +13,8 @@
  95999. Lesser General Public License for more details.
  96000. You should have received a copy of the GNU Lesser General Public
  96001. - License along with the GNU C Library; if not, write to the Free
  96002. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96003. - 02111-1307 USA. */
  96004. + License along with the GNU C Library; if not, see
  96005. + <http://www.gnu.org/licenses/>. */
  96006. #include <errno.h>
  96007. #include "pthreadP.h"
  96008. 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
  96009. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c 2012-05-15 09:20:09.000000000 +0200
  96010. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c 2014-06-02 17:40:35.134718184 +0200
  96011. @@ -13,9 +13,8 @@
  96012. Lesser General Public License for more details.
  96013. You should have received a copy of the GNU Lesser General Public
  96014. - License along with the GNU C Library; if not, write to the Free
  96015. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96016. - 02111-1307 USA. */
  96017. + License along with the GNU C Library; if not, see
  96018. + <http://www.gnu.org/licenses/>. */
  96019. #include <errno.h>
  96020. #include "pthreadP.h"
  96021. 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
  96022. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_once.c 2012-05-15 09:20:09.000000000 +0200
  96023. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_once.c 2014-06-02 17:40:35.138718205 +0200
  96024. @@ -13,9 +13,8 @@
  96025. Lesser General Public License for more details.
  96026. You should have received a copy of the GNU Lesser General Public
  96027. - License along with the GNU C Library; if not, write to the Free
  96028. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96029. - 02111-1307 USA. */
  96030. + License along with the GNU C Library; if not, see
  96031. + <http://www.gnu.org/licenses/>. */
  96032. #include "pthreadP.h"
  96033. #include <lowlevellock.h>
  96034. 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
  96035. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c 2012-05-15 09:20:09.000000000 +0200
  96036. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c 2014-06-02 17:40:35.138718205 +0200
  96037. @@ -13,9 +13,8 @@
  96038. Lesser General Public License for more details.
  96039. You should have received a copy of the GNU Lesser General Public
  96040. - License along with the GNU C Library; if not, write to the Free
  96041. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96042. - 02111-1307 USA. */
  96043. + License along with the GNU C Library; if not, see
  96044. + <http://www.gnu.org/licenses/>. */
  96045. #include <errno.h>
  96046. #include <string.h>
  96047. @@ -26,7 +25,7 @@
  96048. int
  96049. -__new_sem_init (sem, pshared, value)
  96050. +sem_init (sem, pshared, value)
  96051. sem_t *sem;
  96052. int pshared;
  96053. unsigned int value;
  96054. @@ -53,5 +52,3 @@
  96055. return 0;
  96056. }
  96057. -weak_alias(__new_sem_init, sem_init)
  96058. -
  96059. 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
  96060. --- 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
  96061. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c 2014-06-02 17:40:35.138718205 +0200
  96062. @@ -13,9 +13,8 @@
  96063. Lesser General Public License for more details.
  96064. You should have received a copy of the GNU Lesser General Public
  96065. - License along with the GNU C Library; if not, write to the Free
  96066. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96067. - 02111-1307 USA. */
  96068. + License along with the GNU C Library; if not, see
  96069. + <http://www.gnu.org/licenses/>. */
  96070. #include <errno.h>
  96071. #include <sysdep.h>
  96072. 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
  96073. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
  96074. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S 2014-06-02 17:40:35.138718205 +0200
  96075. @@ -13,9 +13,8 @@
  96076. Lesser General Public License for more details.
  96077. You should have received a copy of the GNU Lesser General Public
  96078. - License along with the GNU C Library; if not, write to the Free
  96079. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96080. - 02111-1307 USA. */
  96081. + License along with the GNU C Library; if not, see
  96082. + <http://www.gnu.org/licenses/>. */
  96083. #include <sysdep.h>
  96084. #include <tcb-offsets.h>
  96085. 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
  96086. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c 2012-05-15 09:20:09.000000000 +0200
  96087. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c 2014-06-02 17:40:35.138718205 +0200
  96088. @@ -14,9 +14,8 @@
  96089. Lesser General Public License for more details.
  96090. You should have received a copy of the GNU Lesser General Public
  96091. - License along with the GNU C Library; if not, write to the Free
  96092. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96093. - 02111-1307 USA. */
  96094. + License along with the GNU C Library; if not, see
  96095. + <http://www.gnu.org/licenses/>. */
  96096. #include <errno.h>
  96097. #include <sysdep.h>
  96098. @@ -25,7 +24,7 @@
  96099. #include <semaphore.h>
  96100. int
  96101. -__new_sem_post (sem_t *sem)
  96102. +sem_post (sem_t *sem)
  96103. {
  96104. struct sparc_new_sem *isem = (struct sparc_new_sem *) sem;
  96105. int nr;
  96106. @@ -51,5 +50,3 @@
  96107. }
  96108. return 0;
  96109. }
  96110. -weak_alias(__new_sem_post, sem_post)
  96111. -
  96112. 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
  96113. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c 2012-05-15 09:20:09.000000000 +0200
  96114. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c 2014-06-02 17:40:35.138718205 +0200
  96115. @@ -14,9 +14,8 @@
  96116. Lesser General Public License for more details.
  96117. You should have received a copy of the GNU Lesser General Public
  96118. - License along with the GNU C Library; if not, write to the Free
  96119. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96120. - 02111-1307 USA. */
  96121. + License along with the GNU C Library; if not, see
  96122. + <http://www.gnu.org/licenses/>. */
  96123. #include <errno.h>
  96124. #include <sysdep.h>
  96125. 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
  96126. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c 2012-05-15 09:20:09.000000000 +0200
  96127. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c 2014-06-02 17:40:35.138718205 +0200
  96128. @@ -14,9 +14,8 @@
  96129. Lesser General Public License for more details.
  96130. You should have received a copy of the GNU Lesser General Public
  96131. - License along with the GNU C Library; if not, write to the Free
  96132. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96133. - 02111-1307 USA. */
  96134. + License along with the GNU C Library; if not, see
  96135. + <http://www.gnu.org/licenses/>. */
  96136. #include <errno.h>
  96137. #include <sysdep.h>
  96138. @@ -26,7 +25,7 @@
  96139. int
  96140. -__new_sem_trywait (sem_t *sem)
  96141. +sem_trywait (sem_t *sem)
  96142. {
  96143. struct sparc_old_sem *isem = (struct sparc_old_sem *) sem;
  96144. int val;
  96145. @@ -50,5 +49,3 @@
  96146. __set_errno (EAGAIN);
  96147. return -1;
  96148. }
  96149. -weak_alias(__new_sem_trywait, sem_trywait)
  96150. -
  96151. 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
  96152. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c 2012-05-15 09:20:09.000000000 +0200
  96153. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c 2014-06-02 17:40:35.138718205 +0200
  96154. @@ -14,9 +14,8 @@
  96155. Lesser General Public License for more details.
  96156. You should have received a copy of the GNU Lesser General Public
  96157. - License along with the GNU C Library; if not, write to the Free
  96158. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96159. - 02111-1307 USA. */
  96160. + License along with the GNU C Library; if not, see
  96161. + <http://www.gnu.org/licenses/>. */
  96162. #include <errno.h>
  96163. #include <sysdep.h>
  96164. @@ -45,7 +44,7 @@
  96165. int
  96166. -__new_sem_wait (sem_t *sem)
  96167. +sem_wait (sem_t *sem)
  96168. {
  96169. struct sparc_new_sem *isem = (struct sparc_new_sem *) sem;
  96170. int err;
  96171. @@ -123,5 +122,3 @@
  96172. return err;
  96173. }
  96174. -weak_alias(__new_sem_wait, sem_wait)
  96175. -
  96176. 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
  96177. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  96178. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h 2014-06-02 17:40:35.138718205 +0200
  96179. @@ -13,9 +13,8 @@
  96180. Lesser General Public License for more details.
  96181. You should have received a copy of the GNU Lesser General Public
  96182. - License along with the GNU C Library; if not, write to the Free
  96183. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96184. - 02111-1307 USA. */
  96185. + License along with the GNU C Library; if not, see
  96186. + <http://www.gnu.org/licenses/>. */
  96187. #include <tls.h>
  96188. #include <sysdep.h>
  96189. 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
  96190. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S 2012-05-15 09:20:09.000000000 +0200
  96191. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S 2014-06-02 17:40:35.138718205 +0200
  96192. @@ -13,9 +13,8 @@
  96193. Lesser General Public License for more details.
  96194. You should have received a copy of the GNU Lesser General Public
  96195. - License along with the GNU C Library; if not, write to the Free
  96196. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96197. - 02111-1307 USA. */
  96198. + License along with the GNU C Library; if not, see
  96199. + <http://www.gnu.org/licenses/>. */
  96200. #include <sysdep.h>
  96201. #include <tcb-offsets.h>
  96202. 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
  96203. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
  96204. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S 2014-06-02 17:40:35.138718205 +0200
  96205. @@ -13,9 +13,8 @@
  96206. Lesser General Public License for more details.
  96207. You should have received a copy of the GNU Lesser General Public
  96208. - License along with the GNU C Library; if not, write to the Free
  96209. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96210. - 02111-1307 USA. */
  96211. + License along with the GNU C Library; if not, see
  96212. + <http://www.gnu.org/licenses/>. */
  96213. #include <sysdep.h>
  96214. #include <tcb-offsets.h>
  96215. 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
  96216. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  96217. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h 2014-06-02 17:40:35.138718205 +0200
  96218. @@ -13,9 +13,8 @@
  96219. Lesser General Public License for more details.
  96220. You should have received a copy of the GNU Lesser General Public
  96221. - License along with the GNU C Library; if not, write to the Free
  96222. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96223. - 02111-1307 USA. */
  96224. + License along with the GNU C Library; if not, see
  96225. + <http://www.gnu.org/licenses/>. */
  96226. #include <sysdep.h>
  96227. #include <tls.h>
  96228. 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
  96229. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S 2012-05-15 09:20:09.000000000 +0200
  96230. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S 2014-06-02 17:40:35.138718205 +0200
  96231. @@ -13,9 +13,8 @@
  96232. Lesser General Public License for more details.
  96233. You should have received a copy of the GNU Lesser General Public
  96234. - License along with the GNU C Library; if not, write to the Free
  96235. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96236. - 02111-1307 USA. */
  96237. + License along with the GNU C Library; if not, see
  96238. + <http://www.gnu.org/licenses/>. */
  96239. #include <sysdep.h>
  96240. #include <tcb-offsets.h>
  96241. 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
  96242. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_create.c 2012-05-15 09:20:09.000000000 +0200
  96243. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_create.c 2014-06-02 17:40:35.138718205 +0200
  96244. @@ -13,9 +13,8 @@
  96245. Lesser General Public License for more details.
  96246. You should have received a copy of the GNU Lesser General Public
  96247. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  96248. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  96249. - Boston, MA 02111-1307, USA. */
  96250. + License along with the GNU C Library; see the file COPYING.LIB. If
  96251. + not, see <http://www.gnu.org/licenses/>. */
  96252. #include <errno.h>
  96253. #include <pthread.h>
  96254. 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
  96255. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_delete.c 2012-05-15 09:20:09.000000000 +0200
  96256. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_delete.c 2014-06-02 17:40:35.138718205 +0200
  96257. @@ -13,9 +13,8 @@
  96258. Lesser General Public License for more details.
  96259. You should have received a copy of the GNU Lesser General Public
  96260. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  96261. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  96262. - Boston, MA 02111-1307, USA. */
  96263. + License along with the GNU C Library; see the file COPYING.LIB. If
  96264. + not, see <http://www.gnu.org/licenses/>. */
  96265. #include <errno.h>
  96266. #include <stdlib.h>
  96267. 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
  96268. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_getoverr.c 2012-05-15 09:20:09.000000000 +0200
  96269. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_getoverr.c 2014-06-02 17:40:35.138718205 +0200
  96270. @@ -13,9 +13,8 @@
  96271. Lesser General Public License for more details.
  96272. You should have received a copy of the GNU Lesser General Public
  96273. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  96274. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  96275. - Boston, MA 02111-1307, USA. */
  96276. + License along with the GNU C Library; see the file COPYING.LIB. If
  96277. + not, see <http://www.gnu.org/licenses/>. */
  96278. #include <errno.h>
  96279. #include <time.h>
  96280. 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
  96281. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_gettime.c 2012-05-15 09:20:09.000000000 +0200
  96282. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_gettime.c 2014-06-02 17:40:35.138718205 +0200
  96283. @@ -13,9 +13,8 @@
  96284. Lesser General Public License for more details.
  96285. You should have received a copy of the GNU Lesser General Public
  96286. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  96287. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  96288. - Boston, MA 02111-1307, USA. */
  96289. + License along with the GNU C Library; see the file COPYING.LIB. If
  96290. + not, see <http://www.gnu.org/licenses/>. */
  96291. #include <errno.h>
  96292. #include <stdlib.h>
  96293. 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
  96294. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_routines.c 2012-05-15 09:20:09.000000000 +0200
  96295. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_routines.c 2014-06-02 17:40:35.138718205 +0200
  96296. @@ -13,9 +13,8 @@
  96297. Lesser General Public License for more details.
  96298. You should have received a copy of the GNU Lesser General Public
  96299. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  96300. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  96301. - Boston, MA 02111-1307, USA. */
  96302. + License along with the GNU C Library; see the file COPYING.LIB. If
  96303. + not, see <http://www.gnu.org/licenses/>. */
  96304. #include <errno.h>
  96305. #include <setjmp.h>
  96306. @@ -49,7 +48,7 @@
  96307. surprising for user code, although valid. We unblock all
  96308. signals. */
  96309. sigset_t ss;
  96310. - sigemptyset (&ss);
  96311. + __sigemptyset (&ss);
  96312. INTERNAL_SYSCALL_DECL (err);
  96313. INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &ss, NULL, _NSIG / 8);
  96314. @@ -69,13 +68,13 @@
  96315. /* Helper function to support starting threads for SIGEV_THREAD. */
  96316. -static void *
  96317. +static attribute_noreturn void *
  96318. timer_helper_thread (void *arg)
  96319. {
  96320. /* Wait for the SIGTIMER signal, allowing the setXid signal, and
  96321. none else. */
  96322. sigset_t ss;
  96323. - sigemptyset (&ss);
  96324. + __sigemptyset (&ss);
  96325. __sigaddset (&ss, SIGTIMER);
  96326. /* Endless loop of waiting for signals. The loop is only ended when
  96327. @@ -175,7 +174,7 @@
  96328. sigset_t ss;
  96329. sigset_t oss;
  96330. sigfillset (&ss);
  96331. - /*__sigaddset (&ss, SIGCANCEL); - already done by sigfillset */
  96332. + __sigaddset (&ss, SIGCANCEL);
  96333. INTERNAL_SYSCALL_DECL (err);
  96334. INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &ss, &oss, _NSIG / 8);
  96335. 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
  96336. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_settime.c 2012-05-15 09:20:09.000000000 +0200
  96337. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_settime.c 2014-06-02 17:40:35.138718205 +0200
  96338. @@ -13,9 +13,8 @@
  96339. Lesser General Public License for more details.
  96340. You should have received a copy of the GNU Lesser General Public
  96341. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  96342. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  96343. - Boston, MA 02111-1307, USA. */
  96344. + License along with the GNU C Library; see the file COPYING.LIB. If
  96345. + not, see <http://www.gnu.org/licenses/>. */
  96346. #include <errno.h>
  96347. #include <stdlib.h>
  96348. 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
  96349. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/unregister-atfork.c 2012-05-15 09:20:09.000000000 +0200
  96350. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/unregister-atfork.c 2014-06-02 17:40:35.138718205 +0200
  96351. @@ -13,9 +13,8 @@
  96352. Lesser General Public License for more details.
  96353. You should have received a copy of the GNU Lesser General Public
  96354. - License along with the GNU C Library; if not, write to the Free
  96355. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96356. - 02111-1307 USA. */
  96357. + License along with the GNU C Library; if not, see
  96358. + <http://www.gnu.org/licenses/>. */
  96359. #include <errno.h>
  96360. #include <stdlib.h>
  96361. 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
  96362. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
  96363. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h 2014-06-02 17:40:35.138718205 +0200
  96364. @@ -13,9 +13,8 @@
  96365. Lesser General Public License for more details.
  96366. You should have received a copy of the GNU Lesser General Public
  96367. - License along with the GNU C Library; if not, write to the Free
  96368. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96369. - 02111-1307 USA. */
  96370. + License along with the GNU C Library; if not, see
  96371. + <http://www.gnu.org/licenses/>. */
  96372. #ifndef _BITS_PTHREADTYPES_H
  96373. #define _BITS_PTHREADTYPES_H 1
  96374. 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
  96375. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
  96376. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h 2014-06-02 17:40:35.138718205 +0200
  96377. @@ -13,9 +13,8 @@
  96378. Lesser General Public License for more details.
  96379. You should have received a copy of the GNU Lesser General Public
  96380. - License along with the GNU C Library; if not, write to the Free
  96381. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96382. - 02111-1307 USA. */
  96383. + License along with the GNU C Library; if not, see
  96384. + <http://www.gnu.org/licenses/>. */
  96385. #ifndef _SEMAPHORE_H
  96386. # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
  96387. 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
  96388. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S 2012-05-15 09:20:09.000000000 +0200
  96389. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S 2014-06-02 17:40:35.138718205 +0200
  96390. @@ -13,9 +13,8 @@
  96391. Lesser General Public License for more details.
  96392. You should have received a copy of the GNU Lesser General Public
  96393. - License along with the GNU C Library; if not, write to the Free
  96394. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96395. - 02111-1307 USA. */
  96396. + License along with the GNU C Library; if not, see
  96397. + <http://www.gnu.org/licenses/>. */
  96398. #include <sysdep.h>
  96399. #include <tcb-offsets.h>
  96400. 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
  96401. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/compat-timer.h 2012-05-15 09:20:09.000000000 +0200
  96402. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/compat-timer.h 2014-06-02 17:40:35.138718205 +0200
  96403. @@ -13,9 +13,8 @@
  96404. Lesser General Public License for more details.
  96405. You should have received a copy of the GNU Lesser General Public
  96406. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  96407. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  96408. - Boston, MA 02111-1307, USA. */
  96409. + License along with the GNU C Library; see the file COPYING.LIB. If
  96410. + not, see <http://www.gnu.org/licenses/>. */
  96411. #include <signal.h>
  96412. #include <time.h>
  96413. 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
  96414. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/fork.c 2012-05-15 09:20:09.000000000 +0200
  96415. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/fork.c 2014-06-02 17:40:35.138718205 +0200
  96416. @@ -13,9 +13,8 @@
  96417. Lesser General Public License for more details.
  96418. You should have received a copy of the GNU Lesser General Public
  96419. - License along with the GNU C Library; if not, write to the Free
  96420. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96421. - 02111-1307 USA. */
  96422. + License along with the GNU C Library; if not, see
  96423. + <http://www.gnu.org/licenses/>. */
  96424. #include <sched.h>
  96425. #include <signal.h>
  96426. 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
  96427. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S 2012-05-15 09:20:09.000000000 +0200
  96428. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S 2014-06-02 17:40:35.138718205 +0200
  96429. @@ -13,9 +13,8 @@
  96430. Lesser General Public License for more details.
  96431. You should have received a copy of the GNU Lesser General Public
  96432. - License along with the GNU C Library; if not, write to the Free
  96433. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96434. - 02111-1307 USA. */
  96435. + License along with the GNU C Library; if not, see
  96436. + <http://www.gnu.org/licenses/>. */
  96437. #define __pthread_enable_asynccancel __libc_enable_asynccancel
  96438. #define __pthread_disable_asynccancel __libc_disable_asynccancel
  96439. 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
  96440. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
  96441. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S 2014-06-02 17:40:35.142718228 +0200
  96442. @@ -13,8 +13,7 @@
  96443. Lesser General Public License for more details.
  96444. You should have received a copy of the GNU Lesser General Public
  96445. - License along with the GNU C Library; if not, write to the Free
  96446. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96447. - 02111-1307 USA. */
  96448. + License along with the GNU C Library; if not, see
  96449. + <http://www.gnu.org/licenses/>. */
  96450. #include "lowlevellock.S"
  96451. 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
  96452. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S 2012-05-15 09:20:09.000000000 +0200
  96453. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S 2014-06-02 17:40:35.142718228 +0200
  96454. @@ -13,9 +13,8 @@
  96455. Lesser General Public License for more details.
  96456. You should have received a copy of the GNU Lesser General Public
  96457. - License along with the GNU C Library; if not, write to the Free
  96458. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96459. - 02111-1307 USA. */
  96460. + License along with the GNU C Library; if not, see
  96461. + <http://www.gnu.org/licenses/>. */
  96462. #define __pthread_enable_asynccancel __librt_enable_asynccancel
  96463. #define __pthread_disable_asynccancel __librt_disable_asynccancel
  96464. 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
  96465. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
  96466. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h 2014-06-02 17:40:35.142718228 +0200
  96467. @@ -13,9 +13,8 @@
  96468. Lesser General Public License for more details.
  96469. You should have received a copy of the GNU Lesser General Public
  96470. - License along with the GNU C Library; if not, write to the Free
  96471. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96472. - 02111-1307 USA. */
  96473. + License along with the GNU C Library; if not, see
  96474. + <http://www.gnu.org/licenses/>. */
  96475. #ifndef _LOWLEVELLOCK_H
  96476. #define _LOWLEVELLOCK_H 1
  96477. 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
  96478. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
  96479. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S 2014-06-02 17:40:35.142718228 +0200
  96480. @@ -13,9 +13,8 @@
  96481. Lesser General Public License for more details.
  96482. You should have received a copy of the GNU Lesser General Public
  96483. - License along with the GNU C Library; if not, write to the Free
  96484. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96485. - 02111-1307 USA. */
  96486. + License along with the GNU C Library; if not, see
  96487. + <http://www.gnu.org/licenses/>. */
  96488. #include <sysdep.h>
  96489. #include <pthread-errnos.h>
  96490. 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
  96491. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S 2012-05-15 09:20:09.000000000 +0200
  96492. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S 2014-06-02 17:40:35.142718228 +0200
  96493. @@ -14,9 +14,8 @@
  96494. Lesser General Public License for more details.
  96495. You should have received a copy of the GNU Lesser General Public
  96496. - License along with the GNU C Library; if not, write to the Free
  96497. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96498. - 02111-1307 USA. */
  96499. + License along with the GNU C Library; if not, see
  96500. + <http://www.gnu.org/licenses/>. */
  96501. #include <sysdep.h>
  96502. #include <pthread-errnos.h>
  96503. 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
  96504. --- 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
  96505. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S 2014-06-02 17:40:35.142718228 +0200
  96506. @@ -13,9 +13,8 @@
  96507. Lesser General Public License for more details.
  96508. You should have received a copy of the GNU Lesser General Public
  96509. - License along with the GNU C Library; if not, write to the Free
  96510. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96511. - 02111-1307 USA. */
  96512. + License along with the GNU C Library; if not, see
  96513. + <http://www.gnu.org/licenses/>. */
  96514. #include <sysdep.h>
  96515. #include <lowlevellock.h>
  96516. 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
  96517. --- 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
  96518. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S 2014-06-02 17:40:35.142718228 +0200
  96519. @@ -14,9 +14,8 @@
  96520. Lesser General Public License for more details.
  96521. You should have received a copy of the GNU Lesser General Public
  96522. - License along with the GNU C Library; if not, write to the Free
  96523. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96524. - 02111-1307 USA. */
  96525. + License along with the GNU C Library; if not, see
  96526. + <http://www.gnu.org/licenses/>. */
  96527. #include <sysdep.h>
  96528. #include <lowlevellock.h>
  96529. 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
  96530. --- 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
  96531. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S 2014-06-02 17:40:35.142718228 +0200
  96532. @@ -13,9 +13,8 @@
  96533. Lesser General Public License for more details.
  96534. You should have received a copy of the GNU Lesser General Public
  96535. - License along with the GNU C Library; if not, write to the Free
  96536. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96537. - 02111-1307 USA. */
  96538. + License along with the GNU C Library; if not, see
  96539. + <http://www.gnu.org/licenses/>. */
  96540. #include <sysdep.h>
  96541. #include <lowlevellock.h>
  96542. 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
  96543. --- 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
  96544. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S 2014-06-02 17:40:35.142718228 +0200
  96545. @@ -13,9 +13,8 @@
  96546. Lesser General Public License for more details.
  96547. You should have received a copy of the GNU Lesser General Public
  96548. - License along with the GNU C Library; if not, write to the Free
  96549. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96550. - 02111-1307 USA. */
  96551. + License along with the GNU C Library; if not, see
  96552. + <http://www.gnu.org/licenses/>. */
  96553. #include <sysdep.h>
  96554. #include <lowlevellock.h>
  96555. 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
  96556. --- 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
  96557. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2014-06-02 17:40:35.142718228 +0200
  96558. @@ -13,9 +13,8 @@
  96559. Lesser General Public License for more details.
  96560. You should have received a copy of the GNU Lesser General Public
  96561. - License along with the GNU C Library; if not, write to the Free
  96562. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96563. - 02111-1307 USA. */
  96564. + License along with the GNU C Library; if not, see
  96565. + <http://www.gnu.org/licenses/>. */
  96566. #include <sysdep.h>
  96567. #include <lowlevellock.h>
  96568. 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
  96569. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S 2012-05-15 09:20:09.000000000 +0200
  96570. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S 2014-06-02 17:40:35.142718228 +0200
  96571. @@ -13,9 +13,8 @@
  96572. Lesser General Public License for more details.
  96573. You should have received a copy of the GNU Lesser General Public
  96574. - License along with the GNU C Library; if not, write to the Free
  96575. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96576. - 02111-1307 USA. */
  96577. + License along with the GNU C Library; if not, see
  96578. + <http://www.gnu.org/licenses/>. */
  96579. #include <sysdep.h>
  96580. #include <bits/kernel-features.h>
  96581. 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
  96582. --- 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
  96583. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S 2014-06-02 17:40:35.142718228 +0200
  96584. @@ -13,9 +13,8 @@
  96585. Lesser General Public License for more details.
  96586. You should have received a copy of the GNU Lesser General Public
  96587. - License along with the GNU C Library; if not, write to the Free
  96588. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96589. - 02111-1307 USA. */
  96590. + License along with the GNU C Library; if not, see
  96591. + <http://www.gnu.org/licenses/>. */
  96592. #include <sysdep.h>
  96593. #include <lowlevellock.h>
  96594. 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
  96595. --- 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
  96596. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S 2014-06-02 17:40:35.142718228 +0200
  96597. @@ -13,9 +13,8 @@
  96598. Lesser General Public License for more details.
  96599. You should have received a copy of the GNU Lesser General Public
  96600. - License along with the GNU C Library; if not, write to the Free
  96601. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96602. - 02111-1307 USA. */
  96603. + License along with the GNU C Library; if not, see
  96604. + <http://www.gnu.org/licenses/>. */
  96605. #include <sysdep.h>
  96606. #include <lowlevellock.h>
  96607. 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
  96608. --- 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
  96609. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S 2014-06-02 17:40:35.142718228 +0200
  96610. @@ -13,9 +13,8 @@
  96611. Lesser General Public License for more details.
  96612. You should have received a copy of the GNU Lesser General Public
  96613. - License along with the GNU C Library; if not, write to the Free
  96614. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96615. - 02111-1307 USA. */
  96616. + License along with the GNU C Library; if not, see
  96617. + <http://www.gnu.org/licenses/>. */
  96618. #include <sysdep.h>
  96619. #include <lowlevellock.h>
  96620. 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
  96621. --- 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
  96622. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S 2014-06-02 17:40:35.142718228 +0200
  96623. @@ -13,9 +13,8 @@
  96624. Lesser General Public License for more details.
  96625. You should have received a copy of the GNU Lesser General Public
  96626. - License along with the GNU C Library; if not, write to the Free
  96627. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96628. - 02111-1307 USA. */
  96629. + License along with the GNU C Library; if not, see
  96630. + <http://www.gnu.org/licenses/>. */
  96631. #include <sysdep.h>
  96632. #include <lowlevellock.h>
  96633. 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
  96634. --- 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
  96635. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S 2014-06-02 17:40:35.142718228 +0200
  96636. @@ -13,9 +13,8 @@
  96637. Lesser General Public License for more details.
  96638. You should have received a copy of the GNU Lesser General Public
  96639. - License along with the GNU C Library; if not, write to the Free
  96640. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96641. - 02111-1307 USA. */
  96642. + License along with the GNU C Library; if not, see
  96643. + <http://www.gnu.org/licenses/>. */
  96644. #include <sysdep.h>
  96645. #include <lowlevellock.h>
  96646. 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
  96647. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
  96648. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pt-vfork.S 2014-06-02 17:40:35.142718228 +0200
  96649. @@ -12,9 +12,8 @@
  96650. Lesser General Public License for more details.
  96651. You should have received a copy of the GNU Lesser General Public
  96652. - License along with the GNU C Library; if not, write to the Free
  96653. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96654. - 02111-1307 USA. */
  96655. + License along with the GNU C Library; if not, see
  96656. + <http://www.gnu.org/licenses/>. */
  96657. #include <tcb-offsets.h>
  96658. 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
  96659. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_post.S 2012-05-15 09:20:09.000000000 +0200
  96660. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_post.S 2014-06-02 17:40:35.142718228 +0200
  96661. @@ -13,9 +13,8 @@
  96662. Lesser General Public License for more details.
  96663. You should have received a copy of the GNU Lesser General Public
  96664. - License along with the GNU C Library; if not, write to the Free
  96665. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96666. - 02111-1307 USA. */
  96667. + License along with the GNU C Library; if not, see
  96668. + <http://www.gnu.org/licenses/>. */
  96669. #include <sysdep.h>
  96670. #include <lowlevellock.h>
  96671. 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
  96672. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S 2012-05-15 09:20:09.000000000 +0200
  96673. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S 2014-06-02 17:40:35.142718228 +0200
  96674. @@ -13,9 +13,8 @@
  96675. Lesser General Public License for more details.
  96676. You should have received a copy of the GNU Lesser General Public
  96677. - License along with the GNU C Library; if not, write to the Free
  96678. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96679. - 02111-1307 USA. */
  96680. + License along with the GNU C Library; if not, see
  96681. + <http://www.gnu.org/licenses/>. */
  96682. #include <sysdep.h>
  96683. #include <bits/kernel-features.h>
  96684. 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
  96685. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_trywait.S 2012-05-15 09:20:09.000000000 +0200
  96686. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_trywait.S 2014-06-02 17:40:35.142718228 +0200
  96687. @@ -13,9 +13,8 @@
  96688. Lesser General Public License for more details.
  96689. You should have received a copy of the GNU Lesser General Public
  96690. - License along with the GNU C Library; if not, write to the Free
  96691. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96692. - 02111-1307 USA. */
  96693. + License along with the GNU C Library; if not, see
  96694. + <http://www.gnu.org/licenses/>. */
  96695. #include <sysdep.h>
  96696. #include <lowlevellock.h>
  96697. 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
  96698. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S 2012-05-15 09:20:09.000000000 +0200
  96699. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S 2014-06-02 17:40:35.142718228 +0200
  96700. @@ -13,9 +13,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 <sysdep.h>
  96709. #include <lowlevellock.h>
  96710. 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
  96711. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  96712. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h 2014-06-02 17:40:35.142718228 +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 <sysdep.h>
  96722. #include <tls.h>
  96723. 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
  96724. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/vfork.S 2012-05-15 09:20:09.000000000 +0200
  96725. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/vfork.S 2014-06-02 17:40:35.142718228 +0200
  96726. @@ -12,9 +12,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. /* We want an #include_next, but we are the main source file.
  96735. So, #include ourselves and in that incarnation we can use #include_next. */
  96736. 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
  96737. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
  96738. +++ uClibc-git/libpthread/nptl/sysdeps/x86_64/dl-tls.h 2014-06-02 17:40:35.142718228 +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. /* Type used for the representation of TLS information in the GOT. */
  96748. 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
  96749. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
  96750. +++ uClibc-git/libpthread/nptl/sysdeps/x86_64/jmpbuf-unwind.h 2014-06-02 17:40:35.142718228 +0200
  96751. @@ -13,9 +13,8 @@
  96752. Lesser General Public License for more details.
  96753. You should have received a copy of the GNU Lesser General Public
  96754. - License along with the GNU C Library; if not, write to the Free
  96755. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96756. - 02111-1307 USA. */
  96757. + License along with the GNU C Library; if not, see
  96758. + <http://www.gnu.org/licenses/>. */
  96759. #include <setjmp.h>
  96760. #include <stdint.h>
  96761. @@ -26,6 +25,3 @@
  96762. #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  96763. ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_RSP] - (_adj))
  96764. -
  96765. -/* We use the normal lobngjmp for unwinding. */
  96766. -#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
  96767. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/x86_64/pthreaddef.h
  96768. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
  96769. +++ uClibc-git/libpthread/nptl/sysdeps/x86_64/pthreaddef.h 2014-06-02 17:40:35.142718228 +0200
  96770. @@ -13,9 +13,8 @@
  96771. Lesser General Public License for more details.
  96772. You should have received a copy of the GNU Lesser General Public
  96773. - License along with the GNU C Library; if not, write to the Free
  96774. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96775. - 02111-1307 USA. */
  96776. + License along with the GNU C Library; if not, see
  96777. + <http://www.gnu.org/licenses/>. */
  96778. /* Default stack size. */
  96779. #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
  96780. 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
  96781. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
  96782. +++ uClibc-git/libpthread/nptl/sysdeps/x86_64/pthread_spin_trylock.S 2014-06-02 17:40:35.142718228 +0200
  96783. @@ -13,9 +13,8 @@
  96784. Lesser General Public License for more details.
  96785. You should have received a copy of the GNU Lesser General Public
  96786. - License along with the GNU C Library; if not, write to the Free
  96787. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96788. - 02111-1307 USA. */
  96789. + License along with the GNU C Library; if not, see
  96790. + <http://www.gnu.org/licenses/>. */
  96791. #include <pthread-errnos.h>
  96792. 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
  96793. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/pthread_spin_unlock.S 2012-05-15 09:20:09.000000000 +0200
  96794. +++ uClibc-git/libpthread/nptl/sysdeps/x86_64/pthread_spin_unlock.S 2014-06-02 17:40:35.142718228 +0200
  96795. @@ -13,9 +13,8 @@
  96796. Lesser General Public License for more details.
  96797. You should have received a copy of the GNU Lesser General Public
  96798. - License along with the GNU C Library; if not, write to the Free
  96799. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96800. - 02111-1307 USA. */
  96801. + License along with the GNU C Library; if not, see
  96802. + <http://www.gnu.org/licenses/>. */
  96803. .globl pthread_spin_unlock
  96804. .type pthread_spin_unlock,@function
  96805. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/tls.h uClibc-git/libpthread/nptl/sysdeps/x86_64/tls.h
  96806. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/tls.h 2012-05-15 09:20:09.000000000 +0200
  96807. +++ uClibc-git/libpthread/nptl/sysdeps/x86_64/tls.h 2014-06-02 17:40:35.146718250 +0200
  96808. @@ -13,9 +13,8 @@
  96809. Lesser General Public License for more details.
  96810. You should have received a copy of the GNU Lesser General Public
  96811. - License along with the GNU C Library; if not, write to the Free
  96812. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96813. - 02111-1307 USA. */
  96814. + License along with the GNU C Library; if not, see
  96815. + <http://www.gnu.org/licenses/>. */
  96816. #ifndef _TLS_H
  96817. #define _TLS_H 1
  96818. diff -Nur uClibc-0.9.33.2/libpthread/nptl/unwind.c uClibc-git/libpthread/nptl/unwind.c
  96819. --- uClibc-0.9.33.2/libpthread/nptl/unwind.c 2012-05-15 09:20:09.000000000 +0200
  96820. +++ uClibc-git/libpthread/nptl/unwind.c 2014-06-02 17:40:35.146718250 +0200
  96821. @@ -14,9 +14,8 @@
  96822. Lesser General Public License for more details.
  96823. You should have received a copy of the GNU Lesser General Public
  96824. - License along with the GNU C Library; if not, write to the Free
  96825. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96826. - 02111-1307 USA. */
  96827. + License along with the GNU C Library; if not, see
  96828. + <http://www.gnu.org/licenses/>. */
  96829. #include <setjmp.h>
  96830. #include <stdlib.h>
  96831. @@ -99,7 +98,7 @@
  96832. }
  96833. -static void
  96834. +static attribute_noreturn void
  96835. unwind_cleanup (_Unwind_Reason_Code reason, struct _Unwind_Exception *exc)
  96836. {
  96837. /* When we get here a C++ catch block didn't rethrow the object. We
  96838. @@ -115,7 +114,7 @@
  96839. void
  96840. -attribute_protected
  96841. +/*does not apply due to hidden_proto(): attribute_protected*/
  96842. __cleanup_fct_attribute __attribute ((noreturn))
  96843. #if !defined SHARED && !defined IS_IN_libpthread
  96844. weak_function
  96845. diff -Nur uClibc-0.9.33.2/libpthread/nptl/vars.c uClibc-git/libpthread/nptl/vars.c
  96846. --- uClibc-0.9.33.2/libpthread/nptl/vars.c 2012-05-15 09:20:09.000000000 +0200
  96847. +++ uClibc-git/libpthread/nptl/vars.c 2014-06-02 17:40:35.146718250 +0200
  96848. @@ -12,9 +12,8 @@
  96849. Lesser General Public License for more details.
  96850. You should have received a copy of the GNU Lesser General Public
  96851. - License along with the GNU C Library; if not, write to the Free
  96852. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96853. - 02111-1307 USA. */
  96854. + License along with the GNU C Library; if not, see
  96855. + <http://www.gnu.org/licenses/>. */
  96856. #include <pthreadP.h>
  96857. #include <stdlib.h>
  96858. diff -Nur uClibc-0.9.33.2/libpthread/nptl/version.c uClibc-git/libpthread/nptl/version.c
  96859. --- uClibc-0.9.33.2/libpthread/nptl/version.c 2012-05-15 09:20:09.000000000 +0200
  96860. +++ uClibc-git/libpthread/nptl/version.c 2014-06-02 17:40:35.146718250 +0200
  96861. @@ -13,9 +13,8 @@
  96862. Lesser General Public License for more details.
  96863. You should have received a copy of the GNU Lesser General Public
  96864. - License along with the GNU C Library; if not, write to the Free
  96865. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96866. - 02111-1307 USA. */
  96867. + License along with the GNU C Library; if not, see
  96868. + <http://www.gnu.org/licenses/>. */
  96869. #include <unistd.h>
  96870. #include <sysdep.h>
  96871. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/db_info.c uClibc-git/libpthread/nptl_db/db_info.c
  96872. --- uClibc-0.9.33.2/libpthread/nptl_db/db_info.c 2012-05-15 09:20:09.000000000 +0200
  96873. +++ uClibc-git/libpthread/nptl_db/db_info.c 2014-06-02 17:40:35.170718383 +0200
  96874. @@ -15,9 +15,8 @@
  96875. Lesser General Public License for more details.
  96876. You should have received a copy of the GNU Lesser General Public
  96877. - License along with the GNU C Library; if not, write to the Free
  96878. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96879. - 02111-1307 USA. */
  96880. + License along with the GNU C Library; if not, see
  96881. + <http://www.gnu.org/licenses/>. */
  96882. #include "thread_dbP.h"
  96883. #include <tls.h>
  96884. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/fetch-value.c uClibc-git/libpthread/nptl_db/fetch-value.c
  96885. --- uClibc-0.9.33.2/libpthread/nptl_db/fetch-value.c 2012-05-15 09:20:09.000000000 +0200
  96886. +++ uClibc-git/libpthread/nptl_db/fetch-value.c 2014-06-02 17:40:35.170718383 +0200
  96887. @@ -13,9 +13,8 @@
  96888. Lesser General Public License for more details.
  96889. You should have received a copy of the GNU Lesser General Public
  96890. - License along with the GNU C Library; if not, write to the Free
  96891. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96892. - 02111-1307 USA. */
  96893. + License along with the GNU C Library; if not, see
  96894. + <http://www.gnu.org/licenses/>. */
  96895. #include "thread_dbP.h"
  96896. #include <byteswap.h>
  96897. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/proc_service.h uClibc-git/libpthread/nptl_db/proc_service.h
  96898. --- uClibc-0.9.33.2/libpthread/nptl_db/proc_service.h 2012-05-15 09:20:09.000000000 +0200
  96899. +++ uClibc-git/libpthread/nptl_db/proc_service.h 2014-06-02 17:40:35.170718383 +0200
  96900. @@ -13,9 +13,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. /* The definitions in this file must correspond to those in the debugger. */
  96909. #include <sys/procfs.h>
  96910. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/structs.def uClibc-git/libpthread/nptl_db/structs.def
  96911. --- uClibc-0.9.33.2/libpthread/nptl_db/structs.def 2012-05-15 09:20:09.000000000 +0200
  96912. +++ uClibc-git/libpthread/nptl_db/structs.def 2014-06-02 17:40:35.170718383 +0200
  96913. @@ -13,9 +13,8 @@
  96914. Lesser General Public License for more details.
  96915. You should have received a copy of the GNU Lesser General Public
  96916. - License along with the GNU C Library; if not, write to the Free
  96917. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96918. - 02111-1307 USA. */
  96919. + License along with the GNU C Library; if not, see
  96920. + <http://www.gnu.org/licenses/>. */
  96921. #ifndef DB_STRUCT_ARRAY_FIELD
  96922. # define DB_STRUCT_ARRAY_FIELD(type, field) DB_STRUCT_FIELD (type, field)
  96923. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_init.c uClibc-git/libpthread/nptl_db/td_init.c
  96924. --- uClibc-0.9.33.2/libpthread/nptl_db/td_init.c 2012-05-15 09:20:09.000000000 +0200
  96925. +++ uClibc-git/libpthread/nptl_db/td_init.c 2014-06-02 17:40:35.170718383 +0200
  96926. @@ -14,9 +14,8 @@
  96927. Lesser General Public License for more details.
  96928. You should have received a copy of the GNU Lesser General Public
  96929. - License along with the GNU C Library; if not, write to the Free
  96930. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96931. - 02111-1307 USA. */
  96932. + License along with the GNU C Library; if not, see
  96933. + <http://www.gnu.org/licenses/>. */
  96934. #include "thread_dbP.h"
  96935. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_log.c uClibc-git/libpthread/nptl_db/td_log.c
  96936. --- uClibc-0.9.33.2/libpthread/nptl_db/td_log.c 2012-05-15 09:20:09.000000000 +0200
  96937. +++ uClibc-git/libpthread/nptl_db/td_log.c 2014-06-02 17:40:35.170718383 +0200
  96938. @@ -14,9 +14,8 @@
  96939. Lesser General Public License for more details.
  96940. You should have received a copy of the GNU Lesser General Public
  96941. - License along with the GNU C Library; if not, write to the Free
  96942. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96943. - 02111-1307 USA. */
  96944. + License along with the GNU C Library; if not, see
  96945. + <http://www.gnu.org/licenses/>. */
  96946. #include "thread_dbP.h"
  96947. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_symbol_list.c uClibc-git/libpthread/nptl_db/td_symbol_list.c
  96948. --- uClibc-0.9.33.2/libpthread/nptl_db/td_symbol_list.c 2012-05-15 09:20:09.000000000 +0200
  96949. +++ uClibc-git/libpthread/nptl_db/td_symbol_list.c 2014-06-02 17:40:35.170718383 +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 <assert.h>
  96959. #ifndef __UCLIBC__
  96960. 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
  96961. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_clear_event.c 2012-05-15 09:20:09.000000000 +0200
  96962. +++ uClibc-git/libpthread/nptl_db/td_ta_clear_event.c 2014-06-02 17:40:35.170718383 +0200
  96963. @@ -14,9 +14,8 @@
  96964. Lesser General Public License for more details.
  96965. You should have received a copy of the GNU Lesser General Public
  96966. - License along with the GNU C Library; if not, write to the Free
  96967. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96968. - 02111-1307 USA. */
  96969. + License along with the GNU C Library; if not, see
  96970. + <http://www.gnu.org/licenses/>. */
  96971. #include "thread_dbP.h"
  96972. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_delete.c uClibc-git/libpthread/nptl_db/td_ta_delete.c
  96973. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_delete.c 2012-05-15 09:20:09.000000000 +0200
  96974. +++ uClibc-git/libpthread/nptl_db/td_ta_delete.c 2014-06-02 17:40:35.170718383 +0200
  96975. @@ -14,9 +14,8 @@
  96976. Lesser General Public License for more details.
  96977. You should have received a copy of the GNU Lesser General Public
  96978. - License along with the GNU C Library; if not, write to the Free
  96979. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96980. - 02111-1307 USA. */
  96981. + License along with the GNU C Library; if not, see
  96982. + <http://www.gnu.org/licenses/>. */
  96983. #include <stdlib.h>
  96984. 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
  96985. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_enable_stats.c 2012-05-15 09:20:09.000000000 +0200
  96986. +++ uClibc-git/libpthread/nptl_db/td_ta_enable_stats.c 2014-06-02 17:40:35.174718405 +0200
  96987. @@ -14,9 +14,8 @@
  96988. Lesser General Public License for more details.
  96989. You should have received a copy of the GNU Lesser General Public
  96990. - License along with the GNU C Library; if not, write to the Free
  96991. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96992. - 02111-1307 USA. */
  96993. + License along with the GNU C Library; if not, see
  96994. + <http://www.gnu.org/licenses/>. */
  96995. #include "thread_dbP.h"
  96996. 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
  96997. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_event_addr.c 2012-05-15 09:20:09.000000000 +0200
  96998. +++ uClibc-git/libpthread/nptl_db/td_ta_event_addr.c 2014-06-02 17:40:35.174718405 +0200
  96999. @@ -14,9 +14,8 @@
  97000. Lesser General Public License for more details.
  97001. You should have received a copy of the GNU Lesser General Public
  97002. - License along with the GNU C Library; if not, write to the Free
  97003. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97004. - 02111-1307 USA. */
  97005. + License along with the GNU C Library; if not, see
  97006. + <http://www.gnu.org/licenses/>. */
  97007. #include "thread_dbP.h"
  97008. 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
  97009. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_event_getmsg.c 2012-05-15 09:20:09.000000000 +0200
  97010. +++ uClibc-git/libpthread/nptl_db/td_ta_event_getmsg.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. #include <string.h>
  97021. 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
  97022. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_get_nthreads.c 2012-05-15 09:20:09.000000000 +0200
  97023. +++ uClibc-git/libpthread/nptl_db/td_ta_get_nthreads.c 2014-06-02 17:40:35.174718405 +0200
  97024. @@ -14,9 +14,8 @@
  97025. Lesser General Public License for more details.
  97026. You should have received a copy of the GNU Lesser General Public
  97027. - License along with the GNU C Library; if not, write to the Free
  97028. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97029. - 02111-1307 USA. */
  97030. + License along with the GNU C Library; if not, see
  97031. + <http://www.gnu.org/licenses/>. */
  97032. #include "thread_dbP.h"
  97033. 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
  97034. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_get_ph.c 2012-05-15 09:20:09.000000000 +0200
  97035. +++ uClibc-git/libpthread/nptl_db/td_ta_get_ph.c 2014-06-02 17:40:35.174718405 +0200
  97036. @@ -14,9 +14,8 @@
  97037. Lesser General Public License for more details.
  97038. You should have received a copy of the GNU Lesser General Public
  97039. - License along with the GNU C Library; if not, write to the Free
  97040. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97041. - 02111-1307 USA. */
  97042. + License along with the GNU C Library; if not, see
  97043. + <http://www.gnu.org/licenses/>. */
  97044. #include "thread_dbP.h"
  97045. 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
  97046. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_get_stats.c 2012-05-15 09:20:09.000000000 +0200
  97047. +++ uClibc-git/libpthread/nptl_db/td_ta_get_stats.c 2014-06-02 17:40:35.174718405 +0200
  97048. @@ -14,9 +14,8 @@
  97049. Lesser General Public License for more details.
  97050. You should have received a copy of the GNU Lesser General Public
  97051. - License along with the GNU C Library; if not, write to the Free
  97052. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97053. - 02111-1307 USA. */
  97054. + License along with the GNU C Library; if not, see
  97055. + <http://www.gnu.org/licenses/>. */
  97056. #include "thread_dbP.h"
  97057. 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
  97058. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_map_id2thr.c 2012-05-15 09:20:09.000000000 +0200
  97059. +++ uClibc-git/libpthread/nptl_db/td_ta_map_id2thr.c 2014-06-02 17:40:35.174718405 +0200
  97060. @@ -14,9 +14,8 @@
  97061. Lesser General Public License for more details.
  97062. You should have received a copy of the GNU Lesser General Public
  97063. - License along with the GNU C Library; if not, write to the Free
  97064. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97065. - 02111-1307 USA. */
  97066. + License along with the GNU C Library; if not, see
  97067. + <http://www.gnu.org/licenses/>. */
  97068. #include "thread_dbP.h"
  97069. 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
  97070. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_map_lwp2thr.c 2012-05-15 09:20:09.000000000 +0200
  97071. +++ uClibc-git/libpthread/nptl_db/td_ta_map_lwp2thr.c 2014-06-02 17:40:35.174718405 +0200
  97072. @@ -13,9 +13,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. #include <stdlib.h>
  97082. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_new.c uClibc-git/libpthread/nptl_db/td_ta_new.c
  97083. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_new.c 2012-05-15 09:20:09.000000000 +0200
  97084. +++ uClibc-git/libpthread/nptl_db/td_ta_new.c 2014-06-02 17:40:35.174718405 +0200
  97085. @@ -14,9 +14,8 @@
  97086. Lesser General Public License for more details.
  97087. You should have received a copy of the GNU Lesser General Public
  97088. - License along with the GNU C Library; if not, write to the Free
  97089. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97090. - 02111-1307 USA. */
  97091. + License along with the GNU C Library; if not, see
  97092. + <http://www.gnu.org/licenses/>. */
  97093. #include <stddef.h>
  97094. #include <stdlib.h>
  97095. 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
  97096. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_reset_stats.c 2012-05-15 09:20:09.000000000 +0200
  97097. +++ uClibc-git/libpthread/nptl_db/td_ta_reset_stats.c 2014-06-02 17:40:35.174718405 +0200
  97098. @@ -14,9 +14,8 @@
  97099. Lesser General Public License for more details.
  97100. You should have received a copy of the GNU Lesser General Public
  97101. - License along with the GNU C Library; if not, write to the Free
  97102. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97103. - 02111-1307 USA. */
  97104. + License along with the GNU C Library; if not, see
  97105. + <http://www.gnu.org/licenses/>. */
  97106. #include "thread_dbP.h"
  97107. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_setconcurrency.c uClibc-git/libpthread/nptl_db/td_ta_setconcurrency.c
  97108. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_setconcurrency.c 2012-05-15 09:20:09.000000000 +0200
  97109. +++ uClibc-git/libpthread/nptl_db/td_ta_setconcurrency.c 2014-06-02 17:40:35.174718405 +0200
  97110. @@ -14,9 +14,8 @@
  97111. Lesser General Public License for more details.
  97112. You should have received a copy of the GNU Lesser General Public
  97113. - License along with the GNU C Library; if not, write to the Free
  97114. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97115. - 02111-1307 USA. */
  97116. + License along with the GNU C Library; if not, see
  97117. + <http://www.gnu.org/licenses/>. */
  97118. #include "thread_dbP.h"
  97119. 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
  97120. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_set_event.c 2012-05-15 09:20:09.000000000 +0200
  97121. +++ uClibc-git/libpthread/nptl_db/td_ta_set_event.c 2014-06-02 17:40:35.174718405 +0200
  97122. @@ -14,9 +14,8 @@
  97123. Lesser General Public License for more details.
  97124. You should have received a copy of the GNU Lesser General Public
  97125. - License along with the GNU C Library; if not, write to the Free
  97126. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97127. - 02111-1307 USA. */
  97128. + License along with the GNU C Library; if not, see
  97129. + <http://www.gnu.org/licenses/>. */
  97130. #include "thread_dbP.h"
  97131. 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
  97132. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_thr_iter.c 2012-05-15 09:20:09.000000000 +0200
  97133. +++ uClibc-git/libpthread/nptl_db/td_ta_thr_iter.c 2014-06-02 17:40:35.174718405 +0200
  97134. @@ -14,9 +14,8 @@
  97135. Lesser General Public License for more details.
  97136. You should have received a copy of the GNU Lesser General Public
  97137. - License along with the GNU C Library; if not, write to the Free
  97138. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97139. - 02111-1307 USA. */
  97140. + License along with the GNU C Library; if not, see
  97141. + <http://www.gnu.org/licenses/>. */
  97142. #include "thread_dbP.h"
  97143. 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
  97144. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_tsd_iter.c 2012-05-15 09:20:09.000000000 +0200
  97145. +++ uClibc-git/libpthread/nptl_db/td_ta_tsd_iter.c 2014-06-02 17:40:35.174718405 +0200
  97146. @@ -14,9 +14,8 @@
  97147. Lesser General Public License for more details.
  97148. You should have received a copy of the GNU Lesser General Public
  97149. - License along with the GNU C Library; if not, write to the Free
  97150. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97151. - 02111-1307 USA. */
  97152. + License along with the GNU C Library; if not, see
  97153. + <http://www.gnu.org/licenses/>. */
  97154. #include "thread_dbP.h"
  97155. #include <alloca.h>
  97156. 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
  97157. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_clear_event.c 2012-05-15 09:20:09.000000000 +0200
  97158. +++ uClibc-git/libpthread/nptl_db/td_thr_clear_event.c 2014-06-02 17:40:35.174718405 +0200
  97159. @@ -14,9 +14,8 @@
  97160. Lesser General Public License for more details.
  97161. You should have received a copy of the GNU Lesser General Public
  97162. - License along with the GNU C Library; if not, write to the Free
  97163. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97164. - 02111-1307 USA. */
  97165. + License along with the GNU C Library; if not, see
  97166. + <http://www.gnu.org/licenses/>. */
  97167. #include <stddef.h>
  97168. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_dbresume.c uClibc-git/libpthread/nptl_db/td_thr_dbresume.c
  97169. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_dbresume.c 2012-05-15 09:20:09.000000000 +0200
  97170. +++ uClibc-git/libpthread/nptl_db/td_thr_dbresume.c 2014-06-02 17:40:35.174718405 +0200
  97171. @@ -14,9 +14,8 @@
  97172. Lesser General Public License for more details.
  97173. You should have received a copy of the GNU Lesser General Public
  97174. - License along with the GNU C Library; if not, write to the Free
  97175. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97176. - 02111-1307 USA. */
  97177. + License along with the GNU C Library; if not, see
  97178. + <http://www.gnu.org/licenses/>. */
  97179. #include "thread_dbP.h"
  97180. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_dbsuspend.c uClibc-git/libpthread/nptl_db/td_thr_dbsuspend.c
  97181. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_dbsuspend.c 2012-05-15 09:20:09.000000000 +0200
  97182. +++ uClibc-git/libpthread/nptl_db/td_thr_dbsuspend.c 2014-06-02 17:40:35.174718405 +0200
  97183. @@ -14,9 +14,8 @@
  97184. Lesser General Public License for more details.
  97185. You should have received a copy of the GNU Lesser General Public
  97186. - License along with the GNU C Library; if not, write to the Free
  97187. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97188. - 02111-1307 USA. */
  97189. + License along with the GNU C Library; if not, see
  97190. + <http://www.gnu.org/licenses/>. */
  97191. #include "thread_dbP.h"
  97192. 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
  97193. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_event_enable.c 2012-05-15 09:20:09.000000000 +0200
  97194. +++ uClibc-git/libpthread/nptl_db/td_thr_event_enable.c 2014-06-02 17:40:35.174718405 +0200
  97195. @@ -14,9 +14,8 @@
  97196. Lesser General Public License for more details.
  97197. You should have received a copy of the GNU Lesser General Public
  97198. - License along with the GNU C Library; if not, write to the Free
  97199. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97200. - 02111-1307 USA. */
  97201. + License along with the GNU C Library; if not, see
  97202. + <http://www.gnu.org/licenses/>. */
  97203. #include "thread_dbP.h"
  97204. 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
  97205. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_event_getmsg.c 2012-05-15 09:20:09.000000000 +0200
  97206. +++ uClibc-git/libpthread/nptl_db/td_thr_event_getmsg.c 2014-06-02 17:40:35.174718405 +0200
  97207. @@ -14,9 +14,8 @@
  97208. Lesser General Public License for more details.
  97209. You should have received a copy of the GNU Lesser General Public
  97210. - License along with the GNU C Library; if not, write to the Free
  97211. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97212. - 02111-1307 USA. */
  97213. + License along with the GNU C Library; if not, see
  97214. + <http://www.gnu.org/licenses/>. */
  97215. #include "thread_dbP.h"
  97216. #include <assert.h>
  97217. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getfpregs.c uClibc-git/libpthread/nptl_db/td_thr_getfpregs.c
  97218. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getfpregs.c 2012-05-15 09:20:09.000000000 +0200
  97219. +++ uClibc-git/libpthread/nptl_db/td_thr_getfpregs.c 2014-06-02 17:40:35.174718405 +0200
  97220. @@ -14,9 +14,8 @@
  97221. Lesser General Public License for more details.
  97222. You should have received a copy of the GNU Lesser General Public
  97223. - License along with the GNU C Library; if not, write to the Free
  97224. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97225. - 02111-1307 USA. */
  97226. + License along with the GNU C Library; if not, see
  97227. + <http://www.gnu.org/licenses/>. */
  97228. #include "thread_dbP.h"
  97229. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getgregs.c uClibc-git/libpthread/nptl_db/td_thr_getgregs.c
  97230. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getgregs.c 2012-05-15 09:20:09.000000000 +0200
  97231. +++ uClibc-git/libpthread/nptl_db/td_thr_getgregs.c 2014-06-02 17:40:35.174718405 +0200
  97232. @@ -14,9 +14,8 @@
  97233. Lesser General Public License for more details.
  97234. You should have received a copy of the GNU Lesser General Public
  97235. - License along with the GNU C Library; if not, write to the Free
  97236. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97237. - 02111-1307 USA. */
  97238. + License along with the GNU C Library; if not, see
  97239. + <http://www.gnu.org/licenses/>. */
  97240. #include "thread_dbP.h"
  97241. 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
  97242. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_get_info.c 2012-05-15 09:20:09.000000000 +0200
  97243. +++ uClibc-git/libpthread/nptl_db/td_thr_get_info.c 2014-06-02 17:40:35.174718405 +0200
  97244. @@ -14,9 +14,8 @@
  97245. Lesser General Public License for more details.
  97246. You should have received a copy of the GNU Lesser General Public
  97247. - License along with the GNU C Library; if not, write to the Free
  97248. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97249. - 02111-1307 USA. */
  97250. + License along with the GNU C Library; if not, see
  97251. + <http://www.gnu.org/licenses/>. */
  97252. #include <stddef.h>
  97253. #include <string.h>
  97254. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getxregs.c uClibc-git/libpthread/nptl_db/td_thr_getxregs.c
  97255. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getxregs.c 2012-05-15 09:20:09.000000000 +0200
  97256. +++ uClibc-git/libpthread/nptl_db/td_thr_getxregs.c 2014-06-02 17:40:35.174718405 +0200
  97257. @@ -14,9 +14,8 @@
  97258. Lesser General Public License for more details.
  97259. You should have received a copy of the GNU Lesser General Public
  97260. - License along with the GNU C Library; if not, write to the Free
  97261. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97262. - 02111-1307 USA. */
  97263. + License along with the GNU C Library; if not, see
  97264. + <http://www.gnu.org/licenses/>. */
  97265. #include "thread_dbP.h"
  97266. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getxregsize.c uClibc-git/libpthread/nptl_db/td_thr_getxregsize.c
  97267. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getxregsize.c 2012-05-15 09:20:09.000000000 +0200
  97268. +++ uClibc-git/libpthread/nptl_db/td_thr_getxregsize.c 2014-06-02 17:40:35.174718405 +0200
  97269. @@ -14,9 +14,8 @@
  97270. Lesser General Public License for more details.
  97271. You should have received a copy of the GNU Lesser General Public
  97272. - License along with the GNU C Library; if not, write to the Free
  97273. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97274. - 02111-1307 USA. */
  97275. + License along with the GNU C Library; if not, see
  97276. + <http://www.gnu.org/licenses/>. */
  97277. #include "thread_dbP.h"
  97278. 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
  97279. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_set_event.c 2012-05-15 09:20:09.000000000 +0200
  97280. +++ uClibc-git/libpthread/nptl_db/td_thr_set_event.c 2014-06-02 17:40:35.174718405 +0200
  97281. @@ -14,9 +14,8 @@
  97282. Lesser General Public License for more details.
  97283. You should have received a copy of the GNU Lesser General Public
  97284. - License along with the GNU C Library; if not, write to the Free
  97285. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97286. - 02111-1307 USA. */
  97287. + License along with the GNU C Library; if not, see
  97288. + <http://www.gnu.org/licenses/>. */
  97289. #include <stddef.h>
  97290. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setfpregs.c uClibc-git/libpthread/nptl_db/td_thr_setfpregs.c
  97291. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setfpregs.c 2012-05-15 09:20:09.000000000 +0200
  97292. +++ uClibc-git/libpthread/nptl_db/td_thr_setfpregs.c 2014-06-02 17:40:35.174718405 +0200
  97293. @@ -14,9 +14,8 @@
  97294. Lesser General Public License for more details.
  97295. You should have received a copy of the GNU Lesser General Public
  97296. - License along with the GNU C Library; if not, write to the Free
  97297. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97298. - 02111-1307 USA. */
  97299. + License along with the GNU C Library; if not, see
  97300. + <http://www.gnu.org/licenses/>. */
  97301. #include "thread_dbP.h"
  97302. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setgregs.c uClibc-git/libpthread/nptl_db/td_thr_setgregs.c
  97303. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setgregs.c 2012-05-15 09:20:09.000000000 +0200
  97304. +++ uClibc-git/libpthread/nptl_db/td_thr_setgregs.c 2014-06-02 17:40:35.174718405 +0200
  97305. @@ -14,9 +14,8 @@
  97306. Lesser General Public License for more details.
  97307. You should have received a copy of the GNU Lesser General Public
  97308. - License along with the GNU C Library; if not, write to the Free
  97309. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97310. - 02111-1307 USA. */
  97311. + License along with the GNU C Library; if not, see
  97312. + <http://www.gnu.org/licenses/>. */
  97313. #include "thread_dbP.h"
  97314. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setprio.c uClibc-git/libpthread/nptl_db/td_thr_setprio.c
  97315. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setprio.c 2012-05-15 09:20:09.000000000 +0200
  97316. +++ uClibc-git/libpthread/nptl_db/td_thr_setprio.c 2014-06-02 17:40:35.174718405 +0200
  97317. @@ -14,9 +14,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 "thread_dbP.h"
  97326. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setsigpending.c uClibc-git/libpthread/nptl_db/td_thr_setsigpending.c
  97327. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setsigpending.c 2012-05-15 09:20:09.000000000 +0200
  97328. +++ uClibc-git/libpthread/nptl_db/td_thr_setsigpending.c 2014-06-02 17:40:35.174718405 +0200
  97329. @@ -14,9 +14,8 @@
  97330. Lesser General Public License for more details.
  97331. You should have received a copy of the GNU Lesser General Public
  97332. - License along with the GNU C Library; if not, write to the Free
  97333. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97334. - 02111-1307 USA. */
  97335. + License along with the GNU C Library; if not, see
  97336. + <http://www.gnu.org/licenses/>. */
  97337. #include "thread_dbP.h"
  97338. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setxregs.c uClibc-git/libpthread/nptl_db/td_thr_setxregs.c
  97339. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setxregs.c 2012-05-15 09:20:09.000000000 +0200
  97340. +++ uClibc-git/libpthread/nptl_db/td_thr_setxregs.c 2014-06-02 17:40:35.174718405 +0200
  97341. @@ -14,9 +14,8 @@
  97342. Lesser General Public License for more details.
  97343. You should have received a copy of the GNU Lesser General Public
  97344. - License along with the GNU C Library; if not, write to the Free
  97345. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97346. - 02111-1307 USA. */
  97347. + License along with the GNU C Library; if not, see
  97348. + <http://www.gnu.org/licenses/>. */
  97349. #include "thread_dbP.h"
  97350. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_sigsetmask.c uClibc-git/libpthread/nptl_db/td_thr_sigsetmask.c
  97351. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_sigsetmask.c 2012-05-15 09:20:09.000000000 +0200
  97352. +++ uClibc-git/libpthread/nptl_db/td_thr_sigsetmask.c 2014-06-02 17:40:35.174718405 +0200
  97353. @@ -14,9 +14,8 @@
  97354. Lesser General Public License for more details.
  97355. You should have received a copy of the GNU Lesser General Public
  97356. - License along with the GNU C Library; if not, write to the Free
  97357. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97358. - 02111-1307 USA. */
  97359. + License along with the GNU C Library; if not, see
  97360. + <http://www.gnu.org/licenses/>. */
  97361. #include "thread_dbP.h"
  97362. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_tlsbase.c uClibc-git/libpthread/nptl_db/td_thr_tlsbase.c
  97363. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_tlsbase.c 2012-05-15 09:20:09.000000000 +0200
  97364. +++ uClibc-git/libpthread/nptl_db/td_thr_tlsbase.c 2014-06-02 17:40:35.174718405 +0200
  97365. @@ -13,9 +13,8 @@
  97366. Lesser General Public License for more details.
  97367. You should have received a copy of the GNU Lesser General Public
  97368. - License along with the GNU C Library; if not, write to the Free
  97369. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97370. - 02111-1307 USA. */
  97371. + License along with the GNU C Library; if not, see
  97372. + <http://www.gnu.org/licenses/>. */
  97373. #include "thread_dbP.h"
  97374. 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
  97375. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_tls_get_addr.c 2012-05-15 09:20:09.000000000 +0200
  97376. +++ uClibc-git/libpthread/nptl_db/td_thr_tls_get_addr.c 2014-06-02 17:40:35.174718405 +0200
  97377. @@ -14,9 +14,8 @@
  97378. Lesser General Public License for more details.
  97379. You should have received a copy of the GNU Lesser General Public
  97380. - License along with the GNU C Library; if not, write to the Free
  97381. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97382. - 02111-1307 USA. */
  97383. + License along with the GNU C Library; if not, see
  97384. + <http://www.gnu.org/licenses/>. */
  97385. #include <link.h>
  97386. #include "thread_dbP.h"
  97387. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_tsd.c uClibc-git/libpthread/nptl_db/td_thr_tsd.c
  97388. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_tsd.c 2012-05-15 09:20:09.000000000 +0200
  97389. +++ uClibc-git/libpthread/nptl_db/td_thr_tsd.c 2014-06-02 17:40:35.174718405 +0200
  97390. @@ -14,9 +14,8 @@
  97391. Lesser General Public License for more details.
  97392. You should have received a copy of the GNU Lesser General Public
  97393. - License along with the GNU C Library; if not, write to the Free
  97394. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97395. - 02111-1307 USA. */
  97396. + License along with the GNU C Library; if not, see
  97397. + <http://www.gnu.org/licenses/>. */
  97398. #include "thread_dbP.h"
  97399. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_validate.c uClibc-git/libpthread/nptl_db/td_thr_validate.c
  97400. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_validate.c 2012-05-15 09:20:09.000000000 +0200
  97401. +++ uClibc-git/libpthread/nptl_db/td_thr_validate.c 2014-06-02 17:40:35.174718405 +0200
  97402. @@ -14,9 +14,8 @@
  97403. Lesser General Public License for more details.
  97404. You should have received a copy of the GNU Lesser General Public
  97405. - License along with the GNU C Library; if not, write to the Free
  97406. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97407. - 02111-1307 USA. */
  97408. + License along with the GNU C Library; if not, see
  97409. + <http://www.gnu.org/licenses/>. */
  97410. #include "thread_dbP.h"
  97411. #include <stdbool.h>
  97412. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/thread_db.h uClibc-git/libpthread/nptl_db/thread_db.h
  97413. --- uClibc-0.9.33.2/libpthread/nptl_db/thread_db.h 2012-05-15 09:20:09.000000000 +0200
  97414. +++ uClibc-git/libpthread/nptl_db/thread_db.h 2014-06-02 17:40:35.174718405 +0200
  97415. @@ -13,9 +13,8 @@
  97416. Lesser General Public License for more details.
  97417. You should have received a copy of the GNU Lesser General Public
  97418. - License along with the GNU C Library; if not, write to the Free
  97419. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97420. - 02111-1307 USA. */
  97421. + License along with the GNU C Library; if not, see
  97422. + <http://www.gnu.org/licenses/>. */
  97423. #ifndef _THREAD_DB_H
  97424. #define _THREAD_DB_H 1
  97425. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/thread_dbP.h uClibc-git/libpthread/nptl_db/thread_dbP.h
  97426. --- uClibc-0.9.33.2/libpthread/nptl_db/thread_dbP.h 2012-05-15 09:20:09.000000000 +0200
  97427. +++ uClibc-git/libpthread/nptl_db/thread_dbP.h 2014-06-02 17:40:35.174718405 +0200
  97428. @@ -13,9 +13,8 @@
  97429. Lesser General Public License for more details.
  97430. You should have received a copy of the GNU Lesser General Public
  97431. - License along with the GNU C Library; if not, write to the Free
  97432. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97433. - 02111-1307 USA. */
  97434. + License along with the GNU C Library; if not, see
  97435. + <http://www.gnu.org/licenses/>. */
  97436. #ifndef _THREAD_DBP_H
  97437. #define _THREAD_DBP_H 1
  97438. diff -Nur uClibc-0.9.33.2/libresolv/resolv.c uClibc-git/libresolv/resolv.c
  97439. --- uClibc-0.9.33.2/libresolv/resolv.c 2012-05-15 09:20:09.000000000 +0200
  97440. +++ uClibc-git/libresolv/resolv.c 2014-06-02 17:40:35.178718427 +0200
  97441. @@ -7,8 +7,6 @@
  97442. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  97443. */
  97444. -#include <features.h>
  97445. -
  97446. void __stub1(void);
  97447. void __stub1(void)
  97448. {
  97449. diff -Nur uClibc-0.9.33.2/librt/clock_getcpuclockid.c uClibc-git/librt/clock_getcpuclockid.c
  97450. --- uClibc-0.9.33.2/librt/clock_getcpuclockid.c 2012-05-15 09:20:09.000000000 +0200
  97451. +++ uClibc-git/librt/clock_getcpuclockid.c 2014-06-02 17:40:35.178718427 +0200
  97452. @@ -13,9 +13,8 @@
  97453. Lesser General Public License for more details.
  97454. You should have received a copy of the GNU Lesser General Public
  97455. - License along with the GNU C Library; if not, write to the Free
  97456. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97457. - 02111-1307 USA. */
  97458. + License along with the GNU C Library; if not, see
  97459. + <http://www.gnu.org/licenses/>. */
  97460. #include <errno.h>
  97461. #include <time.h>
  97462. diff -Nur uClibc-0.9.33.2/librt/clock_gettime.c uClibc-git/librt/clock_gettime.c
  97463. --- uClibc-0.9.33.2/librt/clock_gettime.c 2012-05-15 09:20:09.000000000 +0200
  97464. +++ uClibc-git/librt/clock_gettime.c 2014-06-02 17:40:35.178718427 +0200
  97465. @@ -13,9 +13,8 @@
  97466. Lesser General Public License for more details.
  97467. You should have received a copy of the GNU Lesser General Public
  97468. - License along with the GNU C Library; if not, write to the Free
  97469. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97470. - 02111-1307 USA. */
  97471. + License along with the GNU C Library; if not, see
  97472. + <http://www.gnu.org/licenses/>. */
  97473. #include <sysdep.h>
  97474. #include <errno.h>
  97475. @@ -186,7 +185,6 @@
  97476. #include <stdint.h>
  97477. #include <time.h>
  97478. #include <sys/time.h>
  97479. -#include <libc-internal.h>
  97480. #include <ldsodefs.h>
  97481. diff -Nur uClibc-0.9.33.2/librt/clock_nanosleep.c uClibc-git/librt/clock_nanosleep.c
  97482. --- uClibc-0.9.33.2/librt/clock_nanosleep.c 2012-05-15 09:20:09.000000000 +0200
  97483. +++ uClibc-git/librt/clock_nanosleep.c 2014-06-02 17:40:35.178718427 +0200
  97484. @@ -12,9 +12,8 @@
  97485. Lesser General Public License for more details.
  97486. You should have received a copy of the GNU Lesser General Public
  97487. - License along with the GNU C Library; if not, write to the Free
  97488. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97489. - 02111-1307 USA. */
  97490. + License along with the GNU C Library; if not, see
  97491. + <http://www.gnu.org/licenses/>. */
  97492. #include <time.h>
  97493. #include <errno.h>
  97494. diff -Nur uClibc-0.9.33.2/librt/Makefile.in uClibc-git/librt/Makefile.in
  97495. --- uClibc-0.9.33.2/librt/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  97496. +++ uClibc-git/librt/Makefile.in 2014-06-02 17:40:35.178718427 +0200
  97497. @@ -28,11 +28,20 @@
  97498. ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
  97499. librt_filter_SRC += mq_notify.c timer_create.c timer_delete.c \
  97500. timer_getoverr.c timer_gettime.c timer_settime.c
  97501. +# these should really be guarded by ADVANCED_REALTIME, we use them in mq_send.c/mq_receive.c
  97502. librt_SSRC := $(wildcard $(librt_DIR)/*.S)
  97503. else
  97504. librt_filter_SRC += clock_nanosleep.c clock_getcpuclockid.c clock_gettime.c
  97505. librt_SSRC :=
  97506. endif
  97507. +
  97508. +librt_filter_SRC += $(if $(UCLIBC_HAS_ADVANCED_REALTIME),, \
  97509. + spawn.c \
  97510. + spawn_faction_addclose.c \
  97511. + spawn_faction_adddup2.c \
  97512. + spawn_faction_addopen.c \
  97513. + spawn_faction_init.c)
  97514. +
  97515. librt_SRC := $(filter-out $(librt_filter_SRC),$(librt_SRC))
  97516. librt_OBJ := $(patsubst %.c,$(librt_OUT)/%.o,$(librt_SRC))
  97517. diff -Nur uClibc-0.9.33.2/librt/mq_receive.c uClibc-git/librt/mq_receive.c
  97518. --- uClibc-0.9.33.2/librt/mq_receive.c 2012-05-15 09:20:09.000000000 +0200
  97519. +++ uClibc-git/librt/mq_receive.c 2014-06-02 17:40:35.178718427 +0200
  97520. @@ -10,13 +10,18 @@
  97521. #include <mqueue.h>
  97522. #ifdef __UCLIBC_HAS_THREADS_NATIVE__
  97523. +# ifndef __UCLIBC_HAS_ADVANCED_REALTIME__
  97524. +extern ssize_t mq_timedreceive(mqd_t mqdes, char *msg_ptr, size_t msg_len,
  97525. + unsigned int *msg_prio,
  97526. + const struct timespec *abs_timeout);
  97527. +# endif
  97528. librt_hidden_proto(mq_timedreceive)
  97529. #else
  97530. # define __NR___syscall_mq_timedreceive __NR_mq_timedreceive
  97531. static _syscall5(int, __syscall_mq_timedreceive, int, mqdes,
  97532. char *, msg_ptr, size_t, msg_len, unsigned int *,
  97533. - msg_prio, const void *, abs_timeout);
  97534. + msg_prio, const void *, abs_timeout)
  97535. # ifdef __UCLIBC_HAS_ADVANCED_REALTIME__
  97536. /*
  97537. diff -Nur uClibc-0.9.33.2/librt/mq_send.c uClibc-git/librt/mq_send.c
  97538. --- uClibc-0.9.33.2/librt/mq_send.c 2012-05-15 09:20:09.000000000 +0200
  97539. +++ uClibc-git/librt/mq_send.c 2014-06-02 17:40:35.178718427 +0200
  97540. @@ -10,13 +10,17 @@
  97541. #include <mqueue.h>
  97542. #ifdef __UCLIBC_HAS_THREADS_NATIVE__
  97543. +# ifndef __UCLIBC_HAS_ADVANCED_REALTIME__
  97544. +extern int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len,
  97545. + unsigned int msg_prio, const struct timespec *abs_timeout);
  97546. +# endif
  97547. librt_hidden_proto(mq_timedsend)
  97548. #else
  97549. # define __NR___syscall_mq_timedsend __NR_mq_timedsend
  97550. static _syscall5(int, __syscall_mq_timedsend, int, mqdes,
  97551. const char *, msg_ptr, size_t, msg_len, unsigned int,
  97552. - msg_prio, const void *, abs_timeout);
  97553. + msg_prio, const void *, abs_timeout)
  97554. # ifdef __UCLIBC_HAS_ADVANCED_REALTIME__
  97555. /*
  97556. diff -Nur uClibc-0.9.33.2/librt/mq_timedreceive.S uClibc-git/librt/mq_timedreceive.S
  97557. --- uClibc-0.9.33.2/librt/mq_timedreceive.S 2012-05-15 09:20:09.000000000 +0200
  97558. +++ uClibc-git/librt/mq_timedreceive.S 2014-06-02 17:40:35.178718427 +0200
  97559. @@ -2,9 +2,7 @@
  97560. #ifndef __NR_mq_timedreceive
  97561. #error Missing definition of NR_timedreceive needed for cancellation.
  97562. #endif
  97563. -PSEUDO (__mq_timedreceive, mq_timedreceive, 5)
  97564. -ret
  97565. -PSEUDO_END(__mq_timedreceive)
  97566. -librt_hidden_def (__mq_timedreceive)
  97567. -weak_alias (__mq_timedreceive, mq_timedreceive)
  97568. -librt_hidden_weak (mq_timedreceive)
  97569. +PSEUDO(mq_timedreceive, mq_timedreceive, 5)
  97570. +ret_ERRVAL
  97571. +PSEUDO_END(mq_timedreceive)
  97572. +librt_hidden_def(mq_timedreceive)
  97573. diff -Nur uClibc-0.9.33.2/librt/mq_timedsend.S uClibc-git/librt/mq_timedsend.S
  97574. --- uClibc-0.9.33.2/librt/mq_timedsend.S 2012-05-15 09:20:09.000000000 +0200
  97575. +++ uClibc-git/librt/mq_timedsend.S 2014-06-02 17:40:35.178718427 +0200
  97576. @@ -2,9 +2,7 @@
  97577. #ifndef __NR_mq_timedsend
  97578. #error Missing definition of NR_timedsend needed for cancellation.
  97579. #endif
  97580. -PSEUDO (__mq_timedsend, mq_timedsend, 5)
  97581. -ret
  97582. -PSEUDO_END(__mq_timedsend)
  97583. -librt_hidden_def (__mq_timedsend)
  97584. -weak_alias (__mq_timedsend, mq_timedsend)
  97585. -librt_hidden_weak (mq_timedsend)
  97586. +PSEUDO(mq_timedsend, mq_timedsend, 5)
  97587. +ret_ERRVAL
  97588. +PSEUDO_END(mq_timedsend)
  97589. +librt_hidden_def(mq_timedsend)
  97590. diff -Nur uClibc-0.9.33.2/librt/spawn.c uClibc-git/librt/spawn.c
  97591. --- uClibc-0.9.33.2/librt/spawn.c 1970-01-01 01:00:00.000000000 +0100
  97592. +++ uClibc-git/librt/spawn.c 2014-06-02 17:40:35.178718427 +0200
  97593. @@ -0,0 +1,266 @@
  97594. +/* Copyright (C) 2000, 2011 Free Software Foundation, Inc.
  97595. + This file is part of the GNU C Library.
  97596. +
  97597. + The GNU C Library is free software; you can redistribute it and/or
  97598. + modify it under the terms of the GNU Lesser General Public
  97599. + License as published by the Free Software Foundation; either
  97600. + version 2.1 of the License, or (at your option) any later version.
  97601. +
  97602. + The GNU C Library is distributed in the hope that it will be useful,
  97603. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  97604. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  97605. + Lesser General Public License for more details.
  97606. +
  97607. + You should have received a copy of the GNU Lesser General Public
  97608. + License along with the GNU C Library; if not, see
  97609. + <http://www.gnu.org/licenses/>. */
  97610. +
  97611. +#include <errno.h>
  97612. +#include <alloca.h>
  97613. +#include <unistd.h>
  97614. +#include <signal.h>
  97615. +#include <stdbool.h>
  97616. +#include <fcntl.h>
  97617. +
  97618. +#include <sys/resource.h>
  97619. +#include <not-cancel.h>
  97620. +
  97621. +#include <spawn.h>
  97622. +#include "spawn_int.h"
  97623. +
  97624. +/* The Unix standard contains a long explanation of the way to signal
  97625. + an error after the fork() was successful. Since no new wait status
  97626. + was wanted there is no way to signal an error using one of the
  97627. + available methods. The committee chose to signal an error by a
  97628. + normal program exit with the exit code 127. */
  97629. +#define SPAWN_ERROR 127
  97630. +
  97631. +/* Execute file actions.
  97632. + * Returns true on error.
  97633. + */
  97634. +inline static bool execute_file_actions(const posix_spawn_file_actions_t *fa)
  97635. +{
  97636. + struct rlimit64 fdlimit;
  97637. + bool have_fdlimit = false;
  97638. + int cnt;
  97639. +
  97640. + for (cnt = 0; cnt < fa->__used; ++cnt) {
  97641. + struct __spawn_action *action = &fa->__actions[cnt];
  97642. +
  97643. + switch (action->tag) {
  97644. + case spawn_do_close:
  97645. + if (close_not_cancel(action->action.close_action.fd) != 0) {
  97646. + if (!have_fdlimit) {
  97647. + getrlimit64(RLIMIT_NOFILE, &fdlimit);
  97648. + have_fdlimit = true;
  97649. + }
  97650. +
  97651. + /* Only signal errors for file descriptors out of range. */
  97652. + if (0 > action->action.close_action.fd
  97653. + || action->action.close_action.fd >= fdlimit.rlim_cur)
  97654. + /* Signal the error. */
  97655. + return true;
  97656. + }
  97657. + break;
  97658. +
  97659. + case spawn_do_open:;
  97660. + int new_fd = open_not_cancel(action->action.open_action.path,
  97661. + action->action.open_action.oflag
  97662. + | O_LARGEFILE,
  97663. + action->action.open_action.mode);
  97664. +
  97665. + if (new_fd == -1)
  97666. + return true;
  97667. +
  97668. + /* Make sure the desired file descriptor is used. */
  97669. + if (new_fd != action->action.open_action.fd) {
  97670. + if (dup2(new_fd, action->action.open_action.fd)
  97671. + != action->action.open_action.fd)
  97672. + return true;
  97673. +
  97674. + if (close_not_cancel(new_fd) != 0)
  97675. + return true;
  97676. + }
  97677. + break;
  97678. +
  97679. + case spawn_do_dup2:
  97680. + if (dup2(action->action.dup2_action.fd,
  97681. + action->action.dup2_action.newfd)
  97682. + != action->action.dup2_action.newfd)
  97683. + return true;
  97684. + break;
  97685. + }
  97686. + }
  97687. +
  97688. + return false;
  97689. +}
  97690. +
  97691. +#define DANGEROUS (POSIX_SPAWN_SETSIGMASK \
  97692. + | POSIX_SPAWN_SETSIGDEF \
  97693. + | POSIX_SPAWN_SETSCHEDPARAM \
  97694. + | POSIX_SPAWN_SETSCHEDULER \
  97695. + | POSIX_SPAWN_SETPGROUP \
  97696. + | POSIX_SPAWN_RESETIDS)
  97697. +inline static bool is_vfork_safe(short int flags)
  97698. +{
  97699. + return ((flags & POSIX_SPAWN_USEVFORK) || !(flags & DANGEROUS));
  97700. +}
  97701. +
  97702. +
  97703. +/* Spawn a new process executing PATH with the attributes describes in *ATTRP.
  97704. + Before running the process perform the actions described in FILE-ACTIONS. */
  97705. +static int
  97706. +__spawni(pid_t *pid, const char *file,
  97707. + const posix_spawn_file_actions_t *fa,
  97708. + const posix_spawnattr_t *attrp, char *const argv[],
  97709. + char *const envp[], const char *path)
  97710. +{
  97711. + short int flags = attrp ? attrp->__flags : 0;
  97712. +
  97713. + pid_t new_pid;
  97714. + if (is_vfork_safe(flags) && !fa)
  97715. + new_pid = vfork();
  97716. + else {
  97717. +#ifdef __ARCH_USE_MMU__
  97718. + new_pid = fork();
  97719. +#else
  97720. + return ENOSYS;
  97721. +#endif
  97722. + }
  97723. +
  97724. + if (new_pid) {
  97725. + if (new_pid < 0)
  97726. + return errno;
  97727. +
  97728. + if (pid)
  97729. + *pid = new_pid;
  97730. +
  97731. + return 0;
  97732. + }
  97733. +
  97734. + if (flags & POSIX_SPAWN_SETSIGMASK) {
  97735. + if (sigprocmask(SIG_SETMASK, &attrp->__ss, NULL) != 0)
  97736. + goto error;
  97737. + }
  97738. +
  97739. + if (flags & POSIX_SPAWN_SETSIGDEF) {
  97740. + /* We have to iterate over all signals. This could possibly be
  97741. + done better but it requires system specific solutions since
  97742. + the sigset_t data type can be very different on different
  97743. + architectures. */
  97744. + struct sigaction sa;
  97745. + int sig;
  97746. +
  97747. + memset(&sa, 0, sizeof(sa));
  97748. + sa.sa_handler = SIG_DFL;
  97749. +
  97750. + for (sig = 1; sig <= _NSIG; ++sig) {
  97751. + if (sigismember(&attrp->__sd, sig)) {
  97752. + if (sigaction(sig, &sa, NULL) != 0)
  97753. + goto error;
  97754. + }
  97755. + }
  97756. + }
  97757. +
  97758. + if (flags & POSIX_SPAWN_SETSCHEDULER) {
  97759. + if (sched_setscheduler(0, attrp->__policy, &attrp->__sp) == -1)
  97760. + goto error;
  97761. + } else if (flags & POSIX_SPAWN_SETSCHEDPARAM) {
  97762. + if (sched_setparam(0, &attrp->__sp) == -1)
  97763. + goto error;
  97764. + }
  97765. +
  97766. + if (flags & POSIX_SPAWN_SETPGROUP) {
  97767. + if (setpgid(0, attrp->__pgrp) != 0)
  97768. + goto error;
  97769. + }
  97770. +
  97771. + if (flags & POSIX_SPAWN_RESETIDS) {
  97772. + if (seteuid(getuid()) || setegid(getgid()))
  97773. + goto error;
  97774. + }
  97775. +
  97776. + if (fa && execute_file_actions(fa))
  97777. + goto error;
  97778. +
  97779. + if (!path || strchr(file, '/')) {
  97780. + execve(file, argv, envp);
  97781. + goto error;
  97782. + }
  97783. +
  97784. +
  97785. + char *name;
  97786. + {
  97787. + size_t filelen = strlen(file) + 1;
  97788. + size_t pathlen = strlen(path) + 1;
  97789. + name = alloca(pathlen + filelen);
  97790. +
  97791. + /* Copy the file name at the top. */
  97792. + name = (char *) memcpy(name + pathlen, file, filelen);
  97793. +
  97794. + /* And add the slash. */
  97795. + *--name = '/';
  97796. + }
  97797. +
  97798. + char *p;
  97799. + do {
  97800. + char *startp;
  97801. + p = strchrnul(path, ':');
  97802. +
  97803. + /* Two adjacent colons, or a colon at the beginning or the end
  97804. + of `PATH' means to search the current directory. */
  97805. + if (p == path)
  97806. + startp = name + 1;
  97807. + else
  97808. + startp = (char *) memcpy(name - (p - path), path, p - path);
  97809. +
  97810. + execve(startp, argv, envp);
  97811. +
  97812. + switch (errno) {
  97813. + case EACCES:
  97814. + case ENOENT:
  97815. + case ESTALE:
  97816. + case ENOTDIR:
  97817. + /* Those errors indicate the file is missing or not
  97818. + executable by us, in which case we want to just try
  97819. + the next path directory. */
  97820. + break;
  97821. + default:
  97822. + /* Some other error means we found an executable file,
  97823. + but something went wrong executing it; return the
  97824. + error to our caller. */
  97825. + goto error;
  97826. + }
  97827. +
  97828. + path = p;
  97829. + } while (*p++ != '\0');
  97830. +
  97831. +error:
  97832. + _exit(SPAWN_ERROR);
  97833. +}
  97834. +
  97835. +/* Spawn a new process executing PATH with the attributes describes in *ATTRP.
  97836. + Before running the process perform the actions described in FILE-ACTIONS. */
  97837. +int posix_spawn (pid_t *pid, const char *path,
  97838. + const posix_spawn_file_actions_t *fa,
  97839. + const posix_spawnattr_t *attrp, char *const argv[],
  97840. + char *const envp[])
  97841. +{
  97842. + return __spawni(pid, path, fa, attrp, argv, envp, NULL);
  97843. +}
  97844. +
  97845. +/* Spawn a new process executing FILE with the attributes describes in *ATTRP.
  97846. + Before running the process perform the actions described in FILE-ACTIONS. */
  97847. +int
  97848. +posix_spawnp(pid_t *pid, const char *file,
  97849. + const posix_spawn_file_actions_t *fa,
  97850. + const posix_spawnattr_t *attrp, char *const argv[],
  97851. + char *const envp[])
  97852. +{
  97853. + const char *path = getenv("PATH");
  97854. +
  97855. + if (!path)
  97856. + path = ":/bin:/usr/bin";
  97857. +
  97858. + return __spawni(pid, file, fa, attrp, argv, envp, path);
  97859. +}
  97860. diff -Nur uClibc-0.9.33.2/librt/spawn_faction_addclose.c uClibc-git/librt/spawn_faction_addclose.c
  97861. --- uClibc-0.9.33.2/librt/spawn_faction_addclose.c 1970-01-01 01:00:00.000000000 +0100
  97862. +++ uClibc-git/librt/spawn_faction_addclose.c 2014-06-02 17:40:35.178718427 +0200
  97863. @@ -0,0 +1,51 @@
  97864. +/* Copyright (C) 2000 Free Software Foundation, Inc.
  97865. + This file is part of the GNU C Library.
  97866. +
  97867. + The GNU C Library is free software; you can redistribute it and/or
  97868. + modify it under the terms of the GNU Lesser General Public
  97869. + License as published by the Free Software Foundation; either
  97870. + version 2.1 of the License, or (at your option) any later version.
  97871. +
  97872. + The GNU C Library is distributed in the hope that it will be useful,
  97873. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  97874. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  97875. + Lesser General Public License for more details.
  97876. +
  97877. + You should have received a copy of the GNU Lesser General Public
  97878. + License along with the GNU C Library; if not, see
  97879. + <http://www.gnu.org/licenses/>. */
  97880. +
  97881. +#include <errno.h>
  97882. +#include <spawn.h>
  97883. +#include <unistd.h>
  97884. +
  97885. +#include "spawn_int.h"
  97886. +
  97887. +/* Add an action to FILE-ACTIONS which tells the implementation to call
  97888. + `close' for the given file descriptor during the `spawn' call. */
  97889. +int
  97890. +posix_spawn_file_actions_addclose(posix_spawn_file_actions_t *file_actions,
  97891. + int fd)
  97892. +{
  97893. + int maxfd = sysconf(_SC_OPEN_MAX);
  97894. + struct __spawn_action *rec;
  97895. +
  97896. + /* Test for the validity of the file descriptor. */
  97897. + if (fd < 0 || fd >= maxfd)
  97898. + return EBADF;
  97899. +
  97900. + /* Allocate more memory if needed. */
  97901. + if (file_actions->__used == file_actions->__allocated
  97902. + && __posix_spawn_file_actions_realloc(file_actions) != 0)
  97903. + /* This can only mean we ran out of memory. */
  97904. + return ENOMEM;
  97905. +
  97906. + /* Add the new value. */
  97907. + rec = &file_actions->__actions[file_actions->__used];
  97908. + rec->tag = spawn_do_close;
  97909. + rec->action.open_action.fd = fd;
  97910. +
  97911. + /* Account for the new entry. */
  97912. + ++file_actions->__used;
  97913. + return 0;
  97914. +}
  97915. diff -Nur uClibc-0.9.33.2/librt/spawn_faction_adddup2.c uClibc-git/librt/spawn_faction_adddup2.c
  97916. --- uClibc-0.9.33.2/librt/spawn_faction_adddup2.c 1970-01-01 01:00:00.000000000 +0100
  97917. +++ uClibc-git/librt/spawn_faction_adddup2.c 2014-06-02 17:40:35.178718427 +0200
  97918. @@ -0,0 +1,52 @@
  97919. +/* Copyright (C) 2000 Free Software Foundation, Inc.
  97920. + This file is part of the GNU C Library.
  97921. +
  97922. + The GNU C Library is free software; you can redistribute it and/or
  97923. + modify it under the terms of the GNU Lesser General Public
  97924. + License as published by the Free Software Foundation; either
  97925. + version 2.1 of the License, or (at your option) any later version.
  97926. +
  97927. + The GNU C Library is distributed in the hope that it will be useful,
  97928. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  97929. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  97930. + Lesser General Public License for more details.
  97931. +
  97932. + You should have received a copy of the GNU Lesser General Public
  97933. + License along with the GNU C Library; if not, see
  97934. + <http://www.gnu.org/licenses/>. */
  97935. +
  97936. +#include <errno.h>
  97937. +#include <spawn.h>
  97938. +#include <unistd.h>
  97939. +
  97940. +#include "spawn_int.h"
  97941. +
  97942. +/* Add an action to FILE-ACTIONS which tells the implementation to call
  97943. + `dup2' for the given file descriptors during the `spawn' call. */
  97944. +int
  97945. +posix_spawn_file_actions_adddup2(posix_spawn_file_actions_t *file_actions,
  97946. + int fd, int newfd)
  97947. +{
  97948. + int maxfd = sysconf(_SC_OPEN_MAX);
  97949. + struct __spawn_action *rec;
  97950. +
  97951. + /* Test for the validity of the file descriptor. */
  97952. + if (fd < 0 || newfd < 0 || fd >= maxfd || newfd >= maxfd)
  97953. + return EBADF;
  97954. +
  97955. + /* Allocate more memory if needed. */
  97956. + if (file_actions->__used == file_actions->__allocated
  97957. + && __posix_spawn_file_actions_realloc (file_actions) != 0)
  97958. + /* This can only mean we ran out of memory. */
  97959. + return ENOMEM;
  97960. +
  97961. + /* Add the new value. */
  97962. + rec = &file_actions->__actions[file_actions->__used];
  97963. + rec->tag = spawn_do_dup2;
  97964. + rec->action.dup2_action.fd = fd;
  97965. + rec->action.dup2_action.newfd = newfd;
  97966. +
  97967. + /* Account for the new entry. */
  97968. + ++file_actions->__used;
  97969. + return 0;
  97970. +}
  97971. diff -Nur uClibc-0.9.33.2/librt/spawn_faction_addopen.c uClibc-git/librt/spawn_faction_addopen.c
  97972. --- uClibc-0.9.33.2/librt/spawn_faction_addopen.c 1970-01-01 01:00:00.000000000 +0100
  97973. +++ uClibc-git/librt/spawn_faction_addopen.c 2014-06-02 17:40:35.178718427 +0200
  97974. @@ -0,0 +1,55 @@
  97975. +/* Copyright (C) 2000 Free Software Foundation, Inc.
  97976. + This file is part of the GNU C Library.
  97977. +
  97978. + The GNU C Library is free software; you can redistribute it and/or
  97979. + modify it under the terms of the GNU Lesser General Public
  97980. + License as published by the Free Software Foundation; either
  97981. + version 2.1 of the License, or (at your option) any later version.
  97982. +
  97983. + The GNU C Library is distributed in the hope that it will be useful,
  97984. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  97985. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  97986. + Lesser General Public License for more details.
  97987. +
  97988. + You should have received a copy of the GNU Lesser General Public
  97989. + License along with the GNU C Library; if not, see
  97990. + <http://www.gnu.org/licenses/>. */
  97991. +
  97992. +#include <errno.h>
  97993. +#include <spawn.h>
  97994. +#include <unistd.h>
  97995. +
  97996. +#include "spawn_int.h"
  97997. +
  97998. +/* Add an action to FILE-ACTIONS which tells the implementation to call
  97999. + `open' for the given file during the `spawn' call. */
  98000. +int
  98001. +posix_spawn_file_actions_addopen(posix_spawn_file_actions_t *file_actions,
  98002. + int fd, const char *path, int oflag,
  98003. + mode_t mode)
  98004. +{
  98005. + int maxfd = sysconf(_SC_OPEN_MAX);
  98006. + struct __spawn_action *rec;
  98007. +
  98008. + /* Test for the validity of the file descriptor. */
  98009. + if (fd < 0 || fd >= maxfd)
  98010. + return EBADF;
  98011. +
  98012. + /* Allocate more memory if needed. */
  98013. + if (file_actions->__used == file_actions->__allocated
  98014. + && __posix_spawn_file_actions_realloc (file_actions) != 0)
  98015. + /* This can only mean we ran out of memory. */
  98016. + return ENOMEM;
  98017. +
  98018. + /* Add the new value. */
  98019. + rec = &file_actions->__actions[file_actions->__used];
  98020. + rec->tag = spawn_do_open;
  98021. + rec->action.open_action.fd = fd;
  98022. + rec->action.open_action.path = path;
  98023. + rec->action.open_action.oflag = oflag;
  98024. + rec->action.open_action.mode = mode;
  98025. +
  98026. + /* Account for the new entry. */
  98027. + ++file_actions->__used;
  98028. + return 0;
  98029. +}
  98030. diff -Nur uClibc-0.9.33.2/librt/spawn_faction_init.c uClibc-git/librt/spawn_faction_init.c
  98031. --- uClibc-0.9.33.2/librt/spawn_faction_init.c 1970-01-01 01:00:00.000000000 +0100
  98032. +++ uClibc-git/librt/spawn_faction_init.c 2014-06-02 17:40:35.178718427 +0200
  98033. @@ -0,0 +1,42 @@
  98034. +/* Copyright (C) 2000 Free Software Foundation, Inc.
  98035. + This file is part of the GNU C Library.
  98036. +
  98037. + The GNU C Library is free software; you can redistribute it and/or
  98038. + modify it under the terms of the GNU Lesser General Public
  98039. + License as published by the Free Software Foundation; either
  98040. + version 2.1 of the License, or (at your option) any later version.
  98041. +
  98042. + The GNU C Library is distributed in the hope that it will be useful,
  98043. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  98044. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  98045. + Lesser General Public License for more details.
  98046. +
  98047. + You should have received a copy of the GNU Lesser General Public
  98048. + License along with the GNU C Library; if not, see
  98049. + <http://www.gnu.org/licenses/>. */
  98050. +
  98051. +#include <errno.h>
  98052. +#include <spawn.h>
  98053. +#include <stdlib.h>
  98054. +#include <string.h>
  98055. +
  98056. +#include "spawn_int.h"
  98057. +
  98058. +
  98059. +/* Function used to increase the size of the allocated array. This
  98060. + function is called from the `add'-functions. */
  98061. +int
  98062. +__posix_spawn_file_actions_realloc(posix_spawn_file_actions_t *file_actions)
  98063. +{
  98064. + int newalloc = file_actions->__allocated + 8;
  98065. + void *newmem = realloc(file_actions->__actions,
  98066. + newalloc * sizeof(struct __spawn_action));
  98067. +
  98068. + if (newmem == NULL)
  98069. + /* Not enough memory. */
  98070. + return ENOMEM;
  98071. +
  98072. + file_actions->__actions = (struct __spawn_action *)newmem;
  98073. + file_actions->__allocated = newalloc;
  98074. + return 0;
  98075. +}
  98076. diff -Nur uClibc-0.9.33.2/librt/spawn_int.h uClibc-git/librt/spawn_int.h
  98077. --- uClibc-0.9.33.2/librt/spawn_int.h 1970-01-01 01:00:00.000000000 +0100
  98078. +++ uClibc-git/librt/spawn_int.h 2014-06-02 17:40:35.178718427 +0200
  98079. @@ -0,0 +1,35 @@
  98080. +/* Data structure to contain the action information. */
  98081. +struct __spawn_action {
  98082. + enum {
  98083. + spawn_do_close,
  98084. + spawn_do_dup2,
  98085. + spawn_do_open
  98086. + } tag;
  98087. +
  98088. + union {
  98089. + struct {
  98090. + int fd;
  98091. + } close_action;
  98092. + struct {
  98093. + int fd;
  98094. + int newfd;
  98095. + } dup2_action;
  98096. + struct {
  98097. + int fd;
  98098. + const char *path;
  98099. + int oflag;
  98100. + mode_t mode;
  98101. + } open_action;
  98102. + } action;
  98103. +};
  98104. +
  98105. +int __posix_spawn_file_actions_realloc(posix_spawn_file_actions_t *fa);
  98106. +
  98107. +/* handle !LFS */
  98108. +#ifndef __UCLIBC_HAS_LFS__
  98109. +# define rlimit64 rlimit
  98110. +# define getrlimit64 getrlimit
  98111. +#endif
  98112. +#ifndef O_LARGEFILE
  98113. +# define O_LARGEFILE 0
  98114. +#endif
  98115. diff -Nur uClibc-0.9.33.2/librt/timer_create.c uClibc-git/librt/timer_create.c
  98116. --- uClibc-0.9.33.2/librt/timer_create.c 2012-05-15 09:20:09.000000000 +0200
  98117. +++ uClibc-git/librt/timer_create.c 2014-06-02 17:40:35.178718427 +0200
  98118. @@ -2,6 +2,7 @@
  98119. * timer_create.c - create a per-process timer.
  98120. */
  98121. +#include <stddef.h>
  98122. #include <errno.h>
  98123. #include <signal.h>
  98124. #include <stdlib.h>
  98125. @@ -13,10 +14,6 @@
  98126. #ifdef __NR_timer_create
  98127. -#ifndef offsetof
  98128. -# define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
  98129. -#endif
  98130. -
  98131. #define __NR___syscall_timer_create __NR_timer_create
  98132. static __inline__ _syscall3(int, __syscall_timer_create, clockid_t, clock_id,
  98133. struct sigevent *, evp, kernel_timer_t *, ktimerid);
  98134. diff -Nur uClibc-0.9.33.2/libubacktrace/arm/backtrace.c uClibc-git/libubacktrace/arm/backtrace.c
  98135. --- uClibc-0.9.33.2/libubacktrace/arm/backtrace.c 2012-05-15 09:20:09.000000000 +0200
  98136. +++ uClibc-git/libubacktrace/arm/backtrace.c 2014-06-02 17:40:35.178718427 +0200
  98137. @@ -12,6 +12,7 @@
  98138. *
  98139. */
  98140. +#include <libgcc_s.h>
  98141. #include <execinfo.h>
  98142. #include <dlfcn.h>
  98143. #include <stdlib.h>
  98144. @@ -25,6 +26,7 @@
  98145. int cnt, size;
  98146. };
  98147. +#ifdef SHARED
  98148. static _Unwind_Reason_Code (*unwind_backtrace) (_Unwind_Trace_Fn, void *);
  98149. static _Unwind_VRS_Result (*unwind_vrs_get) (_Unwind_Context *,
  98150. _Unwind_VRS_RegClass,
  98151. @@ -34,14 +36,18 @@
  98152. static void backtrace_init (void)
  98153. {
  98154. - void *handle = dlopen ("libgcc_s.so.1", RTLD_LAZY);
  98155. + void *handle = dlopen (LIBGCC_S_SO, RTLD_LAZY);
  98156. if (handle == NULL
  98157. || ((unwind_backtrace = dlsym (handle, "_Unwind_Backtrace")) == NULL)
  98158. || ((unwind_vrs_get = dlsym (handle, "_Unwind_VRS_Get")) == NULL)) {
  98159. - printf("libgcc_s.so.1 must be installed for backtrace to work\n");
  98160. + printf(LIBGCC_S_SO " must be installed for backtrace to work\n");
  98161. abort();
  98162. }
  98163. }
  98164. +#else
  98165. +# define unwind_backtrace _Unwind_Backtrace
  98166. +# define unwind_vrs_get _Unwind_VRS_Get
  98167. +#endif
  98168. /* This function is identical to "_Unwind_GetGR", except that it uses
  98169. "unwind_vrs_get" instead of "_Unwind_VRS_Get". */
  98170. static inline _Unwind_Word
  98171. @@ -62,7 +68,7 @@
  98172. {
  98173. struct trace_arg *arg = a;
  98174. - assert (unwind_getip != NULL);
  98175. + assert (unwind_getip(ctx) != NULL);
  98176. /* We are first called with address in the __backtrace function. Skip it. */
  98177. if (arg->cnt != -1)
  98178. @@ -80,8 +86,10 @@
  98179. {
  98180. struct trace_arg arg = { .array = array, .size = size, .cnt = -1 };
  98181. +#ifdef SHARED
  98182. if (unwind_backtrace == NULL)
  98183. backtrace_init();
  98184. +#endif
  98185. if (size >= 1)
  98186. unwind_backtrace (backtrace_helper, &arg);
  98187. diff -Nur uClibc-0.9.33.2/libubacktrace/arm/Makefile.arch uClibc-git/libubacktrace/arm/Makefile.arch
  98188. --- uClibc-0.9.33.2/libubacktrace/arm/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  98189. +++ uClibc-git/libubacktrace/arm/Makefile.arch 2014-06-02 17:40:35.178718427 +0200
  98190. @@ -14,4 +14,4 @@
  98191. else
  98192. libubacktrace-a-y+=$(libubacktrace_ARCH_OBJS)
  98193. endif
  98194. -libubacktrace-so-y+=$(libubacktrace_ARCH_OBJS:.o=.os)
  98195. +libubacktrace-so-y+=$(libubacktrace_ARCH_OBJS:.o=.oS)
  98196. diff -Nur uClibc-0.9.33.2/libubacktrace/backtrace.c uClibc-git/libubacktrace/backtrace.c
  98197. --- uClibc-0.9.33.2/libubacktrace/backtrace.c 2012-05-15 09:20:09.000000000 +0200
  98198. +++ uClibc-git/libubacktrace/backtrace.c 2014-06-02 17:40:35.178718427 +0200
  98199. @@ -20,6 +20,7 @@
  98200. *
  98201. */
  98202. +#include <libgcc_s.h>
  98203. #include <execinfo.h>
  98204. #include <dlfcn.h>
  98205. #include <stdlib.h>
  98206. @@ -33,20 +34,25 @@
  98207. int cnt, size;
  98208. };
  98209. +#ifdef SHARED
  98210. static _Unwind_Reason_Code (*unwind_backtrace) (_Unwind_Trace_Fn, void *);
  98211. static _Unwind_Ptr (*unwind_getip) (struct _Unwind_Context *);
  98212. static void backtrace_init (void)
  98213. {
  98214. - void *handle = dlopen ("libgcc_s.so.1", RTLD_LAZY);
  98215. + void *handle = dlopen (LIBGCC_S_SO, RTLD_LAZY);
  98216. if (handle == NULL
  98217. || ((unwind_backtrace = dlsym (handle, "_Unwind_Backtrace")) == NULL)
  98218. || ((unwind_getip = dlsym (handle, "_Unwind_GetIP")) == NULL)) {
  98219. - printf("libgcc_s.so.1 must be installed for backtrace to work\n");
  98220. + printf(LIBGCC_S_SO " must be installed for backtrace to work\n");
  98221. abort();
  98222. }
  98223. }
  98224. +#else
  98225. +# define unwind_backtrace _Unwind_Backtrace
  98226. +# define unwind_getip _Unwind_GetIP
  98227. +#endif
  98228. static _Unwind_Reason_Code
  98229. backtrace_helper (struct _Unwind_Context *ctx, void *a)
  98230. @@ -71,8 +77,10 @@
  98231. {
  98232. struct trace_arg arg = { .array = array, .size = size, .cnt = -1 };
  98233. +#ifdef SHARED
  98234. if (unwind_backtrace == NULL)
  98235. backtrace_init();
  98236. +#endif
  98237. if (size >= 1)
  98238. unwind_backtrace (backtrace_helper, &arg);
  98239. diff -Nur uClibc-0.9.33.2/libubacktrace/backtracesyms.c uClibc-git/libubacktrace/backtracesyms.c
  98240. --- uClibc-0.9.33.2/libubacktrace/backtracesyms.c 2012-05-15 09:20:09.000000000 +0200
  98241. +++ uClibc-git/libubacktrace/backtracesyms.c 2014-06-02 17:40:35.178718427 +0200
  98242. @@ -14,9 +14,8 @@
  98243. Lesser General Public License for more details.
  98244. You should have received a copy of the GNU Lesser General Public
  98245. - License along with the GNU C Library; if not, write to the Free
  98246. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  98247. - 02111-1307 USA.
  98248. + License along with the GNU C Library; see the file COPYING.LIB. If
  98249. + not, see <http://www.gnu.org/licenses/>.
  98250. Based on glibc/sysdeps/generic/elf/backtracesyms.c
  98251. diff -Nur uClibc-0.9.33.2/libubacktrace/backtracesymsfd.c uClibc-git/libubacktrace/backtracesymsfd.c
  98252. --- uClibc-0.9.33.2/libubacktrace/backtracesymsfd.c 2012-05-15 09:20:09.000000000 +0200
  98253. +++ uClibc-git/libubacktrace/backtracesymsfd.c 2014-06-02 17:40:35.178718427 +0200
  98254. @@ -14,9 +14,8 @@
  98255. Lesser General Public License for more details.
  98256. You should have received a copy of the GNU Lesser General Public
  98257. - License along with the GNU C Library; if not, write to the Free
  98258. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  98259. - 02111-1307 USA.
  98260. + License along with the GNU C Library; see the file COPYING.LIB. If
  98261. + not, see <http://www.gnu.org/licenses/>.
  98262. Based on glibc/sysdeps/generic/elf/backtracesymsfd.c
  98263. diff -Nur uClibc-0.9.33.2/libubacktrace/Makefile.in uClibc-git/libubacktrace/Makefile.in
  98264. --- uClibc-0.9.33.2/libubacktrace/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  98265. +++ uClibc-git/libubacktrace/Makefile.in 2014-06-02 17:40:35.178718427 +0200
  98266. @@ -25,11 +25,13 @@
  98267. -include $(libubacktrace_ARCH_DIR)/Makefile.arch
  98268. libubacktrace_SRC-y :=
  98269. -libubacktrace_SRC-$(UCLIBC_HAS_BACKTRACE) := backtrace.c backtracesyms.c backtracesymsfd.c
  98270. +libubacktrace_SRC-$(UCLIBC_HAS_BACKTRACE) := backtracesyms.c backtracesymsfd.c
  98271. +libubacktrace_SRC_SHARED-$(UCLIBC_HAS_BACKTRACE) := backtrace.c
  98272. # remove generic sources, if arch specific version is present
  98273. ifneq ($(strip $(libubacktrace_ARCH_SRC-y)),)
  98274. libubacktrace_SRC-y := $(filter-out $(notdir $(libubacktrace_ARCH_SRC-y)),$(libubacktrace_SRC-y))
  98275. +libubacktrace_SRC_SHARED-y := $(filter-out $(notdir $(libubacktrace_ARCH_SRC-y)),$(libubacktrace_SRC_SHARED-y))
  98276. endif
  98277. # -fasynchronous-unwind-tables is required for backtrace to work using dwarf2
  98278. @@ -43,12 +45,19 @@
  98279. libubacktrace_SRCS := $(patsubst %.c,$(libubacktrace_DIR)/%.c,$(libubacktrace_SRC-y))
  98280. libubacktrace_OBJS := $(patsubst $(libubacktrace_DIR)/%.c,$(libubacktrace_OUT)/%.o,$(libubacktrace_SRCS))
  98281. +libubacktrace_SHARED_SRCS := $(patsubst %.c,$(libubacktrace_DIR)/%.c,$(libubacktrace_SRC_SHARED-y))
  98282. +libubacktrace_SHARED_OBJS := $(patsubst $(libubacktrace_DIR)/%.c,$(libubacktrace_OUT)/%.o,$(libubacktrace_SHARED_SRCS))
  98283. +
  98284. +libubacktrace-shared-y := $(libubacktrace_SHARED_OBJS:.o=.oS)
  98285. +libubacktrace-static-y := $(libubacktrace_SHARED_OBJS)
  98286. +
  98287. ifeq ($(DOPIC),y)
  98288. -libubacktrace-a-y += $(libubacktrace_OBJS:.o=.os)
  98289. +libubacktrace-a-y += $(libubacktrace_OBJS:.o=.os) $(libubacktrace-static-y:.o=.os)
  98290. else
  98291. -libubacktrace-a-y += $(libubacktrace_OBJS)
  98292. +libubacktrace-a-y += $(libubacktrace_OBJS) $(libubacktrace-static-y)
  98293. endif
  98294. -libubacktrace-so-y += $(libubacktrace_OBJS:.o=.os)
  98295. +libubacktrace-so-y += $(libubacktrace_OBJS:.o=.os) $(libubacktrace-shared-y)
  98296. +
  98297. lib-a-$(UCLIBC_HAS_BACKTRACE) += $(top_builddir)lib/libubacktrace.a
  98298. lib-so-$(UCLIBC_HAS_BACKTRACE) += $(top_builddir)lib/libubacktrace.so
  98299. @@ -56,11 +65,7 @@
  98300. objclean-y += CLEAN_libubacktrace
  98301. ifeq ($(DOMULTI),n)
  98302. -ifeq ($(DOPIC),y)
  98303. -$(top_builddir)lib/libubacktrace.so: $(top_builddir)lib/libubacktrace.a $(libdl.depend)
  98304. -else
  98305. $(top_builddir)lib/libubacktrace.so: $(libubacktrace_OUT)/libubacktrace_so.a $(libdl.depend)
  98306. -endif
  98307. $(call link.so,$(libubacktrace_FULL_NAME),$(ABI_VERSION))
  98308. else
  98309. $(top_builddir)lib/libubacktrace.so: $(libubacktrace_OUT)/libubacktrace.oS | $(libdl.depend)
  98310. @@ -71,7 +76,7 @@
  98311. $(Q)$(RM) $@
  98312. $(do_ar)
  98313. -$(libubacktrace_OUT)/libubacktrace.oS: $(libubacktrace_SRCS) $(libubacktrace_ARCH_SRCS)
  98314. +$(libubacktrace_OUT)/libubacktrace.oS: $(libubacktrace_SRCS) $(libubacktrace_ARCH_SRCS) $(libubacktrace_SHARED_SRCS)
  98315. $(Q)$(RM) $@
  98316. $(compile-m)
  98317. diff -Nur uClibc-0.9.33.2/libutil/forkpty.c uClibc-git/libutil/forkpty.c
  98318. --- uClibc-0.9.33.2/libutil/forkpty.c 2012-05-15 09:20:09.000000000 +0200
  98319. +++ uClibc-git/libutil/forkpty.c 2014-06-02 17:40:35.178718427 +0200
  98320. @@ -13,9 +13,8 @@
  98321. Lesser General Public License for more details.
  98322. You should have received a copy of the GNU Lesser General Public
  98323. - License along with the GNU C Library; if not, write to the Free
  98324. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  98325. - 02111-1307 USA. */
  98326. + License along with the GNU C Library; if not, see
  98327. + <http://www.gnu.org/licenses/>. */
  98328. #include <sys/types.h>
  98329. #include <termios.h>
  98330. diff -Nur uClibc-0.9.33.2/libutil/logout.c uClibc-git/libutil/logout.c
  98331. --- uClibc-0.9.33.2/libutil/logout.c 2012-05-15 09:20:09.000000000 +0200
  98332. +++ uClibc-git/libutil/logout.c 2014-06-02 17:40:35.178718427 +0200
  98333. @@ -13,9 +13,8 @@
  98334. Lesser General Public License for more details.
  98335. You should have received a copy of the GNU Lesser General Public
  98336. - License along with the GNU C Library; if not, write to the Free
  98337. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  98338. - 02111-1307 USA. */
  98339. + License along with the GNU C Library; if not, see
  98340. + <http://www.gnu.org/licenses/>. */
  98341. #include <errno.h>
  98342. #include <string.h>
  98343. diff -Nur uClibc-0.9.33.2/libutil/openpty.c uClibc-git/libutil/openpty.c
  98344. --- uClibc-0.9.33.2/libutil/openpty.c 2012-05-15 09:20:09.000000000 +0200
  98345. +++ uClibc-git/libutil/openpty.c 2014-06-02 17:40:35.182718449 +0200
  98346. @@ -13,9 +13,8 @@
  98347. Lesser General Public License for more details.
  98348. You should have received a copy of the GNU Lesser General Public
  98349. - License along with the GNU C Library; if not, write to the Free
  98350. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  98351. - 02111-1307 USA. */
  98352. + License along with the GNU C Library; if not, see
  98353. + <http://www.gnu.org/licenses/>. */
  98354. #include <errno.h>
  98355. #include <fcntl.h>
  98356. diff -Nur uClibc-0.9.33.2/Makefile.help uClibc-git/Makefile.help
  98357. --- uClibc-0.9.33.2/Makefile.help 2012-05-15 09:20:09.000000000 +0200
  98358. +++ uClibc-git/Makefile.help 2014-06-02 17:40:33.670710081 +0200
  98359. @@ -27,6 +27,7 @@
  98360. @echo ' menuconfig - interactive curses-based configurator'
  98361. @echo ' oldconfig - resolve any unresolved symbols in .config'
  98362. @echo ' silentoldconfig - resolve any unresolved symbols in .config, silently'
  98363. + @echo ' savedefconfig - Save current config (minimal config)'
  98364. @echo ' randconfig - generate a random .config'
  98365. @$(if $(arch-defconfigs), \
  98366. @echo ''; \
  98367. @@ -58,7 +59,7 @@
  98368. @echo ' ARCH= - Use given arch for config targets'
  98369. @echo ' SHELL= - Shell to use for make'
  98370. @echo ' BUILD_CFLAGS= - extra CFLAGS for compiling host binaries'
  98371. - @echo ' BUILD_LFLAGS= - extra LDFLAGS for linking host binaries'
  98372. + @echo ' BUILD_LDFLAGS= - extra LDFLAGS for linking host binaries'
  98373. @echo ' CONFIG_SHELL= - Shell to use for menuconfig'
  98374. @echo
  98375. @echo ' PREFIX= - Prepended prefix'
  98376. diff -Nur uClibc-0.9.33.2/Makefile.in uClibc-git/Makefile.in
  98377. --- uClibc-0.9.33.2/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  98378. +++ uClibc-git/Makefile.in 2014-06-13 18:29:20.642292552 +0200
  98379. @@ -8,18 +8,8 @@
  98380. #--------------------------------------------------------------
  98381. # You shouldn't need to mess with anything beyond this point...
  98382. #--------------------------------------------------------------
  98383. -clean_targets := clean realclean distclean \
  98384. - objclean-y headers_clean-y CLEAN_utils
  98385. -noconfig_targets := menuconfig config oldconfig silentoldconfig randconfig \
  98386. - defconfig allyesconfig allnoconfig \
  98387. - release dist tags help
  98388. -
  98389. include $(top_srcdir)Rules.mak
  98390. sub_headers := headers
  98391. -ifndef KCONFIG_CONFIG
  98392. -KCONFIG_CONFIG := $(top_builddir).config
  98393. -endif
  98394. -export KCONFIG_CONFIG
  98395. ifeq ($(HAVE_DOT_CONFIG),y)
  98396. @@ -56,6 +46,7 @@
  98397. conf := $(top_builddir)extra/config/conf
  98398. mconf := $(top_builddir)extra/config/mconf
  98399. +nconf := $(top_builddir)extra/config/nconf
  98400. ifeq ($(HAVE_DOT_CONFIG),y)
  98401. # If the .config changes then we have to make sure that our includes are
  98402. @@ -63,9 +54,9 @@
  98403. # have uClibc_config.h as prerequisite but since we _symlink_ the headers
  98404. # and do not (?) want to rely on 'make -L' we better update them right here,
  98405. # on spot to save us from alot of hazzle.
  98406. -$(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
  98407. +$(top_builddir)include/bits/uClibc_config.h: $(conf) $(KCONFIG_CONFIG) $(top_srcdir)extra/scripts/conf-header.sh | $(top_builddir)include/bits
  98408. @$(disp_gen)
  98409. - $(Q)@$< -s $(top_srcdir)extra/Configs/Config.in
  98410. + $(Q)$< -s $(Kconfig)
  98411. $(Q)$(top_srcdir)extra/scripts/conf-header.sh $(KCONFIG_CONFIG) > $@
  98412. $(Q)$(MAKE) headers-y
  98413. @@ -76,6 +67,10 @@
  98414. $(top_builddir)include/config/linuxthreads/old.h $(top_builddir)include/config/linuxthreads/new.h:
  98415. @true
  98416. +$(top_builddir)include/generated/unifdef_config.h: $(top_builddir)include/bits/uClibc_config.h | $(top_builddir)include/generated
  98417. + @$(disp_gen)
  98418. + $(Q)$(SED) -e '1,3d' $^ > $@
  98419. +
  98420. # For the moment, we have to keep re-running this target
  98421. # because the fix includes scripts rely on pre-processers
  98422. # in order to generate the headers correctly :(. That
  98423. @@ -87,11 +82,21 @@
  98424. export header_extra_args = -n
  98425. endif
  98426. HEADERS_BITS_COMMON := $(notdir $(wildcard $(top_srcdir)libc/sysdeps/linux/common/bits/*.h))
  98427. +ifneq ($(ARCH_HAS_DEPRECATED_SYSCALLS),y)
  98428. +HEADERS_BITS_COMMON_NO_LEGACY := $(notdir $(wildcard $(top_srcdir)libc/sysdeps/linux/common-generic/bits/*.h))
  98429. +HEADERS_BITS_COMMON := $(filter-out $(HEADERS_BITS_COMMON_NO_LEGACY),$(HEADERS_BITS_COMMON))
  98430. +ALL_HEADERS_BITS_COMMON_NO_LEGACY := $(addprefix $(top_builddir)include/bits/,$(HEADERS_BITS_COMMON_NO_LEGACY))
  98431. +endif
  98432. +
  98433. HEADERS_BITS_ARCH := $(notdir $(wildcard $(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/bits/*.h))
  98434. HEADERS_BITS_SUBARCH :=
  98435. ifneq ($(TARGET_SUBARCH),)
  98436. HEADERS_BITS_SUBARCH := $(notdir $(wildcard $(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/bits/$(TARGET_SUBARCH)/*.h))
  98437. endif
  98438. +ifneq ($(HEADERS_BITS_PTHREAD),)
  98439. +HEADERS_BITS_ARCH := $(filter-out $(HEADERS_BITS_PTHREAD),$(HEADERS_BITS_ARCH))
  98440. +HEADERS_BITS_SUBARCH:= $(filter-out $(HEADERS_BITS_PTHREAD),$(HEADERS_BITS_SUBARCH))
  98441. +endif
  98442. HEADERS_BITS_COMMON := $(filter-out $(HEADERS_BITS_ARCH) $(HEADERS_BITS_SUBARCH) $(HEADERS_BITS_PTHREAD),$(HEADERS_BITS_COMMON))
  98443. HEADERS_SYS_COMMON := $(notdir $(wildcard $(top_srcdir)libc/sysdeps/linux/common/sys/*.h))
  98444. @@ -99,8 +104,11 @@
  98445. HEADERS_SYS_COMMON := $(filter-out $(HEADERS_SYS_ARCH),$(HEADERS_SYS_COMMON))
  98446. ALL_HEADERS_COMMON := $(top_builddir)include/fpu_control.h \
  98447. + $(top_builddir)include/jmpbuf-offsets.h \
  98448. + $(top_builddir)include/jmpbuf-unwind.h \
  98449. $(top_builddir)include/dl-osinfo.h \
  98450. - $(top_builddir)include/hp-timing.h
  98451. + $(top_builddir)include/hp-timing.h \
  98452. + $(top_builddir)include/not-cancel.h
  98453. ALL_HEADERS_BITS_COMMON := $(addprefix $(top_builddir)include/bits/,$(HEADERS_BITS_COMMON))
  98454. ALL_HEADERS_BITS_ARCH := $(addprefix $(top_builddir)include/bits/,$(HEADERS_BITS_ARCH))
  98455. ifneq ($(TARGET_SUBARCH),)
  98456. @@ -120,13 +128,17 @@
  98457. $(ALL_HEADERS_SYS_ARCH) \
  98458. $(ALL_HEADERS_BITS_PTHREAD)
  98459. -$(top_builddir)include/fpu_control.h:
  98460. +ifneq ($(ARCH_HAS_DEPRECATED_SYSCALLS),y)
  98461. + target-headers-sysdep += $(ALL_HEADERS_BITS_COMMON_NO_LEGACY)
  98462. +endif
  98463. +
  98464. +$(top_builddir)include/fpu_control.h $(top_builddir)include/jmpbuf-offsets.h $(top_builddir)include/jmpbuf-unwind.h:
  98465. @$(disp_ln)
  98466. $(Q)[ -r $(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/$(@F) ] && \
  98467. $(LN) -fs $(call rel_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/$(@F) $@ || \
  98468. $(LN) -fs $(call rel_srcdir)libc/sysdeps/linux/common/$(@F) $@
  98469. -$(top_builddir)include/dl-osinfo.h $(top_builddir)include/hp-timing.h:
  98470. +$(top_builddir)include/dl-osinfo.h $(top_builddir)include/hp-timing.h $(top_builddir)include/not-cancel.h:
  98471. $(do_ln) $(call rel_srcdir)libc/sysdeps/linux/common/$(@F) $@
  98472. $(ALL_HEADERS_BITS_COMMON):
  98473. @@ -135,6 +147,11 @@
  98474. $(ALL_HEADERS_BITS_ARCH):
  98475. $(do_ln) $(call rel_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/bits/$(@F) $@
  98476. +ifneq ($(ARCH_HAS_DEPRECATED_SYSCALLS),y)
  98477. +$(ALL_HEADERS_BITS_COMMON_NO_LEGACY):
  98478. + $(do_ln) $(call rel_srcdir)libc/sysdeps/linux/common-generic/bits/$(@F) $@
  98479. +endif
  98480. +
  98481. ifneq ($(TARGET_SUBARCH),)
  98482. $(ALL_HEADERS_BITS_SUBARCH):
  98483. $(do_ln) $(call rel_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/bits/$(TARGET_SUBARCH)/$(@F) $@
  98484. @@ -155,6 +172,9 @@
  98485. HEADERCLEAN_common:
  98486. $(do_rm) $(ALL_HEADERS_COMMON)
  98487. headers_clean-y += HEADERCLEAN_common
  98488. +HEADERCLEAN_config:
  98489. + $(do_rm) -r $(addprefix $(top_builddir)include/,config generated)
  98490. +menuconfig-clean-y: HEADERCLEAN_config
  98491. # The headers. Arch specific headers are specified via ARCH_HEADERS in
  98492. # libc/sysdeps/linux/$(TARGET_ARCH)/Makefile.arch which appends those via
  98493. @@ -170,27 +190,22 @@
  98494. $(top_builddir)include/bits/sysnum.h: $(top_srcdir)extra/scripts/gen_bits_syscall_h.sh | $(top_builddir)include/bits
  98495. @$(disp_gen)
  98496. $(Q)set -e; \
  98497. - tmp=`mktemp $(top_builddir)include/bits/sysnum.h.XXXXXX 2>/dev/null || true`; \
  98498. - [ -z "$$tmp" ] && tmp='$(top_builddir)include/bits/sysnum.h.new'; \
  98499. - KERNEL_HEADERS="${KERNEL_HEADERS}" top_builddir="$(top_builddir)" CC="$(CC) $(CPU_CFLAGS)" $(SHELL) $< > $$tmp; \
  98500. - if cmp $(top_builddir)include/bits/sysnum.h $$tmp >/dev/null 2>&1; then \
  98501. - $(RM) $$tmp; \
  98502. - else \
  98503. - mv -f $$tmp $(top_builddir)include/bits/sysnum.h; \
  98504. - fi
  98505. + KERNEL_HEADERS="${KERNEL_HEADERS}" CC="$(CC) $(CPU_CFLAGS)" $(SHELL) $< > $@.new; \
  98506. + cmp -s $@ $@.new && $(RM) $@.new || mv -f $@.new $@
  98507. @# Ugly linux specific hack..
  98508. $(Q)if grep -q __NR_ $@; then true; else \
  98509. rm -f $@; \
  98510. echo "ERROR: Could not generate syscalls."; \
  98511. - echo "Make sure that you have proper kernel headers."; \
  98512. - echo "Your .config in KERNEL_HEADERS=\"\" was set to:"; \
  98513. + echo "Make sure that you have properly installed kernel headers."; \
  98514. + echo "Your .config KERNEL_HEADERS=\"\" was set to:"; \
  98515. echo "${KERNEL_HEADERS}"; \
  98516. exit 1; \
  98517. fi
  98518. .PHONY: $(LOCAL_INSTALL_PATH)
  98519. $(LOCAL_INSTALL_PATH):
  98520. - $(Q)$(MAKE) PREFIX=$(shell pwd)/$(LOCAL_INSTALL_PATH) RUNTIME_PREFIX=/ \
  98521. + $(Q)$(MAKE) PREFIX=$(LOCAL_INSTALL_PATH) \
  98522. + RUNTIME_PREFIX=/ \
  98523. DEVEL_PREFIX=/usr/ \
  98524. HOSTCC="$(HOSTCC)" \
  98525. install
  98526. @@ -210,21 +225,34 @@
  98527. # a "y" here means the feature is enabled and so we should *not* rm it.
  98528. # if the option expands to nothing though, we can punt the headers.
  98529. HEADERS_RM- := \
  98530. + config \
  98531. + generated \
  98532. + internal \
  98533. + cancel.h \
  98534. dl-osinfo.h \
  98535. + jmpbuf-offsets.h \
  98536. + jmpbuf-unwind.h \
  98537. hp-timing.h \
  98538. + not-cancel.h \
  98539. _lfs_64.h \
  98540. bits/uClibc_arch_features.h \
  98541. bits/kernel_sigaction.h \
  98542. bits/kernel_stat.h \
  98543. bits/kernel_types.h \
  98544. + bits/libc-lock.h \
  98545. + bits/stdio-lock.h \
  98546. bits/syscalls.h \
  98547. bits/syscalls-common.h \
  98548. bits/uClibc_fpmax.h \
  98549. + bits/uClibc_mutex.h \
  98550. + bits/uClibc_pthread.h \
  98551. bits/uClibc_uintmaxtostr.h \
  98552. bits/uClibc_uwchar.h \
  98553. bits/uClibc_va_copy.h \
  98554. bits/sigcontextinfo.h \
  98555. bits/stackinfo.h \
  98556. + atomic.h \
  98557. + bits/atomic.h \
  98558. tls.h \
  98559. rpc/des_crypt.h \
  98560. rpc/key_prot.h \
  98561. @@ -259,18 +287,23 @@
  98562. HEADERS_RM-$(UCLIBC_HAS_REGEX) += regex.h regexp.h
  98563. HEADERS_RM-$(UCLIBC_HAS_RPC) += rpc
  98564. HEADERS_RM-$(UCLIBC_HAS_SHADOW) += shadow.h
  98565. -HEADERS_RM-$(UCLIBC_HAS_SOCKET) += sys/socket.h bits/socket.h sys/socketvar.h
  98566. +HEADERS_RM-$(UCLIBC_HAS_SOCKET) += sys/socket.h bits/socket.h sys/socketvar.h bits/socket_type.h
  98567. HEADERS_RM-$(UCLIBC_HAS_SYSLOG) += syslog.h sys/syslog.h bits/syslog*.h
  98568. HEADERS_RM-$(UCLIBC_HAS_THREADS) += *thread*.h semaphore.h \
  98569. bits/*thread*.h \
  98570. bits/initspin.h
  98571. HEADERS_RM-$(UCLIBC_HAS_THREADS_NATIVE) += atomic.h bits/atomic.h
  98572. +HEADERS_RM-$(UCLIBC_HAS_OBSTACK) += obstack.h
  98573. HEADERS_RM-$(UCLIBC_HAS_UTMPX) += bits/utmpx.h utmpx.h
  98574. HEADERS_RM-$(UCLIBC_HAS_WCHAR) += wchar.h wctype.h
  98575. HEADERS_RM-$(UCLIBC_HAS_WORDEXP) += wordexp.h
  98576. HEADERS_RM-$(UCLIBC_HAS_XATTR) += sys/xattr.h
  98577. HEADERS_RM-$(UCLIBC_HAS_XLOCALE) += xlocale.h
  98578. -HEADERS_RM-$(UCLIBC_LINUX_SPECIFIC) += sys/eventfd.h sys/fsuid.h \
  98579. +HEADERS_RM-$(UCLIBC_LINUX_SPECIFIC) += \
  98580. + sys/cachectl.h \
  98581. + bits/eventfd.h \
  98582. + sys/eventfd.h \
  98583. + sys/fsuid.h \
  98584. bits/inotify.h \
  98585. sys/inotify.h \
  98586. sys/kdaemon.h \
  98587. @@ -288,11 +321,13 @@
  98588. sys/sysinfo.h \
  98589. bits/timerfd.h \
  98590. sys/timerfd.h \
  98591. + sys/sysmips.h \
  98592. sys/vfs.h
  98593. HEADERS_RM-$(UCLIBC_SUPPORT_AI_ADDRCONFIG) += ifaddrs.h
  98594. HEADERS_RM-$(UCLIBC_SV4_DEPRECATED) += ustat.h sys/ustat.h bits/ustat.h
  98595. HEADERS_RM-$(UCLIBC_SUSV3_LEGACY) += sys/timeb.h regexp.h
  98596. HEADERS_RM-$(UCLIBC_SUSV4_LEGACY) += utime.h ucontext.h
  98597. +HEADERS_RM-$(UCLIBC_HAS_ADVANCED_REALTIME) += spawn.h
  98598. ifneq ($(findstring install,$(MAKECMDGOALS)),)
  98599. $(addprefix $(PREFIX)$(DEVEL_PREFIX),include $(MULTILIB_DIR)):
  98600. @@ -303,7 +338,9 @@
  98601. $(do_mkdir)
  98602. endif
  98603. endif
  98604. -install_headers: headers $(top_builddir)extra/scripts/unifdef | $(PREFIX)$(DEVEL_PREFIX)include
  98605. +
  98606. +
  98607. +install_headers: headers $(top_builddir)extra/scripts/unifdef $(top_builddir)include/generated/unifdef_config.h | $(PREFIX)$(DEVEL_PREFIX)include
  98608. @$(call disp_install,"include -> $(PREFIX)$(DEVEL_PREFIX)include")
  98609. $(Q)top_builddir=$(top_builddir) \
  98610. $(top_srcdir)extra/scripts/install_headers.sh \
  98611. @@ -346,12 +383,7 @@
  98612. else
  98613. -$(INSTALL) -m 755 $(top_builddir)lib/libc.so $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/
  98614. endif
  98615. -ifeq ($(UCLIBC_HAS_BACKTRACE),y)
  98616. -# Add the AS_NEEDED entry for libubacktrace.so
  98617. - if [ -f $(top_builddir)lib/libc.so -a -f $(PREFIX)$(RUNTIME_PREFIX)$(MULTILIB_DIR)/$(SHARED_LIBNAME) ] ; then \
  98618. - echo "GROUP ( $(UBACKTRACE_ASNEEDED) )" >> $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/libc.so; \
  98619. - fi
  98620. -endif
  98621. + echo "$(UBACKTRACE_ASNEEDED)" >> $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/libc.so
  98622. ifeq ($(UCLIBC_HAS_THREADS),y)
  98623. ifneq ($(LINUXTHREADS_OLD),y)
  98624. ifeq ($(HARDWIRED_ABSPATH),y)
  98625. @@ -422,49 +454,55 @@
  98626. install_hostutils: hostutils
  98627. $(Q)$(MAKE) CROSS_COMPILE="$(CROSS_COMPILE)" CC="$(CC)" HOSTCC="$(HOSTCC)" DOTHOST=.host -C utils utils_install
  98628. -$(addprefix $(top_builddir),include include/bits include/sys include/config lib extra/config/lxdialog extra/locale extra/scripts $(subdirs)):
  98629. +$(addprefix $(top_builddir),include include/bits include/sys include/config include/generated lib extra/config/lxdialog extra/locale extra/scripts $(subdirs)):
  98630. $(do_mkdir)
  98631. # configuration
  98632. # ---------------------------------------------------------------------------
  98633. -$(conf) $(mconf): | $(top_builddir)include/config $(top_builddir)extra/config/lxdialog
  98634. +$(conf) $(mconf) $(nconf): | $(top_builddir)include/config $(top_builddir)include/generated $(top_builddir)extra/config/lxdialog
  98635. $(Q)$(MAKE) -C extra/config $(@F)
  98636. arch-defconfigs := $(notdir $(wildcard $(top_srcdir)extra/Configs/defconfigs/$(ARCH)/*_defconfig))
  98637. menuconfig: $(mconf)
  98638. - $(Q)$< extra/Configs/Config.in
  98639. -
  98640. + $(Q)$< $(Kconfig)
  98641. config: $(conf)
  98642. - $(Q)$< extra/Configs/Config.in
  98643. -
  98644. -oldconfig: $(conf)
  98645. - $(Q)$< -o extra/Configs/Config.in
  98646. + $(Q)$< $(Kconfig)
  98647. +nconfig: $(nconf)
  98648. + $(Q)$< $(Kconfig)
  98649. +oldaskconfig: $(conf)
  98650. + $(Q)$< -a $(Kconfig)
  98651. silentoldconfig: $(conf)
  98652. - $(Q)$< -s extra/Configs/Config.in
  98653. -
  98654. -randconfig: $(conf)
  98655. - $(Q)$< -r extra/Configs/Config.in
  98656. -
  98657. + $(Q)$< -s $(Kconfig)
  98658. +oldconfig: $(conf)
  98659. + $(Q)$< -o $(Kconfig)
  98660. +allnoconfig: $(conf)
  98661. + $(Q)$< -n $(Kconfig)
  98662. allyesconfig: $(conf)
  98663. - $(Q)$< -y extra/Configs/Config.in
  98664. + $(Q)$< -y $(Kconfig)
  98665. $(SED) -i -e "s/^DODEBUG=.*/# DODEBUG is not set/" \
  98666. -e "s/^DOASSERTS=.*/# DOASSERTS is not set/" \
  98667. -e "s/^SUPPORT_LD_DEBUG_EARLY=.*/# SUPPORT_LD_DEBUG_EARLY is not set/" \
  98668. -e "s/^SUPPORT_LD_DEBUG=.*/# SUPPORT_LD_DEBUG is not set/" \
  98669. -e "s/^UCLIBC_MJN3_ONLY=.*/# UCLIBC_MJN3_ONLY is not set/" \
  98670. $(KCONFIG_CONFIG)
  98671. - $(Q)$< -o extra/Configs/Config.in
  98672. -
  98673. -allnoconfig: $(conf)
  98674. - $(Q)$< -n extra/Configs/Config.in
  98675. -
  98676. -defconfig: $(conf)
  98677. - $(Q)$< -D extra/Configs/defconfigs/$(ARCH)/$@ extra/Configs/Config.in
  98678. + $(Q)$< -o $(Kconfig)
  98679. +alldefconfig: $(conf)
  98680. + $(Q)$< -A $(Kconfig)
  98681. +randconfig: $(conf)
  98682. + $(Q)$< -r $(Kconfig)
  98683. -%_defconfig: $(conf)
  98684. - $(Q)$< -D extra/Configs/defconfigs/$(ARCH)/$@ extra/Configs/Config.in
  98685. +cmd_defconfig = $(Q)$< -D extra/Configs/defconfigs/$(ARCH)/$@ $(Kconfig)
  98686. +defconfig: $(conf) ; $(cmd_defconfig)
  98687. +%_defconfig: $(conf) ; $(cmd_defconfig)
  98688. +
  98689. +savedefconfig: $(conf)
  98690. + $(Q)$< -S defconfig $(Kconfig)
  98691. +listnewconfig: $(conf)
  98692. + $(Q)$< -l $(Kconfig)
  98693. +olddefconfig: $(conf)
  98694. + $(Q)$< -d $(Kconfig)
  98695. menuconfig-clean-y:
  98696. $(Q)$(MAKE) -C extra/config CLEAN_extra/config
  98697. @@ -484,11 +522,11 @@
  98698. $(Q)$(RM) $(top_builddir)extra/scripts/unifdef
  98699. $(Q)$(RM) -r $(LOCAL_INSTALL_PATH)
  98700. -distclean: clean
  98701. +distclean: realclean
  98702. -find . \( -name core -o -name \*.orig -o -name \*~ -o -name .\*.dep \) -exec $(RM) {} \;
  98703. $(RM) $(top_builddir).config $(top_builddir).config.old $(top_builddir).config.cmd
  98704. - $(RM) $(top_builddir)extra/locale/*.tgz
  98705. - $(MAKE) -C extra/config distclean
  98706. + $(Q)$(RM) $(top_builddir)extra/locale/*.tgz
  98707. + @$(MAKE) -C extra/config distclean
  98708. dist release:
  98709. $(RM) ../uClibc-$(VERSION).tar
  98710. @@ -499,7 +537,9 @@
  98711. du -b ../uClibc-$(VERSION).tar.{bz2,xz}
  98712. test check: test_compile
  98713. - $(Q)$(MAKE) -C test
  98714. + $(Q)$(MAKE) -C test \
  98715. + $(if $(O),top_builddir=$(O)/)
  98716. test_compile: $(LOCAL_INSTALL_PATH)
  98717. - $(Q)$(MAKE) -C test compile
  98718. + $(Q)$(MAKE) -C test compile \
  98719. + $(if $(O),top_builddir=$(O)/)
  98720. diff -Nur uClibc-0.9.33.2/Makerules uClibc-git/Makerules
  98721. --- uClibc-0.9.33.2/Makerules 2012-05-15 09:20:09.000000000 +0200
  98722. +++ uClibc-git/Makerules 2014-06-02 17:40:33.670710081 +0200
  98723. @@ -50,6 +50,10 @@
  98724. endif
  98725. $(shared_objs) $(ar_objs): | $(sub_headers)
  98726. +define objects_with_syms
  98727. + $(foreach o,$(2),$(if $(shell $(NM) $(1) $(o) | grep .),$(o)))
  98728. +endef
  98729. +
  98730. headers-y: $(headers-y)
  98731. @true
  98732. @@ -243,7 +247,7 @@
  98733. cmd_compile-m = $(CC) $^ -c -o $@ $(CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$(notdir $(@D))) $(CFLAGS-$(notdir $@)) $(sort $(foreach d,$(^:$(top_srcdir)=),$(collect_multi_flags)))
  98734. cmd_strip = $(STRIPTOOL) $(STRIP_FLAGS) $^
  98735. cmd_t_strip = $(STRIPTOOL) $(STRIP_FLAGS) $@
  98736. -cmd_ar = $(AR) $(ARFLAGS) $@ $^
  98737. +cmd_ar = $(AR) $(ARFLAGS) $@ $(call objects_with_syms,,$^)
  98738. define do_ln
  98739. @$(disp_ln)
  98740. @@ -300,7 +304,7 @@
  98741. -Wl,-z,relro -Wl,--hash-style=gnu -Wl,-z,defs \
  98742. -Wl,--verbose 2>&1 | LC_ALL=C \
  98743. sed -e '/^=========/,/^=========/!d;/^=========/d' \
  98744. - -e 's/\. = .* + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' > $@.lds
  98745. + -e 's/\. = .* + SIZEOF_HEADERS;/& $(SYMBOL_PREFIX)_begin = . - SIZEOF_HEADERS;/' > $@.lds
  98746. endef
  98747. define link.so
  98748. @@ -373,14 +377,9 @@
  98749. $(top_builddir)lib/interp.c: | $(top_builddir)lib
  98750. $(Q)echo "/* Force shared libraries to know about the correct library loader */" > $@.tmp
  98751. $(Q)echo "#include <features.h>" >> $@.tmp
  98752. -ifeq ($(HARDWIRED_ABSPATH),y)
  98753. $(Q)echo "const char __dl_ldso__[] attribute_hidden __attribute__ ((weak)) __attribute__ ((section " \
  98754. "(\".interp\"))) =\""$(RUNTIME_PREFIX)$(MULTILIB_DIR)/$(UCLIBC_LDSO)"\";" >> $@.tmp
  98755. $(Q)$(SED) -i -e 's://:/:g' $@.tmp
  98756. -else
  98757. - $(Q)echo "const char __dl_ldso__[] attribute_hidden __attribute__ ((weak)) __attribute__ ((section " \
  98758. - "(\".interp\"))) =\""$(UCLIBC_LDSO)"\";" >> $@.tmp
  98759. -endif
  98760. $(Q)mv $@.tmp $@
  98761. $(interp): $(top_builddir)lib/interp.c | $(sub_headers)
  98762. @@ -470,6 +469,8 @@
  98763. $(libm-a-y) $(libm-so-y) \
  98764. $(libpthread-a-y) $(libpthread-so-y) $(libpthread-nonshared-y) \
  98765. $(libthread_db-a-y) $(libthread_db-so-y) $(libpthread-generated-y) \
  98766. + $(START_FILE-libpthread.so) $(END_FILE-libpthread.so) \
  98767. + $(PTHREAD_INITFINI:.c=.s) \
  98768. $(librt-a-y) $(librt-so-y) $(libresolv-a-y) $(libresolv-so-y) \
  98769. $(libcrypt-a-y) $(libcrypt-so-y) $(libutil-a-y) $(libutil-so-y) \
  98770. $(libnsl-a-y) $(libnsl-so-y) $(ldso-y) $(libdl-a-y) $(libdl-so-y) \
  98771. diff -Nur uClibc-0.9.33.2/Rules.mak uClibc-git/Rules.mak
  98772. --- uClibc-0.9.33.2/Rules.mak 2012-05-15 09:20:09.000000000 +0200
  98773. +++ uClibc-git/Rules.mak 2014-06-02 17:40:33.670710081 +0200
  98774. @@ -27,6 +27,15 @@
  98775. # file named ".config". Don't mess with this file unless
  98776. # you know what you are doing.
  98777. +clean_targets := clean realclean distclean \
  98778. + objclean-y headers_clean-y CLEAN_utils
  98779. +noconfig_targets := menuconfig config nconfig \
  98780. + oldaskconfig silentoldconfig oldconfig allnoconfig allyesconfig \
  98781. + alldefconfig randconfig defconfig savedefconfig listnewconfig \
  98782. + olddefconfig \
  98783. + xconfig gconfig update-po-config mconf qconf gconf nconf conf \
  98784. + release dist tags help
  98785. +
  98786. #-----------------------------------------------------------
  98787. # If you are running a cross compiler, you will want to set
  98788. @@ -63,7 +72,7 @@
  98789. # Select the compiler needed to build binaries for your development system
  98790. HOSTCC = gcc
  98791. -BUILD_CFLAGS = -Os -Wall
  98792. +BUILD_CFLAGS = -Os
  98793. #---------------------------------------------------------
  98794. # Nothing beyond this point should ever be touched by mere
  98795. @@ -74,10 +83,25 @@
  98796. qstrip = $(strip $(subst ",,$(1)))
  98797. #"))
  98798. +# kconfig stuff
  98799. +KCONFIG_CONFIG ?= $(top_builddir).config
  98800. +KCONFIG_CONFIG := $(abspath $(KCONFIG_CONFIG))
  98801. +export KCONFIG_CONFIG
  98802. +KCONFIG_AUTOCONFIG := $(dir $(KCONFIG_CONFIG))include/config/auto.conf
  98803. +export KCONFIG_AUTOCONFIG
  98804. +KCONFIG_TRISTATE := $(dir $(KCONFIG_CONFIG))include/config/tristate.conf
  98805. +export KCONFIG_TRISTATE
  98806. +srctree := $(abspath $(top_srcdir))
  98807. +export srctree
  98808. +KCONFIG_AUTOHEADER := $(dir $(KCONFIG_CONFIG))include/generated/autoconf.h
  98809. +export KCONFIG_AUTOHEADER
  98810. +Kconfig := $(abspath $(top_srcdir)extra/Configs/Config.in)
  98811. +
  98812. # Pull in the user's uClibc configuration
  98813. -ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
  98814. --include $(top_builddir).config
  98815. +ifeq ($(filter $(noconfig_targets) clean CLEAN_%,$(MAKECMDGOALS)),)
  98816. +-include $(KCONFIG_CONFIG)
  98817. endif
  98818. +
  98819. TARGET_ARCH:=$(call qstrip,$(TARGET_ARCH))
  98820. ifeq ($(TARGET_ARCH),)
  98821. ARCH ?= $(shell uname -m | $(SED) -e s/i.86/i386/ \
  98822. @@ -93,19 +117,20 @@
  98823. export ARCH
  98824. # Make certain these contain a final "/", but no "//"s.
  98825. -TARGET_SUBARCH:=$(call qstrip,$(TARGET_SUBARCH))
  98826. -RUNTIME_PREFIX:=$(strip $(subst //,/, $(subst ,/, $(call qstrip,$(RUNTIME_PREFIX)))))
  98827. -DEVEL_PREFIX:=$(strip $(subst //,/, $(subst ,/, $(call qstrip,$(DEVEL_PREFIX)))))
  98828. -MULTILIB_DIR:=$(strip $(subst //,/, $(subst ,/, $(call qstrip,$(MULTILIB_DIR)))))
  98829. -KERNEL_HEADERS:=$(strip $(subst //,/, $(subst ,/, $(call qstrip,$(KERNEL_HEADERS)))))
  98830. +scrub_path = $(strip $(subst //,/, $(subst ,/, $(call qstrip,$(1)))))
  98831. +TARGET_SUBARCH := $(call qstrip,$(TARGET_SUBARCH))
  98832. +RUNTIME_PREFIX := $(call scrub_path,$(RUNTIME_PREFIX))
  98833. +DEVEL_PREFIX := $(call scrub_path,$(DEVEL_PREFIX))
  98834. +MULTILIB_DIR := $(call scrub_path,$(MULTILIB_DIR))
  98835. +KERNEL_HEADERS := $(call scrub_path,$(KERNEL_HEADERS))
  98836. export RUNTIME_PREFIX DEVEL_PREFIX KERNEL_HEADERS MULTILIB_DIR
  98837. # Now config hard core
  98838. MAJOR_VERSION := 0
  98839. MINOR_VERSION := 9
  98840. -SUBLEVEL := 33
  98841. -EXTRAVERSION :=.2
  98842. +SUBLEVEL := 34
  98843. +EXTRAVERSION :=-git
  98844. VERSION := $(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL)
  98845. ABI_VERSION := $(MAJOR_VERSION)
  98846. ifneq ($(EXTRAVERSION),)
  98847. @@ -118,13 +143,19 @@
  98848. LIBC := libc
  98849. SHARED_LIBNAME := $(LIBC).so.$(ABI_VERSION)
  98850. UBACKTRACE_DSO := libubacktrace.so.$(ABI_VERSION)
  98851. -ifneq ($(findstring $(TARGET_ARCH) , hppa64 ia64 mips64 powerpc64 s390x sparc64 x86_64 ),)
  98852. +
  98853. +UCLIBC_LDSO_NAME := ld-uClibc
  98854. +ARCH_NATIVE_BIT := 32
  98855. +ifneq ($(findstring $(TARGET_ARCH) , hppa64 ia64 powerpc64 s390x sparc64 x86_64 ),)
  98856. UCLIBC_LDSO_NAME := ld64-uClibc
  98857. ARCH_NATIVE_BIT := 64
  98858. else
  98859. -UCLIBC_LDSO_NAME := ld-uClibc
  98860. -ARCH_NATIVE_BIT := 32
  98861. +ifeq ($(CONFIG_MIPS_N64_ABI),y)
  98862. +UCLIBC_LDSO_NAME := ld64-uClibc
  98863. +ARCH_NATIVE_BIT := 64
  98864. +endif
  98865. endif
  98866. +
  98867. UCLIBC_LDSO := $(UCLIBC_LDSO_NAME).so.$(ABI_VERSION)
  98868. NONSHARED_LIBNAME := uclibc_nonshared.a
  98869. libc := $(top_builddir)lib/$(SHARED_LIBNAME)
  98870. @@ -170,7 +201,7 @@
  98871. if $(CC) -Wa,$(1) -Wa,-Z -c -o /dev/null -xassembler /dev/null > /dev/null 2>&1; \
  98872. then echo "-Wa,$(1)"; fi)
  98873. check_ld=$(shell \
  98874. - if $(LD) $(1) -o /dev/null -b binary /dev/null > /dev/null 2>&1; \
  98875. + if $(CC) $(LDFLAG-fuse-ld) -Wl,$(1) $(CFLAG_-nostdlib) -o /dev/null -Wl,-b,binary /dev/null > /dev/null 2>&1; \
  98876. then echo "$(1)"; fi)
  98877. # Use variable indirection here so that we can have variable
  98878. @@ -221,6 +252,10 @@
  98879. ARFLAGS:=cr
  98880. +# Note: The check for -nostdlib has to be before all calls to check_ld
  98881. +$(eval $(call check-gcc-var,-nostdlib))
  98882. +LDFLAG-fuse-ld := $(filter -fuse-ld=%,$(EXTRA_UCLIBC_FLAGS))
  98883. +# deliberately not named CFLAG-fuse-ld since unchecked and from user
  98884. # Flags in OPTIMIZATION are used only for non-debug builds
  98885. @@ -246,6 +281,7 @@
  98886. GCC_MAJOR_VER ?= $(word 1,$(GCC_VER))
  98887. #GCC_MINOR_VER ?= $(word 2,$(GCC_VER))
  98888. +ifneq ($(TARGET_ARCH),arc)
  98889. ifeq ($(GCC_MAJOR_VER),4)
  98890. # shrinks code, results are from 4.0.2
  98891. # 0.36%
  98892. @@ -258,7 +294,7 @@
  98893. $(eval $(call check-gcc-var,-fno-strength-reduce))
  98894. OPTIMIZATION += $(CFLAG_-fno-strength-reduce)
  98895. endif
  98896. -
  98897. +endif
  98898. # CPU_CFLAGS-y contain options which are not warnings,
  98899. # not include or library paths, and not optimizations.
  98900. @@ -311,7 +347,9 @@
  98901. $(eval $(call check-gcc-var,-fomit-frame-pointer))
  98902. OPTIMIZATION += $(CFLAG_-fomit-frame-pointer)
  98903. -ifeq ($(CONFIG_386)$(CONFIG_486)$(CONFIG_586)$(CONFIG_586MMX),y)
  98904. +ifeq ($(CONFIG_386)$(CONFIG_486)$(CONFIG_586),y)
  98905. + # TODO: Change this to a gcc version check. This bug
  98906. + # should be fixed with at least gcc-4.3.
  98907. # Non-SSE capable processor.
  98908. # NB: this may make SSE insns segfault!
  98909. # -O1 -march=pentium3, -Os -msse etc are known to be affected.
  98910. @@ -330,18 +368,6 @@
  98911. # -falign-jumps: reachable only by a jump
  98912. # Generic: no alignment at all (smallest code)
  98913. GCC_FALIGN=$(call check_gcc,-falign-functions=1 -falign-jumps=1 -falign-labels=1 -falign-loops=1,-malign-jumps=1 -malign-loops=1)
  98914. -ifeq ($(CONFIG_K7),y)
  98915. - # Align functions to four bytes, use default for jumps and loops (why?)
  98916. - GCC_FALIGN=$(call check_gcc,-falign-functions=4 -falign-labels=1,-malign-functions=4)
  98917. -endif
  98918. -ifeq ($(CONFIG_CRUSOE),y)
  98919. - # Use compiler's default for functions, jumps and loops (why?)
  98920. - GCC_FALIGN=$(call check_gcc,-falign-functions=0 -falign-labels=1,-malign-functions=0)
  98921. -endif
  98922. -ifeq ($(CONFIG_CYRIXIII),y)
  98923. - # Use compiler's default for functions, jumps and loops (why?)
  98924. - GCC_FALIGN=$(call check_gcc,-falign-functions=0 -falign-labels=1,-malign-functions=0)
  98925. -endif
  98926. OPTIMIZATION+=$(GCC_FALIGN)
  98927. # Putting each function and data object into its own section
  98928. @@ -366,22 +392,6 @@
  98929. CPU_LDFLAGS-y+=-m32
  98930. CPU_CFLAGS-y+=-m32
  98931. - CPU_CFLAGS-$(CONFIG_386)+=-march=i386
  98932. - CPU_CFLAGS-$(CONFIG_486)+=-march=i486
  98933. - CPU_CFLAGS-$(CONFIG_ELAN)+=-march=i486
  98934. - CPU_CFLAGS-$(CONFIG_586)+=-march=i586
  98935. - CPU_CFLAGS-$(CONFIG_586MMX)+=$(call check_gcc,-march=pentium-mmx,-march=i586)
  98936. - CPU_CFLAGS-$(CONFIG_686)+=-march=i686
  98937. - CPU_CFLAGS-$(CONFIG_PENTIUMII)+=$(call check_gcc,-march=pentium2,-march=i686)
  98938. - CPU_CFLAGS-$(CONFIG_PENTIUMIII)+=$(call check_gcc,-march=pentium3,-march=i686)
  98939. - CPU_CFLAGS-$(CONFIG_PENTIUM4)+=$(call check_gcc,-march=pentium4,-march=i686)
  98940. - CPU_CFLAGS-$(CONFIG_K6)+=$(call check_gcc,-march=k6,-march=i586)
  98941. - CPU_CFLAGS-$(CONFIG_K7)+=$(call check_gcc,-march=athlon,-march=i686)
  98942. - CPU_CFLAGS-$(CONFIG_CRUSOE)+=-march=i686
  98943. - CPU_CFLAGS-$(CONFIG_WINCHIPC6)+=$(call check_gcc,-march=winchip-c6,-march=i586)
  98944. - CPU_CFLAGS-$(CONFIG_WINCHIP2)+=$(call check_gcc,-march=winchip2,-march=i586)
  98945. - CPU_CFLAGS-$(CONFIG_CYRIXIII)+=$(call check_gcc,-march=c3,-march=i486)
  98946. - CPU_CFLAGS-$(CONFIG_NEHEMIAH)+=$(call check_gcc,-march=c3-2,-march=i686)
  98947. endif
  98948. ifeq ($(TARGET_ARCH),sparc)
  98949. @@ -397,6 +407,12 @@
  98950. CPU_CFLAGS-$(COMPILE_IN_THUMB_MODE)+=-mthumb
  98951. endif
  98952. +ifeq ($(TARGET_ARCH),metag)
  98953. + SYMBOL_PREFIX=_
  98954. + CPU_CFLAGS-$(CONFIG_META_1_2)+=
  98955. + CPU_CFLAGS-$(CONFIG_META_2_1)+=-Wa,-mcpu=metac21
  98956. +endif
  98957. +
  98958. ifeq ($(TARGET_ARCH),mips)
  98959. OPTIMIZATION+=-mno-split-addresses
  98960. CPU_CFLAGS-$(CONFIG_MIPS_ISA_1)+=-mips1
  98961. @@ -406,6 +422,7 @@
  98962. CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS32)+=-mips32 -mtune=mips32
  98963. CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS32R2)+=-march=mips32r2 -mtune=mips32r2
  98964. CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS64)+=-mips64 -mtune=mips32
  98965. + CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS64R2)+=-mips64r2 -mtune=mips64r2
  98966. ifeq ($(strip $(ARCH_BIG_ENDIAN)),y)
  98967. CPU_LDFLAGS-$(CONFIG_MIPS_N64_ABI)+=-Wl,-melf64btsmip
  98968. CPU_LDFLAGS-$(CONFIG_MIPS_O32_ABI)+=-Wl,-melf32btsmip
  98969. @@ -537,6 +554,12 @@
  98970. CPU_LDFLAGS-y += $(CPU_CFLAGS)
  98971. endif
  98972. +ifeq ($(TARGET_ARCH),arc)
  98973. + CPU_CFLAGS-y += -mlock -mswape
  98974. + CPU_CFLAGS-$(CONFIG_ARC_CPU_700) += -mA7
  98975. + CPU_LDFLAGS-y += $(CPU_CFLAGS) -marclinux
  98976. +endif
  98977. +
  98978. $(eval $(call check-gcc-var,$(PIEFLAG_NAME)))
  98979. PIEFLAG := $(CFLAG_$(PIEFLAG_NAME))
  98980. ifeq ($(PIEFLAG),)
  98981. @@ -546,11 +569,11 @@
  98982. # well as the LD PIE flag (below) because we can't rely on
  98983. # gcc passing -pie if we used -fPIE. We need to directly use -pie
  98984. # instead of -Wl,-pie as gcc picks up the wrong startfile/endfile
  98985. -$(eval $(call cache-output-var,LDPIEFLAG,$(LD) --help 2>/dev/null | grep -q -- -pie && echo "-pie"))
  98986. +$(eval $(call cache-output-var,LDPIEFLAG,$(CC) -Wl$(comma)--help 2>/dev/null | grep -q -- -pie && echo "-pie"))
  98987. # Check for --as-needed support in linker
  98988. ifndef LD_FLAG_ASNEEDED
  98989. -_LD_FLAG_ASNEEDED:=$(shell $(LD) --help 2>/dev/null | grep -- --as-needed)
  98990. +_LD_FLAG_ASNEEDED:=$(shell $(CC) -Wl,--help 2>/dev/null | grep -- --as-needed)
  98991. ifneq ($(_LD_FLAG_ASNEEDED),)
  98992. export LD_FLAG_ASNEEDED:=--as-needed
  98993. endif
  98994. @@ -574,11 +597,18 @@
  98995. # Check for AS_NEEDED support in linker script (binutils>=2.16.1 has it)
  98996. ifndef ASNEEDED
  98997. -export ASNEEDED:=$(shell $(LD) --help 2>/dev/null | grep -q -- --as-needed && echo "AS_NEEDED ( $(UCLIBC_LDSO) )" || echo "$(UCLIBC_LDSO)")
  98998. -ifeq ($(UCLIBC_HAS_BACKTRACE),y)
  98999. +export ASNEEDED:=$(shell $(CC) -Wl,--help 2>/dev/null | grep -q -- --as-needed && echo "AS_NEEDED ( $(UCLIBC_LDSO) )" || echo "$(UCLIBC_LDSO)")
  99000. +
  99001. # Only used in installed libc.so linker script
  99002. -UBACKTRACE_FULL_NAME := $(RUNTIME_PREFIX)lib/$(UBACKTRACE_DSO)
  99003. -export UBACKTRACE_ASNEEDED:=$(shell $(LD) --help 2>/dev/null | grep -q -- --as-needed && echo "AS_NEEDED ( $(UBACKTRACE_FULL_NAME) )" || echo "$(UBACKTRACE_FULL_NAME)")
  99004. +ifeq ($(UCLIBC_HAS_BACKTRACE),y)
  99005. +ifeq ($(HARDWIRED_ABSPATH),y)
  99006. +UBACKTRACE_FULL_NAME := $(subst //,/,$(RUNTIME_PREFIX)$(MULTILIB_DIR)/$(UBACKTRACE_DSO))
  99007. +else
  99008. +UBACKTRACE_FULL_NAME := $(UBACKTRACE_DSO)
  99009. +endif
  99010. +export UBACKTRACE_ASNEEDED:=$(shell $(CC) -Wl,--help 2>/dev/null | grep -q -- --as-needed && \
  99011. + echo "GROUP ( AS_NEEDED ( $(UBACKTRACE_FULL_NAME) ) )" || \
  99012. + echo "GROUP ( $(UBACKTRACE_FULL_NAME) )")
  99013. else
  99014. export UBACKTRACE_ASNEEDED:=""
  99015. endif
  99016. @@ -623,14 +653,17 @@
  99017. SSP_CFLAGS := $(SSP_DISABLE_FLAGS)
  99018. endif
  99019. -$(eval $(call check-gcc-var,-nostdlib))
  99020. -
  99021. # Collect all CFLAGS components
  99022. -CFLAGS := -include $(top_srcdir)include/libc-symbols.h \
  99023. - $(XWARNINGS) $(CPU_CFLAGS) $(SSP_CFLAGS) \
  99024. - -nostdinc -I$(top_builddir)include -I$(top_srcdir)include -I. \
  99025. +CFLAGS := $(XWARNINGS) $(CPU_CFLAGS) $(SSP_CFLAGS) \
  99026. + -nostdinc -I$(top_builddir)include \
  99027. + -I$(top_srcdir)include -include libc-symbols.h \
  99028. + -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH) \
  99029. -I$(top_srcdir)libc/sysdeps/linux \
  99030. - -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)
  99031. + -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) \
  99032. + -I$(top_srcdir)ldso/include -I.
  99033. +ifneq ($(strip $(UCLIBC_EXTRA_CFLAGS)),"")
  99034. +CFLAGS += $(call qstrip,$(UCLIBC_EXTRA_CFLAGS))
  99035. +endif
  99036. # We need this to be checked within libc-symbols.h
  99037. ifneq ($(HAVE_SHARED),y)
  99038. @@ -640,7 +673,7 @@
  99039. $(eval $(call check-ld-var,--warn-once))
  99040. $(eval $(call check-ld-var,--sort-common))
  99041. $(eval $(call check-ld-var,--discard-all))
  99042. -LDFLAGS_NOSTRIP:=$(CPU_LDFLAGS-y) -shared \
  99043. +LDFLAGS_NOSTRIP:=$(LDFLAG-fuse-ld) $(CPU_LDFLAGS-y) -shared \
  99044. -Wl,--warn-common $(CFLAG_-Wl--warn-once) -Wl,-z,combreloc
  99045. # binutils-2.16.1 warns about ignored sections, 2.16.91.0.3 and newer are ok
  99046. #$(eval $(call check-ld-var,--gc-sections))
  99047. @@ -720,7 +753,7 @@
  99048. ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
  99049. PTINC:= -I$(top_builddir)$(PTDIR) \
  99050. -I$(top_srcdir)$(PTDIR) \
  99051. - $(if $(TARGET_ARCH),-I$(top_srcdir)$(PTDIR)/sysdeps/unix/sysv/linux/$(TARGET_ARCH)/$(TARGET_SUBARCH)) \
  99052. + $(if $(TARGET_SUBARCH),-I$(top_srcdir)$(PTDIR)/sysdeps/unix/sysv/linux/$(TARGET_ARCH)/$(TARGET_SUBARCH)) \
  99053. -I$(top_srcdir)$(PTDIR)/sysdeps/unix/sysv/linux/$(TARGET_ARCH) \
  99054. -I$(top_builddir)$(PTDIR)/sysdeps/$(TARGET_ARCH) \
  99055. -I$(top_srcdir)$(PTDIR)/sysdeps/$(TARGET_ARCH) \
  99056. @@ -728,9 +761,7 @@
  99057. -I$(top_srcdir)$(PTDIR)/sysdeps/unix/sysv/linux \
  99058. -I$(top_srcdir)$(PTDIR)/sysdeps/pthread \
  99059. -I$(top_srcdir)$(PTDIR)/sysdeps/pthread/bits \
  99060. - -I$(top_srcdir)$(PTDIR)/sysdeps/generic \
  99061. - -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) \
  99062. - -I$(top_srcdir)ldso/include
  99063. + -I$(top_srcdir)$(PTDIR)/sysdeps/generic
  99064. #
  99065. # Test for TLS if NPTL support was selected.
  99066. #
  99067. @@ -763,13 +794,14 @@
  99068. PTINC :=
  99069. endif
  99070. CFLAGS += -I$(top_srcdir)libc/sysdeps/linux/common
  99071. -CFLAGS += -I$(KERNEL_HEADERS)
  99072. #CFLAGS += -iwithprefix include-fixed -iwithprefix include
  99073. $(eval $(call cache-output-var,CC_IPREFIX,$(CC) -print-file-name=include))
  99074. CC_INC := -isystem $(dir $(CC_IPREFIX))include-fixed -isystem $(CC_IPREFIX)
  99075. CFLAGS += $(CC_INC)
  99076. +CFLAGS += -I$(KERNEL_HEADERS)
  99077. +
  99078. ifneq ($(DOASSERTS),y)
  99079. CFLAGS+=-DNDEBUG
  99080. endif
  99081. @@ -786,7 +818,11 @@
  99082. LIBGCC_CFLAGS ?= $(CFLAGS) $(CPU_CFLAGS-y)
  99083. $(eval $(call cache-output-var,LIBGCC,$(CC) $(LIBGCC_CFLAGS) -print-libgcc-file-name))
  99084. +$(eval $(call cache-output-var,LIBGCC_EH,$(CC) $(LIBGCC_CFLAGS) -print-file-name=libgcc_eh.a))
  99085. +# with -O0 we (e.g. lockf) might end up with references to
  99086. +# _Unwind_Resume, so pull in gcc_eh in this case..
  99087. LIBGCC_DIR:=$(dir $(LIBGCC))
  99088. +LIBGCC += $(if $(DODEBUG),$(LIBGCC_EH))
  99089. # moved from libpthread/linuxthreads
  99090. ifeq ($(UCLIBC_CTOR_DTOR),y)
  99091. @@ -794,4 +830,6 @@
  99092. SHARED_END_FILES:=$(LIBGCC_DIR)crtendS.o $(top_builddir)lib/crtn.o
  99093. endif
  99094. -LOCAL_INSTALL_PATH := install_dir
  99095. +LOCAL_INSTALL_PATH := $(if $(O),$(O)/)install_dir
  99096. +
  99097. +PTHREAD_GENERATE_MANGLE ?= -n "s/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*\$$/\#define \1 \2/p"
  99098. diff -Nur uClibc-0.9.33.2/test/API/Makefile uClibc-git/test/API/Makefile
  99099. --- uClibc-0.9.33.2/test/API/Makefile 2012-05-15 09:20:09.000000000 +0200
  99100. +++ uClibc-git/test/API/Makefile 2014-06-02 17:40:35.198718538 +0200
  99101. @@ -2,6 +2,7 @@
  99102. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99103. top_builddir=../../
  99104. +top_srcdir=../../
  99105. include ../Rules.mak
  99106. -include Makefile.in
  99107. include ../Test.mak
  99108. diff -Nur uClibc-0.9.33.2/test/args/Makefile uClibc-git/test/args/Makefile
  99109. --- uClibc-0.9.33.2/test/args/Makefile 2012-05-15 09:20:09.000000000 +0200
  99110. +++ uClibc-git/test/args/Makefile 2014-06-02 17:40:35.206718582 +0200
  99111. @@ -2,6 +2,7 @@
  99112. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99113. top_builddir=../../
  99114. +top_srcdir=../../
  99115. include ../Rules.mak
  99116. -include Makefile.in
  99117. include ../Test.mak
  99118. diff -Nur uClibc-0.9.33.2/test/assert/Makefile uClibc-git/test/assert/Makefile
  99119. --- uClibc-0.9.33.2/test/assert/Makefile 2012-05-15 09:20:09.000000000 +0200
  99120. +++ uClibc-git/test/assert/Makefile 2014-06-02 17:40:35.206718582 +0200
  99121. @@ -2,6 +2,7 @@
  99122. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99123. top_builddir=../../
  99124. +top_srcdir=../../
  99125. include ../Rules.mak
  99126. -include Makefile.in
  99127. include ../Test.mak
  99128. diff -Nur uClibc-0.9.33.2/test/build/Makefile uClibc-git/test/build/Makefile
  99129. --- uClibc-0.9.33.2/test/build/Makefile 2012-05-15 09:20:09.000000000 +0200
  99130. +++ uClibc-git/test/build/Makefile 2014-06-02 17:40:35.206718582 +0200
  99131. @@ -2,6 +2,7 @@
  99132. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99133. top_builddir=../../
  99134. +top_srcdir=../../
  99135. include ../Rules.mak
  99136. -include Makefile.in
  99137. include ../Test.mak
  99138. diff -Nur uClibc-0.9.33.2/test/crypt/Makefile uClibc-git/test/crypt/Makefile
  99139. --- uClibc-0.9.33.2/test/crypt/Makefile 2012-05-15 09:20:09.000000000 +0200
  99140. +++ uClibc-git/test/crypt/Makefile 2014-06-02 17:40:35.206718582 +0200
  99141. @@ -2,6 +2,7 @@
  99142. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99143. top_builddir=../../
  99144. +top_srcdir=../../
  99145. include ../Rules.mak
  99146. -include Makefile.in
  99147. include ../Test.mak
  99148. diff -Nur uClibc-0.9.33.2/test/ctype/Makefile uClibc-git/test/ctype/Makefile
  99149. --- uClibc-0.9.33.2/test/ctype/Makefile 2012-05-15 09:20:09.000000000 +0200
  99150. +++ uClibc-git/test/ctype/Makefile 2014-06-02 17:40:35.214718627 +0200
  99151. @@ -2,6 +2,7 @@
  99152. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99153. top_builddir=../../
  99154. +top_srcdir=../../
  99155. include ../Rules.mak
  99156. -include Makefile.in
  99157. include ../Test.mak
  99158. diff -Nur uClibc-0.9.33.2/test/dlopen/libA.c uClibc-git/test/dlopen/libA.c
  99159. --- uClibc-0.9.33.2/test/dlopen/libA.c 1970-01-01 01:00:00.000000000 +0100
  99160. +++ uClibc-git/test/dlopen/libA.c 2014-06-02 17:40:35.214718627 +0200
  99161. @@ -0,0 +1,7 @@
  99162. +extern void libB_func(void);
  99163. +
  99164. +void libA_func(void);
  99165. +void libA_func(void)
  99166. +{
  99167. + libB_func();
  99168. +}
  99169. diff -Nur uClibc-0.9.33.2/test/dlopen/libB.c uClibc-git/test/dlopen/libB.c
  99170. --- uClibc-0.9.33.2/test/dlopen/libB.c 1970-01-01 01:00:00.000000000 +0100
  99171. +++ uClibc-git/test/dlopen/libB.c 2014-06-02 17:40:35.214718627 +0200
  99172. @@ -0,0 +1,7 @@
  99173. +extern void libC_func(void);
  99174. +
  99175. +void libB_func(void);
  99176. +void libB_func(void)
  99177. +{
  99178. + libC_func();
  99179. +}
  99180. diff -Nur uClibc-0.9.33.2/test/dlopen/libC.c uClibc-git/test/dlopen/libC.c
  99181. --- uClibc-0.9.33.2/test/dlopen/libC.c 1970-01-01 01:00:00.000000000 +0100
  99182. +++ uClibc-git/test/dlopen/libC.c 2014-06-02 17:40:35.214718627 +0200
  99183. @@ -0,0 +1,30 @@
  99184. +#include <dlfcn.h>
  99185. +#include <stdio.h>
  99186. +#include <stdlib.h>
  99187. +
  99188. +#define LIBNAME "libB.so"
  99189. +void _libC_fini(void);
  99190. +void _libC_fini(void)
  99191. +{
  99192. + printf("libC_fini():finish - atexit()\n");
  99193. +}
  99194. +
  99195. +void libC_fini(void);
  99196. +void libC_fini(void)
  99197. +{
  99198. + _libC_fini();
  99199. +}
  99200. +
  99201. +void libC_func(void);
  99202. +void libC_func(void)
  99203. +{
  99204. + void *libB;
  99205. +
  99206. + libB = dlopen(LIBNAME, RTLD_LAZY);
  99207. + if (!libB) {
  99208. + fprintf(stderr, "Could not open ./%s: %s\n", LIBNAME, dlerror());
  99209. + exit(1);
  99210. + }
  99211. +
  99212. + atexit(libC_fini);
  99213. +}
  99214. diff -Nur uClibc-0.9.33.2/test/dlopen/Makefile uClibc-git/test/dlopen/Makefile
  99215. --- uClibc-0.9.33.2/test/dlopen/Makefile 2012-05-15 09:20:09.000000000 +0200
  99216. +++ uClibc-git/test/dlopen/Makefile 2014-06-02 17:40:35.214718627 +0200
  99217. @@ -2,11 +2,7 @@
  99218. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99219. top_builddir=../../
  99220. +top_srcdir=../../
  99221. include ../Rules.mak
  99222. -include Makefile.in
  99223. -ifneq ($(HAVE_SHARED),y)
  99224. -TESTS_DISABLED := test3
  99225. -LDFLAGS_libtest.so := -lpthread
  99226. -endif
  99227. -
  99228. include ../Test.mak
  99229. diff -Nur uClibc-0.9.33.2/test/dlopen/Makefile.in uClibc-git/test/dlopen/Makefile.in
  99230. --- uClibc-0.9.33.2/test/dlopen/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  99231. +++ uClibc-git/test/dlopen/Makefile.in 2014-06-02 17:40:35.214718627 +0200
  99232. @@ -4,7 +4,13 @@
  99233. # rules need a little love to work with glibc ...
  99234. export UCLIBC_ONLY := 1
  99235. -TESTS := dltest dltest2 dlstatic test1 test2 test3 dlundef dlafk dladdr
  99236. +TESTS := dltest dltest2 dlstatic test1 test2 test3 dlundef dlafk dladdr \
  99237. + testscope
  99238. +
  99239. +ifneq ($(HAVE_SHARED),y)
  99240. +TESTS_DISABLED := test3
  99241. +LDFLAGS_libtest.so := -lpthread
  99242. +endif
  99243. CFLAGS_dltest := -DLIBNAME="\"./libtest.so\""
  99244. CFLAGS_dltest2 := -DLIBNAME="\"./libtest3.so\""
  99245. @@ -18,22 +24,42 @@
  99246. LDFLAGS_test2 := -ldl
  99247. LDFLAGS_test3 := -ldl ./libtest1.so ./libtest2.so -Wl,-rpath,.
  99248. LDFLAGS_dladdr := -ldl
  99249. +LDFLAGS_testscope:= -ldl
  99250. DEBUG_LIBS := X
  99251. WRAPPER := env $(DEBUG_LIBS)=all LD_LIBRARY_PATH="$$PWD:.:$(LD_LIBRARY_PATH)"
  99252. +# Build libC.so without -mprefergot compilation flag to force a
  99253. +# R_SH_JMP_SLOT relocation instead of R_SH_GLOB_DAT for _libC_fini. This is
  99254. +# needed to resolve the _libC_fini symbol when used (by libC.so destructor),
  99255. +# whereas with GLOB_DAT relocation the resolution happens in the GOT entry
  99256. +# when the libC is loaded, for the same reason remove also the "-z now"
  99257. +# linker flag.
  99258. +# These are needed to spot the issue test case want raise.
  99259. +
  99260. +ifeq ($(TARGET_ARCH),sh)
  99261. +CFLAGS-OMIT-libC.c = -mprefergot
  99262. +endif
  99263. +LDFLAGS-OMIT-libC.c = -Wl,-z,now
  99264. +
  99265. dltest: libtest.so
  99266. dltest2: libtest3.so
  99267. dlstatic: libstatic.so
  99268. dlundef: libundef.so
  99269. dlafk: libafk.so
  99270. +testscope:libA.so
  99271. libafk.so: libafk-temp.so
  99272. LDFLAGS_libafk.so := ./libafk-temp.so -Wl,-rpath,.
  99273. test1: libtest1.so
  99274. test2: libtest1.so libtest2.so
  99275. test3: libtest1.so libtest2.so
  99276. libtest1.so: libtest2.so
  99277. +libB.so: libC.so
  99278. +libA.so: libB.so
  99279. LDFLAGS_libtest.so := -lpthread
  99280. LDFLAGS_libtest1.so := ./libtest2.so -Wl,-rpath,.
  99281. LDFLAGS_libtest2.so := -Wl,-rpath,.
  99282. LDFLAGS_libtest3.so := -lpthread -Wl,-rpath,.
  99283. +LDFLAGS_libC.so := -ldl
  99284. +LDFLAGS_libB.so := ./libC.so -Wl,-rpath,.
  99285. +LDFLAGS_libA.so := ./libB.so -Wl,-rpath,.
  99286. diff -Nur uClibc-0.9.33.2/test/dlopen/testscope.c uClibc-git/test/dlopen/testscope.c
  99287. --- uClibc-0.9.33.2/test/dlopen/testscope.c 1970-01-01 01:00:00.000000000 +0100
  99288. +++ uClibc-git/test/dlopen/testscope.c 2014-06-02 17:40:35.218718649 +0200
  99289. @@ -0,0 +1,29 @@
  99290. +#include <dlfcn.h>
  99291. +#include <stdio.h>
  99292. +#include <stdlib.h>
  99293. +
  99294. +#define LIBNAME "libA.so"
  99295. +int main(int argc, char **argv)
  99296. +{
  99297. + void *libA;
  99298. + void (*libAfn)(void);
  99299. + char *error;
  99300. +
  99301. + libA = dlopen(LIBNAME, RTLD_LAZY);
  99302. + if (!libA) {
  99303. + fprintf(stderr, "Could not open ./%s: %s\n", LIBNAME, dlerror());
  99304. + exit(1);
  99305. + }
  99306. +
  99307. + libAfn = dlsym(libA, "libA_func");
  99308. + if ((error = dlerror()) != NULL) {
  99309. + fprintf(stderr, "Could not locate symbol 'libA_func': %s\n", error);
  99310. + exit(1);
  99311. + }
  99312. +
  99313. + libAfn();
  99314. +
  99315. + dlclose(libA);
  99316. +
  99317. + return EXIT_SUCCESS;
  99318. +}
  99319. diff -Nur uClibc-0.9.33.2/test/.gitignore uClibc-git/test/.gitignore
  99320. --- uClibc-0.9.33.2/test/.gitignore 2012-05-15 09:20:09.000000000 +0200
  99321. +++ uClibc-git/test/.gitignore 2014-06-02 17:40:35.182718449 +0200
  99322. @@ -29,13 +29,19 @@
  99323. dlopen/dlundef
  99324. dlopen/libafk.so
  99325. dlopen/libafk-temp.so
  99326. +dlopen/libA.so
  99327. +dlopen/libB.so
  99328. +dlopen/libC.so
  99329. dlopen/libstatic.so
  99330. dlopen/libtest[123].so
  99331. dlopen/libtest.so
  99332. dlopen/libundef.so
  99333. dlopen/test[1-3]
  99334. +dlopen/testscope
  99335. inet/bug-if1
  99336. inet/gethost_r-align
  99337. +inet/gethostid
  99338. +inet/getnetent
  99339. inet/if_nameindex
  99340. inet/tst-aton
  99341. inet/tst-ether_aton
  99342. @@ -43,13 +49,28 @@
  99343. inet/tst-ethers-line
  99344. inet/tst-network
  99345. inet/tst-ntoa
  99346. -inet/gethostid
  99347. -inet/getnetent
  99348. +inet/tst-res
  99349. +inet/tst-sock-nonblock
  99350. librt/shmtest
  99351. locale/bug-iconv-trans
  99352. +locale/bug-usesetlocale
  99353. +locale/C
  99354. locale/collate-test
  99355. locale/dump-ctype
  99356. locale/gen-unicode-ctype
  99357. +locale/show-ucs-data
  99358. +locale/tst-digits
  99359. +locale/tst-langinfo
  99360. +locale/tst-mbswcs[1-6]
  99361. +locale/tst_nl_langinfo
  99362. +locale/tst-numeric
  99363. +locale/tst-setlocale
  99364. +locale/tst-sscanf
  99365. +locale/tst-trans
  99366. +locale/tst-wctype
  99367. +locale/tst-xlocale1
  99368. +locale/tst-xlocale2
  99369. +locale/xfrm-test
  99370. locale-mbwc/tst_iswalnum
  99371. locale-mbwc/tst_iswalpha
  99372. locale-mbwc/tst_iswcntrl
  99373. @@ -100,16 +121,6 @@
  99374. locale-mbwc/tst_wctype
  99375. locale-mbwc/tst_wcwidth
  99376. locale-mbwc/tst2_mbrtowc
  99377. -locale/show-ucs-data
  99378. -locale/tst-digits
  99379. -locale/tst-langinfo
  99380. -locale/tst-mbswcs[1-6]
  99381. -locale/tst_nl_langinfo
  99382. -locale/tst-numeric
  99383. -locale/tst-setlocale
  99384. -locale/tst-sscanf
  99385. -locale/tst-trans
  99386. -locale/tst-wctype
  99387. malloc/malloc
  99388. malloc/mallocbug
  99389. malloc/malloc-standard-alignment
  99390. @@ -146,8 +157,11 @@
  99391. misc/seek
  99392. misc/sem
  99393. misc/stdarg
  99394. +misc/tst-inotify
  99395. misc/tst-scandir
  99396. misc/tst-seekdir
  99397. +misc/tst-statfs
  99398. +misc/tst-statvfs
  99399. misc/tst-utmp
  99400. mmap/mmap
  99401. mmap/mmap2
  99402. @@ -243,6 +257,7 @@
  99403. signal/signal
  99404. signal/tst-raise
  99405. signal/tst-signal
  99406. +signal/tst-signalfd
  99407. signal/tst-sigset
  99408. signal/tst-sigsimple
  99409. silly/hello
  99410. @@ -250,10 +265,12 @@
  99411. stat/memcmp-stat
  99412. stat/stat
  99413. stat/stat64
  99414. +stat/stat-loop256
  99415. stdio/64bit
  99416. stdio/fclose-loop
  99417. stdlib/ptytest
  99418. stdlib/qsort
  99419. +stdlib/testarc4random
  99420. stdlib/testatexit
  99421. stdlib/test-canon
  99422. stdlib/test-canon2
  99423. @@ -282,6 +299,7 @@
  99424. time/tst-mktime
  99425. time/tst-mktime3
  99426. time/tst-strptime2
  99427. +time/tst-timerfd
  99428. time/tst_wcsftime
  99429. tls/tst-tls[1-9]
  99430. tls/tst-tls1[0-8]
  99431. @@ -302,6 +320,8 @@
  99432. unistd/getopt
  99433. unistd/getopt_long
  99434. unistd/tstgetopt
  99435. +unistd/tst-posix_fallocate
  99436. +unistd/tst-posix_fallocate64
  99437. unistd/tst-preadwrite
  99438. unistd/tst-preadwrite64
  99439. unistd/vfork
  99440. diff -Nur uClibc-0.9.33.2/test/inet/bug-if1.c uClibc-git/test/inet/bug-if1.c
  99441. --- uClibc-0.9.33.2/test/inet/bug-if1.c 2012-05-15 09:20:09.000000000 +0200
  99442. +++ uClibc-git/test/inet/bug-if1.c 2014-06-02 17:40:35.218718649 +0200
  99443. @@ -13,9 +13,8 @@
  99444. Lesser General Public License for more details.
  99445. You should have received a copy of the GNU Lesser General Public
  99446. - License along with the GNU C Library; if not, write to the Free
  99447. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99448. - 02111-1307 USA. */
  99449. + License along with the GNU C Library; if not, see
  99450. + <http://www.gnu.org/licenses/>. */
  99451. #include <errno.h>
  99452. #include <limits.h>
  99453. diff -Nur uClibc-0.9.33.2/test/inet/gethostid.c uClibc-git/test/inet/gethostid.c
  99454. --- uClibc-0.9.33.2/test/inet/gethostid.c 2012-05-15 09:20:09.000000000 +0200
  99455. +++ uClibc-git/test/inet/gethostid.c 2014-06-02 17:40:35.218718649 +0200
  99456. @@ -1,6 +1,6 @@
  99457. #include <unistd.h>
  99458. #include <stdio.h>
  99459. int main(void) {
  99460. - printf("hostid=%d\n", gethostid());
  99461. + printf("hostid=%ld\n", gethostid());
  99462. return 0;
  99463. }
  99464. diff -Nur uClibc-0.9.33.2/test/inet/getnetent.c uClibc-git/test/inet/getnetent.c
  99465. --- uClibc-0.9.33.2/test/inet/getnetent.c 2012-05-15 09:20:09.000000000 +0200
  99466. +++ uClibc-git/test/inet/getnetent.c 2014-06-02 17:40:35.218718649 +0200
  99467. @@ -8,7 +8,7 @@
  99468. while (net->n_net && !((net->n_net >> 24) & 0xff)) {
  99469. net->n_net <<= 8;
  99470. }
  99471. - printf("%lu.%lu.%lu.%lu\n",
  99472. + printf("%u.%u.%u.%u\n",
  99473. (net->n_net >> 24) & 0xff, (net->n_net >> 16) & 0xff,
  99474. (net->n_net >> 8) & 0xff, net->n_net & 0xff);
  99475. }
  99476. diff -Nur uClibc-0.9.33.2/test/inet/Makefile uClibc-git/test/inet/Makefile
  99477. --- uClibc-0.9.33.2/test/inet/Makefile 2012-05-15 09:20:09.000000000 +0200
  99478. +++ uClibc-git/test/inet/Makefile 2014-06-02 17:40:35.218718649 +0200
  99479. @@ -2,6 +2,7 @@
  99480. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99481. top_builddir=../../
  99482. +top_srcdir=../../
  99483. include ../Rules.mak
  99484. -include Makefile.in
  99485. include ../Test.mak
  99486. diff -Nur uClibc-0.9.33.2/test/inet/Makefile.in uClibc-git/test/inet/Makefile.in
  99487. --- uClibc-0.9.33.2/test/inet/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  99488. +++ uClibc-git/test/inet/Makefile.in 2014-06-02 17:40:35.218718649 +0200
  99489. @@ -7,5 +7,11 @@
  99490. endif
  99491. ifeq ($(UCLIBC_HAS_SOCKET)$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6),)
  99492. -TESTS_DISABLED := tst-ether_aton tst-ethers tst-ethers-line
  99493. +TESTS_DISABLED += tst-ether_aton tst-ethers tst-ethers-line
  99494. +endif
  99495. +
  99496. +ifeq ($(UCLIBC_HAS_RESOLVER_SUPPORT),)
  99497. +TESTS_DISABLED += tst-res
  99498. +else
  99499. +LDFLAGS_tst-res_glibc := -lresolv # assume it's glibc or somebody with that lib
  99500. endif
  99501. diff -Nur uClibc-0.9.33.2/test/inet/tst-network.c uClibc-git/test/inet/tst-network.c
  99502. --- uClibc-0.9.33.2/test/inet/tst-network.c 2012-05-15 09:20:09.000000000 +0200
  99503. +++ uClibc-git/test/inet/tst-network.c 2014-06-02 17:40:35.218718649 +0200
  99504. @@ -14,9 +14,8 @@
  99505. Lesser General Public License for more details.
  99506. You should have received a copy of the GNU Lesser General Public
  99507. - License along with the GNU C Library; if not, write to the Free
  99508. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99509. - 02111-1307 USA. */
  99510. + License along with the GNU C Library; if not, see
  99511. + <http://www.gnu.org/licenses/>. */
  99512. #include <stdio.h>
  99513. #include <sys/socket.h>
  99514. diff -Nur uClibc-0.9.33.2/test/inet/tst-res.c uClibc-git/test/inet/tst-res.c
  99515. --- uClibc-0.9.33.2/test/inet/tst-res.c 1970-01-01 01:00:00.000000000 +0100
  99516. +++ uClibc-git/test/inet/tst-res.c 2014-06-02 17:40:35.218718649 +0200
  99517. @@ -0,0 +1,44 @@
  99518. +#include <stdlib.h>
  99519. +#include <assert.h>
  99520. +#include <sys/types.h>
  99521. +#include <netinet/in.h>
  99522. +#include <arpa/nameser.h>
  99523. +#include <resolv.h>
  99524. +#include <netdb.h>
  99525. +
  99526. +int main(int argc, char **argv)
  99527. +{
  99528. + int r;
  99529. + struct __res_state state;
  99530. +
  99531. + r = res_ninit(&state);
  99532. + if (r) {
  99533. + herror("ninit");
  99534. + abort();
  99535. + }
  99536. + r = res_init();
  99537. + if (r) {
  99538. + herror("init");
  99539. + abort();
  99540. + }
  99541. +
  99542. +#ifdef __UCLIBC_HAS_BSD_RES_CLOSE__
  99543. + res_close();
  99544. +#endif
  99545. +#ifdef __UCLIBC__
  99546. + /* assume there is at least one resolver configured */
  99547. + assert (state._u._ext.nscount > 0);
  99548. +#else
  99549. + assert (state._u._ext.nscount == 0);
  99550. +#endif
  99551. + assert (state.options & RES_INIT);
  99552. + res_nclose(&state);
  99553. +#ifdef __UCLIBC__
  99554. + /* We wipe the whole thing */
  99555. + assert ((state.options & RES_INIT) == 0);
  99556. +#endif
  99557. + assert (state._u._ext.nscount == 0);
  99558. +
  99559. + return 0;
  99560. +}
  99561. +
  99562. diff -Nur uClibc-0.9.33.2/test/inet/tst-sock-nonblock.c uClibc-git/test/inet/tst-sock-nonblock.c
  99563. --- uClibc-0.9.33.2/test/inet/tst-sock-nonblock.c 1970-01-01 01:00:00.000000000 +0100
  99564. +++ uClibc-git/test/inet/tst-sock-nonblock.c 2014-06-02 17:40:35.218718649 +0200
  99565. @@ -0,0 +1,53 @@
  99566. +/* vi: set sw=4 ts=4 sts=4: */
  99567. +/*
  99568. + * Nonblocking socket test for uClibc
  99569. + * Copyright (C) 2012 by Kevin Cernekee <cernekee@gmail.com>
  99570. + *
  99571. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99572. + */
  99573. +
  99574. +#include <stdio.h>
  99575. +#include <stdlib.h>
  99576. +#include <string.h>
  99577. +#include <unistd.h>
  99578. +#include <errno.h>
  99579. +#include <error.h>
  99580. +#include <sys/types.h>
  99581. +#include <sys/socket.h>
  99582. +#include <sys/un.h>
  99583. +#include <sys/fcntl.h>
  99584. +
  99585. +static int
  99586. +do_test(void)
  99587. +{
  99588. + int fd, ret, result = 0;
  99589. + struct sockaddr_un sa;
  99590. + char buf;
  99591. +
  99592. + fd = socket(AF_UNIX, SOCK_DGRAM | SOCK_NONBLOCK, 0);
  99593. + if (fd < 0) {
  99594. + perror("socket()");
  99595. + result = 1;
  99596. + }
  99597. +
  99598. + memset(&sa, 0, sizeof(sa));
  99599. + sa.sun_family = AF_UNIX;
  99600. + strcpy(sa.sun_path, "socktest");
  99601. + unlink("socktest");
  99602. + if (bind(fd, (const struct sockaddr *)&sa, sizeof(sa)) < 0) {
  99603. + perror("bind()");
  99604. + result = 1;
  99605. + }
  99606. +
  99607. + ret = read(fd, &buf, sizeof(buf));
  99608. + if (ret != -1 || errno != EAGAIN) {
  99609. + error(0, 0, "Nonblocking read returned %d", ret);
  99610. + result = 1;
  99611. + }
  99612. +
  99613. + return result;
  99614. +}
  99615. +
  99616. +#define TIMEOUT 5
  99617. +#define TEST_FUNCTION do_test ()
  99618. +#include "../test-skeleton.c"
  99619. diff -Nur uClibc-0.9.33.2/test/librt/Makefile uClibc-git/test/librt/Makefile
  99620. --- uClibc-0.9.33.2/test/librt/Makefile 2012-05-15 09:20:09.000000000 +0200
  99621. +++ uClibc-git/test/librt/Makefile 2014-06-02 17:40:35.218718649 +0200
  99622. @@ -2,6 +2,7 @@
  99623. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99624. top_builddir=../../
  99625. +top_srcdir=../../
  99626. include ../Rules.mak
  99627. -include Makefile.in
  99628. include ../Test.mak
  99629. diff -Nur uClibc-0.9.33.2/test/locale/collate-test.c uClibc-git/test/locale/collate-test.c
  99630. --- uClibc-0.9.33.2/test/locale/collate-test.c 2012-05-15 09:20:09.000000000 +0200
  99631. +++ uClibc-git/test/locale/collate-test.c 2014-06-02 17:40:35.262718892 +0200
  99632. @@ -14,9 +14,8 @@
  99633. Lesser General Public License for more details.
  99634. You should have received a copy of the GNU Lesser General Public
  99635. - License along with the GNU C Library; if not, write to the Free
  99636. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99637. - 02111-1307 USA. */
  99638. + License along with the GNU C Library; if not, see
  99639. + <http://www.gnu.org/licenses/>. */
  99640. #include <ctype.h>
  99641. #include <error.h>
  99642. diff -Nur uClibc-0.9.33.2/test/locale/dump-ctype.c uClibc-git/test/locale/dump-ctype.c
  99643. --- uClibc-0.9.33.2/test/locale/dump-ctype.c 2012-05-15 09:20:09.000000000 +0200
  99644. +++ uClibc-git/test/locale/dump-ctype.c 2014-06-02 17:40:35.262718892 +0200
  99645. @@ -15,9 +15,8 @@
  99646. Lesser General Public License for more details.
  99647. You should have received a copy of the GNU Lesser General Public
  99648. - License along with the GNU C Library; if not, write to the Free
  99649. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99650. - 02111-1307 USA. */
  99651. + License along with the GNU C Library; if not, see
  99652. + <http://www.gnu.org/licenses/>. */
  99653. /* Usage example:
  99654. $ dump-ctype de_DE.UTF-8
  99655. diff -Nur uClibc-0.9.33.2/test/locale/gen-unicode-ctype.c uClibc-git/test/locale/gen-unicode-ctype.c
  99656. --- uClibc-0.9.33.2/test/locale/gen-unicode-ctype.c 2012-05-15 09:20:09.000000000 +0200
  99657. +++ uClibc-git/test/locale/gen-unicode-ctype.c 2014-06-02 17:40:35.262718892 +0200
  99658. @@ -14,9 +14,8 @@
  99659. Lesser General Public License for more details.
  99660. You should have received a copy of the GNU Lesser General Public
  99661. - License along with the GNU C Library; if not, write to the Free
  99662. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99663. - 02111-1307 USA. */
  99664. + License along with the GNU C Library; if not, see
  99665. + <http://www.gnu.org/licenses/>. */
  99666. /* Usage example:
  99667. $ gen-unicode /usr/local/share/Unidata/UnicodeData.txt 3.1
  99668. diff -Nur uClibc-0.9.33.2/test/locale/Makefile uClibc-git/test/locale/Makefile
  99669. --- uClibc-0.9.33.2/test/locale/Makefile 2012-05-15 09:20:09.000000000 +0200
  99670. +++ uClibc-git/test/locale/Makefile 2014-06-02 17:40:35.262718892 +0200
  99671. @@ -2,6 +2,7 @@
  99672. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99673. top_builddir=../../
  99674. +top_srcdir=../../
  99675. include ../Rules.mak
  99676. -include Makefile.in
  99677. include ../Test.mak
  99678. diff -Nur uClibc-0.9.33.2/test/locale/tst-C-locale.c uClibc-git/test/locale/tst-C-locale.c
  99679. --- uClibc-0.9.33.2/test/locale/tst-C-locale.c 2012-05-15 09:20:09.000000000 +0200
  99680. +++ uClibc-git/test/locale/tst-C-locale.c 2014-06-02 17:40:35.262718892 +0200
  99681. @@ -14,9 +14,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 <ctype.h>
  99690. #include <langinfo.h>
  99691. diff -Nur uClibc-0.9.33.2/test/locale/tst-ctype.c uClibc-git/test/locale/tst-ctype.c
  99692. --- uClibc-0.9.33.2/test/locale/tst-ctype.c 2012-05-15 09:20:09.000000000 +0200
  99693. +++ uClibc-git/test/locale/tst-ctype.c 2014-06-02 17:40:35.262718892 +0200
  99694. @@ -13,9 +13,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 <ctype.h>
  99703. #include <locale.h>
  99704. diff -Nur uClibc-0.9.33.2/test/locale/tst-digits.c uClibc-git/test/locale/tst-digits.c
  99705. --- uClibc-0.9.33.2/test/locale/tst-digits.c 2012-05-15 09:20:09.000000000 +0200
  99706. +++ uClibc-git/test/locale/tst-digits.c 2014-06-02 17:40:35.262718892 +0200
  99707. @@ -13,9 +13,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 <ctype.h>
  99716. #include <langinfo.h>
  99717. diff -Nur uClibc-0.9.33.2/test/locale/tst-fmon.c uClibc-git/test/locale/tst-fmon.c
  99718. --- uClibc-0.9.33.2/test/locale/tst-fmon.c 2012-05-15 09:20:09.000000000 +0200
  99719. +++ uClibc-git/test/locale/tst-fmon.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 <stdio.h>
  99729. #include <locale.h>
  99730. diff -Nur uClibc-0.9.33.2/test/locale/tst-langinfo.c uClibc-git/test/locale/tst-langinfo.c
  99731. --- uClibc-0.9.33.2/test/locale/tst-langinfo.c 2012-05-15 09:20:09.000000000 +0200
  99732. +++ uClibc-git/test/locale/tst-langinfo.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 <langinfo.h>
  99742. #include <locale.h>
  99743. diff -Nur uClibc-0.9.33.2/test/locale/tst-langinfo.input uClibc-git/test/locale/tst-langinfo.input
  99744. --- uClibc-0.9.33.2/test/locale/tst-langinfo.input 2012-05-15 09:20:09.000000000 +0200
  99745. +++ uClibc-git/test/locale/tst-langinfo.input 2014-06-02 17:40:35.262718892 +0200
  99746. @@ -15,9 +15,8 @@
  99747. # Lesser General Public License for more details.
  99748. # You should have received a copy of the GNU Lesser General Public
  99749. -# License along with the GNU C Library; if not, write to the Free
  99750. -# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99751. -# 02111-1307 USA.
  99752. +# License along with the GNU C Library; see the file COPYING.LIB. If
  99753. +# not, see <http://www.gnu.org/licenses/>.
  99754. # Run the test program.
  99755. diff -Nur uClibc-0.9.33.2/test/locale/tst-mbswcs1.c uClibc-git/test/locale/tst-mbswcs1.c
  99756. --- uClibc-0.9.33.2/test/locale/tst-mbswcs1.c 2012-05-15 09:20:09.000000000 +0200
  99757. +++ uClibc-git/test/locale/tst-mbswcs1.c 2014-06-02 17:40:35.262718892 +0200
  99758. @@ -14,9 +14,8 @@
  99759. Lesser General Public License for more details.
  99760. You should have received a copy of the GNU Lesser General Public
  99761. - License along with the GNU C Library; if not, write to the Free
  99762. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99763. - 02111-1307 USA. */
  99764. + License along with the GNU C Library; if not, see
  99765. + <http://www.gnu.org/licenses/>. */
  99766. #include <stdio.h>
  99767. #include <string.h>
  99768. diff -Nur uClibc-0.9.33.2/test/locale/tst-mbswcs2.c uClibc-git/test/locale/tst-mbswcs2.c
  99769. --- uClibc-0.9.33.2/test/locale/tst-mbswcs2.c 2012-05-15 09:20:09.000000000 +0200
  99770. +++ uClibc-git/test/locale/tst-mbswcs2.c 2014-06-02 17:40:35.262718892 +0200
  99771. @@ -14,9 +14,8 @@
  99772. Lesser General Public License for more details.
  99773. You should have received a copy of the GNU Lesser General Public
  99774. - License along with the GNU C Library; if not, write to the Free
  99775. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99776. - 02111-1307 USA. */
  99777. + License along with the GNU C Library; if not, see
  99778. + <http://www.gnu.org/licenses/>. */
  99779. #include <stdio.h>
  99780. #include <string.h>
  99781. diff -Nur uClibc-0.9.33.2/test/locale/tst-mbswcs3.c uClibc-git/test/locale/tst-mbswcs3.c
  99782. --- uClibc-0.9.33.2/test/locale/tst-mbswcs3.c 2012-05-15 09:20:09.000000000 +0200
  99783. +++ uClibc-git/test/locale/tst-mbswcs3.c 2014-06-02 17:40:35.262718892 +0200
  99784. @@ -14,9 +14,8 @@
  99785. Lesser General Public License for more details.
  99786. You should have received a copy of the GNU Lesser General Public
  99787. - License along with the GNU C Library; if not, write to the Free
  99788. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99789. - 02111-1307 USA. */
  99790. + License along with the GNU C Library; if not, see
  99791. + <http://www.gnu.org/licenses/>. */
  99792. #include <stdio.h>
  99793. #include <string.h>
  99794. diff -Nur uClibc-0.9.33.2/test/locale/tst-mbswcs4.c uClibc-git/test/locale/tst-mbswcs4.c
  99795. --- uClibc-0.9.33.2/test/locale/tst-mbswcs4.c 2012-05-15 09:20:09.000000000 +0200
  99796. +++ uClibc-git/test/locale/tst-mbswcs4.c 2014-06-02 17:40:35.262718892 +0200
  99797. @@ -13,9 +13,8 @@
  99798. Lesser General Public License for more details.
  99799. You should have received a copy of the GNU Lesser General Public
  99800. - License along with the GNU C Library; if not, write to the Free
  99801. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99802. - 02111-1307 USA. */
  99803. + License along with the GNU C Library; if not, see
  99804. + <http://www.gnu.org/licenses/>. */
  99805. #include <stdio.h>
  99806. #include <string.h>
  99807. diff -Nur uClibc-0.9.33.2/test/locale/tst-mbswcs5.c uClibc-git/test/locale/tst-mbswcs5.c
  99808. --- uClibc-0.9.33.2/test/locale/tst-mbswcs5.c 2012-05-15 09:20:09.000000000 +0200
  99809. +++ uClibc-git/test/locale/tst-mbswcs5.c 2014-06-02 17:40:35.262718892 +0200
  99810. @@ -14,9 +14,8 @@
  99811. Lesser General Public License for more details.
  99812. You should have received a copy of the GNU Lesser General Public
  99813. - License along with the GNU C Library; if not, write to the Free
  99814. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99815. - 02111-1307 USA. */
  99816. + License along with the GNU C Library; if not, see
  99817. + <http://www.gnu.org/licenses/>. */
  99818. #include <stdio.h>
  99819. #include <string.h>
  99820. diff -Nur uClibc-0.9.33.2/test/locale/tst-mbswcs6.c uClibc-git/test/locale/tst-mbswcs6.c
  99821. --- uClibc-0.9.33.2/test/locale/tst-mbswcs6.c 2012-05-15 09:20:09.000000000 +0200
  99822. +++ uClibc-git/test/locale/tst-mbswcs6.c 2014-06-02 17:40:35.262718892 +0200
  99823. @@ -14,9 +14,8 @@
  99824. Lesser General Public License for more details.
  99825. You should have received a copy of the GNU Lesser General Public
  99826. - License along with the GNU C Library; if not, write to the Free
  99827. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99828. - 02111-1307 USA. */
  99829. + License along with the GNU C Library; if not, see
  99830. + <http://www.gnu.org/licenses/>. */
  99831. #include <errno.h>
  99832. #include <locale.h>
  99833. diff -Nur uClibc-0.9.33.2/test/locale/tst-numeric.c uClibc-git/test/locale/tst-numeric.c
  99834. --- uClibc-0.9.33.2/test/locale/tst-numeric.c 2012-05-15 09:20:09.000000000 +0200
  99835. +++ uClibc-git/test/locale/tst-numeric.c 2014-06-02 17:40:35.262718892 +0200
  99836. @@ -16,9 +16,8 @@
  99837. Lesser General Public License for more details.
  99838. You should have received a copy of the GNU Lesser General Public
  99839. - License along with the GNU C Library; if not, write to the Free
  99840. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99841. - 02111-1307 USA. */
  99842. + License along with the GNU C Library; if not, see
  99843. + <http://www.gnu.org/licenses/>. */
  99844. #include <stdio.h>
  99845. #include <locale.h>
  99846. diff -Nur uClibc-0.9.33.2/test/locale/tst-rpmatch.c uClibc-git/test/locale/tst-rpmatch.c
  99847. --- uClibc-0.9.33.2/test/locale/tst-rpmatch.c 2012-05-15 09:20:09.000000000 +0200
  99848. +++ uClibc-git/test/locale/tst-rpmatch.c 2014-06-02 17:40:35.262718892 +0200
  99849. @@ -14,9 +14,8 @@
  99850. Lesser General Public License for more details.
  99851. You should have received a copy of the GNU Lesser General Public
  99852. - License along with the GNU C Library; if not, write to the Free
  99853. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99854. - 02111-1307 USA. */
  99855. + License along with the GNU C Library; if not, see
  99856. + <http://www.gnu.org/licenses/>. */
  99857. #include <locale.h>
  99858. #include <stdio.h>
  99859. diff -Nur uClibc-0.9.33.2/test/locale/tst-trans.c uClibc-git/test/locale/tst-trans.c
  99860. --- uClibc-0.9.33.2/test/locale/tst-trans.c 2012-05-15 09:20:09.000000000 +0200
  99861. +++ uClibc-git/test/locale/tst-trans.c 2014-06-02 17:40:35.262718892 +0200
  99862. @@ -14,9 +14,8 @@
  99863. Lesser General Public License for more details.
  99864. You should have received a copy of the GNU Lesser General Public
  99865. - License along with the GNU C Library; if not, write to the Free
  99866. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99867. - 02111-1307 USA. */
  99868. + License along with the GNU C Library; if not, see
  99869. + <http://www.gnu.org/licenses/>. */
  99870. #include <locale.h>
  99871. #include <stdio.h>
  99872. diff -Nur uClibc-0.9.33.2/test/locale/tst-wctype.c uClibc-git/test/locale/tst-wctype.c
  99873. --- uClibc-0.9.33.2/test/locale/tst-wctype.c 2012-05-15 09:20:09.000000000 +0200
  99874. +++ uClibc-git/test/locale/tst-wctype.c 2014-06-02 17:40:35.262718892 +0200
  99875. @@ -14,9 +14,8 @@
  99876. Lesser General Public License for more details.
  99877. You should have received a copy of the GNU Lesser General Public
  99878. - License along with the GNU C Library; if not, write to the Free
  99879. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99880. - 02111-1307 USA. */
  99881. + License along with the GNU C Library; if not, see
  99882. + <http://www.gnu.org/licenses/>. */
  99883. #include <error.h>
  99884. #include <locale.h>
  99885. diff -Nur uClibc-0.9.33.2/test/locale/xfrm-test.c uClibc-git/test/locale/xfrm-test.c
  99886. --- uClibc-0.9.33.2/test/locale/xfrm-test.c 2012-05-15 09:20:09.000000000 +0200
  99887. +++ uClibc-git/test/locale/xfrm-test.c 2014-06-02 17:40:35.262718892 +0200
  99888. @@ -14,9 +14,8 @@
  99889. Lesser General Public License for more details.
  99890. You should have received a copy of the GNU Lesser General Public
  99891. - License along with the GNU C Library; if not, write to the Free
  99892. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99893. - 02111-1307 USA. */
  99894. + License along with the GNU C Library; if not, see
  99895. + <http://www.gnu.org/licenses/>. */
  99896. #include <ctype.h>
  99897. #include <error.h>
  99898. diff -Nur uClibc-0.9.33.2/test/locale-mbwc/Makefile uClibc-git/test/locale-mbwc/Makefile
  99899. --- uClibc-0.9.33.2/test/locale-mbwc/Makefile 2012-05-15 09:20:09.000000000 +0200
  99900. +++ uClibc-git/test/locale-mbwc/Makefile 2014-06-02 17:40:35.218718649 +0200
  99901. @@ -2,6 +2,7 @@
  99902. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99903. top_builddir=../../
  99904. +top_srcdir=../../
  99905. include ../Rules.mak
  99906. -include Makefile.in
  99907. include ../Test.mak
  99908. diff -Nur uClibc-0.9.33.2/test/Makefile uClibc-git/test/Makefile
  99909. --- uClibc-0.9.33.2/test/Makefile 2012-05-15 09:20:09.000000000 +0200
  99910. +++ uClibc-git/test/Makefile 2014-06-02 17:40:35.206718582 +0200
  99911. @@ -5,6 +5,7 @@
  99912. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99913. #
  99914. +top_srcdir=../
  99915. top_builddir=../
  99916. include Rules.mak
  99917. @@ -46,9 +47,9 @@
  99918. run: compile subdirs_run
  99919. -compile: $(top_builddir)/$(LOCAL_INSTALL_PATH) subdirs_compile
  99920. +compile: $(top_builddir)$(LOCAL_INSTALL_PATH) subdirs_compile
  99921. -$(top_builddir)/$(LOCAL_INSTALL_PATH):
  99922. +$(top_builddir)$(LOCAL_INSTALL_PATH):
  99923. $(Q)$(MAKE) -C $(top_builddir) $(LOCAL_INSTALL_PATH)
  99924. tags:
  99925. @@ -62,13 +63,16 @@
  99926. subdirs_clean: $(patsubst %, _dirclean_%, $(ALL_SUBDIRS))
  99927. $(patsubst %, _dir_%, $(DIRS)) : dummy
  99928. - $(Q)$(MAKE) -C $(patsubst _dir_%, %, $@)
  99929. + $(Q)$(MAKE) -C $(patsubst _dir_%, %, $@) \
  99930. + KCONFIG_CONFIG=$(KCONFIG_CONFIG)
  99931. $(patsubst %, _dirrun_%, $(DIRS)) : dummy
  99932. - $(Q)$(MAKE) -C $(patsubst _dirrun_%, %, $@) run
  99933. + $(Q)$(MAKE) -C $(patsubst _dirrun_%, %, $@) run \
  99934. + KCONFIG_CONFIG=$(KCONFIG_CONFIG)
  99935. $(patsubst %, _dircompile_%, $(DIRS)) : dummy
  99936. - $(Q)$(MAKE) -C $(patsubst _dircompile_%, %, $@) compile
  99937. + $(Q)$(MAKE) -C $(patsubst _dircompile_%, %, $@) compile \
  99938. + KCONFIG_CONFIG=$(KCONFIG_CONFIG)
  99939. $(patsubst %, _dirclean_%, $(ALL_SUBDIRS)) : dummy
  99940. $(Q)$(MAKE) -C $(patsubst _dirclean_%, %, $@) clean
  99941. diff -Nur uClibc-0.9.33.2/test/malloc/Makefile uClibc-git/test/malloc/Makefile
  99942. --- uClibc-0.9.33.2/test/malloc/Makefile 2012-05-15 09:20:09.000000000 +0200
  99943. +++ uClibc-git/test/malloc/Makefile 2014-06-02 17:40:35.262718892 +0200
  99944. @@ -2,6 +2,7 @@
  99945. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99946. top_builddir=../../
  99947. +top_srcdir=../../
  99948. include ../Rules.mak
  99949. -include Makefile.in
  99950. include ../Test.mak
  99951. diff -Nur uClibc-0.9.33.2/test/malloc/Makefile.in uClibc-git/test/malloc/Makefile.in
  99952. --- uClibc-0.9.33.2/test/malloc/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  99953. +++ uClibc-git/test/malloc/Makefile.in 2014-06-02 17:40:35.262718892 +0200
  99954. @@ -2,3 +2,11 @@
  99955. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99956. TESTS_DISABLED := time_malloc
  99957. +
  99958. +ifneq ($(UCLIBC_SUSV2_LEGACY),y)
  99959. +TESTS_DISABLED += tst-valloc
  99960. +endif
  99961. +
  99962. +ifneq ($(UCLIBC_HAS_OBSTACK),y)
  99963. +TESTS_DISABLED += tst-obstack
  99964. +endif
  99965. diff -Nur uClibc-0.9.33.2/test/malloc/tst-calloc.c uClibc-git/test/malloc/tst-calloc.c
  99966. --- uClibc-0.9.33.2/test/malloc/tst-calloc.c 2012-05-15 09:20:09.000000000 +0200
  99967. +++ uClibc-git/test/malloc/tst-calloc.c 2014-06-02 17:40:35.266718914 +0200
  99968. @@ -13,9 +13,8 @@
  99969. Lesser General Public License for more details.
  99970. You should have received a copy of the GNU Lesser General Public
  99971. - License along with the GNU C Library; if not, write to the Free
  99972. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99973. - 02111-1307 USA. */
  99974. + License along with the GNU C Library; if not, see
  99975. + <http://www.gnu.org/licenses/>. */
  99976. #include <errno.h>
  99977. #include <limits.h>
  99978. diff -Nur uClibc-0.9.33.2/test/malloc/tst-malloc.c uClibc-git/test/malloc/tst-malloc.c
  99979. --- uClibc-0.9.33.2/test/malloc/tst-malloc.c 2012-05-15 09:20:09.000000000 +0200
  99980. +++ uClibc-git/test/malloc/tst-malloc.c 2014-06-02 17:40:35.266718914 +0200
  99981. @@ -13,9 +13,8 @@
  99982. Lesser General Public License for more details.
  99983. You should have received a copy of the GNU Lesser General Public
  99984. - License along with the GNU C Library; if not, write to the Free
  99985. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99986. - 02111-1307 USA. */
  99987. + License along with the GNU C Library; if not, see
  99988. + <http://www.gnu.org/licenses/>. */
  99989. #include <errno.h>
  99990. #include <malloc.h>
  99991. diff -Nur uClibc-0.9.33.2/test/malloc/tst-mcheck.c uClibc-git/test/malloc/tst-mcheck.c
  99992. --- uClibc-0.9.33.2/test/malloc/tst-mcheck.c 2012-05-15 09:20:09.000000000 +0200
  99993. +++ uClibc-git/test/malloc/tst-mcheck.c 2014-06-02 17:40:35.266718914 +0200
  99994. @@ -13,9 +13,8 @@
  99995. Lesser General Public License for more details.
  99996. You should have received a copy of the GNU Lesser General Public
  99997. - License along with the GNU C Library; if not, write to the Free
  99998. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99999. - 02111-1307 USA. */
  100000. + License along with the GNU C Library; if not, see
  100001. + <http://www.gnu.org/licenses/>. */
  100002. #include <errno.h>
  100003. #include <stdio.h>
  100004. diff -Nur uClibc-0.9.33.2/test/malloc/tst-obstack.c uClibc-git/test/malloc/tst-obstack.c
  100005. --- uClibc-0.9.33.2/test/malloc/tst-obstack.c 2012-05-15 09:20:09.000000000 +0200
  100006. +++ uClibc-git/test/malloc/tst-obstack.c 2014-06-02 17:40:35.266718914 +0200
  100007. @@ -1,4 +1,8 @@
  100008. -/* Test case by Alexandre Duret-Lutz <duret_g@epita.fr>. */
  100009. +/* Test case by Alexandre Duret-Lutz <duret_g@epita.fr>.
  100010. + * test_obstack_printf() added by Anthony G. Basile <blueness.gentoo.org>.
  100011. + */
  100012. +
  100013. +#include <features.h>
  100014. #include <obstack.h>
  100015. #include <stdint.h>
  100016. #include <stdio.h>
  100017. @@ -26,7 +30,7 @@
  100018. }
  100019. int
  100020. -main (void)
  100021. +test_obstack_alloc (void)
  100022. {
  100023. int result = 0;
  100024. int align = 2;
  100025. @@ -62,3 +66,39 @@
  100026. return result;
  100027. }
  100028. +
  100029. +int
  100030. +test_obstack_printf (void)
  100031. +{
  100032. + int result = 0;
  100033. + int n;
  100034. + char *s;
  100035. + struct obstack ob;
  100036. +
  100037. + obstack_init (&ob);
  100038. +
  100039. + n = obstack_printf (&ob, "%s%d%c", "testing 1 ... 2 ... ", 3, '\n');
  100040. + result |= (n != 22);
  100041. + printf("obstack_printf => %d\n", n);
  100042. +
  100043. + n = obstack_printf (&ob, "%s%d%c", "testing 3 ... 2 ... ", 1, '\0');
  100044. + result |= (n != 22);
  100045. + printf("obstack_printf => %d\n", n);
  100046. +
  100047. + s = obstack_finish (&ob);
  100048. + printf("obstack_printf => %s\n", s);
  100049. + obstack_free (&ob, NULL);
  100050. +
  100051. + return result;
  100052. +}
  100053. +
  100054. +int
  100055. +main (void)
  100056. +{
  100057. + int result = 0;
  100058. +
  100059. + result |= test_obstack_alloc();
  100060. + result |= test_obstack_printf();
  100061. +
  100062. + return result;
  100063. +}
  100064. diff -Nur uClibc-0.9.33.2/test/math/basic-test.c uClibc-git/test/math/basic-test.c
  100065. --- uClibc-0.9.33.2/test/math/basic-test.c 2012-05-15 09:20:09.000000000 +0200
  100066. +++ uClibc-git/test/math/basic-test.c 2014-06-02 17:40:35.266718914 +0200
  100067. @@ -13,9 +13,8 @@
  100068. Lesser General Public License for more details.
  100069. You should have received a copy of the GNU Lesser General Public
  100070. - License along with the GNU C Library; if not, write to the Free
  100071. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  100072. - 02111-1307 USA. */
  100073. + License along with the GNU C Library; if not, see
  100074. + <http://www.gnu.org/licenses/>. */
  100075. #define _ISOC99_SOURCE
  100076. @@ -65,11 +64,6 @@
  100077. check (#FLOAT " !isnan (1)", !(isnan (one_var))); \
  100078. check (#FLOAT " !isnan (inf)", !(isnan (Inf_var))); \
  100079. \
  100080. - check (#FLOAT " inf == inf", Inf_var == Inf_var); \
  100081. - check (#FLOAT " -inf == -inf", -Inf_var == -Inf_var); \
  100082. - check (#FLOAT " inf != -inf", Inf_var != -Inf_var); \
  100083. - check (#FLOAT " NaN != NaN", NaN_var != NaN_var); \
  100084. - \
  100085. /* \
  100086. the same tests but this time with NAN from <bits/nan.h> \
  100087. NAN is a double const \
  100088. @@ -78,7 +72,6 @@
  100089. check (#FLOAT " isnan (-NAN)", isnan (-NAN)); \
  100090. check (#FLOAT " !isinf (NAN)", !(isinf (NAN))); \
  100091. check (#FLOAT " !isinf (-NAN)", !(isinf (-NAN))); \
  100092. - check (#FLOAT " NAN != NAN", NAN != NAN); \
  100093. \
  100094. /* \
  100095. And again with the value returned by the `nan' function. \
  100096. @@ -89,6 +82,48 @@
  100097. check (#FLOAT " !isinf (-NAN)", !(isinf (-NANFUNC ("")))); \
  100098. check (#FLOAT " NAN != NAN", NANFUNC ("") != NANFUNC ("")); \
  100099. \
  100100. + /* test if HUGE_VALx is ok */ \
  100101. + x1 = HUGEVAL; \
  100102. + check (#FLOAT " isinf (HUGE_VALx) == +1", isinf (x1) == +1); \
  100103. + x1 = - HUGEVAL; \
  100104. + check (#FLOAT " isinf (-HUGE_VALx) == -1", isinf (x1) == -1); \
  100105. +}
  100106. +#ifndef DO_C99_MATH
  100107. +# undef TEST_FUNC
  100108. +# define TEST_FUNC(NAME, FLOAT, NANFUNC, EPSILON, HUGEVAL) \
  100109. +static void \
  100110. +NAME(void) \
  100111. +{ /* nothing */ }
  100112. +#endif
  100113. +
  100114. +#define TEST_VAL(NAME, FLOAT, NANFUNC, EPSILON, HUGEVAL) \
  100115. +static void \
  100116. +NAME (void) \
  100117. +{ \
  100118. + /* Variables are declared volatile to forbid some compiler \
  100119. + optimizations. */ \
  100120. + volatile FLOAT Inf_var, NaN_var, zero_var, one_var; \
  100121. + FLOAT x1, x2; \
  100122. + \
  100123. + zero_var = 0.0; \
  100124. + one_var = 1.0; \
  100125. + NaN_var = zero_var/zero_var; \
  100126. + Inf_var = one_var / zero_var; \
  100127. + \
  100128. + (void) &zero_var; \
  100129. + (void) &one_var; \
  100130. + (void) &NaN_var; \
  100131. + (void) &Inf_var; \
  100132. + \
  100133. + \
  100134. + check (#FLOAT " inf == inf", Inf_var == Inf_var); \
  100135. + check (#FLOAT " -inf == -inf", -Inf_var == -Inf_var); \
  100136. + check (#FLOAT " inf != -inf", Inf_var != -Inf_var); \
  100137. + check (#FLOAT " NaN != NaN", NaN_var != NaN_var); \
  100138. + \
  100139. + check (#FLOAT " NAN != NAN", NAN != NAN); \
  100140. + \
  100141. + \
  100142. /* test if EPSILON is ok */ \
  100143. x1 = 1.0; \
  100144. x2 = x1 + EPSILON; \
  100145. @@ -98,27 +133,28 @@
  100146. x2 = x1 - EPSILON; \
  100147. check (#FLOAT " 1 != 1-EPSILON", x1 != x2); \
  100148. \
  100149. - /* test if HUGE_VALx is ok */ \
  100150. - x1 = HUGEVAL; \
  100151. - check (#FLOAT " isinf (HUGE_VALx) == +1", isinf (x1) == +1); \
  100152. - x1 = - HUGEVAL; \
  100153. - check (#FLOAT " isinf (-HUGE_VALx) == -1", isinf (x1) == -1); \
  100154. }
  100155. -TEST_FUNC (float_test, float, nanf, FLT_EPSILON, HUGE_VALF)
  100156. -TEST_FUNC (double_test, double, nan, DBL_EPSILON, HUGE_VAL)
  100157. +TEST_VAL (float_test_value, float, nanf, FLT_EPSILON, HUGE_VALF)
  100158. +TEST_FUNC (float_test_call, float, nanf, FLT_EPSILON, HUGE_VALF)
  100159. +TEST_VAL (double_test_value, double, nan, DBL_EPSILON, HUGE_VAL)
  100160. +TEST_FUNC (double_test_call, double, nan, DBL_EPSILON, HUGE_VAL)
  100161. #ifndef NO_LONG_DOUBLE
  100162. -TEST_FUNC (ldouble_test, long double, nanl, LDBL_EPSILON, HUGE_VALL)
  100163. +TEST_VAL (ldouble_test_value, long double, nanl, LDBL_EPSILON, HUGE_VALL)
  100164. +TEST_FUNC (ldouble_test_call, long double, nanl, LDBL_EPSILON, HUGE_VALL)
  100165. #endif
  100166. int
  100167. main (void)
  100168. {
  100169. - float_test ();
  100170. - double_test ();
  100171. + float_test_value ();
  100172. + float_test_call ();
  100173. + double_test_value ();
  100174. + double_test_call ();
  100175. #ifndef NO_LONG_DOUBLE
  100176. - ldouble_test ();
  100177. + ldouble_test_value ();
  100178. + ldouble_test_call ();
  100179. #endif
  100180. return errors != 0;
  100181. diff -Nur uClibc-0.9.33.2/test/math/gen-libm-test.pl uClibc-git/test/math/gen-libm-test.pl
  100182. --- uClibc-0.9.33.2/test/math/gen-libm-test.pl 2012-05-15 09:20:09.000000000 +0200
  100183. +++ uClibc-git/test/math/gen-libm-test.pl 2014-06-02 17:40:35.266718914 +0200
  100184. @@ -14,9 +14,8 @@
  100185. # Lesser General Public License for more details.
  100186. # You should have received a copy of the GNU Lesser General Public
  100187. -# License along with the GNU C Library; if not, write to the Free
  100188. -# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  100189. -# 02111-1307 USA.
  100190. +# License along with the GNU C Library; see the file COPYING.LIB. If
  100191. +# not, see <http://www.gnu.org/licenses/>.
  100192. # This file needs to be tidied up
  100193. # Note that functions and tests share the same namespace.
  100194. diff -Nur uClibc-0.9.33.2/test/math/libm-test.inc uClibc-git/test/math/libm-test.inc
  100195. --- uClibc-0.9.33.2/test/math/libm-test.inc 2012-05-15 09:20:09.000000000 +0200
  100196. +++ uClibc-git/test/math/libm-test.inc 2014-06-02 17:40:35.270718936 +0200
  100197. @@ -13,9 +13,8 @@
  100198. Lesser General Public License for more details.
  100199. You should have received a copy of the GNU Lesser General Public
  100200. - License along with the GNU C Library; if not, write to the Free
  100201. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  100202. - 02111-1307 USA. */
  100203. + License along with the GNU C Library; if not, see
  100204. + <http://www.gnu.org/licenses/>. */
  100205. /* Part of testsuite for libm.
  100206. diff -Nur uClibc-0.9.33.2/test/math/libm-test-ulps-arm uClibc-git/test/math/libm-test-ulps-arm
  100207. --- uClibc-0.9.33.2/test/math/libm-test-ulps-arm 1970-01-01 01:00:00.000000000 +0100
  100208. +++ uClibc-git/test/math/libm-test-ulps-arm 2014-06-02 17:40:35.266718914 +0200
  100209. @@ -0,0 +1,4981 @@
  100210. +# Begin of automatic generation
  100211. +
  100212. +# acos_downward
  100213. +Test "acos_downward (-0)":
  100214. +float: 1
  100215. +ifloat: 1
  100216. +Test "acos_downward (-0.5)":
  100217. +double: 1
  100218. +idouble: 1
  100219. +Test "acos_downward (-1)":
  100220. +float: 1
  100221. +ifloat: 1
  100222. +Test "acos_downward (0)":
  100223. +float: 1
  100224. +ifloat: 1
  100225. +Test "acos_downward (0.5)":
  100226. +double: 1
  100227. +float: 1
  100228. +idouble: 1
  100229. +ifloat: 1
  100230. +
  100231. +# acos_towardzero
  100232. +Test "acos_towardzero (-0)":
  100233. +float: 1
  100234. +ifloat: 1
  100235. +Test "acos_towardzero (-0.5)":
  100236. +double: 1
  100237. +idouble: 1
  100238. +Test "acos_towardzero (-1)":
  100239. +float: 1
  100240. +ifloat: 1
  100241. +Test "acos_towardzero (0)":
  100242. +float: 1
  100243. +ifloat: 1
  100244. +Test "acos_towardzero (0.5)":
  100245. +double: 1
  100246. +float: 1
  100247. +idouble: 1
  100248. +ifloat: 1
  100249. +
  100250. +# asin_downward
  100251. +Test "asin_downward (-0.5)":
  100252. +double: 1
  100253. +idouble: 1
  100254. +Test "asin_downward (0.5)":
  100255. +double: 1
  100256. +idouble: 1
  100257. +Test "asin_downward (1.0)":
  100258. +float: 1
  100259. +ifloat: 1
  100260. +
  100261. +# asin_towardzero
  100262. +Test "asin_towardzero (-0.5)":
  100263. +double: 1
  100264. +idouble: 1
  100265. +Test "asin_towardzero (-1.0)":
  100266. +float: 1
  100267. +ifloat: 1
  100268. +Test "asin_towardzero (0.5)":
  100269. +double: 1
  100270. +idouble: 1
  100271. +Test "asin_towardzero (1.0)":
  100272. +float: 1
  100273. +ifloat: 1
  100274. +
  100275. +# asin_upward
  100276. +Test "asin_upward (-1.0)":
  100277. +float: 1
  100278. +ifloat: 1
  100279. +
  100280. +# atan2
  100281. +Test "atan2 (-0.75, -1.0)":
  100282. +float: 1
  100283. +ifloat: 1
  100284. +Test "atan2 (-max_value, -min_value)":
  100285. +float: 1
  100286. +ifloat: 1
  100287. +Test "atan2 (0.75, -1.0)":
  100288. +float: 1
  100289. +ifloat: 1
  100290. +Test "atan2 (1.390625, 0.9296875)":
  100291. +float: 1
  100292. +ifloat: 1
  100293. +
  100294. +# atanh
  100295. +Test "atanh (0.75)":
  100296. +float: 1
  100297. +ifloat: 1
  100298. +
  100299. +# cacos
  100300. +Test "Imaginary part of: cacos (+0 + 0.5 i)":
  100301. +float: 1
  100302. +ifloat: 1
  100303. +Test "Imaginary part of: cacos (+0 + 1.0 i)":
  100304. +double: 1
  100305. +float: 1
  100306. +idouble: 1
  100307. +ifloat: 1
  100308. +Test "Imaginary part of: cacos (+0 + 1.5 i)":
  100309. +double: 1
  100310. +idouble: 1
  100311. +Test "Imaginary part of: cacos (+0 - 0.5 i)":
  100312. +float: 1
  100313. +ifloat: 1
  100314. +Test "Imaginary part of: cacos (+0 - 1.0 i)":
  100315. +double: 1
  100316. +float: 1
  100317. +idouble: 1
  100318. +ifloat: 1
  100319. +Test "Imaginary part of: cacos (+0 - 1.5 i)":
  100320. +double: 1
  100321. +idouble: 1
  100322. +Test "Imaginary part of: cacos (-0 + 0.5 i)":
  100323. +float: 1
  100324. +ifloat: 1
  100325. +Test "Imaginary part of: cacos (-0 + 1.0 i)":
  100326. +double: 1
  100327. +float: 1
  100328. +idouble: 1
  100329. +ifloat: 1
  100330. +Test "Imaginary part of: cacos (-0 + 1.5 i)":
  100331. +double: 1
  100332. +idouble: 1
  100333. +Test "Imaginary part of: cacos (-0 - 0.5 i)":
  100334. +float: 1
  100335. +ifloat: 1
  100336. +Test "Imaginary part of: cacos (-0 - 1.0 i)":
  100337. +double: 1
  100338. +float: 1
  100339. +idouble: 1
  100340. +ifloat: 1
  100341. +Test "Imaginary part of: cacos (-0 - 1.5 i)":
  100342. +double: 1
  100343. +idouble: 1
  100344. +Test "Real part of: cacos (-0.25 + 1.0 i)":
  100345. +double: 1
  100346. +float: 1
  100347. +idouble: 1
  100348. +ifloat: 1
  100349. +Test "Imaginary part of: cacos (-0.25 + 1.0 i)":
  100350. +float: 1
  100351. +ifloat: 1
  100352. +Test "Real part of: cacos (-0.25 - 1.0 i)":
  100353. +double: 1
  100354. +float: 1
  100355. +idouble: 1
  100356. +ifloat: 1
  100357. +Test "Imaginary part of: cacos (-0.25 - 1.0 i)":
  100358. +float: 1
  100359. +ifloat: 1
  100360. +Test "Imaginary part of: cacos (-0.5 + 0x1.fp-129 i)":
  100361. +double: 1
  100362. +idouble: 1
  100363. +Test "Imaginary part of: cacos (-0.5 + 0x1p-105 i)":
  100364. +double: 1
  100365. +idouble: 1
  100366. +Test "Imaginary part of: cacos (-0.5 + 0x1p-112 i)":
  100367. +double: 1
  100368. +idouble: 1
  100369. +Test "Imaginary part of: cacos (-0.5 + 0x1p-23 i)":
  100370. +double: 1
  100371. +idouble: 1
  100372. +Test "Real part of: cacos (-0.5 + 1.0 i)":
  100373. +float: 1
  100374. +ifloat: 1
  100375. +Test "Imaginary part of: cacos (-0.5 + 1.0 i)":
  100376. +double: 1
  100377. +idouble: 1
  100378. +Test "Imaginary part of: cacos (-0.5 - 0x1.fp-129 i)":
  100379. +double: 1
  100380. +idouble: 1
  100381. +Test "Imaginary part of: cacos (-0.5 - 0x1p-105 i)":
  100382. +double: 1
  100383. +idouble: 1
  100384. +Test "Imaginary part of: cacos (-0.5 - 0x1p-112 i)":
  100385. +double: 1
  100386. +idouble: 1
  100387. +Test "Imaginary part of: cacos (-0.5 - 0x1p-23 i)":
  100388. +double: 1
  100389. +idouble: 1
  100390. +Test "Real part of: cacos (-0.5 - 1.0 i)":
  100391. +float: 1
  100392. +ifloat: 1
  100393. +Test "Imaginary part of: cacos (-0.5 - 1.0 i)":
  100394. +double: 1
  100395. +idouble: 1
  100396. +Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
  100397. +double: 1
  100398. +idouble: 1
  100399. +Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
  100400. +double: 1
  100401. +idouble: 1
  100402. +Test "Imaginary part of: cacos (-0x0.ffffffp0 + 0x1p-23 i)":
  100403. +float: 2
  100404. +ifloat: 2
  100405. +Test "Imaginary part of: cacos (-0x0.ffffffp0 - 0x1p-23 i)":
  100406. +float: 2
  100407. +ifloat: 2
  100408. +Test "Imaginary part of: cacos (-0x1.000002p0 + 0x1p-23 i)":
  100409. +float: 1
  100410. +ifloat: 1
  100411. +Test "Imaginary part of: cacos (-0x1.000002p0 - 0x1p-23 i)":
  100412. +float: 1
  100413. +ifloat: 1
  100414. +Test "Imaginary part of: cacos (-0x1.fp-10 + 1.0 i)":
  100415. +double: 1
  100416. +idouble: 1
  100417. +Test "Imaginary part of: cacos (-0x1.fp-10 - 1.0 i)":
  100418. +double: 1
  100419. +idouble: 1
  100420. +Test "Real part of: cacos (-0x1.fp-100 + 1.0 i)":
  100421. +float: 1
  100422. +ifloat: 1
  100423. +Test "Imaginary part of: cacos (-0x1.fp-100 + 1.0 i)":
  100424. +double: 1
  100425. +float: 1
  100426. +idouble: 1
  100427. +ifloat: 1
  100428. +Test "Real part of: cacos (-0x1.fp-100 - 1.0 i)":
  100429. +float: 1
  100430. +ifloat: 1
  100431. +Test "Imaginary part of: cacos (-0x1.fp-100 - 1.0 i)":
  100432. +double: 1
  100433. +float: 1
  100434. +idouble: 1
  100435. +ifloat: 1
  100436. +Test "Imaginary part of: cacos (-0x1.fp-1000 + 1.0 i)":
  100437. +double: 1
  100438. +idouble: 1
  100439. +Test "Imaginary part of: cacos (-0x1.fp-1000 - 1.0 i)":
  100440. +double: 1
  100441. +idouble: 1
  100442. +Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.0 i)":
  100443. +double: 1
  100444. +idouble: 1
  100445. +Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.5 i)":
  100446. +double: 1
  100447. +idouble: 1
  100448. +Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.0 i)":
  100449. +double: 1
  100450. +idouble: 1
  100451. +Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.5 i)":
  100452. +double: 1
  100453. +idouble: 1
  100454. +Test "Real part of: cacos (-0x1.fp-129 + 0.5 i)":
  100455. +float: 1
  100456. +ifloat: 1
  100457. +Test "Imaginary part of: cacos (-0x1.fp-129 + 0.5 i)":
  100458. +float: 1
  100459. +ifloat: 1
  100460. +Test "Real part of: cacos (-0x1.fp-129 + 0x0.ffffffp0 i)":
  100461. +float: 1
  100462. +ifloat: 1
  100463. +Test "Real part of: cacos (-0x1.fp-129 + 0x1.000002p0 i)":
  100464. +float: 1
  100465. +ifloat: 1
  100466. +Test "Real part of: cacos (-0x1.fp-129 + 0x1.fp-129 i)":
  100467. +float: 1
  100468. +ifloat: 1
  100469. +Test "Real part of: cacos (-0x1.fp-129 + 0x1p-23 i)":
  100470. +float: 1
  100471. +ifloat: 1
  100472. +Test "Real part of: cacos (-0x1.fp-129 + 1.0 i)":
  100473. +float: 1
  100474. +ifloat: 1
  100475. +Test "Imaginary part of: cacos (-0x1.fp-129 + 1.0 i)":
  100476. +double: 1
  100477. +float: 1
  100478. +idouble: 1
  100479. +ifloat: 1
  100480. +Test "Real part of: cacos (-0x1.fp-129 + 1.5 i)":
  100481. +float: 1
  100482. +ifloat: 1
  100483. +Test "Imaginary part of: cacos (-0x1.fp-129 + 1.5 i)":
  100484. +double: 1
  100485. +idouble: 1
  100486. +Test "Real part of: cacos (-0x1.fp-129 - 0.5 i)":
  100487. +float: 1
  100488. +ifloat: 1
  100489. +Test "Imaginary part of: cacos (-0x1.fp-129 - 0.5 i)":
  100490. +float: 1
  100491. +ifloat: 1
  100492. +Test "Real part of: cacos (-0x1.fp-129 - 0x0.ffffffp0 i)":
  100493. +float: 1
  100494. +ifloat: 1
  100495. +Test "Real part of: cacos (-0x1.fp-129 - 0x1.000002p0 i)":
  100496. +float: 1
  100497. +ifloat: 1
  100498. +Test "Real part of: cacos (-0x1.fp-129 - 0x1.fp-129 i)":
  100499. +float: 1
  100500. +ifloat: 1
  100501. +Test "Real part of: cacos (-0x1.fp-129 - 0x1p-23 i)":
  100502. +float: 1
  100503. +ifloat: 1
  100504. +Test "Real part of: cacos (-0x1.fp-129 - 1.0 i)":
  100505. +float: 1
  100506. +ifloat: 1
  100507. +Test "Imaginary part of: cacos (-0x1.fp-129 - 1.0 i)":
  100508. +double: 1
  100509. +float: 1
  100510. +idouble: 1
  100511. +ifloat: 1
  100512. +Test "Real part of: cacos (-0x1.fp-129 - 1.5 i)":
  100513. +float: 1
  100514. +ifloat: 1
  100515. +Test "Imaginary part of: cacos (-0x1.fp-129 - 1.5 i)":
  100516. +double: 1
  100517. +idouble: 1
  100518. +Test "Real part of: cacos (-0x1.fp-30 + 1.0 i)":
  100519. +float: 1
  100520. +ifloat: 1
  100521. +Test "Imaginary part of: cacos (-0x1.fp-30 + 1.0 i)":
  100522. +double: 1
  100523. +float: 1
  100524. +idouble: 1
  100525. +ifloat: 1
  100526. +Test "Real part of: cacos (-0x1.fp-30 - 1.0 i)":
  100527. +float: 1
  100528. +ifloat: 1
  100529. +Test "Imaginary part of: cacos (-0x1.fp-30 - 1.0 i)":
  100530. +double: 1
  100531. +float: 1
  100532. +idouble: 1
  100533. +ifloat: 1
  100534. +Test "Real part of: cacos (-0x1p-105 + 0.0 i)":
  100535. +float: 1
  100536. +ifloat: 1
  100537. +Test "Real part of: cacos (-0x1p-105 + 0.5 i)":
  100538. +float: 1
  100539. +ifloat: 1
  100540. +Test "Imaginary part of: cacos (-0x1p-105 + 0.5 i)":
  100541. +float: 1
  100542. +ifloat: 1
  100543. +Test "Real part of: cacos (-0x1p-105 + 0x1p-105 i)":
  100544. +float: 1
  100545. +ifloat: 1
  100546. +Test "Real part of: cacos (-0x1p-105 - 0.0 i)":
  100547. +float: 1
  100548. +ifloat: 1
  100549. +Test "Real part of: cacos (-0x1p-105 - 0.5 i)":
  100550. +float: 1
  100551. +ifloat: 1
  100552. +Test "Imaginary part of: cacos (-0x1p-105 - 0.5 i)":
  100553. +float: 1
  100554. +ifloat: 1
  100555. +Test "Real part of: cacos (-0x1p-105 - 0x1p-105 i)":
  100556. +float: 1
  100557. +ifloat: 1
  100558. +Test "Real part of: cacos (-0x1p-112 + 0.0 i)":
  100559. +float: 1
  100560. +ifloat: 1
  100561. +Test "Real part of: cacos (-0x1p-112 + 0.5 i)":
  100562. +float: 1
  100563. +ifloat: 1
  100564. +Test "Imaginary part of: cacos (-0x1p-112 + 0.5 i)":
  100565. +float: 1
  100566. +ifloat: 1
  100567. +Test "Real part of: cacos (-0x1p-112 + 0x1p-112 i)":
  100568. +float: 1
  100569. +ifloat: 1
  100570. +Test "Real part of: cacos (-0x1p-112 - 0.0 i)":
  100571. +float: 1
  100572. +ifloat: 1
  100573. +Test "Real part of: cacos (-0x1p-112 - 0.5 i)":
  100574. +float: 1
  100575. +ifloat: 1
  100576. +Test "Imaginary part of: cacos (-0x1p-112 - 0.5 i)":
  100577. +float: 1
  100578. +ifloat: 1
  100579. +Test "Real part of: cacos (-0x1p-112 - 0x1p-112 i)":
  100580. +float: 1
  100581. +ifloat: 1
  100582. +Test "Real part of: cacos (-0x1p-23 + 0.0 i)":
  100583. +float: 1
  100584. +ifloat: 1
  100585. +Test "Real part of: cacos (-0x1p-23 + 0.5 i)":
  100586. +float: 1
  100587. +ifloat: 1
  100588. +Test "Imaginary part of: cacos (-0x1p-23 + 0.5 i)":
  100589. +float: 1
  100590. +ifloat: 1
  100591. +Test "Imaginary part of: cacos (-0x1p-23 + 0x0.ffffffp0 i)":
  100592. +double: 1
  100593. +idouble: 1
  100594. +Test "Real part of: cacos (-0x1p-23 + 0x1.fp-129 i)":
  100595. +float: 1
  100596. +ifloat: 1
  100597. +Test "Real part of: cacos (-0x1p-23 + 0x1p-23 i)":
  100598. +float: 1
  100599. +ifloat: 1
  100600. +Test "Real part of: cacos (-0x1p-23 - 0.0 i)":
  100601. +float: 1
  100602. +ifloat: 1
  100603. +Test "Real part of: cacos (-0x1p-23 - 0.5 i)":
  100604. +float: 1
  100605. +ifloat: 1
  100606. +Test "Imaginary part of: cacos (-0x1p-23 - 0.5 i)":
  100607. +float: 1
  100608. +ifloat: 1
  100609. +Test "Imaginary part of: cacos (-0x1p-23 - 0x0.ffffffp0 i)":
  100610. +double: 1
  100611. +idouble: 1
  100612. +Test "Real part of: cacos (-0x1p-23 - 0x1.fp-129 i)":
  100613. +float: 1
  100614. +ifloat: 1
  100615. +Test "Real part of: cacos (-0x1p-23 - 0x1p-23 i)":
  100616. +float: 1
  100617. +ifloat: 1
  100618. +Test "Real part of: cacos (-0x1p-52 + 0.0 i)":
  100619. +float: 1
  100620. +ifloat: 1
  100621. +Test "Real part of: cacos (-0x1p-52 + 0.5 i)":
  100622. +float: 1
  100623. +ifloat: 1
  100624. +Test "Imaginary part of: cacos (-0x1p-52 + 0.5 i)":
  100625. +float: 1
  100626. +ifloat: 1
  100627. +Test "Real part of: cacos (-0x1p-52 + 0x1p-52 i)":
  100628. +float: 1
  100629. +ifloat: 1
  100630. +Test "Real part of: cacos (-0x1p-52 - 0.0 i)":
  100631. +float: 1
  100632. +ifloat: 1
  100633. +Test "Real part of: cacos (-0x1p-52 - 0.5 i)":
  100634. +float: 1
  100635. +ifloat: 1
  100636. +Test "Imaginary part of: cacos (-0x1p-52 - 0.5 i)":
  100637. +float: 1
  100638. +ifloat: 1
  100639. +Test "Real part of: cacos (-0x1p-52 - 0x1p-52 i)":
  100640. +float: 1
  100641. +ifloat: 1
  100642. +Test "Real part of: cacos (-0x1p-63 + 0.0 i)":
  100643. +float: 1
  100644. +ifloat: 1
  100645. +Test "Real part of: cacos (-0x1p-63 + 0.5 i)":
  100646. +float: 1
  100647. +ifloat: 1
  100648. +Test "Imaginary part of: cacos (-0x1p-63 + 0.5 i)":
  100649. +float: 1
  100650. +ifloat: 1
  100651. +Test "Real part of: cacos (-0x1p-63 + 0x1p-63 i)":
  100652. +float: 1
  100653. +ifloat: 1
  100654. +Test "Real part of: cacos (-0x1p-63 - 0.0 i)":
  100655. +float: 1
  100656. +ifloat: 1
  100657. +Test "Real part of: cacos (-0x1p-63 - 0.5 i)":
  100658. +float: 1
  100659. +ifloat: 1
  100660. +Test "Imaginary part of: cacos (-0x1p-63 - 0.5 i)":
  100661. +float: 1
  100662. +ifloat: 1
  100663. +Test "Real part of: cacos (-0x1p-63 - 0x1p-63 i)":
  100664. +float: 1
  100665. +ifloat: 1
  100666. +Test "Imaginary part of: cacos (-1.0 + 0.5 i)":
  100667. +float: 1
  100668. +ifloat: 1
  100669. +Test "Imaginary part of: cacos (-1.0 + 0x1.fp-10 i)":
  100670. +float: 1
  100671. +ifloat: 1
  100672. +Test "Real part of: cacos (-1.0 + 0x1p50 i)":
  100673. +float: 1
  100674. +ifloat: 1
  100675. +Test "Imaginary part of: cacos (-1.0 - 0.5 i)":
  100676. +float: 1
  100677. +ifloat: 1
  100678. +Test "Imaginary part of: cacos (-1.0 - 0x1.fp-10 i)":
  100679. +float: 1
  100680. +ifloat: 1
  100681. +Test "Real part of: cacos (-1.0 - 0x1p50 i)":
  100682. +float: 1
  100683. +ifloat: 1
  100684. +Test "Real part of: cacos (-2 - 3 i)":
  100685. +float: 1
  100686. +ifloat: 1
  100687. +Test "Imaginary part of: cacos (0.25 + 1.0 i)":
  100688. +float: 1
  100689. +ifloat: 1
  100690. +Test "Imaginary part of: cacos (0.25 - 1.0 i)":
  100691. +float: 1
  100692. +ifloat: 1
  100693. +Test "Real part of: cacos (0.5 + +0 i)":
  100694. +double: 1
  100695. +idouble: 1
  100696. +Test "Real part of: cacos (0.5 + 0x1.fp-1025 i)":
  100697. +double: 1
  100698. +idouble: 1
  100699. +Test "Real part of: cacos (0.5 + 0x1.fp-129 i)":
  100700. +double: 1
  100701. +idouble: 1
  100702. +Test "Imaginary part of: cacos (0.5 + 0x1.fp-129 i)":
  100703. +double: 1
  100704. +idouble: 1
  100705. +Test "Real part of: cacos (0.5 + 0x1p-105 i)":
  100706. +double: 1
  100707. +idouble: 1
  100708. +Test "Imaginary part of: cacos (0.5 + 0x1p-105 i)":
  100709. +double: 1
  100710. +idouble: 1
  100711. +Test "Real part of: cacos (0.5 + 0x1p-112 i)":
  100712. +double: 1
  100713. +idouble: 1
  100714. +Test "Imaginary part of: cacos (0.5 + 0x1p-112 i)":
  100715. +double: 1
  100716. +idouble: 1
  100717. +Test "Imaginary part of: cacos (0.5 + 0x1p-23 i)":
  100718. +double: 1
  100719. +idouble: 1
  100720. +Test "Real part of: cacos (0.5 + 0x1p-52 i)":
  100721. +double: 1
  100722. +idouble: 1
  100723. +Test "Real part of: cacos (0.5 + 0x1p-63 i)":
  100724. +double: 1
  100725. +idouble: 1
  100726. +Test "Real part of: cacos (0.5 + 1.0 i)":
  100727. +float: 1
  100728. +ifloat: 1
  100729. +Test "Imaginary part of: cacos (0.5 + 1.0 i)":
  100730. +double: 1
  100731. +idouble: 1
  100732. +Test "Real part of: cacos (0.5 - 0 i)":
  100733. +double: 1
  100734. +idouble: 1
  100735. +Test "Real part of: cacos (0.5 - 0x1.fp-1025 i)":
  100736. +double: 1
  100737. +idouble: 1
  100738. +Test "Real part of: cacos (0.5 - 0x1.fp-129 i)":
  100739. +double: 1
  100740. +idouble: 1
  100741. +Test "Imaginary part of: cacos (0.5 - 0x1.fp-129 i)":
  100742. +double: 1
  100743. +idouble: 1
  100744. +Test "Real part of: cacos (0.5 - 0x1p-105 i)":
  100745. +double: 1
  100746. +idouble: 1
  100747. +Test "Imaginary part of: cacos (0.5 - 0x1p-105 i)":
  100748. +double: 1
  100749. +idouble: 1
  100750. +Test "Real part of: cacos (0.5 - 0x1p-112 i)":
  100751. +double: 1
  100752. +idouble: 1
  100753. +Test "Imaginary part of: cacos (0.5 - 0x1p-112 i)":
  100754. +double: 1
  100755. +idouble: 1
  100756. +Test "Imaginary part of: cacos (0.5 - 0x1p-23 i)":
  100757. +double: 1
  100758. +idouble: 1
  100759. +Test "Real part of: cacos (0.5 - 0x1p-52 i)":
  100760. +double: 1
  100761. +idouble: 1
  100762. +Test "Real part of: cacos (0.5 - 0x1p-63 i)":
  100763. +double: 1
  100764. +idouble: 1
  100765. +Test "Real part of: cacos (0.5 - 1.0 i)":
  100766. +float: 1
  100767. +ifloat: 1
  100768. +Test "Imaginary part of: cacos (0.5 - 1.0 i)":
  100769. +double: 1
  100770. +idouble: 1
  100771. +Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 + 0x1p-52 i)":
  100772. +double: 1
  100773. +idouble: 1
  100774. +Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 - 0x1p-52 i)":
  100775. +double: 1
  100776. +idouble: 1
  100777. +Test "Real part of: cacos (0x0.ffffffp0 + 0.0 i)":
  100778. +float: 1
  100779. +ifloat: 1
  100780. +Test "Real part of: cacos (0x0.ffffffp0 + 0x1.fp-129 i)":
  100781. +float: 1
  100782. +ifloat: 1
  100783. +Test "Real part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
  100784. +float: 2
  100785. +ifloat: 2
  100786. +Test "Imaginary part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
  100787. +float: 2
  100788. +ifloat: 2
  100789. +Test "Real part of: cacos (0x0.ffffffp0 - 0.0 i)":
  100790. +float: 1
  100791. +ifloat: 1
  100792. +Test "Real part of: cacos (0x0.ffffffp0 - 0x1.fp-129 i)":
  100793. +float: 1
  100794. +ifloat: 1
  100795. +Test "Real part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
  100796. +float: 2
  100797. +ifloat: 2
  100798. +Test "Imaginary part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
  100799. +float: 2
  100800. +ifloat: 2
  100801. +Test "Real part of: cacos (0x1.0000000000001p0 + 0x1p-52 i)":
  100802. +double: 1
  100803. +idouble: 1
  100804. +Test "Real part of: cacos (0x1.0000000000001p0 - 0x1p-52 i)":
  100805. +double: 1
  100806. +idouble: 1
  100807. +Test "Real part of: cacos (0x1.000002p0 + 0x1p-23 i)":
  100808. +float: 2
  100809. +ifloat: 2
  100810. +Test "Imaginary part of: cacos (0x1.000002p0 + 0x1p-23 i)":
  100811. +float: 1
  100812. +ifloat: 1
  100813. +Test "Real part of: cacos (0x1.000002p0 - 0x1p-23 i)":
  100814. +float: 2
  100815. +ifloat: 2
  100816. +Test "Imaginary part of: cacos (0x1.000002p0 - 0x1p-23 i)":
  100817. +float: 1
  100818. +ifloat: 1
  100819. +Test "Imaginary part of: cacos (0x1.fp-10 + 1.0 i)":
  100820. +double: 1
  100821. +idouble: 1
  100822. +Test "Imaginary part of: cacos (0x1.fp-10 - 1.0 i)":
  100823. +double: 1
  100824. +idouble: 1
  100825. +Test "Imaginary part of: cacos (0x1.fp-100 + 1.0 i)":
  100826. +double: 1
  100827. +float: 1
  100828. +idouble: 1
  100829. +ifloat: 1
  100830. +Test "Imaginary part of: cacos (0x1.fp-100 - 1.0 i)":
  100831. +double: 1
  100832. +float: 1
  100833. +idouble: 1
  100834. +ifloat: 1
  100835. +Test "Imaginary part of: cacos (0x1.fp-1000 + 1.0 i)":
  100836. +double: 1
  100837. +idouble: 1
  100838. +Test "Imaginary part of: cacos (0x1.fp-1000 - 1.0 i)":
  100839. +double: 1
  100840. +idouble: 1
  100841. +Test "Imaginary part of: cacos (0x1.fp-1025 + 1.0 i)":
  100842. +double: 1
  100843. +idouble: 1
  100844. +Test "Imaginary part of: cacos (0x1.fp-1025 + 1.5 i)":
  100845. +double: 1
  100846. +idouble: 1
  100847. +Test "Imaginary part of: cacos (0x1.fp-1025 - 1.0 i)":
  100848. +double: 1
  100849. +idouble: 1
  100850. +Test "Imaginary part of: cacos (0x1.fp-1025 - 1.5 i)":
  100851. +double: 1
  100852. +idouble: 1
  100853. +Test "Imaginary part of: cacos (0x1.fp-129 + 0.5 i)":
  100854. +float: 1
  100855. +ifloat: 1
  100856. +Test "Imaginary part of: cacos (0x1.fp-129 + 1.0 i)":
  100857. +double: 1
  100858. +float: 1
  100859. +idouble: 1
  100860. +ifloat: 1
  100861. +Test "Imaginary part of: cacos (0x1.fp-129 + 1.5 i)":
  100862. +double: 1
  100863. +idouble: 1
  100864. +Test "Imaginary part of: cacos (0x1.fp-129 - 0.5 i)":
  100865. +float: 1
  100866. +ifloat: 1
  100867. +Test "Imaginary part of: cacos (0x1.fp-129 - 1.0 i)":
  100868. +double: 1
  100869. +float: 1
  100870. +idouble: 1
  100871. +ifloat: 1
  100872. +Test "Imaginary part of: cacos (0x1.fp-129 - 1.5 i)":
  100873. +double: 1
  100874. +idouble: 1
  100875. +Test "Imaginary part of: cacos (0x1.fp-30 + 1.0 i)":
  100876. +double: 1
  100877. +float: 1
  100878. +idouble: 1
  100879. +ifloat: 1
  100880. +Test "Imaginary part of: cacos (0x1.fp-30 - 1.0 i)":
  100881. +double: 1
  100882. +float: 1
  100883. +idouble: 1
  100884. +ifloat: 1
  100885. +Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i)":
  100886. +double: 1
  100887. +idouble: 1
  100888. +Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i)":
  100889. +double: 1
  100890. +idouble: 1
  100891. +Test "Imaginary part of: cacos (0x1p-105 + 0.5 i)":
  100892. +float: 1
  100893. +ifloat: 1
  100894. +Test "Imaginary part of: cacos (0x1p-105 - 0.5 i)":
  100895. +float: 1
  100896. +ifloat: 1
  100897. +Test "Imaginary part of: cacos (0x1p-112 + 0.5 i)":
  100898. +float: 1
  100899. +ifloat: 1
  100900. +Test "Imaginary part of: cacos (0x1p-112 - 0.5 i)":
  100901. +float: 1
  100902. +ifloat: 1
  100903. +Test "Imaginary part of: cacos (0x1p-23 + 0.5 i)":
  100904. +float: 1
  100905. +ifloat: 1
  100906. +Test "Imaginary part of: cacos (0x1p-23 + 0x0.ffffffp0 i)":
  100907. +double: 1
  100908. +idouble: 1
  100909. +Test "Imaginary part of: cacos (0x1p-23 - 0.5 i)":
  100910. +float: 1
  100911. +ifloat: 1
  100912. +Test "Imaginary part of: cacos (0x1p-23 - 0x0.ffffffp0 i)":
  100913. +double: 1
  100914. +idouble: 1
  100915. +Test "Imaginary part of: cacos (0x1p-52 + 0.5 i)":
  100916. +float: 1
  100917. +ifloat: 1
  100918. +Test "Imaginary part of: cacos (0x1p-52 - 0.5 i)":
  100919. +float: 1
  100920. +ifloat: 1
  100921. +Test "Imaginary part of: cacos (0x1p-63 + 0.5 i)":
  100922. +float: 1
  100923. +ifloat: 1
  100924. +Test "Imaginary part of: cacos (0x1p-63 - 0.5 i)":
  100925. +float: 1
  100926. +ifloat: 1
  100927. +Test "Real part of: cacos (1.0 + 0.25 i)":
  100928. +double: 1
  100929. +idouble: 1
  100930. +Test "Real part of: cacos (1.0 + 0.5 i)":
  100931. +float: 1
  100932. +ifloat: 1
  100933. +Test "Imaginary part of: cacos (1.0 + 0.5 i)":
  100934. +float: 1
  100935. +ifloat: 1
  100936. +Test "Real part of: cacos (1.0 + 0x1.fp-10 i)":
  100937. +float: 2
  100938. +ifloat: 2
  100939. +Test "Imaginary part of: cacos (1.0 + 0x1.fp-10 i)":
  100940. +float: 1
  100941. +ifloat: 1
  100942. +Test "Real part of: cacos (1.0 - 0.25 i)":
  100943. +double: 1
  100944. +idouble: 1
  100945. +Test "Real part of: cacos (1.0 - 0.5 i)":
  100946. +float: 1
  100947. +ifloat: 1
  100948. +Test "Imaginary part of: cacos (1.0 - 0.5 i)":
  100949. +float: 1
  100950. +ifloat: 1
  100951. +Test "Real part of: cacos (1.0 - 0x1.fp-10 i)":
  100952. +float: 2
  100953. +ifloat: 2
  100954. +Test "Imaginary part of: cacos (1.0 - 0x1.fp-10 i)":
  100955. +float: 1
  100956. +ifloat: 1
  100957. +
  100958. +# cacosh
  100959. +Test "Real part of: cacosh (+0 + 0.5 i)":
  100960. +float: 1
  100961. +ifloat: 1
  100962. +Test "Real part of: cacosh (+0 + 1.0 i)":
  100963. +double: 1
  100964. +float: 1
  100965. +idouble: 1
  100966. +ifloat: 1
  100967. +Test "Real part of: cacosh (+0 + 1.5 i)":
  100968. +double: 1
  100969. +idouble: 1
  100970. +Test "Real part of: cacosh (+0 - 0.5 i)":
  100971. +float: 1
  100972. +ifloat: 1
  100973. +Test "Real part of: cacosh (+0 - 1.0 i)":
  100974. +double: 1
  100975. +float: 1
  100976. +idouble: 1
  100977. +ifloat: 1
  100978. +Test "Real part of: cacosh (+0 - 1.5 i)":
  100979. +double: 1
  100980. +idouble: 1
  100981. +Test "Real part of: cacosh (-0 + 0.5 i)":
  100982. +float: 1
  100983. +ifloat: 1
  100984. +Test "Real part of: cacosh (-0 + 1.0 i)":
  100985. +double: 1
  100986. +float: 1
  100987. +idouble: 1
  100988. +ifloat: 1
  100989. +Test "Real part of: cacosh (-0 + 1.5 i)":
  100990. +double: 1
  100991. +idouble: 1
  100992. +Test "Real part of: cacosh (-0 - 0.5 i)":
  100993. +float: 1
  100994. +ifloat: 1
  100995. +Test "Real part of: cacosh (-0 - 1.0 i)":
  100996. +double: 1
  100997. +float: 1
  100998. +idouble: 1
  100999. +ifloat: 1
  101000. +Test "Real part of: cacosh (-0 - 1.5 i)":
  101001. +double: 1
  101002. +idouble: 1
  101003. +Test "Real part of: cacosh (-0.25 + 1.0 i)":
  101004. +float: 1
  101005. +ifloat: 1
  101006. +Test "Imaginary part of: cacosh (-0.25 + 1.0 i)":
  101007. +double: 1
  101008. +float: 1
  101009. +idouble: 1
  101010. +ifloat: 1
  101011. +Test "Real part of: cacosh (-0.25 - 1.0 i)":
  101012. +float: 1
  101013. +ifloat: 1
  101014. +Test "Imaginary part of: cacosh (-0.25 - 1.0 i)":
  101015. +double: 1
  101016. +float: 1
  101017. +idouble: 1
  101018. +ifloat: 1
  101019. +Test "Real part of: cacosh (-0.5 + 0x1.fp-129 i)":
  101020. +double: 1
  101021. +idouble: 1
  101022. +Test "Real part of: cacosh (-0.5 + 0x1p-105 i)":
  101023. +double: 1
  101024. +idouble: 1
  101025. +Test "Real part of: cacosh (-0.5 + 0x1p-112 i)":
  101026. +double: 1
  101027. +idouble: 1
  101028. +Test "Real part of: cacosh (-0.5 + 0x1p-23 i)":
  101029. +double: 1
  101030. +idouble: 1
  101031. +Test "Real part of: cacosh (-0.5 + 1.0 i)":
  101032. +double: 1
  101033. +idouble: 1
  101034. +Test "Imaginary part of: cacosh (-0.5 + 1.0 i)":
  101035. +float: 1
  101036. +ifloat: 1
  101037. +Test "Real part of: cacosh (-0.5 - 0x1.fp-129 i)":
  101038. +double: 1
  101039. +idouble: 1
  101040. +Test "Real part of: cacosh (-0.5 - 0x1p-105 i)":
  101041. +double: 1
  101042. +idouble: 1
  101043. +Test "Real part of: cacosh (-0.5 - 0x1p-112 i)":
  101044. +double: 1
  101045. +idouble: 1
  101046. +Test "Real part of: cacosh (-0.5 - 0x1p-23 i)":
  101047. +double: 1
  101048. +idouble: 1
  101049. +Test "Real part of: cacosh (-0.5 - 1.0 i)":
  101050. +double: 1
  101051. +idouble: 1
  101052. +Test "Imaginary part of: cacosh (-0.5 - 1.0 i)":
  101053. +float: 1
  101054. +ifloat: 1
  101055. +Test "Real part of: cacosh (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
  101056. +double: 1
  101057. +idouble: 1
  101058. +Test "Real part of: cacosh (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
  101059. +double: 1
  101060. +idouble: 1
  101061. +Test "Real part of: cacosh (-0x0.ffffffp0 + 0x1p-23 i)":
  101062. +float: 2
  101063. +ifloat: 2
  101064. +Test "Real part of: cacosh (-0x0.ffffffp0 - 0x1p-23 i)":
  101065. +float: 2
  101066. +ifloat: 2
  101067. +Test "Real part of: cacosh (-0x1.000002p0 + 0x1p-23 i)":
  101068. +float: 1
  101069. +ifloat: 1
  101070. +Test "Real part of: cacosh (-0x1.000002p0 - 0x1p-23 i)":
  101071. +float: 1
  101072. +ifloat: 1
  101073. +Test "Real part of: cacosh (-0x1.fp-10 + 1.0 i)":
  101074. +double: 1
  101075. +idouble: 1
  101076. +Test "Real part of: cacosh (-0x1.fp-10 - 1.0 i)":
  101077. +double: 1
  101078. +idouble: 1
  101079. +Test "Real part of: cacosh (-0x1.fp-100 + 1.0 i)":
  101080. +double: 1
  101081. +float: 1
  101082. +idouble: 1
  101083. +ifloat: 1
  101084. +Test "Imaginary part of: cacosh (-0x1.fp-100 + 1.0 i)":
  101085. +float: 1
  101086. +ifloat: 1
  101087. +Test "Real part of: cacosh (-0x1.fp-100 - 1.0 i)":
  101088. +double: 1
  101089. +float: 1
  101090. +idouble: 1
  101091. +ifloat: 1
  101092. +Test "Imaginary part of: cacosh (-0x1.fp-100 - 1.0 i)":
  101093. +float: 1
  101094. +ifloat: 1
  101095. +Test "Real part of: cacosh (-0x1.fp-1000 + 1.0 i)":
  101096. +double: 1
  101097. +idouble: 1
  101098. +Test "Real part of: cacosh (-0x1.fp-1000 - 1.0 i)":
  101099. +double: 1
  101100. +idouble: 1
  101101. +Test "Real part of: cacosh (-0x1.fp-1025 + 1.0 i)":
  101102. +double: 1
  101103. +idouble: 1
  101104. +Test "Real part of: cacosh (-0x1.fp-1025 + 1.5 i)":
  101105. +double: 1
  101106. +idouble: 1
  101107. +Test "Real part of: cacosh (-0x1.fp-1025 - 1.0 i)":
  101108. +double: 1
  101109. +idouble: 1
  101110. +Test "Real part of: cacosh (-0x1.fp-1025 - 1.5 i)":
  101111. +double: 1
  101112. +idouble: 1
  101113. +Test "Real part of: cacosh (-0x1.fp-129 + 0.5 i)":
  101114. +float: 1
  101115. +ifloat: 1
  101116. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0.5 i)":
  101117. +float: 1
  101118. +ifloat: 1
  101119. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x0.ffffffp0 i)":
  101120. +float: 1
  101121. +ifloat: 1
  101122. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.000002p0 i)":
  101123. +float: 1
  101124. +ifloat: 1
  101125. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.fp-129 i)":
  101126. +float: 1
  101127. +ifloat: 1
  101128. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1p-23 i)":
  101129. +float: 1
  101130. +ifloat: 1
  101131. +Test "Real part of: cacosh (-0x1.fp-129 + 1.0 i)":
  101132. +double: 1
  101133. +float: 1
  101134. +idouble: 1
  101135. +ifloat: 1
  101136. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.0 i)":
  101137. +float: 1
  101138. +ifloat: 1
  101139. +Test "Real part of: cacosh (-0x1.fp-129 + 1.5 i)":
  101140. +double: 1
  101141. +idouble: 1
  101142. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.5 i)":
  101143. +float: 1
  101144. +ifloat: 1
  101145. +Test "Real part of: cacosh (-0x1.fp-129 - 0.5 i)":
  101146. +float: 1
  101147. +ifloat: 1
  101148. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0.5 i)":
  101149. +float: 1
  101150. +ifloat: 1
  101151. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x0.ffffffp0 i)":
  101152. +float: 1
  101153. +ifloat: 1
  101154. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.000002p0 i)":
  101155. +float: 1
  101156. +ifloat: 1
  101157. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.fp-129 i)":
  101158. +float: 1
  101159. +ifloat: 1
  101160. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1p-23 i)":
  101161. +float: 1
  101162. +ifloat: 1
  101163. +Test "Real part of: cacosh (-0x1.fp-129 - 1.0 i)":
  101164. +double: 1
  101165. +float: 1
  101166. +idouble: 1
  101167. +ifloat: 1
  101168. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.0 i)":
  101169. +float: 1
  101170. +ifloat: 1
  101171. +Test "Real part of: cacosh (-0x1.fp-129 - 1.5 i)":
  101172. +double: 1
  101173. +idouble: 1
  101174. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.5 i)":
  101175. +float: 1
  101176. +ifloat: 1
  101177. +Test "Real part of: cacosh (-0x1.fp-30 + 1.0 i)":
  101178. +double: 1
  101179. +float: 1
  101180. +idouble: 1
  101181. +ifloat: 1
  101182. +Test "Imaginary part of: cacosh (-0x1.fp-30 + 1.0 i)":
  101183. +float: 1
  101184. +ifloat: 1
  101185. +Test "Real part of: cacosh (-0x1.fp-30 - 1.0 i)":
  101186. +double: 1
  101187. +float: 1
  101188. +idouble: 1
  101189. +ifloat: 1
  101190. +Test "Imaginary part of: cacosh (-0x1.fp-30 - 1.0 i)":
  101191. +float: 1
  101192. +ifloat: 1
  101193. +Test "Imaginary part of: cacosh (-0x1p-105 + 0.0 i)":
  101194. +float: 1
  101195. +ifloat: 1
  101196. +Test "Real part of: cacosh (-0x1p-105 + 0.5 i)":
  101197. +float: 1
  101198. +ifloat: 1
  101199. +Test "Imaginary part of: cacosh (-0x1p-105 + 0.5 i)":
  101200. +float: 1
  101201. +ifloat: 1
  101202. +Test "Imaginary part of: cacosh (-0x1p-105 + 0x1p-105 i)":
  101203. +float: 1
  101204. +ifloat: 1
  101205. +Test "Imaginary part of: cacosh (-0x1p-105 - 0.0 i)":
  101206. +float: 1
  101207. +ifloat: 1
  101208. +Test "Real part of: cacosh (-0x1p-105 - 0.5 i)":
  101209. +float: 1
  101210. +ifloat: 1
  101211. +Test "Imaginary part of: cacosh (-0x1p-105 - 0.5 i)":
  101212. +float: 1
  101213. +ifloat: 1
  101214. +Test "Imaginary part of: cacosh (-0x1p-105 - 0x1p-105 i)":
  101215. +float: 1
  101216. +ifloat: 1
  101217. +Test "Imaginary part of: cacosh (-0x1p-112 + 0.0 i)":
  101218. +float: 1
  101219. +ifloat: 1
  101220. +Test "Real part of: cacosh (-0x1p-112 + 0.5 i)":
  101221. +float: 1
  101222. +ifloat: 1
  101223. +Test "Imaginary part of: cacosh (-0x1p-112 + 0.5 i)":
  101224. +float: 1
  101225. +ifloat: 1
  101226. +Test "Imaginary part of: cacosh (-0x1p-112 + 0x1p-112 i)":
  101227. +float: 1
  101228. +ifloat: 1
  101229. +Test "Imaginary part of: cacosh (-0x1p-112 - 0.0 i)":
  101230. +float: 1
  101231. +ifloat: 1
  101232. +Test "Real part of: cacosh (-0x1p-112 - 0.5 i)":
  101233. +float: 1
  101234. +ifloat: 1
  101235. +Test "Imaginary part of: cacosh (-0x1p-112 - 0.5 i)":
  101236. +float: 1
  101237. +ifloat: 1
  101238. +Test "Imaginary part of: cacosh (-0x1p-112 - 0x1p-112 i)":
  101239. +float: 1
  101240. +ifloat: 1
  101241. +Test "Imaginary part of: cacosh (-0x1p-23 + 0.0 i)":
  101242. +float: 1
  101243. +ifloat: 1
  101244. +Test "Real part of: cacosh (-0x1p-23 + 0.5 i)":
  101245. +float: 1
  101246. +ifloat: 1
  101247. +Test "Imaginary part of: cacosh (-0x1p-23 + 0.5 i)":
  101248. +float: 1
  101249. +ifloat: 1
  101250. +Test "Real part of: cacosh (-0x1p-23 + 0x0.ffffffp0 i)":
  101251. +double: 1
  101252. +idouble: 1
  101253. +Test "Imaginary part of: cacosh (-0x1p-23 + 0x1.fp-129 i)":
  101254. +float: 1
  101255. +ifloat: 1
  101256. +Test "Imaginary part of: cacosh (-0x1p-23 + 0x1p-23 i)":
  101257. +float: 1
  101258. +ifloat: 1
  101259. +Test "Imaginary part of: cacosh (-0x1p-23 - 0.0 i)":
  101260. +float: 1
  101261. +ifloat: 1
  101262. +Test "Real part of: cacosh (-0x1p-23 - 0.5 i)":
  101263. +float: 1
  101264. +ifloat: 1
  101265. +Test "Imaginary part of: cacosh (-0x1p-23 - 0.5 i)":
  101266. +float: 1
  101267. +ifloat: 1
  101268. +Test "Real part of: cacosh (-0x1p-23 - 0x0.ffffffp0 i)":
  101269. +double: 1
  101270. +idouble: 1
  101271. +Test "Imaginary part of: cacosh (-0x1p-23 - 0x1.fp-129 i)":
  101272. +float: 1
  101273. +ifloat: 1
  101274. +Test "Imaginary part of: cacosh (-0x1p-23 - 0x1p-23 i)":
  101275. +float: 1
  101276. +ifloat: 1
  101277. +Test "Imaginary part of: cacosh (-0x1p-52 + 0.0 i)":
  101278. +float: 1
  101279. +ifloat: 1
  101280. +Test "Real part of: cacosh (-0x1p-52 + 0.5 i)":
  101281. +float: 1
  101282. +ifloat: 1
  101283. +Test "Imaginary part of: cacosh (-0x1p-52 + 0.5 i)":
  101284. +float: 1
  101285. +ifloat: 1
  101286. +Test "Imaginary part of: cacosh (-0x1p-52 + 0x1p-52 i)":
  101287. +float: 1
  101288. +ifloat: 1
  101289. +Test "Imaginary part of: cacosh (-0x1p-52 - 0.0 i)":
  101290. +float: 1
  101291. +ifloat: 1
  101292. +Test "Real part of: cacosh (-0x1p-52 - 0.5 i)":
  101293. +float: 1
  101294. +ifloat: 1
  101295. +Test "Imaginary part of: cacosh (-0x1p-52 - 0.5 i)":
  101296. +float: 1
  101297. +ifloat: 1
  101298. +Test "Imaginary part of: cacosh (-0x1p-52 - 0x1p-52 i)":
  101299. +float: 1
  101300. +ifloat: 1
  101301. +Test "Imaginary part of: cacosh (-0x1p-63 + 0.0 i)":
  101302. +float: 1
  101303. +ifloat: 1
  101304. +Test "Real part of: cacosh (-0x1p-63 + 0.5 i)":
  101305. +float: 1
  101306. +ifloat: 1
  101307. +Test "Imaginary part of: cacosh (-0x1p-63 + 0.5 i)":
  101308. +float: 1
  101309. +ifloat: 1
  101310. +Test "Imaginary part of: cacosh (-0x1p-63 + 0x1p-63 i)":
  101311. +float: 1
  101312. +ifloat: 1
  101313. +Test "Imaginary part of: cacosh (-0x1p-63 - 0.0 i)":
  101314. +float: 1
  101315. +ifloat: 1
  101316. +Test "Real part of: cacosh (-0x1p-63 - 0.5 i)":
  101317. +float: 1
  101318. +ifloat: 1
  101319. +Test "Imaginary part of: cacosh (-0x1p-63 - 0.5 i)":
  101320. +float: 1
  101321. +ifloat: 1
  101322. +Test "Imaginary part of: cacosh (-0x1p-63 - 0x1p-63 i)":
  101323. +float: 1
  101324. +ifloat: 1
  101325. +Test "Real part of: cacosh (-1.0 + 0.5 i)":
  101326. +float: 1
  101327. +ifloat: 1
  101328. +Test "Real part of: cacosh (-1.0 + 0x1.fp-10 i)":
  101329. +float: 1
  101330. +ifloat: 1
  101331. +Test "Imaginary part of: cacosh (-1.0 + 0x1p50 i)":
  101332. +float: 1
  101333. +ifloat: 1
  101334. +Test "Real part of: cacosh (-1.0 - 0.5 i)":
  101335. +float: 1
  101336. +ifloat: 1
  101337. +Test "Real part of: cacosh (-1.0 - 0x1.fp-10 i)":
  101338. +float: 1
  101339. +ifloat: 1
  101340. +Test "Imaginary part of: cacosh (-1.0 - 0x1p50 i)":
  101341. +float: 1
  101342. +ifloat: 1
  101343. +Test "Imaginary part of: cacosh (-2 - 3 i)":
  101344. +float: 1
  101345. +ifloat: 1
  101346. +Test "Real part of: cacosh (0.25 + 1.0 i)":
  101347. +float: 1
  101348. +ifloat: 1
  101349. +Test "Real part of: cacosh (0.25 - 1.0 i)":
  101350. +float: 1
  101351. +ifloat: 1
  101352. +Test "Imaginary part of: cacosh (0.5 + +0 i)":
  101353. +double: 1
  101354. +idouble: 1
  101355. +Test "Imaginary part of: cacosh (0.5 + 0x1.fp-1025 i)":
  101356. +double: 1
  101357. +idouble: 1
  101358. +Test "Real part of: cacosh (0.5 + 0x1.fp-129 i)":
  101359. +double: 1
  101360. +idouble: 1
  101361. +Test "Imaginary part of: cacosh (0.5 + 0x1.fp-129 i)":
  101362. +double: 1
  101363. +idouble: 1
  101364. +Test "Real part of: cacosh (0.5 + 0x1p-105 i)":
  101365. +double: 1
  101366. +idouble: 1
  101367. +Test "Imaginary part of: cacosh (0.5 + 0x1p-105 i)":
  101368. +double: 1
  101369. +idouble: 1
  101370. +Test "Real part of: cacosh (0.5 + 0x1p-112 i)":
  101371. +double: 1
  101372. +idouble: 1
  101373. +Test "Imaginary part of: cacosh (0.5 + 0x1p-112 i)":
  101374. +double: 1
  101375. +idouble: 1
  101376. +Test "Real part of: cacosh (0.5 + 0x1p-23 i)":
  101377. +double: 1
  101378. +idouble: 1
  101379. +Test "Imaginary part of: cacosh (0.5 + 0x1p-52 i)":
  101380. +double: 1
  101381. +idouble: 1
  101382. +Test "Imaginary part of: cacosh (0.5 + 0x1p-63 i)":
  101383. +double: 1
  101384. +idouble: 1
  101385. +Test "Real part of: cacosh (0.5 + 1.0 i)":
  101386. +double: 1
  101387. +idouble: 1
  101388. +Test "Imaginary part of: cacosh (0.5 + 1.0 i)":
  101389. +float: 1
  101390. +ifloat: 1
  101391. +Test "Imaginary part of: cacosh (0.5 - 0 i)":
  101392. +double: 1
  101393. +idouble: 1
  101394. +Test "Imaginary part of: cacosh (0.5 - 0x1.fp-1025 i)":
  101395. +double: 1
  101396. +idouble: 1
  101397. +Test "Real part of: cacosh (0.5 - 0x1.fp-129 i)":
  101398. +double: 1
  101399. +idouble: 1
  101400. +Test "Imaginary part of: cacosh (0.5 - 0x1.fp-129 i)":
  101401. +double: 1
  101402. +idouble: 1
  101403. +Test "Real part of: cacosh (0.5 - 0x1p-105 i)":
  101404. +double: 1
  101405. +idouble: 1
  101406. +Test "Imaginary part of: cacosh (0.5 - 0x1p-105 i)":
  101407. +double: 1
  101408. +idouble: 1
  101409. +Test "Real part of: cacosh (0.5 - 0x1p-112 i)":
  101410. +double: 1
  101411. +idouble: 1
  101412. +Test "Imaginary part of: cacosh (0.5 - 0x1p-112 i)":
  101413. +double: 1
  101414. +idouble: 1
  101415. +Test "Real part of: cacosh (0.5 - 0x1p-23 i)":
  101416. +double: 1
  101417. +idouble: 1
  101418. +Test "Imaginary part of: cacosh (0.5 - 0x1p-52 i)":
  101419. +double: 1
  101420. +idouble: 1
  101421. +Test "Imaginary part of: cacosh (0.5 - 0x1p-63 i)":
  101422. +double: 1
  101423. +idouble: 1
  101424. +Test "Real part of: cacosh (0.5 - 1.0 i)":
  101425. +double: 1
  101426. +idouble: 1
  101427. +Test "Imaginary part of: cacosh (0.5 - 1.0 i)":
  101428. +float: 1
  101429. +ifloat: 1
  101430. +Test "Real part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i)":
  101431. +double: 1
  101432. +idouble: 1
  101433. +Test "Real part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i)":
  101434. +double: 1
  101435. +idouble: 1
  101436. +Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0.0 i)":
  101437. +float: 1
  101438. +ifloat: 1
  101439. +Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1.fp-129 i)":
  101440. +float: 1
  101441. +ifloat: 1
  101442. +Test "Real part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
  101443. +float: 2
  101444. +ifloat: 2
  101445. +Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
  101446. +float: 2
  101447. +ifloat: 2
  101448. +Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0.0 i)":
  101449. +float: 1
  101450. +ifloat: 1
  101451. +Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1.fp-129 i)":
  101452. +float: 1
  101453. +ifloat: 1
  101454. +Test "Real part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
  101455. +float: 2
  101456. +ifloat: 2
  101457. +Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
  101458. +float: 2
  101459. +ifloat: 2
  101460. +Test "Imaginary part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i)":
  101461. +double: 1
  101462. +idouble: 1
  101463. +Test "Imaginary part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i)":
  101464. +double: 1
  101465. +idouble: 1
  101466. +Test "Real part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
  101467. +float: 1
  101468. +ifloat: 1
  101469. +Test "Imaginary part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
  101470. +float: 2
  101471. +ifloat: 2
  101472. +Test "Real part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
  101473. +float: 1
  101474. +ifloat: 1
  101475. +Test "Imaginary part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
  101476. +float: 2
  101477. +ifloat: 2
  101478. +Test "Real part of: cacosh (0x1.fp-10 + 1.0 i)":
  101479. +double: 1
  101480. +idouble: 1
  101481. +Test "Real part of: cacosh (0x1.fp-10 - 1.0 i)":
  101482. +double: 1
  101483. +idouble: 1
  101484. +Test "Real part of: cacosh (0x1.fp-100 + 1.0 i)":
  101485. +double: 1
  101486. +float: 1
  101487. +idouble: 1
  101488. +ifloat: 1
  101489. +Test "Real part of: cacosh (0x1.fp-100 - 1.0 i)":
  101490. +double: 1
  101491. +float: 1
  101492. +idouble: 1
  101493. +ifloat: 1
  101494. +Test "Real part of: cacosh (0x1.fp-1000 + 1.0 i)":
  101495. +double: 1
  101496. +idouble: 1
  101497. +Test "Real part of: cacosh (0x1.fp-1000 - 1.0 i)":
  101498. +double: 1
  101499. +idouble: 1
  101500. +Test "Real part of: cacosh (0x1.fp-1025 + 1.0 i)":
  101501. +double: 1
  101502. +idouble: 1
  101503. +Test "Real part of: cacosh (0x1.fp-1025 + 1.5 i)":
  101504. +double: 1
  101505. +idouble: 1
  101506. +Test "Real part of: cacosh (0x1.fp-1025 - 1.0 i)":
  101507. +double: 1
  101508. +idouble: 1
  101509. +Test "Real part of: cacosh (0x1.fp-1025 - 1.5 i)":
  101510. +double: 1
  101511. +idouble: 1
  101512. +Test "Real part of: cacosh (0x1.fp-129 + 0.5 i)":
  101513. +float: 1
  101514. +ifloat: 1
  101515. +Test "Real part of: cacosh (0x1.fp-129 + 1.0 i)":
  101516. +double: 1
  101517. +float: 1
  101518. +idouble: 1
  101519. +ifloat: 1
  101520. +Test "Real part of: cacosh (0x1.fp-129 + 1.5 i)":
  101521. +double: 1
  101522. +idouble: 1
  101523. +Test "Real part of: cacosh (0x1.fp-129 - 0.5 i)":
  101524. +float: 1
  101525. +ifloat: 1
  101526. +Test "Real part of: cacosh (0x1.fp-129 - 1.0 i)":
  101527. +double: 1
  101528. +float: 1
  101529. +idouble: 1
  101530. +ifloat: 1
  101531. +Test "Real part of: cacosh (0x1.fp-129 - 1.5 i)":
  101532. +double: 1
  101533. +idouble: 1
  101534. +Test "Real part of: cacosh (0x1.fp-30 + 1.0 i)":
  101535. +double: 1
  101536. +float: 1
  101537. +idouble: 1
  101538. +ifloat: 1
  101539. +Test "Real part of: cacosh (0x1.fp-30 - 1.0 i)":
  101540. +double: 1
  101541. +float: 1
  101542. +idouble: 1
  101543. +ifloat: 1
  101544. +Test "Real part of: cacosh (0x1.fp1023 + 0x1.fp1023 i)":
  101545. +double: 1
  101546. +idouble: 1
  101547. +Test "Real part of: cacosh (0x1.fp127 + 0x1.fp127 i)":
  101548. +double: 1
  101549. +idouble: 1
  101550. +Test "Real part of: cacosh (0x1p-105 + 0.5 i)":
  101551. +float: 1
  101552. +ifloat: 1
  101553. +Test "Real part of: cacosh (0x1p-105 - 0.5 i)":
  101554. +float: 1
  101555. +ifloat: 1
  101556. +Test "Real part of: cacosh (0x1p-112 + 0.5 i)":
  101557. +float: 1
  101558. +ifloat: 1
  101559. +Test "Real part of: cacosh (0x1p-112 - 0.5 i)":
  101560. +float: 1
  101561. +ifloat: 1
  101562. +Test "Real part of: cacosh (0x1p-23 + 0.5 i)":
  101563. +float: 1
  101564. +ifloat: 1
  101565. +Test "Real part of: cacosh (0x1p-23 + 0x0.ffffffp0 i)":
  101566. +double: 1
  101567. +idouble: 1
  101568. +Test "Real part of: cacosh (0x1p-23 - 0.5 i)":
  101569. +float: 1
  101570. +ifloat: 1
  101571. +Test "Real part of: cacosh (0x1p-23 - 0x0.ffffffp0 i)":
  101572. +double: 1
  101573. +idouble: 1
  101574. +Test "Real part of: cacosh (0x1p-52 + 0.5 i)":
  101575. +float: 1
  101576. +ifloat: 1
  101577. +Test "Real part of: cacosh (0x1p-52 - 0.5 i)":
  101578. +float: 1
  101579. +ifloat: 1
  101580. +Test "Real part of: cacosh (0x1p-63 + 0.5 i)":
  101581. +float: 1
  101582. +ifloat: 1
  101583. +Test "Real part of: cacosh (0x1p-63 - 0.5 i)":
  101584. +float: 1
  101585. +ifloat: 1
  101586. +Test "Imaginary part of: cacosh (1.0 + 0.25 i)":
  101587. +double: 1
  101588. +idouble: 1
  101589. +Test "Real part of: cacosh (1.0 + 0.5 i)":
  101590. +float: 1
  101591. +ifloat: 1
  101592. +Test "Imaginary part of: cacosh (1.0 + 0.5 i)":
  101593. +float: 1
  101594. +ifloat: 1
  101595. +Test "Real part of: cacosh (1.0 + 0x1.fp-10 i)":
  101596. +float: 1
  101597. +ifloat: 1
  101598. +Test "Imaginary part of: cacosh (1.0 + 0x1.fp-10 i)":
  101599. +float: 2
  101600. +ifloat: 2
  101601. +Test "Imaginary part of: cacosh (1.0 - 0.25 i)":
  101602. +double: 1
  101603. +idouble: 1
  101604. +Test "Real part of: cacosh (1.0 - 0.5 i)":
  101605. +float: 1
  101606. +ifloat: 1
  101607. +Test "Imaginary part of: cacosh (1.0 - 0.5 i)":
  101608. +float: 1
  101609. +ifloat: 1
  101610. +Test "Real part of: cacosh (1.0 - 0x1.fp-10 i)":
  101611. +float: 1
  101612. +ifloat: 1
  101613. +Test "Imaginary part of: cacosh (1.0 - 0x1.fp-10 i)":
  101614. +float: 2
  101615. +ifloat: 2
  101616. +
  101617. +# casin
  101618. +Test "Imaginary part of: casin (+0 + 0.5 i)":
  101619. +float: 1
  101620. +ifloat: 1
  101621. +Test "Imaginary part of: casin (+0 + 1.0 i)":
  101622. +double: 1
  101623. +float: 1
  101624. +idouble: 1
  101625. +ifloat: 1
  101626. +Test "Imaginary part of: casin (+0 + 1.5 i)":
  101627. +double: 1
  101628. +idouble: 1
  101629. +Test "Imaginary part of: casin (+0 - 0.5 i)":
  101630. +float: 1
  101631. +ifloat: 1
  101632. +Test "Imaginary part of: casin (+0 - 1.0 i)":
  101633. +double: 1
  101634. +float: 1
  101635. +idouble: 1
  101636. +ifloat: 1
  101637. +Test "Imaginary part of: casin (+0 - 1.5 i)":
  101638. +double: 1
  101639. +idouble: 1
  101640. +Test "Imaginary part of: casin (-0 + 0.5 i)":
  101641. +float: 1
  101642. +ifloat: 1
  101643. +Test "Imaginary part of: casin (-0 + 1.0 i)":
  101644. +double: 1
  101645. +float: 1
  101646. +idouble: 1
  101647. +ifloat: 1
  101648. +Test "Imaginary part of: casin (-0 + 1.5 i)":
  101649. +double: 1
  101650. +idouble: 1
  101651. +Test "Imaginary part of: casin (-0 - 0.5 i)":
  101652. +float: 1
  101653. +ifloat: 1
  101654. +Test "Imaginary part of: casin (-0 - 1.0 i)":
  101655. +double: 1
  101656. +float: 1
  101657. +idouble: 1
  101658. +ifloat: 1
  101659. +Test "Imaginary part of: casin (-0 - 1.5 i)":
  101660. +double: 1
  101661. +idouble: 1
  101662. +Test "Imaginary part of: casin (-0.25 + 1.0 i)":
  101663. +float: 1
  101664. +ifloat: 1
  101665. +Test "Imaginary part of: casin (-0.25 - 1.0 i)":
  101666. +float: 1
  101667. +ifloat: 1
  101668. +Test "Imaginary part of: casin (-0.5 + 0x1.fp-129 i)":
  101669. +double: 1
  101670. +idouble: 1
  101671. +Test "Imaginary part of: casin (-0.5 + 0x1p-105 i)":
  101672. +double: 1
  101673. +idouble: 1
  101674. +Test "Imaginary part of: casin (-0.5 + 0x1p-112 i)":
  101675. +double: 1
  101676. +idouble: 1
  101677. +Test "Imaginary part of: casin (-0.5 + 0x1p-23 i)":
  101678. +double: 1
  101679. +idouble: 1
  101680. +Test "Imaginary part of: casin (-0.5 + 1.0 i)":
  101681. +double: 1
  101682. +idouble: 1
  101683. +Test "Imaginary part of: casin (-0.5 - 0x1.fp-129 i)":
  101684. +double: 1
  101685. +idouble: 1
  101686. +Test "Imaginary part of: casin (-0.5 - 0x1p-105 i)":
  101687. +double: 1
  101688. +idouble: 1
  101689. +Test "Imaginary part of: casin (-0.5 - 0x1p-112 i)":
  101690. +double: 1
  101691. +idouble: 1
  101692. +Test "Imaginary part of: casin (-0.5 - 0x1p-23 i)":
  101693. +double: 1
  101694. +idouble: 1
  101695. +Test "Imaginary part of: casin (-0.5 - 1.0 i)":
  101696. +double: 1
  101697. +idouble: 1
  101698. +Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
  101699. +double: 1
  101700. +idouble: 1
  101701. +Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
  101702. +double: 1
  101703. +idouble: 1
  101704. +Test "Imaginary part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
  101705. +float: 2
  101706. +ifloat: 2
  101707. +Test "Imaginary part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
  101708. +float: 2
  101709. +ifloat: 2
  101710. +Test "Imaginary part of: casin (-0x1.000002p0 + 0x1p-23 i)":
  101711. +float: 1
  101712. +ifloat: 1
  101713. +Test "Imaginary part of: casin (-0x1.000002p0 - 0x1p-23 i)":
  101714. +float: 1
  101715. +ifloat: 1
  101716. +Test "Real part of: casin (-0x1.fp-10 + 1.0 i)":
  101717. +float: 1
  101718. +ifloat: 1
  101719. +Test "Imaginary part of: casin (-0x1.fp-10 + 1.0 i)":
  101720. +double: 1
  101721. +idouble: 1
  101722. +Test "Real part of: casin (-0x1.fp-10 - 1.0 i)":
  101723. +float: 1
  101724. +ifloat: 1
  101725. +Test "Imaginary part of: casin (-0x1.fp-10 - 1.0 i)":
  101726. +double: 1
  101727. +idouble: 1
  101728. +Test "Imaginary part of: casin (-0x1.fp-100 + 1.0 i)":
  101729. +double: 1
  101730. +float: 1
  101731. +idouble: 1
  101732. +ifloat: 1
  101733. +Test "Imaginary part of: casin (-0x1.fp-100 - 1.0 i)":
  101734. +double: 1
  101735. +float: 1
  101736. +idouble: 1
  101737. +ifloat: 1
  101738. +Test "Imaginary part of: casin (-0x1.fp-1000 + 1.0 i)":
  101739. +double: 1
  101740. +idouble: 1
  101741. +Test "Imaginary part of: casin (-0x1.fp-1000 - 1.0 i)":
  101742. +double: 1
  101743. +idouble: 1
  101744. +Test "Imaginary part of: casin (-0x1.fp-1025 + 1.0 i)":
  101745. +double: 1
  101746. +idouble: 1
  101747. +Test "Imaginary part of: casin (-0x1.fp-1025 + 1.5 i)":
  101748. +double: 1
  101749. +idouble: 1
  101750. +Test "Imaginary part of: casin (-0x1.fp-1025 - 1.0 i)":
  101751. +double: 1
  101752. +idouble: 1
  101753. +Test "Imaginary part of: casin (-0x1.fp-1025 - 1.5 i)":
  101754. +double: 1
  101755. +idouble: 1
  101756. +Test "Imaginary part of: casin (-0x1.fp-129 + 0.5 i)":
  101757. +float: 1
  101758. +ifloat: 1
  101759. +Test "Imaginary part of: casin (-0x1.fp-129 + 1.0 i)":
  101760. +double: 1
  101761. +float: 1
  101762. +idouble: 1
  101763. +ifloat: 1
  101764. +Test "Imaginary part of: casin (-0x1.fp-129 + 1.5 i)":
  101765. +double: 1
  101766. +idouble: 1
  101767. +Test "Imaginary part of: casin (-0x1.fp-129 - 0.5 i)":
  101768. +float: 1
  101769. +ifloat: 1
  101770. +Test "Imaginary part of: casin (-0x1.fp-129 - 1.0 i)":
  101771. +double: 1
  101772. +float: 1
  101773. +idouble: 1
  101774. +ifloat: 1
  101775. +Test "Imaginary part of: casin (-0x1.fp-129 - 1.5 i)":
  101776. +double: 1
  101777. +idouble: 1
  101778. +Test "Imaginary part of: casin (-0x1.fp-30 + 1.0 i)":
  101779. +double: 1
  101780. +float: 1
  101781. +idouble: 1
  101782. +ifloat: 1
  101783. +Test "Imaginary part of: casin (-0x1.fp-30 - 1.0 i)":
  101784. +double: 1
  101785. +float: 1
  101786. +idouble: 1
  101787. +ifloat: 1
  101788. +Test "Imaginary part of: casin (-0x1p-105 + 0.5 i)":
  101789. +float: 1
  101790. +ifloat: 1
  101791. +Test "Imaginary part of: casin (-0x1p-105 - 0.5 i)":
  101792. +float: 1
  101793. +ifloat: 1
  101794. +Test "Imaginary part of: casin (-0x1p-112 + 0.5 i)":
  101795. +float: 1
  101796. +ifloat: 1
  101797. +Test "Imaginary part of: casin (-0x1p-112 - 0.5 i)":
  101798. +float: 1
  101799. +ifloat: 1
  101800. +Test "Real part of: casin (-0x1p-23 + 0.5 i)":
  101801. +double: 1
  101802. +float: 1
  101803. +idouble: 1
  101804. +ifloat: 1
  101805. +Test "Imaginary part of: casin (-0x1p-23 + 0.5 i)":
  101806. +float: 1
  101807. +ifloat: 1
  101808. +Test "Imaginary part of: casin (-0x1p-23 + 0x0.ffffffp0 i)":
  101809. +double: 1
  101810. +idouble: 1
  101811. +Test "Real part of: casin (-0x1p-23 + 0x1.000002p0 i)":
  101812. +double: 1
  101813. +float: 1
  101814. +idouble: 1
  101815. +ifloat: 1
  101816. +Test "Real part of: casin (-0x1p-23 - 0.5 i)":
  101817. +double: 1
  101818. +float: 1
  101819. +idouble: 1
  101820. +ifloat: 1
  101821. +Test "Imaginary part of: casin (-0x1p-23 - 0.5 i)":
  101822. +float: 1
  101823. +ifloat: 1
  101824. +Test "Imaginary part of: casin (-0x1p-23 - 0x0.ffffffp0 i)":
  101825. +double: 1
  101826. +idouble: 1
  101827. +Test "Real part of: casin (-0x1p-23 - 0x1.000002p0 i)":
  101828. +double: 1
  101829. +float: 1
  101830. +idouble: 1
  101831. +ifloat: 1
  101832. +Test "Imaginary part of: casin (-0x1p-52 + 0.5 i)":
  101833. +float: 1
  101834. +ifloat: 1
  101835. +Test "Imaginary part of: casin (-0x1p-52 - 0.5 i)":
  101836. +float: 1
  101837. +ifloat: 1
  101838. +Test "Imaginary part of: casin (-0x1p-63 + 0.5 i)":
  101839. +float: 1
  101840. +ifloat: 1
  101841. +Test "Imaginary part of: casin (-0x1p-63 - 0.5 i)":
  101842. +float: 1
  101843. +ifloat: 1
  101844. +Test "Real part of: casin (-1.0 + 0.25 i)":
  101845. +double: 1
  101846. +idouble: 1
  101847. +Test "Real part of: casin (-1.0 + 0.5 i)":
  101848. +float: 1
  101849. +ifloat: 1
  101850. +Test "Imaginary part of: casin (-1.0 + 0.5 i)":
  101851. +float: 1
  101852. +ifloat: 1
  101853. +Test "Imaginary part of: casin (-1.0 + 0x1.fp-10 i)":
  101854. +float: 1
  101855. +ifloat: 1
  101856. +Test "Real part of: casin (-1.0 - 0.25 i)":
  101857. +double: 1
  101858. +idouble: 1
  101859. +Test "Real part of: casin (-1.0 - 0.5 i)":
  101860. +float: 1
  101861. +ifloat: 1
  101862. +Test "Imaginary part of: casin (-1.0 - 0.5 i)":
  101863. +float: 1
  101864. +ifloat: 1
  101865. +Test "Imaginary part of: casin (-1.0 - 0x1.fp-10 i)":
  101866. +float: 1
  101867. +ifloat: 1
  101868. +Test "Imaginary part of: casin (0.25 + 1.0 i)":
  101869. +float: 1
  101870. +ifloat: 1
  101871. +Test "Imaginary part of: casin (0.25 - 1.0 i)":
  101872. +float: 1
  101873. +ifloat: 1
  101874. +Test "Imaginary part of: casin (0.5 + 0x1.fp-129 i)":
  101875. +double: 1
  101876. +idouble: 1
  101877. +Test "Imaginary part of: casin (0.5 + 0x1p-105 i)":
  101878. +double: 1
  101879. +idouble: 1
  101880. +Test "Imaginary part of: casin (0.5 + 0x1p-112 i)":
  101881. +double: 1
  101882. +idouble: 1
  101883. +Test "Imaginary part of: casin (0.5 + 0x1p-23 i)":
  101884. +double: 1
  101885. +idouble: 1
  101886. +Test "Imaginary part of: casin (0.5 + 1.0 i)":
  101887. +double: 1
  101888. +idouble: 1
  101889. +Test "Imaginary part of: casin (0.5 - 0x1.fp-129 i)":
  101890. +double: 1
  101891. +idouble: 1
  101892. +Test "Imaginary part of: casin (0.5 - 0x1p-105 i)":
  101893. +double: 1
  101894. +idouble: 1
  101895. +Test "Imaginary part of: casin (0.5 - 0x1p-112 i)":
  101896. +double: 1
  101897. +idouble: 1
  101898. +Test "Imaginary part of: casin (0.5 - 0x1p-23 i)":
  101899. +double: 1
  101900. +idouble: 1
  101901. +Test "Imaginary part of: casin (0.5 - 1.0 i)":
  101902. +double: 1
  101903. +idouble: 1
  101904. +Test "Real part of: casin (0.75 + 1.25 i)":
  101905. +double: 1
  101906. +float: 1
  101907. +idouble: 1
  101908. +ifloat: 1
  101909. +Test "Imaginary part of: casin (0x0.fffffffffffff8p0 + 0x1p-52 i)":
  101910. +double: 1
  101911. +idouble: 1
  101912. +Test "Imaginary part of: casin (0x0.fffffffffffff8p0 - 0x1p-52 i)":
  101913. +double: 1
  101914. +idouble: 1
  101915. +Test "Imaginary part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
  101916. +float: 2
  101917. +ifloat: 2
  101918. +Test "Imaginary part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
  101919. +float: 2
  101920. +ifloat: 2
  101921. +Test "Imaginary part of: casin (0x1.000002p0 + 0x1p-23 i)":
  101922. +float: 1
  101923. +ifloat: 1
  101924. +Test "Imaginary part of: casin (0x1.000002p0 - 0x1p-23 i)":
  101925. +float: 1
  101926. +ifloat: 1
  101927. +Test "Real part of: casin (0x1.fp-10 + 1.0 i)":
  101928. +float: 1
  101929. +ifloat: 1
  101930. +Test "Imaginary part of: casin (0x1.fp-10 + 1.0 i)":
  101931. +double: 1
  101932. +idouble: 1
  101933. +Test "Real part of: casin (0x1.fp-10 - 1.0 i)":
  101934. +float: 1
  101935. +ifloat: 1
  101936. +Test "Imaginary part of: casin (0x1.fp-10 - 1.0 i)":
  101937. +double: 1
  101938. +idouble: 1
  101939. +Test "Imaginary part of: casin (0x1.fp-100 + 1.0 i)":
  101940. +double: 1
  101941. +float: 1
  101942. +idouble: 1
  101943. +ifloat: 1
  101944. +Test "Imaginary part of: casin (0x1.fp-100 - 1.0 i)":
  101945. +double: 1
  101946. +float: 1
  101947. +idouble: 1
  101948. +ifloat: 1
  101949. +Test "Imaginary part of: casin (0x1.fp-1000 + 1.0 i)":
  101950. +double: 1
  101951. +idouble: 1
  101952. +Test "Imaginary part of: casin (0x1.fp-1000 - 1.0 i)":
  101953. +double: 1
  101954. +idouble: 1
  101955. +Test "Imaginary part of: casin (0x1.fp-1025 + 1.0 i)":
  101956. +double: 1
  101957. +idouble: 1
  101958. +Test "Imaginary part of: casin (0x1.fp-1025 + 1.5 i)":
  101959. +double: 1
  101960. +idouble: 1
  101961. +Test "Imaginary part of: casin (0x1.fp-1025 - 1.0 i)":
  101962. +double: 1
  101963. +idouble: 1
  101964. +Test "Imaginary part of: casin (0x1.fp-1025 - 1.5 i)":
  101965. +double: 1
  101966. +idouble: 1
  101967. +Test "Imaginary part of: casin (0x1.fp-129 + 0.5 i)":
  101968. +float: 1
  101969. +ifloat: 1
  101970. +Test "Imaginary part of: casin (0x1.fp-129 + 1.0 i)":
  101971. +double: 1
  101972. +float: 1
  101973. +idouble: 1
  101974. +ifloat: 1
  101975. +Test "Imaginary part of: casin (0x1.fp-129 + 1.5 i)":
  101976. +double: 1
  101977. +idouble: 1
  101978. +Test "Imaginary part of: casin (0x1.fp-129 - 0.5 i)":
  101979. +float: 1
  101980. +ifloat: 1
  101981. +Test "Imaginary part of: casin (0x1.fp-129 - 1.0 i)":
  101982. +double: 1
  101983. +float: 1
  101984. +idouble: 1
  101985. +ifloat: 1
  101986. +Test "Imaginary part of: casin (0x1.fp-129 - 1.5 i)":
  101987. +double: 1
  101988. +idouble: 1
  101989. +Test "Imaginary part of: casin (0x1.fp-30 + 1.0 i)":
  101990. +double: 1
  101991. +float: 1
  101992. +idouble: 1
  101993. +ifloat: 1
  101994. +Test "Imaginary part of: casin (0x1.fp-30 - 1.0 i)":
  101995. +double: 1
  101996. +float: 1
  101997. +idouble: 1
  101998. +ifloat: 1
  101999. +Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i)":
  102000. +double: 1
  102001. +idouble: 1
  102002. +Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i)":
  102003. +double: 1
  102004. +idouble: 1
  102005. +Test "Imaginary part of: casin (0x1p-105 + 0.5 i)":
  102006. +float: 1
  102007. +ifloat: 1
  102008. +Test "Imaginary part of: casin (0x1p-105 - 0.5 i)":
  102009. +float: 1
  102010. +ifloat: 1
  102011. +Test "Imaginary part of: casin (0x1p-112 + 0.5 i)":
  102012. +float: 1
  102013. +ifloat: 1
  102014. +Test "Imaginary part of: casin (0x1p-112 - 0.5 i)":
  102015. +float: 1
  102016. +ifloat: 1
  102017. +Test "Real part of: casin (0x1p-23 + 0.5 i)":
  102018. +double: 1
  102019. +float: 1
  102020. +idouble: 1
  102021. +ifloat: 1
  102022. +Test "Imaginary part of: casin (0x1p-23 + 0.5 i)":
  102023. +float: 1
  102024. +ifloat: 1
  102025. +Test "Imaginary part of: casin (0x1p-23 + 0x0.ffffffp0 i)":
  102026. +double: 1
  102027. +idouble: 1
  102028. +Test "Real part of: casin (0x1p-23 + 0x1.000002p0 i)":
  102029. +double: 1
  102030. +float: 1
  102031. +idouble: 1
  102032. +ifloat: 1
  102033. +Test "Real part of: casin (0x1p-23 - 0.5 i)":
  102034. +double: 1
  102035. +float: 1
  102036. +idouble: 1
  102037. +ifloat: 1
  102038. +Test "Imaginary part of: casin (0x1p-23 - 0.5 i)":
  102039. +float: 1
  102040. +ifloat: 1
  102041. +Test "Imaginary part of: casin (0x1p-23 - 0x0.ffffffp0 i)":
  102042. +double: 1
  102043. +idouble: 1
  102044. +Test "Real part of: casin (0x1p-23 - 0x1.000002p0 i)":
  102045. +double: 1
  102046. +float: 1
  102047. +idouble: 1
  102048. +ifloat: 1
  102049. +Test "Imaginary part of: casin (0x1p-52 + 0.5 i)":
  102050. +float: 1
  102051. +ifloat: 1
  102052. +Test "Imaginary part of: casin (0x1p-52 - 0.5 i)":
  102053. +float: 1
  102054. +ifloat: 1
  102055. +Test "Imaginary part of: casin (0x1p-63 + 0.5 i)":
  102056. +float: 1
  102057. +ifloat: 1
  102058. +Test "Imaginary part of: casin (0x1p-63 - 0.5 i)":
  102059. +float: 1
  102060. +ifloat: 1
  102061. +Test "Real part of: casin (1.0 + 0.25 i)":
  102062. +double: 1
  102063. +idouble: 1
  102064. +Test "Real part of: casin (1.0 + 0.5 i)":
  102065. +float: 1
  102066. +ifloat: 1
  102067. +Test "Imaginary part of: casin (1.0 + 0.5 i)":
  102068. +float: 1
  102069. +ifloat: 1
  102070. +Test "Imaginary part of: casin (1.0 + 0x1.fp-10 i)":
  102071. +float: 1
  102072. +ifloat: 1
  102073. +Test "Real part of: casin (1.0 - 0.25 i)":
  102074. +double: 1
  102075. +idouble: 1
  102076. +Test "Real part of: casin (1.0 - 0.5 i)":
  102077. +float: 1
  102078. +ifloat: 1
  102079. +Test "Imaginary part of: casin (1.0 - 0.5 i)":
  102080. +float: 1
  102081. +ifloat: 1
  102082. +Test "Imaginary part of: casin (1.0 - 0x1.fp-10 i)":
  102083. +float: 1
  102084. +ifloat: 1
  102085. +
  102086. +# casinh
  102087. +Test "Imaginary part of: casinh (-0.25 + 1.0 i)":
  102088. +double: 1
  102089. +idouble: 1
  102090. +Test "Imaginary part of: casinh (-0.25 - 1.0 i)":
  102091. +double: 1
  102092. +idouble: 1
  102093. +Test "Real part of: casinh (-0.5 + +0 i)":
  102094. +float: 1
  102095. +ifloat: 1
  102096. +Test "Real part of: casinh (-0.5 + 0x1.fp-129 i)":
  102097. +float: 1
  102098. +ifloat: 1
  102099. +Test "Real part of: casinh (-0.5 + 0x1p-105 i)":
  102100. +float: 1
  102101. +ifloat: 1
  102102. +Test "Real part of: casinh (-0.5 + 0x1p-112 i)":
  102103. +float: 1
  102104. +ifloat: 1
  102105. +Test "Real part of: casinh (-0.5 + 0x1p-23 i)":
  102106. +float: 1
  102107. +ifloat: 1
  102108. +Test "Imaginary part of: casinh (-0.5 + 0x1p-23 i)":
  102109. +double: 1
  102110. +float: 1
  102111. +idouble: 1
  102112. +ifloat: 1
  102113. +Test "Real part of: casinh (-0.5 + 0x1p-52 i)":
  102114. +float: 1
  102115. +ifloat: 1
  102116. +Test "Real part of: casinh (-0.5 + 0x1p-63 i)":
  102117. +float: 1
  102118. +ifloat: 1
  102119. +Test "Real part of: casinh (-0.5 + 1.0 i)":
  102120. +float: 1
  102121. +ifloat: 1
  102122. +Test "Imaginary part of: casinh (-0.5 + 1.0 i)":
  102123. +float: 1
  102124. +ifloat: 1
  102125. +Test "Real part of: casinh (-0.5 - 0 i)":
  102126. +float: 1
  102127. +ifloat: 1
  102128. +Test "Real part of: casinh (-0.5 - 0x1.fp-129 i)":
  102129. +float: 1
  102130. +ifloat: 1
  102131. +Test "Real part of: casinh (-0.5 - 0x1p-105 i)":
  102132. +float: 1
  102133. +ifloat: 1
  102134. +Test "Real part of: casinh (-0.5 - 0x1p-112 i)":
  102135. +float: 1
  102136. +ifloat: 1
  102137. +Test "Real part of: casinh (-0.5 - 0x1p-23 i)":
  102138. +float: 1
  102139. +ifloat: 1
  102140. +Test "Imaginary part of: casinh (-0.5 - 0x1p-23 i)":
  102141. +double: 1
  102142. +float: 1
  102143. +idouble: 1
  102144. +ifloat: 1
  102145. +Test "Real part of: casinh (-0.5 - 0x1p-52 i)":
  102146. +float: 1
  102147. +ifloat: 1
  102148. +Test "Real part of: casinh (-0.5 - 0x1p-63 i)":
  102149. +float: 1
  102150. +ifloat: 1
  102151. +Test "Real part of: casinh (-0.5 - 1.0 i)":
  102152. +float: 1
  102153. +ifloat: 1
  102154. +Test "Imaginary part of: casinh (-0.5 - 1.0 i)":
  102155. +float: 1
  102156. +ifloat: 1
  102157. +Test "Real part of: casinh (-0x0.ffffffp0 + 0x1p-23 i)":
  102158. +double: 1
  102159. +idouble: 1
  102160. +Test "Real part of: casinh (-0x0.ffffffp0 - 0x1p-23 i)":
  102161. +double: 1
  102162. +idouble: 1
  102163. +Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1p-23 i)":
  102164. +double: 1
  102165. +float: 1
  102166. +idouble: 1
  102167. +ifloat: 1
  102168. +Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1p-23 i)":
  102169. +double: 1
  102170. +float: 1
  102171. +idouble: 1
  102172. +ifloat: 1
  102173. +Test "Real part of: casinh (-0x1.fp-10 + 1.0 i)":
  102174. +float: 1
  102175. +ifloat: 1
  102176. +Test "Real part of: casinh (-0x1.fp-10 - 1.0 i)":
  102177. +float: 1
  102178. +ifloat: 1
  102179. +Test "Real part of: casinh (-0x1.fp-129 + 0.5 i)":
  102180. +double: 1
  102181. +idouble: 1
  102182. +Test "Real part of: casinh (-0x1.fp-129 - 0.5 i)":
  102183. +double: 1
  102184. +idouble: 1
  102185. +Test "Real part of: casinh (-0x1p-105 + 0.5 i)":
  102186. +double: 1
  102187. +idouble: 1
  102188. +Test "Real part of: casinh (-0x1p-105 - 0.5 i)":
  102189. +double: 1
  102190. +idouble: 1
  102191. +Test "Real part of: casinh (-0x1p-112 + 0.5 i)":
  102192. +double: 1
  102193. +idouble: 1
  102194. +Test "Real part of: casinh (-0x1p-112 - 0.5 i)":
  102195. +double: 1
  102196. +idouble: 1
  102197. +Test "Real part of: casinh (-0x1p-23 + 0.5 i)":
  102198. +double: 1
  102199. +idouble: 1
  102200. +Test "Real part of: casinh (-0x1p-23 + 0x0.ffffffp0 i)":
  102201. +float: 2
  102202. +ifloat: 2
  102203. +Test "Real part of: casinh (-0x1p-23 + 0x1.000002p0 i)":
  102204. +float: 1
  102205. +ifloat: 1
  102206. +Test "Real part of: casinh (-0x1p-23 - 0.5 i)":
  102207. +double: 1
  102208. +idouble: 1
  102209. +Test "Real part of: casinh (-0x1p-23 - 0x0.ffffffp0 i)":
  102210. +float: 2
  102211. +ifloat: 2
  102212. +Test "Real part of: casinh (-0x1p-23 - 0x1.000002p0 i)":
  102213. +float: 1
  102214. +ifloat: 1
  102215. +Test "Real part of: casinh (-0x1p-52 + 0x0.fffffffffffff8p0 i)":
  102216. +double: 1
  102217. +idouble: 1
  102218. +Test "Real part of: casinh (-0x1p-52 - 0x0.fffffffffffff8p0 i)":
  102219. +double: 1
  102220. +idouble: 1
  102221. +Test "Real part of: casinh (-1.0 + +0 i)":
  102222. +double: 1
  102223. +float: 1
  102224. +idouble: 1
  102225. +ifloat: 1
  102226. +Test "Real part of: casinh (-1.0 + 0.25 i)":
  102227. +float: 1
  102228. +ifloat: 1
  102229. +Test "Real part of: casinh (-1.0 + 0.5 i)":
  102230. +double: 1
  102231. +idouble: 1
  102232. +Test "Real part of: casinh (-1.0 + 0x1.fp-10 i)":
  102233. +double: 1
  102234. +idouble: 1
  102235. +Test "Imaginary part of: casinh (-1.0 + 0x1.fp-10 i)":
  102236. +float: 1
  102237. +ifloat: 1
  102238. +Test "Real part of: casinh (-1.0 + 0x1.fp-100 i)":
  102239. +double: 1
  102240. +float: 1
  102241. +idouble: 1
  102242. +ifloat: 1
  102243. +Test "Real part of: casinh (-1.0 + 0x1.fp-1000 i)":
  102244. +double: 1
  102245. +idouble: 1
  102246. +Test "Real part of: casinh (-1.0 + 0x1.fp-1025 i)":
  102247. +double: 1
  102248. +idouble: 1
  102249. +Test "Real part of: casinh (-1.0 + 0x1.fp-129 i)":
  102250. +double: 1
  102251. +float: 1
  102252. +idouble: 1
  102253. +ifloat: 1
  102254. +Test "Real part of: casinh (-1.0 + 0x1.fp-30 i)":
  102255. +double: 1
  102256. +float: 1
  102257. +idouble: 1
  102258. +ifloat: 1
  102259. +Test "Real part of: casinh (-1.0 - 0 i)":
  102260. +double: 1
  102261. +float: 1
  102262. +idouble: 1
  102263. +ifloat: 1
  102264. +Test "Real part of: casinh (-1.0 - 0.25 i)":
  102265. +float: 1
  102266. +ifloat: 1
  102267. +Test "Real part of: casinh (-1.0 - 0.5 i)":
  102268. +double: 1
  102269. +idouble: 1
  102270. +Test "Real part of: casinh (-1.0 - 0x1.fp-10 i)":
  102271. +double: 1
  102272. +idouble: 1
  102273. +Test "Imaginary part of: casinh (-1.0 - 0x1.fp-10 i)":
  102274. +float: 1
  102275. +ifloat: 1
  102276. +Test "Real part of: casinh (-1.0 - 0x1.fp-100 i)":
  102277. +double: 1
  102278. +float: 1
  102279. +idouble: 1
  102280. +ifloat: 1
  102281. +Test "Real part of: casinh (-1.0 - 0x1.fp-1000 i)":
  102282. +double: 1
  102283. +idouble: 1
  102284. +Test "Real part of: casinh (-1.0 - 0x1.fp-1025 i)":
  102285. +double: 1
  102286. +idouble: 1
  102287. +Test "Real part of: casinh (-1.0 - 0x1.fp-129 i)":
  102288. +double: 1
  102289. +float: 1
  102290. +idouble: 1
  102291. +ifloat: 1
  102292. +Test "Real part of: casinh (-1.0 - 0x1.fp-30 i)":
  102293. +double: 1
  102294. +float: 1
  102295. +idouble: 1
  102296. +ifloat: 1
  102297. +Test "Real part of: casinh (-1.5 + +0 i)":
  102298. +double: 1
  102299. +idouble: 1
  102300. +Test "Real part of: casinh (-1.5 + 0x1.fp-1025 i)":
  102301. +double: 1
  102302. +idouble: 1
  102303. +Test "Real part of: casinh (-1.5 + 0x1.fp-129 i)":
  102304. +double: 1
  102305. +idouble: 1
  102306. +Test "Real part of: casinh (-1.5 - 0 i)":
  102307. +double: 1
  102308. +idouble: 1
  102309. +Test "Real part of: casinh (-1.5 - 0x1.fp-1025 i)":
  102310. +double: 1
  102311. +idouble: 1
  102312. +Test "Real part of: casinh (-1.5 - 0x1.fp-129 i)":
  102313. +double: 1
  102314. +idouble: 1
  102315. +Test "Imaginary part of: casinh (0.25 + 1.0 i)":
  102316. +double: 1
  102317. +idouble: 1
  102318. +Test "Imaginary part of: casinh (0.25 - 1.0 i)":
  102319. +double: 1
  102320. +idouble: 1
  102321. +Test "Real part of: casinh (0.5 + +0 i)":
  102322. +float: 1
  102323. +ifloat: 1
  102324. +Test "Real part of: casinh (0.5 + 0x1.fp-129 i)":
  102325. +float: 1
  102326. +ifloat: 1
  102327. +Test "Real part of: casinh (0.5 + 0x1p-105 i)":
  102328. +float: 1
  102329. +ifloat: 1
  102330. +Test "Real part of: casinh (0.5 + 0x1p-112 i)":
  102331. +float: 1
  102332. +ifloat: 1
  102333. +Test "Real part of: casinh (0.5 + 0x1p-23 i)":
  102334. +float: 1
  102335. +ifloat: 1
  102336. +Test "Imaginary part of: casinh (0.5 + 0x1p-23 i)":
  102337. +double: 1
  102338. +float: 1
  102339. +idouble: 1
  102340. +ifloat: 1
  102341. +Test "Real part of: casinh (0.5 + 0x1p-52 i)":
  102342. +float: 1
  102343. +ifloat: 1
  102344. +Test "Real part of: casinh (0.5 + 0x1p-63 i)":
  102345. +float: 1
  102346. +ifloat: 1
  102347. +Test "Real part of: casinh (0.5 + 1.0 i)":
  102348. +float: 1
  102349. +ifloat: 1
  102350. +Test "Imaginary part of: casinh (0.5 + 1.0 i)":
  102351. +float: 1
  102352. +ifloat: 1
  102353. +Test "Real part of: casinh (0.5 - 0 i)":
  102354. +float: 1
  102355. +ifloat: 1
  102356. +Test "Real part of: casinh (0.5 - 0x1.fp-129 i)":
  102357. +float: 1
  102358. +ifloat: 1
  102359. +Test "Real part of: casinh (0.5 - 0x1p-105 i)":
  102360. +float: 1
  102361. +ifloat: 1
  102362. +Test "Real part of: casinh (0.5 - 0x1p-112 i)":
  102363. +float: 1
  102364. +ifloat: 1
  102365. +Test "Real part of: casinh (0.5 - 0x1p-23 i)":
  102366. +float: 1
  102367. +ifloat: 1
  102368. +Test "Imaginary part of: casinh (0.5 - 0x1p-23 i)":
  102369. +double: 1
  102370. +float: 1
  102371. +idouble: 1
  102372. +ifloat: 1
  102373. +Test "Real part of: casinh (0.5 - 0x1p-52 i)":
  102374. +float: 1
  102375. +ifloat: 1
  102376. +Test "Real part of: casinh (0.5 - 0x1p-63 i)":
  102377. +float: 1
  102378. +ifloat: 1
  102379. +Test "Real part of: casinh (0.5 - 1.0 i)":
  102380. +float: 1
  102381. +ifloat: 1
  102382. +Test "Imaginary part of: casinh (0.5 - 1.0 i)":
  102383. +float: 1
  102384. +ifloat: 1
  102385. +Test "Real part of: casinh (0.75 + 1.25 i)":
  102386. +float: 1
  102387. +ifloat: 1
  102388. +Test "Imaginary part of: casinh (0.75 + 1.25 i)":
  102389. +double: 1
  102390. +float: 1
  102391. +idouble: 1
  102392. +ifloat: 1
  102393. +Test "Real part of: casinh (0x0.ffffffp0 + 0x1p-23 i)":
  102394. +double: 1
  102395. +idouble: 1
  102396. +Test "Real part of: casinh (0x0.ffffffp0 - 0x1p-23 i)":
  102397. +double: 1
  102398. +idouble: 1
  102399. +Test "Imaginary part of: casinh (0x1.000002p0 + 0x1p-23 i)":
  102400. +double: 1
  102401. +float: 1
  102402. +idouble: 1
  102403. +ifloat: 1
  102404. +Test "Imaginary part of: casinh (0x1.000002p0 - 0x1p-23 i)":
  102405. +double: 1
  102406. +float: 1
  102407. +idouble: 1
  102408. +ifloat: 1
  102409. +Test "Real part of: casinh (0x1.fp-10 + 1.0 i)":
  102410. +float: 1
  102411. +ifloat: 1
  102412. +Test "Real part of: casinh (0x1.fp-10 - 1.0 i)":
  102413. +float: 1
  102414. +ifloat: 1
  102415. +Test "Real part of: casinh (0x1.fp-129 + 0.5 i)":
  102416. +double: 1
  102417. +idouble: 1
  102418. +Test "Real part of: casinh (0x1.fp-129 - 0.5 i)":
  102419. +double: 1
  102420. +idouble: 1
  102421. +Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i)":
  102422. +double: 1
  102423. +idouble: 1
  102424. +Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i)":
  102425. +double: 1
  102426. +idouble: 1
  102427. +Test "Real part of: casinh (0x1p-105 + 0.5 i)":
  102428. +double: 1
  102429. +idouble: 1
  102430. +Test "Real part of: casinh (0x1p-105 - 0.5 i)":
  102431. +double: 1
  102432. +idouble: 1
  102433. +Test "Real part of: casinh (0x1p-112 + 0.5 i)":
  102434. +double: 1
  102435. +idouble: 1
  102436. +Test "Real part of: casinh (0x1p-112 - 0.5 i)":
  102437. +double: 1
  102438. +idouble: 1
  102439. +Test "Real part of: casinh (0x1p-23 + 0.5 i)":
  102440. +double: 1
  102441. +idouble: 1
  102442. +Test "Real part of: casinh (0x1p-23 + 0x0.ffffffp0 i)":
  102443. +float: 2
  102444. +ifloat: 2
  102445. +Test "Real part of: casinh (0x1p-23 + 0x1.000002p0 i)":
  102446. +float: 1
  102447. +ifloat: 1
  102448. +Test "Real part of: casinh (0x1p-23 - 0.5 i)":
  102449. +double: 1
  102450. +idouble: 1
  102451. +Test "Real part of: casinh (0x1p-23 - 0x0.ffffffp0 i)":
  102452. +float: 2
  102453. +ifloat: 2
  102454. +Test "Real part of: casinh (0x1p-23 - 0x1.000002p0 i)":
  102455. +float: 1
  102456. +ifloat: 1
  102457. +Test "Real part of: casinh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
  102458. +double: 1
  102459. +idouble: 1
  102460. +Test "Real part of: casinh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
  102461. +double: 1
  102462. +idouble: 1
  102463. +Test "Real part of: casinh (1.0 + +0 i)":
  102464. +double: 1
  102465. +float: 1
  102466. +idouble: 1
  102467. +ifloat: 1
  102468. +Test "Real part of: casinh (1.0 + 0.25 i)":
  102469. +float: 1
  102470. +ifloat: 1
  102471. +Test "Real part of: casinh (1.0 + 0.5 i)":
  102472. +double: 1
  102473. +idouble: 1
  102474. +Test "Real part of: casinh (1.0 + 0x1.fp-10 i)":
  102475. +double: 1
  102476. +idouble: 1
  102477. +Test "Imaginary part of: casinh (1.0 + 0x1.fp-10 i)":
  102478. +float: 1
  102479. +ifloat: 1
  102480. +Test "Real part of: casinh (1.0 + 0x1.fp-100 i)":
  102481. +double: 1
  102482. +float: 1
  102483. +idouble: 1
  102484. +ifloat: 1
  102485. +Test "Real part of: casinh (1.0 + 0x1.fp-1000 i)":
  102486. +double: 1
  102487. +idouble: 1
  102488. +Test "Real part of: casinh (1.0 + 0x1.fp-1025 i)":
  102489. +double: 1
  102490. +idouble: 1
  102491. +Test "Real part of: casinh (1.0 + 0x1.fp-129 i)":
  102492. +double: 1
  102493. +float: 1
  102494. +idouble: 1
  102495. +ifloat: 1
  102496. +Test "Real part of: casinh (1.0 + 0x1.fp-30 i)":
  102497. +double: 1
  102498. +float: 1
  102499. +idouble: 1
  102500. +ifloat: 1
  102501. +Test "Real part of: casinh (1.0 - 0 i)":
  102502. +double: 1
  102503. +float: 1
  102504. +idouble: 1
  102505. +ifloat: 1
  102506. +Test "Real part of: casinh (1.0 - 0.25 i)":
  102507. +float: 1
  102508. +ifloat: 1
  102509. +Test "Real part of: casinh (1.0 - 0.5 i)":
  102510. +double: 1
  102511. +idouble: 1
  102512. +Test "Real part of: casinh (1.0 - 0x1.fp-10 i)":
  102513. +double: 1
  102514. +idouble: 1
  102515. +Test "Imaginary part of: casinh (1.0 - 0x1.fp-10 i)":
  102516. +float: 1
  102517. +ifloat: 1
  102518. +Test "Real part of: casinh (1.0 - 0x1.fp-100 i)":
  102519. +double: 1
  102520. +float: 1
  102521. +idouble: 1
  102522. +ifloat: 1
  102523. +Test "Real part of: casinh (1.0 - 0x1.fp-1000 i)":
  102524. +double: 1
  102525. +idouble: 1
  102526. +Test "Real part of: casinh (1.0 - 0x1.fp-1025 i)":
  102527. +double: 1
  102528. +idouble: 1
  102529. +Test "Real part of: casinh (1.0 - 0x1.fp-129 i)":
  102530. +double: 1
  102531. +float: 1
  102532. +idouble: 1
  102533. +ifloat: 1
  102534. +Test "Real part of: casinh (1.0 - 0x1.fp-30 i)":
  102535. +double: 1
  102536. +float: 1
  102537. +idouble: 1
  102538. +ifloat: 1
  102539. +Test "Real part of: casinh (1.5 + +0 i)":
  102540. +double: 1
  102541. +idouble: 1
  102542. +Test "Real part of: casinh (1.5 + 0x1.fp-1025 i)":
  102543. +double: 1
  102544. +idouble: 1
  102545. +Test "Real part of: casinh (1.5 + 0x1.fp-129 i)":
  102546. +double: 1
  102547. +idouble: 1
  102548. +Test "Real part of: casinh (1.5 - 0 i)":
  102549. +double: 1
  102550. +idouble: 1
  102551. +Test "Real part of: casinh (1.5 - 0x1.fp-1025 i)":
  102552. +double: 1
  102553. +idouble: 1
  102554. +Test "Real part of: casinh (1.5 - 0x1.fp-129 i)":
  102555. +double: 1
  102556. +idouble: 1
  102557. +
  102558. +# catan
  102559. +Test "Imaginary part of: catan (-0x0.fffffffffffff8p0 + 0x1p-27 i)":
  102560. +double: 1
  102561. +idouble: 1
  102562. +Test "Imaginary part of: catan (-0x0.ffffffp0 + 0x1p-13 i)":
  102563. +double: 1
  102564. +float: 1
  102565. +idouble: 1
  102566. +ifloat: 1
  102567. +Test "Imaginary part of: catan (-0x1.0000000000001p0 - 0x1p-27 i)":
  102568. +double: 1
  102569. +idouble: 1
  102570. +Test "Real part of: catan (-0x1.000002p0 + 0x1p-126 i)":
  102571. +float: 1
  102572. +ifloat: 1
  102573. +Test "Real part of: catan (-0x1.000002p0 + 0x1p-13 i)":
  102574. +float: 1
  102575. +ifloat: 1
  102576. +Test "Real part of: catan (-0x1.000002p0 - 0x1p-126 i)":
  102577. +float: 1
  102578. +ifloat: 1
  102579. +Test "Real part of: catan (-0x1.000002p0 - 0x1p-13 i)":
  102580. +float: 1
  102581. +ifloat: 1
  102582. +Test "Imaginary part of: catan (-0x1.000002p0 - 0x1p-13 i)":
  102583. +double: 1
  102584. +idouble: 1
  102585. +Test "Imaginary part of: catan (-0x1.fp1023 + 0x1.fp1023 i)":
  102586. +double: 1
  102587. +idouble: 1
  102588. +Test "Imaginary part of: catan (-0x1.fp1023 - 0x1.fp1023 i)":
  102589. +double: 1
  102590. +idouble: 1
  102591. +Test "Imaginary part of: catan (-0x1.fp127 + 0x1.fp127 i)":
  102592. +double: 1
  102593. +idouble: 1
  102594. +Test "Imaginary part of: catan (-0x1.fp127 - 0x1.fp127 i)":
  102595. +double: 1
  102596. +idouble: 1
  102597. +Test "Imaginary part of: catan (-0x1p-1020 + 1.0 i)":
  102598. +double: 1
  102599. +idouble: 1
  102600. +Test "Imaginary part of: catan (-0x1p-1020 - 1.0 i)":
  102601. +double: 1
  102602. +idouble: 1
  102603. +Test "Real part of: catan (-0x1p-13 + 0x1.000002p0 i)":
  102604. +float: 1
  102605. +ifloat: 1
  102606. +Test "Real part of: catan (-0x1p-13 + 1.0 i)":
  102607. +float: 1
  102608. +ifloat: 1
  102609. +Test "Real part of: catan (-0x1p-13 - 0x1.000002p0 i)":
  102610. +float: 1
  102611. +ifloat: 1
  102612. +Test "Imaginary part of: catan (-0x1p-13 - 0x1.000002p0 i)":
  102613. +float: 1
  102614. +ifloat: 1
  102615. +Test "Real part of: catan (-0x1p-13 - 1.0 i)":
  102616. +float: 1
  102617. +ifloat: 1
  102618. +Test "Imaginary part of: catan (-0x1p-54 + 1.0 i)":
  102619. +float: 1
  102620. +ifloat: 1
  102621. +Test "Imaginary part of: catan (-0x1p-54 - 1.0 i)":
  102622. +float: 1
  102623. +ifloat: 1
  102624. +Test "Imaginary part of: catan (-0x1p-57 + 1.0 i)":
  102625. +float: 1
  102626. +ifloat: 1
  102627. +Test "Imaginary part of: catan (-0x1p-57 - 1.0 i)":
  102628. +float: 1
  102629. +ifloat: 1
  102630. +Test "Real part of: catan (-1.0 + 0x1p-13 i)":
  102631. +float: 1
  102632. +ifloat: 1
  102633. +Test "Real part of: catan (-1.0 - 0x1p-13 i)":
  102634. +float: 1
  102635. +ifloat: 1
  102636. +Test "Imaginary part of: catan (-2 - 3 i)":
  102637. +double: 1
  102638. +float: 1
  102639. +idouble: 1
  102640. +ifloat: 1
  102641. +Test "Imaginary part of: catan (0x0.fffffffffffff8p0 + 0x1p-27 i)":
  102642. +double: 1
  102643. +idouble: 1
  102644. +Test "Imaginary part of: catan (0x0.ffffffp0 + 0x1p-13 i)":
  102645. +double: 1
  102646. +float: 1
  102647. +idouble: 1
  102648. +ifloat: 1
  102649. +Test "Imaginary part of: catan (0x1.0000000000001p0 - 0x1p-27 i)":
  102650. +double: 1
  102651. +idouble: 1
  102652. +Test "Real part of: catan (0x1.000002p0 + 0x1p-126 i)":
  102653. +float: 1
  102654. +ifloat: 1
  102655. +Test "Real part of: catan (0x1.000002p0 + 0x1p-13 i)":
  102656. +float: 1
  102657. +ifloat: 1
  102658. +Test "Real part of: catan (0x1.000002p0 - 0x1p-126 i)":
  102659. +float: 1
  102660. +ifloat: 1
  102661. +Test "Real part of: catan (0x1.000002p0 - 0x1p-13 i)":
  102662. +float: 1
  102663. +ifloat: 1
  102664. +Test "Imaginary part of: catan (0x1.000002p0 - 0x1p-13 i)":
  102665. +double: 1
  102666. +idouble: 1
  102667. +Test "Imaginary part of: catan (0x1.fp1023 + 0x1.fp1023 i)":
  102668. +double: 1
  102669. +idouble: 1
  102670. +Test "Imaginary part of: catan (0x1.fp1023 - 0x1.fp1023 i)":
  102671. +double: 1
  102672. +idouble: 1
  102673. +Test "Imaginary part of: catan (0x1.fp127 + 0x1.fp127 i)":
  102674. +double: 1
  102675. +idouble: 1
  102676. +Test "Imaginary part of: catan (0x1.fp127 - 0x1.fp127 i)":
  102677. +double: 1
  102678. +idouble: 1
  102679. +Test "Imaginary part of: catan (0x1p-1020 + 1.0 i)":
  102680. +double: 1
  102681. +idouble: 1
  102682. +Test "Imaginary part of: catan (0x1p-1020 - 1.0 i)":
  102683. +double: 1
  102684. +idouble: 1
  102685. +Test "Real part of: catan (0x1p-13 + 0x1.000002p0 i)":
  102686. +float: 1
  102687. +ifloat: 1
  102688. +Test "Real part of: catan (0x1p-13 + 1.0 i)":
  102689. +float: 1
  102690. +ifloat: 1
  102691. +Test "Real part of: catan (0x1p-13 - 0x1.000002p0 i)":
  102692. +float: 1
  102693. +ifloat: 1
  102694. +Test "Imaginary part of: catan (0x1p-13 - 0x1.000002p0 i)":
  102695. +float: 1
  102696. +ifloat: 1
  102697. +Test "Real part of: catan (0x1p-13 - 1.0 i)":
  102698. +float: 1
  102699. +ifloat: 1
  102700. +Test "Imaginary part of: catan (0x1p-54 + 1.0 i)":
  102701. +float: 1
  102702. +ifloat: 1
  102703. +Test "Imaginary part of: catan (0x1p-54 - 1.0 i)":
  102704. +float: 1
  102705. +ifloat: 1
  102706. +Test "Imaginary part of: catan (0x1p-57 + 1.0 i)":
  102707. +float: 1
  102708. +ifloat: 1
  102709. +Test "Imaginary part of: catan (0x1p-57 - 1.0 i)":
  102710. +float: 1
  102711. +ifloat: 1
  102712. +Test "Real part of: catan (1.0 + 0x1p-13 i)":
  102713. +float: 1
  102714. +ifloat: 1
  102715. +Test "Real part of: catan (1.0 - 0x1p-13 i)":
  102716. +float: 1
  102717. +ifloat: 1
  102718. +
  102719. +# catanh
  102720. +Test "Real part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
  102721. +float: 1
  102722. +ifloat: 1
  102723. +Test "Imaginary part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
  102724. +float: 1
  102725. +ifloat: 1
  102726. +Test "Real part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
  102727. +float: 1
  102728. +ifloat: 1
  102729. +Test "Imaginary part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
  102730. +float: 1
  102731. +ifloat: 1
  102732. +Test "Real part of: catanh (-0x1.fp1023 + 0x1.fp1023 i)":
  102733. +double: 1
  102734. +idouble: 1
  102735. +Test "Real part of: catanh (-0x1.fp1023 - 0x1.fp1023 i)":
  102736. +double: 1
  102737. +idouble: 1
  102738. +Test "Real part of: catanh (-0x1.fp127 + 0x1.fp127 i)":
  102739. +double: 1
  102740. +idouble: 1
  102741. +Test "Real part of: catanh (-0x1.fp127 - 0x1.fp127 i)":
  102742. +double: 1
  102743. +idouble: 1
  102744. +Test "Imaginary part of: catanh (-0x1p-126 + 0x1.000002p0 i)":
  102745. +float: 1
  102746. +ifloat: 1
  102747. +Test "Imaginary part of: catanh (-0x1p-126 - 0x1.000002p0 i)":
  102748. +float: 1
  102749. +ifloat: 1
  102750. +Test "Real part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
  102751. +double: 1
  102752. +idouble: 1
  102753. +Test "Imaginary part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
  102754. +float: 1
  102755. +ifloat: 1
  102756. +Test "Imaginary part of: catanh (-0x1p-13 + 1.0 i)":
  102757. +float: 1
  102758. +ifloat: 1
  102759. +Test "Real part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
  102760. +double: 1
  102761. +idouble: 1
  102762. +Test "Imaginary part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
  102763. +float: 1
  102764. +ifloat: 1
  102765. +Test "Imaginary part of: catanh (-0x1p-13 - 1.0 i)":
  102766. +float: 1
  102767. +ifloat: 1
  102768. +Test "Real part of: catanh (-0x1p-27 + 0x1.0000000000001p0 i)":
  102769. +double: 1
  102770. +idouble: 1
  102771. +Test "Real part of: catanh (-0x1p-27 - 0x1.0000000000001p0 i)":
  102772. +double: 1
  102773. +idouble: 1
  102774. +Test "Real part of: catanh (-1.0 + 0x1p-1020 i)":
  102775. +double: 1
  102776. +idouble: 1
  102777. +Test "Imaginary part of: catanh (-1.0 + 0x1p-13 i)":
  102778. +float: 1
  102779. +ifloat: 1
  102780. +Test "Real part of: catanh (-1.0 + 0x1p-54 i)":
  102781. +float: 1
  102782. +ifloat: 1
  102783. +Test "Real part of: catanh (-1.0 + 0x1p-57 i)":
  102784. +float: 1
  102785. +ifloat: 1
  102786. +Test "Real part of: catanh (-1.0 - 0x1p-1020 i)":
  102787. +double: 1
  102788. +idouble: 1
  102789. +Test "Imaginary part of: catanh (-1.0 - 0x1p-13 i)":
  102790. +float: 1
  102791. +ifloat: 1
  102792. +Test "Real part of: catanh (-1.0 - 0x1p-54 i)":
  102793. +float: 1
  102794. +ifloat: 1
  102795. +Test "Real part of: catanh (-1.0 - 0x1p-57 i)":
  102796. +float: 1
  102797. +ifloat: 1
  102798. +Test "Real part of: catanh (-2 - 3 i)":
  102799. +double: 1
  102800. +idouble: 1
  102801. +Test "Imaginary part of: catanh (0x1.000002p0 + 0x1p-13 i)":
  102802. +float: 1
  102803. +ifloat: 1
  102804. +Test "Imaginary part of: catanh (0x1.000002p0 - 0x1p-13 i)":
  102805. +float: 1
  102806. +ifloat: 1
  102807. +Test "Real part of: catanh (0x1.fp1023 + 0x1.fp1023 i)":
  102808. +double: 1
  102809. +idouble: 1
  102810. +Test "Real part of: catanh (0x1.fp1023 - 0x1.fp1023 i)":
  102811. +double: 1
  102812. +idouble: 1
  102813. +Test "Real part of: catanh (0x1.fp127 + 0x1.fp127 i)":
  102814. +double: 1
  102815. +idouble: 1
  102816. +Test "Real part of: catanh (0x1.fp127 - 0x1.fp127 i)":
  102817. +double: 1
  102818. +idouble: 1
  102819. +Test "Imaginary part of: catanh (0x1p-126 + 0x1.000002p0 i)":
  102820. +float: 1
  102821. +ifloat: 1
  102822. +Test "Imaginary part of: catanh (0x1p-126 - 0x1.000002p0 i)":
  102823. +float: 1
  102824. +ifloat: 1
  102825. +Test "Real part of: catanh (0x1p-13 + 0x0.ffffffp0 i)":
  102826. +double: 1
  102827. +float: 1
  102828. +idouble: 1
  102829. +ifloat: 1
  102830. +Test "Imaginary part of: catanh (0x1p-13 + 0x1.000002p0 i)":
  102831. +float: 1
  102832. +ifloat: 1
  102833. +Test "Imaginary part of: catanh (0x1p-13 + 1.0 i)":
  102834. +float: 1
  102835. +ifloat: 1
  102836. +Test "Real part of: catanh (0x1p-13 - 0x0.ffffffp0 i)":
  102837. +double: 1
  102838. +float: 1
  102839. +idouble: 1
  102840. +ifloat: 1
  102841. +Test "Imaginary part of: catanh (0x1p-13 - 0x1.000002p0 i)":
  102842. +float: 1
  102843. +ifloat: 1
  102844. +Test "Imaginary part of: catanh (0x1p-13 - 1.0 i)":
  102845. +float: 1
  102846. +ifloat: 1
  102847. +Test "Real part of: catanh (0x1p-27 + 0x0.fffffffffffff8p0 i)":
  102848. +double: 1
  102849. +idouble: 1
  102850. +Test "Real part of: catanh (0x1p-27 - 0x0.fffffffffffff8p0 i)":
  102851. +double: 1
  102852. +idouble: 1
  102853. +Test "Real part of: catanh (1.0 + 0x1p-1020 i)":
  102854. +double: 1
  102855. +idouble: 1
  102856. +Test "Imaginary part of: catanh (1.0 + 0x1p-13 i)":
  102857. +float: 1
  102858. +ifloat: 1
  102859. +Test "Real part of: catanh (1.0 + 0x1p-54 i)":
  102860. +float: 1
  102861. +ifloat: 1
  102862. +Test "Real part of: catanh (1.0 + 0x1p-57 i)":
  102863. +float: 1
  102864. +ifloat: 1
  102865. +Test "Real part of: catanh (1.0 - 0x1p-1020 i)":
  102866. +double: 1
  102867. +idouble: 1
  102868. +Test "Imaginary part of: catanh (1.0 - 0x1p-13 i)":
  102869. +float: 1
  102870. +ifloat: 1
  102871. +Test "Real part of: catanh (1.0 - 0x1p-54 i)":
  102872. +float: 1
  102873. +ifloat: 1
  102874. +Test "Real part of: catanh (1.0 - 0x1p-57 i)":
  102875. +float: 1
  102876. +ifloat: 1
  102877. +
  102878. +# cbrt
  102879. +Test "cbrt (-27.0)":
  102880. +double: 1
  102881. +idouble: 1
  102882. +Test "cbrt (0.75)":
  102883. +double: 1
  102884. +idouble: 1
  102885. +Test "cbrt (0.9921875)":
  102886. +double: 1
  102887. +idouble: 1
  102888. +
  102889. +# ccos
  102890. +Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
  102891. +double: 1
  102892. +idouble: 1
  102893. +Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
  102894. +float: 1
  102895. +ifloat: 1
  102896. +Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
  102897. +double: 1
  102898. +idouble: 1
  102899. +Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
  102900. +float: 1
  102901. +ifloat: 1
  102902. +Test "Imaginary part of: ccos (-2 - 3 i)":
  102903. +float: 1
  102904. +ifloat: 1
  102905. +Test "Real part of: ccos (0.75 + 1.25 i)":
  102906. +double: 1
  102907. +float: 1
  102908. +idouble: 1
  102909. +ifloat: 1
  102910. +Test "Imaginary part of: ccos (0.75 + 1.25 i)":
  102911. +float: 1
  102912. +ifloat: 1
  102913. +Test "Imaginary part of: ccos (0.75 + 710.5 i)":
  102914. +double: 1
  102915. +idouble: 1
  102916. +Test "Imaginary part of: ccos (0.75 + 89.5 i)":
  102917. +float: 1
  102918. +ifloat: 1
  102919. +Test "Imaginary part of: ccos (0.75 - 710.5 i)":
  102920. +double: 1
  102921. +idouble: 1
  102922. +Test "Imaginary part of: ccos (0.75 - 89.5 i)":
  102923. +float: 1
  102924. +ifloat: 1
  102925. +Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
  102926. +double: 1
  102927. +idouble: 1
  102928. +
  102929. +# ccosh
  102930. +Test "Real part of: ccosh (-2 - 3 i)":
  102931. +float: 1
  102932. +ifloat: 1
  102933. +Test "Imaginary part of: ccosh (-2 - 3 i)":
  102934. +float: 1
  102935. +ifloat: 1
  102936. +Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
  102937. +double: 1
  102938. +idouble: 1
  102939. +Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
  102940. +double: 1
  102941. +idouble: 1
  102942. +Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
  102943. +float: 1
  102944. +ifloat: 1
  102945. +Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
  102946. +float: 1
  102947. +ifloat: 1
  102948. +Test "Real part of: ccosh (0.75 + 1.25 i)":
  102949. +double: 1
  102950. +float: 1
  102951. +idouble: 1
  102952. +ifloat: 1
  102953. +Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
  102954. +float: 1
  102955. +ifloat: 1
  102956. +Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
  102957. +double: 1
  102958. +idouble: 1
  102959. +Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
  102960. +double: 1
  102961. +idouble: 1
  102962. +Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
  102963. +double: 1
  102964. +idouble: 1
  102965. +Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
  102966. +float: 1
  102967. +ifloat: 1
  102968. +Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
  102969. +float: 1
  102970. +ifloat: 1
  102971. +
  102972. +# cexp
  102973. +Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
  102974. +float: 1
  102975. +ifloat: 1
  102976. +Test "Imaginary part of: cexp (-95 + 0.75 i)":
  102977. +double: 1
  102978. +idouble: 1
  102979. +Test "Real part of: cexp (0.75 + 1.25 i)":
  102980. +float: 1
  102981. +ifloat: 1
  102982. +Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
  102983. +double: 1
  102984. +idouble: 1
  102985. +Test "Real part of: cexp (50 + 0x1p127 i)":
  102986. +double: 2
  102987. +float: 1
  102988. +idouble: 2
  102989. +ifloat: 1
  102990. +Test "Imaginary part of: cexp (50 + 0x1p127 i)":
  102991. +double: 1
  102992. +idouble: 1
  102993. +Test "Real part of: cexp (500 + 0x1p1023 i)":
  102994. +double: 1
  102995. +idouble: 1
  102996. +Test "Real part of: cexp (709.8125 + 0.75 i)":
  102997. +double: 1
  102998. +idouble: 1
  102999. +Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
  103000. +double: 1
  103001. +idouble: 1
  103002. +Test "Real part of: cexp (88.75 + 0.75 i)":
  103003. +float: 1
  103004. +ifloat: 1
  103005. +Test "Imaginary part of: cexp (88.75 + 0.75 i)":
  103006. +float: 2
  103007. +ifloat: 2
  103008. +
  103009. +# clog
  103010. +Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
  103011. +double: 1
  103012. +idouble: 1
  103013. +Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
  103014. +double: 1
  103015. +idouble: 1
  103016. +Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
  103017. +float: 1
  103018. +ifloat: 1
  103019. +Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
  103020. +float: 1
  103021. +ifloat: 1
  103022. +Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
  103023. +float: 1
  103024. +ifloat: 1
  103025. +Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
  103026. +float: 1
  103027. +ifloat: 1
  103028. +Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
  103029. +float: 1
  103030. +ifloat: 1
  103031. +Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
  103032. +float: 1
  103033. +ifloat: 1
  103034. +Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i)":
  103035. +float: 1
  103036. +ifloat: 1
  103037. +Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
  103038. +float: 1
  103039. +ifloat: 1
  103040. +Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
  103041. +float: 1
  103042. +ifloat: 1
  103043. +Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
  103044. +float: 1
  103045. +ifloat: 1
  103046. +Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
  103047. +float: 1
  103048. +ifloat: 1
  103049. +Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
  103050. +double: 1
  103051. +idouble: 1
  103052. +Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
  103053. +float: 1
  103054. +ifloat: 1
  103055. +Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
  103056. +float: 1
  103057. +ifloat: 1
  103058. +Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
  103059. +float: 1
  103060. +ifloat: 1
  103061. +Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
  103062. +float: 1
  103063. +ifloat: 1
  103064. +Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
  103065. +float: 1
  103066. +ifloat: 1
  103067. +
  103068. +# clog10
  103069. +Test "Imaginary part of: clog10 (-0 + inf i)":
  103070. +double: 1
  103071. +float: 1
  103072. +idouble: 1
  103073. +ifloat: 1
  103074. +Test "Imaginary part of: clog10 (-0 - inf i)":
  103075. +double: 1
  103076. +float: 1
  103077. +idouble: 1
  103078. +ifloat: 1
  103079. +Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
  103080. +double: 2
  103081. +idouble: 2
  103082. +Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
  103083. +double: 1
  103084. +idouble: 1
  103085. +Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
  103086. +double: 2
  103087. +idouble: 2
  103088. +Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
  103089. +double: 1
  103090. +idouble: 1
  103091. +Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
  103092. +double: 1
  103093. +idouble: 1
  103094. +Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
  103095. +double: 1
  103096. +idouble: 1
  103097. +Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
  103098. +double: 1
  103099. +float: 1
  103100. +idouble: 1
  103101. +ifloat: 1
  103102. +Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
  103103. +double: 1
  103104. +float: 1
  103105. +idouble: 1
  103106. +ifloat: 1
  103107. +Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i)":
  103108. +double: 1
  103109. +idouble: 1
  103110. +Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i)":
  103111. +double: 1
  103112. +idouble: 1
  103113. +Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
  103114. +double: 1
  103115. +idouble: 1
  103116. +Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
  103117. +double: 1
  103118. +idouble: 1
  103119. +Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
  103120. +double: 1
  103121. +idouble: 1
  103122. +Test "Imaginary part of: clog10 (-2 - 3 i)":
  103123. +double: 1
  103124. +idouble: 1
  103125. +Test "Imaginary part of: clog10 (-3 + inf i)":
  103126. +double: 1
  103127. +float: 1
  103128. +idouble: 1
  103129. +ifloat: 1
  103130. +Test "Imaginary part of: clog10 (-3 - inf i)":
  103131. +double: 1
  103132. +float: 1
  103133. +idouble: 1
  103134. +ifloat: 1
  103135. +Test "Imaginary part of: clog10 (-inf + 0 i)":
  103136. +double: 1
  103137. +float: 1
  103138. +idouble: 1
  103139. +ifloat: 1
  103140. +Test "Imaginary part of: clog10 (-inf + 1 i)":
  103141. +double: 1
  103142. +float: 1
  103143. +idouble: 1
  103144. +ifloat: 1
  103145. +Test "Imaginary part of: clog10 (-inf + inf i)":
  103146. +double: 1
  103147. +idouble: 1
  103148. +Test "Imaginary part of: clog10 (-inf - 0 i)":
  103149. +double: 1
  103150. +float: 1
  103151. +idouble: 1
  103152. +ifloat: 1
  103153. +Test "Imaginary part of: clog10 (-inf - 1 i)":
  103154. +double: 1
  103155. +float: 1
  103156. +idouble: 1
  103157. +ifloat: 1
  103158. +Test "Imaginary part of: clog10 (0 + inf i)":
  103159. +double: 1
  103160. +float: 1
  103161. +idouble: 1
  103162. +ifloat: 1
  103163. +Test "Imaginary part of: clog10 (0 - inf i)":
  103164. +double: 1
  103165. +float: 1
  103166. +idouble: 1
  103167. +ifloat: 1
  103168. +Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
  103169. +double: 1
  103170. +idouble: 1
  103171. +Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
  103172. +double: 1
  103173. +float: 2
  103174. +idouble: 1
  103175. +ifloat: 2
  103176. +Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
  103177. +float: 1
  103178. +ifloat: 1
  103179. +Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
  103180. +double: 1
  103181. +idouble: 1
  103182. +Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
  103183. +float: 1
  103184. +ifloat: 1
  103185. +Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
  103186. +float: 1
  103187. +ifloat: 1
  103188. +Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
  103189. +float: 1
  103190. +ifloat: 1
  103191. +Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
  103192. +double: 1
  103193. +float: 1
  103194. +idouble: 1
  103195. +ifloat: 1
  103196. +Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i)":
  103197. +double: 1
  103198. +float: 1
  103199. +idouble: 1
  103200. +ifloat: 1
  103201. +Test "Real part of: clog10 (0x1.fffffep+127 + 1.0 i)":
  103202. +float: 1
  103203. +ifloat: 1
  103204. +Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
  103205. +double: 1
  103206. +idouble: 1
  103207. +Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
  103208. +double: 1
  103209. +idouble: 1
  103210. +Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
  103211. +double: 1
  103212. +idouble: 1
  103213. +Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
  103214. +double: 1
  103215. +idouble: 1
  103216. +Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
  103217. +double: 1
  103218. +idouble: 1
  103219. +Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
  103220. +double: 1
  103221. +idouble: 1
  103222. +Test "Imaginary part of: clog10 (0x1p-1073 + 0x1p-1073 i)":
  103223. +double: 1
  103224. +idouble: 1
  103225. +Test "Imaginary part of: clog10 (0x1p-1074 + 0x1.fp+1023 i)":
  103226. +double: 1
  103227. +idouble: 1
  103228. +Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
  103229. +double: 1
  103230. +idouble: 1
  103231. +Test "Imaginary part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
  103232. +double: 1
  103233. +idouble: 1
  103234. +Test "Imaginary part of: clog10 (0x1p-1074 - 0x1.fp+1023 i)":
  103235. +double: 1
  103236. +idouble: 1
  103237. +Test "Imaginary part of: clog10 (0x1p-147 + 0x1p-147 i)":
  103238. +double: 1
  103239. +float: 1
  103240. +idouble: 1
  103241. +ifloat: 1
  103242. +Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
  103243. +double: 1
  103244. +float: 1
  103245. +idouble: 1
  103246. +ifloat: 1
  103247. +Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i)":
  103248. +double: 1
  103249. +float: 1
  103250. +idouble: 1
  103251. +ifloat: 1
  103252. +Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
  103253. +double: 1
  103254. +float: 1
  103255. +idouble: 1
  103256. +ifloat: 1
  103257. +Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
  103258. +double: 1
  103259. +idouble: 1
  103260. +Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
  103261. +double: 1
  103262. +idouble: 1
  103263. +Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
  103264. +double: 1
  103265. +idouble: 1
  103266. +Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
  103267. +double: 1
  103268. +float: 1
  103269. +idouble: 1
  103270. +ifloat: 1
  103271. +Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
  103272. +double: 1
  103273. +float: 1
  103274. +idouble: 1
  103275. +ifloat: 1
  103276. +Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
  103277. +double: 1
  103278. +float: 1
  103279. +idouble: 1
  103280. +ifloat: 1
  103281. +Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
  103282. +double: 1
  103283. +float: 1
  103284. +idouble: 1
  103285. +ifloat: 1
  103286. +Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
  103287. +float: 1
  103288. +ifloat: 1
  103289. +Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
  103290. +double: 1
  103291. +idouble: 1
  103292. +Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
  103293. +float: 1
  103294. +ifloat: 1
  103295. +Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
  103296. +double: 1
  103297. +idouble: 1
  103298. +Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
  103299. +double: 1
  103300. +idouble: 1
  103301. +Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
  103302. +double: 1
  103303. +idouble: 1
  103304. +Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
  103305. +double: 1
  103306. +idouble: 1
  103307. +Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
  103308. +double: 1
  103309. +idouble: 1
  103310. +Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
  103311. +double: 1
  103312. +idouble: 1
  103313. +Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
  103314. +double: 1
  103315. +idouble: 1
  103316. +Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
  103317. +double: 1
  103318. +idouble: 1
  103319. +Test "Imaginary part of: clog10 (3 + inf i)":
  103320. +double: 1
  103321. +float: 1
  103322. +idouble: 1
  103323. +ifloat: 1
  103324. +Test "Imaginary part of: clog10 (3 - inf i)":
  103325. +double: 1
  103326. +float: 1
  103327. +idouble: 1
  103328. +ifloat: 1
  103329. +Test "Imaginary part of: clog10 (inf + inf i)":
  103330. +double: 1
  103331. +float: 1
  103332. +idouble: 1
  103333. +ifloat: 1
  103334. +Test "Imaginary part of: clog10 (inf - inf i)":
  103335. +double: 1
  103336. +float: 1
  103337. +idouble: 1
  103338. +ifloat: 1
  103339. +
  103340. +# cos
  103341. +Test "cos (0x1p+120)":
  103342. +float: 1
  103343. +ifloat: 1
  103344. +Test "cos (0x1p+127)":
  103345. +float: 1
  103346. +ifloat: 1
  103347. +Test "cos (M_PI_6l * 2.0) == 0.5":
  103348. +double: 1
  103349. +idouble: 1
  103350. +ifloat: 1
  103351. +Test "cos (M_PI_6l * 4.0) == -0.5":
  103352. +double: 2
  103353. +float: 1
  103354. +idouble: 2
  103355. +ifloat: 1
  103356. +
  103357. +# cos_downward
  103358. +Test "cos_downward (1)":
  103359. +float: 1
  103360. +ifloat: 1
  103361. +Test "cos_downward (2)":
  103362. +float: 1
  103363. +ifloat: 1
  103364. +Test "cos_downward (3)":
  103365. +float: 1
  103366. +ifloat: 1
  103367. +Test "cos_downward (4)":
  103368. +float: 1
  103369. +ifloat: 1
  103370. +Test "cos_downward (5)":
  103371. +float: 1
  103372. +ifloat: 1
  103373. +Test "cos_downward (7)":
  103374. +float: 1
  103375. +ifloat: 1
  103376. +Test "cos_downward (8)":
  103377. +float: 1
  103378. +ifloat: 1
  103379. +
  103380. +# cos_tonearest
  103381. +Test "cos_tonearest (7)":
  103382. +float: 1
  103383. +ifloat: 1
  103384. +
  103385. +# cos_towardzero
  103386. +Test "cos_towardzero (2)":
  103387. +float: 1
  103388. +ifloat: 1
  103389. +Test "cos_towardzero (3)":
  103390. +float: 1
  103391. +ifloat: 1
  103392. +Test "cos_towardzero (5)":
  103393. +float: 1
  103394. +ifloat: 1
  103395. +Test "cos_towardzero (7)":
  103396. +float: 1
  103397. +ifloat: 1
  103398. +Test "cos_towardzero (8)":
  103399. +float: 1
  103400. +ifloat: 1
  103401. +
  103402. +# cos_upward
  103403. +Test "cos_upward (10)":
  103404. +float: 1
  103405. +ifloat: 1
  103406. +Test "cos_upward (6)":
  103407. +float: 1
  103408. +ifloat: 1
  103409. +Test "cos_upward (7)":
  103410. +float: 1
  103411. +ifloat: 1
  103412. +Test "cos_upward (9)":
  103413. +float: 2
  103414. +ifloat: 2
  103415. +
  103416. +# cosh_downward
  103417. +Test "cosh_downward (22)":
  103418. +float: 1
  103419. +ifloat: 1
  103420. +Test "cosh_downward (23)":
  103421. +float: 1
  103422. +ifloat: 1
  103423. +Test "cosh_downward (24)":
  103424. +float: 1
  103425. +ifloat: 1
  103426. +
  103427. +# cosh_towardzero
  103428. +Test "cosh_towardzero (22)":
  103429. +float: 1
  103430. +ifloat: 1
  103431. +Test "cosh_towardzero (23)":
  103432. +float: 1
  103433. +ifloat: 1
  103434. +Test "cosh_towardzero (24)":
  103435. +float: 1
  103436. +ifloat: 1
  103437. +
  103438. +# cpow
  103439. +Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
  103440. +float: 1
  103441. +ifloat: 1
  103442. +Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
  103443. +double: 1
  103444. +float: 4
  103445. +idouble: 1
  103446. +ifloat: 4
  103447. +Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
  103448. +double: 2
  103449. +float: 3
  103450. +idouble: 2
  103451. +ifloat: 3
  103452. +Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
  103453. +double: 1
  103454. +float: 4
  103455. +idouble: 1
  103456. +ifloat: 4
  103457. +Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i)":
  103458. +float: 2
  103459. +ifloat: 2
  103460. +
  103461. +# csin
  103462. +Test "Real part of: csin (-0.75 + 710.5 i)":
  103463. +double: 1
  103464. +idouble: 1
  103465. +Test "Real part of: csin (-0.75 + 89.5 i)":
  103466. +float: 1
  103467. +ifloat: 1
  103468. +Test "Real part of: csin (-0.75 - 710.5 i)":
  103469. +double: 1
  103470. +idouble: 1
  103471. +Test "Real part of: csin (-0.75 - 89.5 i)":
  103472. +float: 1
  103473. +ifloat: 1
  103474. +Test "Real part of: csin (0.75 + 710.5 i)":
  103475. +double: 1
  103476. +idouble: 1
  103477. +Test "Real part of: csin (0.75 + 89.5 i)":
  103478. +float: 1
  103479. +ifloat: 1
  103480. +Test "Real part of: csin (0.75 - 710.5 i)":
  103481. +double: 1
  103482. +idouble: 1
  103483. +Test "Real part of: csin (0.75 - 89.5 i)":
  103484. +float: 1
  103485. +ifloat: 1
  103486. +Test "Real part of: csin (0x1p-1074 + 1440 i)":
  103487. +double: 1
  103488. +idouble: 1
  103489. +
  103490. +# csinh
  103491. +Test "Imaginary part of: csinh (-2 - 3 i)":
  103492. +double: 1
  103493. +idouble: 1
  103494. +Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
  103495. +double: 1
  103496. +idouble: 1
  103497. +Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
  103498. +double: 1
  103499. +idouble: 1
  103500. +Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
  103501. +float: 1
  103502. +ifloat: 1
  103503. +Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
  103504. +float: 1
  103505. +ifloat: 1
  103506. +Test "Real part of: csinh (0.75 + 1.25 i)":
  103507. +float: 1
  103508. +ifloat: 1
  103509. +Test "Imaginary part of: csinh (0.75 + 1.25 i)":
  103510. +float: 1
  103511. +ifloat: 1
  103512. +Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
  103513. +double: 1
  103514. +idouble: 1
  103515. +Test "Imaginary part of: csinh (710.5 + 0.75 i)":
  103516. +double: 1
  103517. +idouble: 1
  103518. +Test "Imaginary part of: csinh (710.5 - 0.75 i)":
  103519. +double: 1
  103520. +idouble: 1
  103521. +Test "Imaginary part of: csinh (89.5 + 0.75 i)":
  103522. +float: 1
  103523. +ifloat: 1
  103524. +Test "Imaginary part of: csinh (89.5 - 0.75 i)":
  103525. +float: 1
  103526. +ifloat: 1
  103527. +
  103528. +# csqrt
  103529. +Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
  103530. +double: 1
  103531. +idouble: 1
  103532. +Test "Real part of: csqrt (-2 + 3 i)":
  103533. +float: 1
  103534. +ifloat: 1
  103535. +Test "Real part of: csqrt (-2 - 3 i)":
  103536. +float: 1
  103537. +ifloat: 1
  103538. +Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
  103539. +double: 1
  103540. +idouble: 1
  103541. +Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
  103542. +float: 1
  103543. +ifloat: 1
  103544. +Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
  103545. +double: 1
  103546. +idouble: 1
  103547. +Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
  103548. +double: 1
  103549. +idouble: 1
  103550. +Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
  103551. +double: 1
  103552. +idouble: 1
  103553. +
  103554. +# ctan
  103555. +Test "Real part of: ctan (-2 - 3 i)":
  103556. +float: 1
  103557. +ifloat: 1
  103558. +Test "Imaginary part of: ctan (-2 - 3 i)":
  103559. +double: 1
  103560. +idouble: 1
  103561. +Test "Imaginary part of: ctan (0.75 + 1.25 i)":
  103562. +double: 1
  103563. +idouble: 1
  103564. +Test "Real part of: ctan (0x1p1023 + 1 i)":
  103565. +double: 1
  103566. +idouble: 1
  103567. +Test "Imaginary part of: ctan (0x1p127 + 1 i)":
  103568. +double: 1
  103569. +idouble: 1
  103570. +Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
  103571. +float: 1
  103572. +ifloat: 1
  103573. +
  103574. +# ctan_downward
  103575. +Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
  103576. +double: 2
  103577. +float: 1
  103578. +idouble: 2
  103579. +ifloat: 1
  103580. +Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
  103581. +float: 1
  103582. +ifloat: 1
  103583. +
  103584. +# ctan_tonearest
  103585. +Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
  103586. +float: 1
  103587. +ifloat: 1
  103588. +Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
  103589. +float: 1
  103590. +ifloat: 1
  103591. +
  103592. +# ctan_towardzero
  103593. +Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
  103594. +float: 1
  103595. +ifloat: 1
  103596. +Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
  103597. +float: 1
  103598. +ifloat: 1
  103599. +
  103600. +# ctan_upward
  103601. +Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
  103602. +double: 1
  103603. +idouble: 1
  103604. +Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
  103605. +double: 2
  103606. +float: 1
  103607. +idouble: 2
  103608. +ifloat: 1
  103609. +Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
  103610. +double: 1
  103611. +float: 2
  103612. +idouble: 1
  103613. +ifloat: 2
  103614. +
  103615. +# ctanh
  103616. +Test "Real part of: ctanh (-2 - 3 i)":
  103617. +double: 1
  103618. +float: 1
  103619. +idouble: 1
  103620. +ifloat: 1
  103621. +Test "Imaginary part of: ctanh (-2 - 3 i)":
  103622. +double: 1
  103623. +float: 1
  103624. +idouble: 1
  103625. +ifloat: 1
  103626. +Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
  103627. +float: 1
  103628. +ifloat: 1
  103629. +Test "Imaginary part of: ctanh (0 + pi/4 i)":
  103630. +double: 1
  103631. +float: 1
  103632. +idouble: 1
  103633. +ifloat: 1
  103634. +Test "Real part of: ctanh (0.75 + 1.25 i)":
  103635. +double: 1
  103636. +float: 1
  103637. +idouble: 1
  103638. +ifloat: 1
  103639. +Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
  103640. +float: 2
  103641. +ifloat: 2
  103642. +Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
  103643. +double: 1
  103644. +idouble: 1
  103645. +Test "Real part of: ctanh (1 + 0x1p127 i)":
  103646. +double: 1
  103647. +idouble: 1
  103648. +
  103649. +# ctanh_downward
  103650. +Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
  103651. +float: 1
  103652. +ifloat: 1
  103653. +Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
  103654. +double: 2
  103655. +float: 1
  103656. +idouble: 2
  103657. +ifloat: 1
  103658. +
  103659. +# ctanh_tonearest
  103660. +Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
  103661. +float: 1
  103662. +ifloat: 1
  103663. +Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
  103664. +float: 1
  103665. +ifloat: 1
  103666. +
  103667. +# ctanh_towardzero
  103668. +Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
  103669. +float: 1
  103670. +ifloat: 1
  103671. +Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
  103672. +float: 1
  103673. +ifloat: 1
  103674. +
  103675. +# ctanh_upward
  103676. +Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
  103677. +double: 1
  103678. +idouble: 1
  103679. +Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
  103680. +double: 1
  103681. +float: 2
  103682. +idouble: 1
  103683. +ifloat: 2
  103684. +Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
  103685. +double: 2
  103686. +float: 1
  103687. +idouble: 2
  103688. +ifloat: 1
  103689. +
  103690. +# erf
  103691. +Test "erf (0.75) == 0.711155633653515131598937834591410777":
  103692. +double: 1
  103693. +idouble: 1
  103694. +Test "erf (1.25) == 0.922900128256458230136523481197281140":
  103695. +double: 1
  103696. +idouble: 1
  103697. +
  103698. +# erfc
  103699. +Test "erfc (0x1.f7303cp+1)":
  103700. +double: 1
  103701. +idouble: 1
  103702. +Test "erfc (0x1.ffa002p+2)":
  103703. +float: 1
  103704. +ifloat: 1
  103705. +Test "erfc (2.0)":
  103706. +double: 1
  103707. +idouble: 1
  103708. +Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
  103709. +double: 1
  103710. +idouble: 1
  103711. +
  103712. +# exp
  103713. +Test "exp (1) == e":
  103714. +double: 1
  103715. +idouble: 1
  103716. +
  103717. +# exp10
  103718. +Test "exp10 (-1)":
  103719. +double: 1
  103720. +idouble: 1
  103721. +Test "exp10 (-305)":
  103722. +double: 1
  103723. +idouble: 1
  103724. +Test "exp10 (-36)":
  103725. +double: 1
  103726. +idouble: 1
  103727. +Test "exp10 (3)":
  103728. +double: 1
  103729. +idouble: 1
  103730. +Test "exp10 (36)":
  103731. +double: 1
  103732. +idouble: 1
  103733. +
  103734. +# exp_downward
  103735. +Test "exp_downward (2)":
  103736. +float: 1
  103737. +ifloat: 1
  103738. +Test "exp_downward (3)":
  103739. +float: 1
  103740. +ifloat: 1
  103741. +
  103742. +# exp_towardzero
  103743. +Test "exp_towardzero (2)":
  103744. +float: 1
  103745. +ifloat: 1
  103746. +Test "exp_towardzero (3)":
  103747. +float: 1
  103748. +ifloat: 1
  103749. +
  103750. +# exp_upward
  103751. +Test "exp_upward (1)":
  103752. +float: 1
  103753. +ifloat: 1
  103754. +
  103755. +# expm1
  103756. +Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
  103757. +double: 1
  103758. +idouble: 1
  103759. +Test "expm1 (1)":
  103760. +float: 1
  103761. +ifloat: 1
  103762. +Test "expm1 (500.0)":
  103763. +double: 1
  103764. +idouble: 1
  103765. +
  103766. +# gamma
  103767. +Test "gamma (0.7)":
  103768. +double: 1
  103769. +float: 1
  103770. +idouble: 1
  103771. +ifloat: 1
  103772. +Test "gamma (1.2)":
  103773. +double: 1
  103774. +float: 2
  103775. +idouble: 1
  103776. +ifloat: 2
  103777. +
  103778. +# hypot
  103779. +Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
  103780. +float: 1
  103781. +ifloat: 1
  103782. +Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
  103783. +float: 1
  103784. +ifloat: 1
  103785. +Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
  103786. +float: 1
  103787. +ifloat: 1
  103788. +Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
  103789. +float: 1
  103790. +ifloat: 1
  103791. +Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
  103792. +float: 1
  103793. +ifloat: 1
  103794. +Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
  103795. +float: 1
  103796. +ifloat: 1
  103797. +Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
  103798. +float: 1
  103799. +ifloat: 1
  103800. +Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
  103801. +float: 1
  103802. +ifloat: 1
  103803. +
  103804. +# j0
  103805. +Test "j0 (-4.0)":
  103806. +double: 1
  103807. +float: 1
  103808. +idouble: 1
  103809. +ifloat: 1
  103810. +Test "j0 (0.75)":
  103811. +float: 1
  103812. +ifloat: 1
  103813. +Test "j0 (0x1.d7ce3ap+107)":
  103814. +float: 2
  103815. +ifloat: 2
  103816. +Test "j0 (10.0)":
  103817. +double: 2
  103818. +float: 1
  103819. +idouble: 2
  103820. +ifloat: 1
  103821. +Test "j0 (2.0)":
  103822. +float: 2
  103823. +ifloat: 2
  103824. +Test "j0 (4.0)":
  103825. +double: 1
  103826. +float: 1
  103827. +idouble: 1
  103828. +ifloat: 1
  103829. +Test "j0 (8.0)":
  103830. +float: 1
  103831. +ifloat: 1
  103832. +
  103833. +# j1
  103834. +Test "j1 (0x1.3ffp+74)":
  103835. +double: 1
  103836. +idouble: 1
  103837. +Test "j1 (0x1.ff00000000002p+840)":
  103838. +double: 1
  103839. +idouble: 1
  103840. +Test "j1 (10.0)":
  103841. +float: 2
  103842. +ifloat: 2
  103843. +Test "j1 (2.0)":
  103844. +double: 1
  103845. +idouble: 1
  103846. +Test "j1 (8.0)":
  103847. +double: 1
  103848. +idouble: 1
  103849. +
  103850. +# jn
  103851. +Test "jn (0, -4.0)":
  103852. +double: 1
  103853. +float: 1
  103854. +idouble: 1
  103855. +ifloat: 1
  103856. +Test "jn (0, 0.75)":
  103857. +float: 1
  103858. +ifloat: 1
  103859. +Test "jn (0, 10.0)":
  103860. +double: 2
  103861. +float: 1
  103862. +idouble: 2
  103863. +ifloat: 1
  103864. +Test "jn (0, 2.0)":
  103865. +float: 2
  103866. +ifloat: 2
  103867. +Test "jn (0, 4.0)":
  103868. +double: 1
  103869. +float: 1
  103870. +idouble: 1
  103871. +ifloat: 1
  103872. +Test "jn (0, 8.0)":
  103873. +float: 1
  103874. +ifloat: 1
  103875. +Test "jn (1, 10.0)":
  103876. +float: 2
  103877. +ifloat: 2
  103878. +Test "jn (1, 2.0)":
  103879. +double: 1
  103880. +idouble: 1
  103881. +Test "jn (1, 8.0)":
  103882. +double: 1
  103883. +idouble: 1
  103884. +Test "jn (10, 0.125)":
  103885. +double: 1
  103886. +float: 1
  103887. +idouble: 1
  103888. +ifloat: 1
  103889. +Test "jn (10, 0.75)":
  103890. +double: 1
  103891. +float: 1
  103892. +idouble: 1
  103893. +ifloat: 1
  103894. +Test "jn (10, 10.0)":
  103895. +double: 4
  103896. +float: 3
  103897. +idouble: 4
  103898. +ifloat: 3
  103899. +Test "jn (10, 2.0)":
  103900. +double: 1
  103901. +float: 2
  103902. +idouble: 1
  103903. +ifloat: 2
  103904. +Test "jn (2, 0x1.ffff62p+99)":
  103905. +double: 2
  103906. +float: 2
  103907. +idouble: 2
  103908. +ifloat: 2
  103909. +Test "jn (2, 2.4048255576957729)":
  103910. +double: 2
  103911. +float: 1
  103912. +idouble: 2
  103913. +ifloat: 1
  103914. +Test "jn (3, 0.125)":
  103915. +double: 1
  103916. +float: 1
  103917. +idouble: 1
  103918. +ifloat: 1
  103919. +Test "jn (3, 0.75)":
  103920. +double: 1
  103921. +float: 1
  103922. +idouble: 1
  103923. +ifloat: 1
  103924. +Test "jn (3, 10.0)":
  103925. +double: 3
  103926. +float: 1
  103927. +idouble: 3
  103928. +ifloat: 1
  103929. +Test "jn (3, 2.0)":
  103930. +float: 1
  103931. +ifloat: 1
  103932. +Test "jn (3, 2.4048255576957729)":
  103933. +double: 3
  103934. +idouble: 3
  103935. +Test "jn (4, 2.4048255576957729)":
  103936. +double: 1
  103937. +idouble: 1
  103938. +Test "jn (5, 2.4048255576957729)":
  103939. +double: 3
  103940. +float: 1
  103941. +idouble: 3
  103942. +ifloat: 1
  103943. +Test "jn (6, 2.4048255576957729)":
  103944. +double: 4
  103945. +float: 3
  103946. +idouble: 4
  103947. +ifloat: 3
  103948. +Test "jn (7, 2.4048255576957729)":
  103949. +double: 3
  103950. +float: 5
  103951. +idouble: 3
  103952. +ifloat: 5
  103953. +Test "jn (8, 2.4048255576957729)":
  103954. +double: 3
  103955. +float: 2
  103956. +idouble: 3
  103957. +ifloat: 2
  103958. +Test "jn (9, 2.4048255576957729)":
  103959. +double: 1
  103960. +float: 2
  103961. +idouble: 1
  103962. +ifloat: 2
  103963. +
  103964. +# lgamma
  103965. +Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
  103966. +double: 1
  103967. +float: 1
  103968. +idouble: 1
  103969. +ifloat: 1
  103970. +Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
  103971. +double: 1
  103972. +float: 2
  103973. +idouble: 1
  103974. +ifloat: 2
  103975. +
  103976. +# log10
  103977. +Test "log10 (0.75) == -0.124938736608299953132449886193870744":
  103978. +double: 1
  103979. +idouble: 1
  103980. +Test "log10 (e) == log10(e)":
  103981. +float: 1
  103982. +ifloat: 1
  103983. +
  103984. +# log1p
  103985. +Test "log1p (-0.25)":
  103986. +float: 1
  103987. +ifloat: 1
  103988. +
  103989. +# pow
  103990. +Test "pow (0x0.ffffffp0, -0x1p24)":
  103991. +float: 1
  103992. +ifloat: 1
  103993. +Test "pow (0x0.ffffffp0, 0x1p24)":
  103994. +float: 1
  103995. +ifloat: 1
  103996. +Test "pow (0x1.000002p0, 0x1p24)":
  103997. +float: 1
  103998. +ifloat: 1
  103999. +
  104000. +# pow10
  104001. +Test "pow10 (-1)":
  104002. +double: 1
  104003. +idouble: 1
  104004. +Test "pow10 (-305)":
  104005. +double: 1
  104006. +idouble: 1
  104007. +Test "pow10 (-36)":
  104008. +double: 1
  104009. +idouble: 1
  104010. +Test "pow10 (3)":
  104011. +double: 1
  104012. +idouble: 1
  104013. +Test "pow10 (36)":
  104014. +double: 1
  104015. +idouble: 1
  104016. +
  104017. +# pow_downward
  104018. +Test "pow_downward (1.5, 1.03125)":
  104019. +float: 1
  104020. +ifloat: 1
  104021. +
  104022. +# pow_towardzero
  104023. +Test "pow_towardzero (1.5, 1.03125)":
  104024. +float: 1
  104025. +ifloat: 1
  104026. +
  104027. +# pow_upward
  104028. +Test "pow_upward (1.0625, 1.125)":
  104029. +float: 1
  104030. +ifloat: 1
  104031. +
  104032. +# sin_downward
  104033. +Test "sin_downward (10)":
  104034. +float: 1
  104035. +ifloat: 1
  104036. +Test "sin_downward (3)":
  104037. +float: 1
  104038. +ifloat: 1
  104039. +Test "sin_downward (5)":
  104040. +float: 1
  104041. +ifloat: 1
  104042. +Test "sin_downward (6)":
  104043. +float: 1
  104044. +ifloat: 1
  104045. +
  104046. +# sin_tonearest
  104047. +Test "sin_tonearest (1)":
  104048. +float: 1
  104049. +ifloat: 1
  104050. +
  104051. +# sin_towardzero
  104052. +Test "sin_towardzero (1)":
  104053. +float: 1
  104054. +ifloat: 1
  104055. +Test "sin_towardzero (10)":
  104056. +float: 1
  104057. +ifloat: 1
  104058. +Test "sin_towardzero (4)":
  104059. +float: 1
  104060. +ifloat: 1
  104061. +Test "sin_towardzero (5)":
  104062. +float: 1
  104063. +ifloat: 1
  104064. +Test "sin_towardzero (9)":
  104065. +float: 1
  104066. +ifloat: 1
  104067. +
  104068. +# sin_upward
  104069. +Test "sin_upward (1)":
  104070. +float: 1
  104071. +ifloat: 1
  104072. +Test "sin_upward (2)":
  104073. +float: 2
  104074. +ifloat: 2
  104075. +Test "sin_upward (4)":
  104076. +float: 1
  104077. +ifloat: 1
  104078. +Test "sin_upward (9)":
  104079. +float: 1
  104080. +ifloat: 1
  104081. +
  104082. +# sincos
  104083. +Test "sincos (0x1p+120) extra output 2":
  104084. +float: 1
  104085. +ifloat: 1
  104086. +Test "sincos (0x1p+127) extra output 2":
  104087. +float: 1
  104088. +ifloat: 1
  104089. +Test "sincos (M_PI_6l*2.0) extra output 1":
  104090. +double: 1
  104091. +float: 1
  104092. +idouble: 1
  104093. +ifloat: 1
  104094. +Test "sincos (M_PI_6l*2.0) extra output 2":
  104095. +double: 1
  104096. +idouble: 1
  104097. +Test "sincos (pi/6) extra output 2":
  104098. +float: 1
  104099. +ifloat: 1
  104100. +
  104101. +# sinh_downward
  104102. +Test "sinh_downward (22)":
  104103. +float: 1
  104104. +ifloat: 1
  104105. +Test "sinh_downward (23)":
  104106. +float: 1
  104107. +ifloat: 1
  104108. +Test "sinh_downward (24)":
  104109. +float: 1
  104110. +ifloat: 1
  104111. +
  104112. +# sinh_towardzero
  104113. +Test "sinh_towardzero (22)":
  104114. +float: 1
  104115. +ifloat: 1
  104116. +Test "sinh_towardzero (23)":
  104117. +float: 1
  104118. +ifloat: 1
  104119. +Test "sinh_towardzero (24)":
  104120. +float: 1
  104121. +ifloat: 1
  104122. +
  104123. +# tan_downward
  104124. +Test "tan_downward (1)":
  104125. +float: 1
  104126. +ifloat: 1
  104127. +Test "tan_downward (10)":
  104128. +float: 1
  104129. +ifloat: 1
  104130. +Test "tan_downward (2)":
  104131. +float: 1
  104132. +ifloat: 1
  104133. +Test "tan_downward (6)":
  104134. +float: 1
  104135. +ifloat: 1
  104136. +Test "tan_downward (8)":
  104137. +float: 1
  104138. +ifloat: 1
  104139. +Test "tan_downward (9)":
  104140. +float: 1
  104141. +ifloat: 1
  104142. +
  104143. +# tan_towardzero
  104144. +Test "tan_towardzero (10)":
  104145. +float: 1
  104146. +ifloat: 1
  104147. +Test "tan_towardzero (3)":
  104148. +float: 1
  104149. +ifloat: 1
  104150. +Test "tan_towardzero (4)":
  104151. +float: 1
  104152. +ifloat: 1
  104153. +Test "tan_towardzero (5)":
  104154. +float: 1
  104155. +ifloat: 1
  104156. +Test "tan_towardzero (9)":
  104157. +float: 1
  104158. +ifloat: 1
  104159. +
  104160. +# tan_upward
  104161. +Test "tan_upward (1)":
  104162. +float: 1
  104163. +ifloat: 1
  104164. +Test "tan_upward (10)":
  104165. +float: 1
  104166. +ifloat: 1
  104167. +Test "tan_upward (3)":
  104168. +float: 1
  104169. +ifloat: 1
  104170. +Test "tan_upward (5)":
  104171. +float: 1
  104172. +ifloat: 1
  104173. +
  104174. +# tgamma
  104175. +Test "tgamma (-0.5)":
  104176. +double: 1
  104177. +float: 1
  104178. +idouble: 1
  104179. +ifloat: 1
  104180. +Test "tgamma (-0x0.fffffffffffff8p0)":
  104181. +double: 1
  104182. +idouble: 1
  104183. +Test "tgamma (-0x0.ffffffp0)":
  104184. +float: 1
  104185. +ifloat: 1
  104186. +Test "tgamma (-0x1.000002p0)":
  104187. +double: 2
  104188. +idouble: 2
  104189. +Test "tgamma (-0x1.0a32a2p+5)":
  104190. +float: 2
  104191. +ifloat: 2
  104192. +Test "tgamma (-0x13.ffffep0)":
  104193. +float: 2
  104194. +ifloat: 2
  104195. +Test "tgamma (-0x14.000000000001p0)":
  104196. +double: 1
  104197. +idouble: 1
  104198. +Test "tgamma (-0x14.00002p0)":
  104199. +float: 1
  104200. +ifloat: 1
  104201. +Test "tgamma (-0x1d.ffffep0)":
  104202. +double: 1
  104203. +float: 1
  104204. +idouble: 1
  104205. +ifloat: 1
  104206. +Test "tgamma (-0x1e.000000000001p0)":
  104207. +double: 3
  104208. +idouble: 3
  104209. +Test "tgamma (-0x1e.00002p0)":
  104210. +double: 1
  104211. +float: 1
  104212. +idouble: 1
  104213. +ifloat: 1
  104214. +Test "tgamma (-0x2.0000000000002p0)":
  104215. +double: 1
  104216. +idouble: 1
  104217. +Test "tgamma (-0x2.000004p0)":
  104218. +double: 2
  104219. +float: 1
  104220. +idouble: 2
  104221. +ifloat: 1
  104222. +Test "tgamma (-0x2.fffffcp0)":
  104223. +double: 1
  104224. +float: 1
  104225. +idouble: 1
  104226. +ifloat: 1
  104227. +Test "tgamma (-0x27.fffffffffffep0)":
  104228. +double: 1
  104229. +idouble: 1
  104230. +Test "tgamma (-0x28.000000000002p0)":
  104231. +double: 1
  104232. +idouble: 1
  104233. +Test "tgamma (-0x28.00004p0)":
  104234. +double: 2
  104235. +idouble: 2
  104236. +Test "tgamma (-0x29.00004p0)":
  104237. +double: 1
  104238. +idouble: 1
  104239. +Test "tgamma (-0x29.ffffcp0)":
  104240. +double: 1
  104241. +idouble: 1
  104242. +Test "tgamma (-0x3.000004p0)":
  104243. +double: 2
  104244. +float: 1
  104245. +idouble: 2
  104246. +ifloat: 1
  104247. +Test "tgamma (-0x3.fffffcp0)":
  104248. +double: 1
  104249. +float: 1
  104250. +idouble: 1
  104251. +ifloat: 1
  104252. +Test "tgamma (-0x3.ffffffffffffep0)":
  104253. +double: 2
  104254. +idouble: 2
  104255. +Test "tgamma (-0x31.fffffffffffep0)":
  104256. +double: 3
  104257. +idouble: 3
  104258. +Test "tgamma (-0x4.000008p0)":
  104259. +float: 1
  104260. +ifloat: 1
  104261. +Test "tgamma (-0x4.fffff8p0)":
  104262. +double: 1
  104263. +idouble: 1
  104264. +Test "tgamma (-0x4.ffffffffffffcp0)":
  104265. +double: 1
  104266. +idouble: 1
  104267. +Test "tgamma (-0x5.000008p0)":
  104268. +double: 1
  104269. +float: 1
  104270. +idouble: 1
  104271. +ifloat: 1
  104272. +Test "tgamma (-0x5.ffffffffffffcp0)":
  104273. +double: 1
  104274. +idouble: 1
  104275. +Test "tgamma (-0x6.000008p0)":
  104276. +float: 2
  104277. +ifloat: 2
  104278. +Test "tgamma (-0x6.fffff8p0)":
  104279. +double: 2
  104280. +float: 1
  104281. +idouble: 2
  104282. +ifloat: 1
  104283. +Test "tgamma (-0x6.ffffffffffffcp0)":
  104284. +double: 4
  104285. +idouble: 4
  104286. +Test "tgamma (-0x63.fffffffffffcp0)":
  104287. +double: 2
  104288. +idouble: 2
  104289. +Test "tgamma (-0x64.000000000004p0)":
  104290. +double: 1
  104291. +idouble: 1
  104292. +Test "tgamma (-0x7.0000000000004p0)":
  104293. +double: 3
  104294. +idouble: 3
  104295. +Test "tgamma (-0x7.000008p0)":
  104296. +double: 1
  104297. +float: 1
  104298. +idouble: 1
  104299. +ifloat: 1
  104300. +Test "tgamma (-0x7.fffff8p0)":
  104301. +double: 3
  104302. +float: 1
  104303. +idouble: 3
  104304. +ifloat: 1
  104305. +Test "tgamma (-0x7.ffffffffffffcp0)":
  104306. +double: 3
  104307. +idouble: 3
  104308. +Test "tgamma (-0x8.00001p0)":
  104309. +double: 2
  104310. +idouble: 2
  104311. +Test "tgamma (-0x9.ffffffffffff8p0)":
  104312. +double: 1
  104313. +idouble: 1
  104314. +Test "tgamma (-0x9.fffffp0)":
  104315. +float: 1
  104316. +ifloat: 1
  104317. +Test "tgamma (-0x96.000000000008p0)":
  104318. +double: 1
  104319. +idouble: 1
  104320. +Test "tgamma (-0xa.00001p0)":
  104321. +double: 1
  104322. +idouble: 1
  104323. +Test "tgamma (-2.5)":
  104324. +double: 1
  104325. +float: 2
  104326. +idouble: 1
  104327. +ifloat: 2
  104328. +Test "tgamma (-3.5)":
  104329. +double: 1
  104330. +float: 1
  104331. +idouble: 1
  104332. +ifloat: 1
  104333. +Test "tgamma (-4.5)":
  104334. +double: 1
  104335. +float: 1
  104336. +idouble: 1
  104337. +ifloat: 1
  104338. +Test "tgamma (-5.5)":
  104339. +double: 1
  104340. +idouble: 1
  104341. +Test "tgamma (-6.5)":
  104342. +float: 1
  104343. +ifloat: 1
  104344. +Test "tgamma (-7.5)":
  104345. +double: 2
  104346. +float: 1
  104347. +idouble: 2
  104348. +ifloat: 1
  104349. +Test "tgamma (-8.5)":
  104350. +double: 1
  104351. +float: 1
  104352. +idouble: 1
  104353. +ifloat: 1
  104354. +Test "tgamma (-9.5)":
  104355. +double: 1
  104356. +float: 1
  104357. +idouble: 1
  104358. +ifloat: 1
  104359. +Test "tgamma (0.5)":
  104360. +float: 1
  104361. +ifloat: 1
  104362. +Test "tgamma (0.7)":
  104363. +double: 1
  104364. +float: 1
  104365. +idouble: 1
  104366. +ifloat: 1
  104367. +Test "tgamma (0x1.fffffep0)":
  104368. +float: 1
  104369. +ifloat: 1
  104370. +Test "tgamma (0x1.fffffffffffffp0)":
  104371. +double: 1
  104372. +idouble: 1
  104373. +Test "tgamma (0x1p-24)":
  104374. +float: 1
  104375. +ifloat: 1
  104376. +Test "tgamma (0x1p-53)":
  104377. +double: 1
  104378. +idouble: 1
  104379. +Test "tgamma (0x2.30a43cp+4)":
  104380. +double: 1
  104381. +float: 2
  104382. +idouble: 1
  104383. +ifloat: 2
  104384. +Test "tgamma (0x2.fffffcp0)":
  104385. +float: 3
  104386. +ifloat: 3
  104387. +Test "tgamma (0x3.fffffcp0)":
  104388. +float: 1
  104389. +ifloat: 1
  104390. +Test "tgamma (0x3.ffffffffffffep0)":
  104391. +double: 1
  104392. +idouble: 1
  104393. +Test "tgamma (0x4.0000000000004p0)":
  104394. +double: 1
  104395. +idouble: 1
  104396. +Test "tgamma (0x4.ffffffffffffcp0)":
  104397. +double: 1
  104398. +idouble: 1
  104399. +Test "tgamma (0x5.0000000000004p0)":
  104400. +double: 1
  104401. +idouble: 1
  104402. +Test "tgamma (0x5.000008p0)":
  104403. +float: 2
  104404. +ifloat: 2
  104405. +Test "tgamma (0x5.fffff8p0)":
  104406. +double: 1
  104407. +float: 1
  104408. +idouble: 1
  104409. +ifloat: 1
  104410. +Test "tgamma (0x6.0000000000004p0)":
  104411. +double: 1
  104412. +idouble: 1
  104413. +Test "tgamma (0x6.000008p0)":
  104414. +float: 2
  104415. +ifloat: 2
  104416. +Test "tgamma (0x6.fffff8p0)":
  104417. +double: 1
  104418. +idouble: 1
  104419. +Test "tgamma (0x6.ffffffffffffcp0)":
  104420. +double: 4
  104421. +idouble: 4
  104422. +Test "tgamma (0x7.0000000000004p0)":
  104423. +double: 4
  104424. +idouble: 4
  104425. +Test "tgamma (0x7.000008p0)":
  104426. +double: 1
  104427. +float: 1
  104428. +idouble: 1
  104429. +ifloat: 1
  104430. +Test "tgamma (0x7.fffff8p0)":
  104431. +double: 2
  104432. +float: 1
  104433. +idouble: 2
  104434. +ifloat: 1
  104435. +Test "tgamma (0x7.ffffffffffffcp0)":
  104436. +double: 2
  104437. +idouble: 2
  104438. +Test "tgamma (0x8.00001p0)":
  104439. +double: 2
  104440. +idouble: 2
  104441. +Test "tgamma (0xa.b9fd72b0fb238p+4)":
  104442. +double: 1
  104443. +idouble: 1
  104444. +Test "tgamma (10)":
  104445. +double: 1
  104446. +float: 1
  104447. +idouble: 1
  104448. +ifloat: 1
  104449. +Test "tgamma (18.5)":
  104450. +double: 1
  104451. +float: 1
  104452. +idouble: 1
  104453. +ifloat: 1
  104454. +Test "tgamma (19.5)":
  104455. +double: 2
  104456. +idouble: 2
  104457. +Test "tgamma (2.5)":
  104458. +float: 2
  104459. +ifloat: 2
  104460. +Test "tgamma (23.5)":
  104461. +double: 1
  104462. +float: 1
  104463. +idouble: 1
  104464. +ifloat: 1
  104465. +Test "tgamma (29.5)":
  104466. +double: 1
  104467. +float: 1
  104468. +idouble: 1
  104469. +ifloat: 1
  104470. +Test "tgamma (3)":
  104471. +float: 1
  104472. +ifloat: 1
  104473. +Test "tgamma (3.5)":
  104474. +float: 2
  104475. +ifloat: 2
  104476. +Test "tgamma (30.5)":
  104477. +float: 1
  104478. +ifloat: 1
  104479. +Test "tgamma (33.5)":
  104480. +float: 1
  104481. +ifloat: 1
  104482. +Test "tgamma (34.5)":
  104483. +double: 1
  104484. +float: 2
  104485. +idouble: 1
  104486. +ifloat: 2
  104487. +Test "tgamma (4)":
  104488. +float: 1
  104489. +ifloat: 1
  104490. +Test "tgamma (4.5)":
  104491. +double: 1
  104492. +float: 1
  104493. +idouble: 1
  104494. +ifloat: 1
  104495. +Test "tgamma (6)":
  104496. +float: 1
  104497. +ifloat: 1
  104498. +Test "tgamma (6.5)":
  104499. +float: 1
  104500. +ifloat: 1
  104501. +Test "tgamma (7)":
  104502. +double: 1
  104503. +idouble: 1
  104504. +Test "tgamma (7.5)":
  104505. +double: 2
  104506. +float: 1
  104507. +idouble: 2
  104508. +ifloat: 1
  104509. +Test "tgamma (8)":
  104510. +double: 1
  104511. +idouble: 1
  104512. +Test "tgamma (8.5)":
  104513. +double: 1
  104514. +float: 1
  104515. +idouble: 1
  104516. +ifloat: 1
  104517. +Test "tgamma (9)":
  104518. +double: 1
  104519. +idouble: 1
  104520. +Test "tgamma (9.5)":
  104521. +double: 1
  104522. +idouble: 1
  104523. +
  104524. +# y0
  104525. +Test "y0 (0x1.3ffp+74)":
  104526. +double: 1
  104527. +idouble: 1
  104528. +Test "y0 (0x1.ff00000000002p+840)":
  104529. +double: 1
  104530. +idouble: 1
  104531. +Test "y0 (0x1p-10)":
  104532. +double: 1
  104533. +idouble: 1
  104534. +Test "y0 (0x1p-110)":
  104535. +double: 1
  104536. +idouble: 1
  104537. +Test "y0 (0x1p-20)":
  104538. +float: 1
  104539. +ifloat: 1
  104540. +Test "y0 (0x1p-30)":
  104541. +float: 1
  104542. +ifloat: 1
  104543. +Test "y0 (0x1p-40)":
  104544. +double: 1
  104545. +float: 1
  104546. +idouble: 1
  104547. +ifloat: 1
  104548. +Test "y0 (0x1p-50)":
  104549. +float: 1
  104550. +ifloat: 1
  104551. +Test "y0 (0x1p-70)":
  104552. +double: 1
  104553. +idouble: 1
  104554. +Test "y0 (0x1p-80)":
  104555. +double: 1
  104556. +float: 1
  104557. +idouble: 1
  104558. +ifloat: 1
  104559. +Test "y0 (1.0)":
  104560. +double: 2
  104561. +float: 1
  104562. +idouble: 2
  104563. +ifloat: 1
  104564. +Test "y0 (1.5)":
  104565. +double: 2
  104566. +float: 1
  104567. +idouble: 2
  104568. +ifloat: 1
  104569. +Test "y0 (10.0)":
  104570. +float: 1
  104571. +ifloat: 1
  104572. +Test "y0 (8.0)":
  104573. +double: 1
  104574. +float: 1
  104575. +idouble: 1
  104576. +ifloat: 1
  104577. +
  104578. +# y1
  104579. +Test "y1 (0.125)":
  104580. +double: 1
  104581. +idouble: 1
  104582. +Test "y1 (0x1.27e204p+99)":
  104583. +double: 1
  104584. +idouble: 1
  104585. +Test "y1 (0x1p-10)":
  104586. +double: 1
  104587. +idouble: 1
  104588. +Test "y1 (1.5)":
  104589. +float: 1
  104590. +ifloat: 1
  104591. +Test "y1 (10.0)":
  104592. +double: 3
  104593. +float: 1
  104594. +idouble: 3
  104595. +ifloat: 1
  104596. +Test "y1 (2.0)":
  104597. +double: 1
  104598. +float: 1
  104599. +idouble: 1
  104600. +ifloat: 1
  104601. +Test "y1 (8.0)":
  104602. +double: 1
  104603. +float: 2
  104604. +idouble: 1
  104605. +ifloat: 2
  104606. +
  104607. +# yn
  104608. +Test "yn (0, 1.0)":
  104609. +double: 2
  104610. +float: 1
  104611. +idouble: 2
  104612. +ifloat: 1
  104613. +Test "yn (0, 1.5)":
  104614. +double: 2
  104615. +float: 1
  104616. +idouble: 2
  104617. +ifloat: 1
  104618. +Test "yn (0, 10.0)":
  104619. +float: 1
  104620. +ifloat: 1
  104621. +Test "yn (0, 8.0)":
  104622. +double: 1
  104623. +float: 1
  104624. +idouble: 1
  104625. +ifloat: 1
  104626. +Test "yn (1, 0.125)":
  104627. +double: 1
  104628. +idouble: 1
  104629. +Test "yn (1, 1.5)":
  104630. +float: 1
  104631. +ifloat: 1
  104632. +Test "yn (1, 10.0)":
  104633. +double: 3
  104634. +float: 1
  104635. +idouble: 3
  104636. +ifloat: 1
  104637. +Test "yn (1, 2.0)":
  104638. +double: 1
  104639. +float: 1
  104640. +idouble: 1
  104641. +ifloat: 1
  104642. +Test "yn (1, 8.0)":
  104643. +double: 1
  104644. +float: 2
  104645. +idouble: 1
  104646. +ifloat: 2
  104647. +Test "yn (10, 0.125)":
  104648. +double: 1
  104649. +idouble: 1
  104650. +Test "yn (10, 0.75)":
  104651. +double: 1
  104652. +float: 1
  104653. +idouble: 1
  104654. +ifloat: 1
  104655. +Test "yn (10, 1.0)":
  104656. +double: 1
  104657. +idouble: 1
  104658. +Test "yn (10, 10.0)":
  104659. +double: 1
  104660. +float: 1
  104661. +idouble: 1
  104662. +ifloat: 1
  104663. +Test "yn (10, 2.0)":
  104664. +double: 2
  104665. +idouble: 2
  104666. +Test "yn (3, 0.125)":
  104667. +double: 1
  104668. +idouble: 1
  104669. +Test "yn (3, 0.75)":
  104670. +double: 1
  104671. +float: 1
  104672. +idouble: 1
  104673. +ifloat: 1
  104674. +Test "yn (3, 10.0)":
  104675. +double: 1
  104676. +float: 1
  104677. +idouble: 1
  104678. +ifloat: 1
  104679. +Test "yn (3, 2.0)":
  104680. +double: 1
  104681. +idouble: 1
  104682. +
  104683. +# Maximal error of functions:
  104684. +Function: "acos_downward":
  104685. +double: 1
  104686. +float: 1
  104687. +idouble: 1
  104688. +ifloat: 1
  104689. +
  104690. +Function: "acos_towardzero":
  104691. +double: 1
  104692. +float: 1
  104693. +idouble: 1
  104694. +ifloat: 1
  104695. +
  104696. +Function: "asin_downward":
  104697. +double: 1
  104698. +float: 1
  104699. +idouble: 1
  104700. +ifloat: 1
  104701. +
  104702. +Function: "asin_towardzero":
  104703. +double: 1
  104704. +float: 1
  104705. +idouble: 1
  104706. +ifloat: 1
  104707. +
  104708. +Function: "asin_upward":
  104709. +float: 1
  104710. +ifloat: 1
  104711. +
  104712. +Function: "atan2":
  104713. +float: 1
  104714. +ifloat: 1
  104715. +
  104716. +Function: "atanh":
  104717. +float: 1
  104718. +ifloat: 1
  104719. +
  104720. +Function: Real part of "cacos":
  104721. +double: 1
  104722. +float: 2
  104723. +idouble: 1
  104724. +ifloat: 2
  104725. +
  104726. +Function: Imaginary part of "cacos":
  104727. +double: 1
  104728. +float: 2
  104729. +idouble: 1
  104730. +ifloat: 2
  104731. +
  104732. +Function: Real part of "cacosh":
  104733. +double: 1
  104734. +float: 2
  104735. +idouble: 1
  104736. +ifloat: 2
  104737. +
  104738. +Function: Imaginary part of "cacosh":
  104739. +double: 1
  104740. +float: 2
  104741. +idouble: 1
  104742. +ifloat: 2
  104743. +
  104744. +Function: Real part of "casin":
  104745. +double: 1
  104746. +float: 1
  104747. +idouble: 1
  104748. +ifloat: 1
  104749. +
  104750. +Function: Imaginary part of "casin":
  104751. +double: 1
  104752. +float: 2
  104753. +idouble: 1
  104754. +ifloat: 2
  104755. +
  104756. +Function: Real part of "casinh":
  104757. +double: 1
  104758. +float: 2
  104759. +idouble: 1
  104760. +ifloat: 2
  104761. +
  104762. +Function: Imaginary part of "casinh":
  104763. +double: 1
  104764. +float: 1
  104765. +idouble: 1
  104766. +ifloat: 1
  104767. +
  104768. +Function: Real part of "catan":
  104769. +float: 1
  104770. +ifloat: 1
  104771. +
  104772. +Function: Imaginary part of "catan":
  104773. +double: 1
  104774. +float: 1
  104775. +idouble: 1
  104776. +ifloat: 1
  104777. +
  104778. +Function: Real part of "catanh":
  104779. +double: 1
  104780. +float: 1
  104781. +idouble: 1
  104782. +ifloat: 1
  104783. +
  104784. +Function: Imaginary part of "catanh":
  104785. +float: 1
  104786. +ifloat: 1
  104787. +
  104788. +Function: "cbrt":
  104789. +double: 1
  104790. +idouble: 1
  104791. +
  104792. +Function: Real part of "ccos":
  104793. +double: 1
  104794. +float: 1
  104795. +idouble: 1
  104796. +ifloat: 1
  104797. +
  104798. +Function: Imaginary part of "ccos":
  104799. +double: 1
  104800. +float: 1
  104801. +idouble: 1
  104802. +ifloat: 1
  104803. +
  104804. +Function: Real part of "ccosh":
  104805. +double: 1
  104806. +float: 1
  104807. +idouble: 1
  104808. +ifloat: 1
  104809. +
  104810. +Function: Imaginary part of "ccosh":
  104811. +double: 1
  104812. +float: 1
  104813. +idouble: 1
  104814. +ifloat: 1
  104815. +
  104816. +Function: Real part of "cexp":
  104817. +double: 2
  104818. +float: 1
  104819. +idouble: 2
  104820. +ifloat: 1
  104821. +
  104822. +Function: Imaginary part of "cexp":
  104823. +double: 1
  104824. +float: 2
  104825. +idouble: 1
  104826. +ifloat: 2
  104827. +
  104828. +Function: Real part of "clog":
  104829. +double: 1
  104830. +float: 1
  104831. +idouble: 1
  104832. +ifloat: 1
  104833. +
  104834. +Function: Imaginary part of "clog":
  104835. +float: 1
  104836. +ifloat: 1
  104837. +
  104838. +Function: Real part of "clog10":
  104839. +double: 2
  104840. +float: 2
  104841. +idouble: 2
  104842. +ifloat: 2
  104843. +
  104844. +Function: Imaginary part of "clog10":
  104845. +double: 1
  104846. +float: 1
  104847. +idouble: 1
  104848. +ifloat: 1
  104849. +
  104850. +Function: "cos":
  104851. +double: 2
  104852. +float: 1
  104853. +idouble: 2
  104854. +ifloat: 1
  104855. +
  104856. +Function: "cos_downward":
  104857. +float: 1
  104858. +ifloat: 1
  104859. +
  104860. +Function: "cos_tonearest":
  104861. +float: 1
  104862. +ifloat: 1
  104863. +
  104864. +Function: "cos_towardzero":
  104865. +float: 1
  104866. +ifloat: 1
  104867. +
  104868. +Function: "cos_upward":
  104869. +float: 2
  104870. +ifloat: 2
  104871. +
  104872. +Function: "cosh_downward":
  104873. +float: 1
  104874. +ifloat: 1
  104875. +
  104876. +Function: "cosh_towardzero":
  104877. +float: 1
  104878. +ifloat: 1
  104879. +
  104880. +Function: Real part of "cpow":
  104881. +double: 2
  104882. +float: 4
  104883. +idouble: 2
  104884. +ifloat: 4
  104885. +
  104886. +Function: Imaginary part of "cpow":
  104887. +float: 2
  104888. +ifloat: 2
  104889. +
  104890. +Function: Real part of "csin":
  104891. +double: 1
  104892. +float: 1
  104893. +idouble: 1
  104894. +ifloat: 1
  104895. +
  104896. +Function: Real part of "csinh":
  104897. +float: 1
  104898. +ifloat: 1
  104899. +
  104900. +Function: Imaginary part of "csinh":
  104901. +double: 1
  104902. +float: 1
  104903. +idouble: 1
  104904. +ifloat: 1
  104905. +
  104906. +Function: Real part of "csqrt":
  104907. +double: 1
  104908. +float: 1
  104909. +idouble: 1
  104910. +ifloat: 1
  104911. +
  104912. +Function: Imaginary part of "csqrt":
  104913. +double: 1
  104914. +float: 1
  104915. +idouble: 1
  104916. +ifloat: 1
  104917. +
  104918. +Function: Real part of "ctan":
  104919. +double: 1
  104920. +float: 1
  104921. +idouble: 1
  104922. +ifloat: 1
  104923. +
  104924. +Function: Imaginary part of "ctan":
  104925. +double: 1
  104926. +idouble: 1
  104927. +
  104928. +Function: Real part of "ctan_downward":
  104929. +double: 2
  104930. +float: 1
  104931. +idouble: 2
  104932. +ifloat: 1
  104933. +
  104934. +Function: Imaginary part of "ctan_downward":
  104935. +float: 1
  104936. +ifloat: 1
  104937. +
  104938. +Function: Real part of "ctan_tonearest":
  104939. +float: 1
  104940. +ifloat: 1
  104941. +
  104942. +Function: Imaginary part of "ctan_tonearest":
  104943. +float: 1
  104944. +ifloat: 1
  104945. +
  104946. +Function: Real part of "ctan_towardzero":
  104947. +float: 1
  104948. +ifloat: 1
  104949. +
  104950. +Function: Imaginary part of "ctan_towardzero":
  104951. +float: 1
  104952. +ifloat: 1
  104953. +
  104954. +Function: Real part of "ctan_upward":
  104955. +double: 2
  104956. +float: 1
  104957. +idouble: 2
  104958. +ifloat: 1
  104959. +
  104960. +Function: Imaginary part of "ctan_upward":
  104961. +double: 1
  104962. +float: 2
  104963. +idouble: 1
  104964. +ifloat: 2
  104965. +
  104966. +Function: Real part of "ctanh":
  104967. +double: 1
  104968. +float: 1
  104969. +idouble: 1
  104970. +ifloat: 1
  104971. +
  104972. +Function: Imaginary part of "ctanh":
  104973. +double: 1
  104974. +float: 2
  104975. +idouble: 1
  104976. +ifloat: 2
  104977. +
  104978. +Function: Real part of "ctanh_downward":
  104979. +float: 1
  104980. +ifloat: 1
  104981. +
  104982. +Function: Imaginary part of "ctanh_downward":
  104983. +double: 2
  104984. +float: 1
  104985. +idouble: 2
  104986. +ifloat: 1
  104987. +
  104988. +Function: Real part of "ctanh_tonearest":
  104989. +float: 1
  104990. +ifloat: 1
  104991. +
  104992. +Function: Imaginary part of "ctanh_tonearest":
  104993. +float: 1
  104994. +ifloat: 1
  104995. +
  104996. +Function: Real part of "ctanh_towardzero":
  104997. +float: 1
  104998. +ifloat: 1
  104999. +
  105000. +Function: Imaginary part of "ctanh_towardzero":
  105001. +float: 1
  105002. +ifloat: 1
  105003. +
  105004. +Function: Real part of "ctanh_upward":
  105005. +double: 1
  105006. +float: 2
  105007. +idouble: 1
  105008. +ifloat: 2
  105009. +
  105010. +Function: Imaginary part of "ctanh_upward":
  105011. +double: 2
  105012. +float: 1
  105013. +idouble: 2
  105014. +ifloat: 1
  105015. +
  105016. +Function: "erf":
  105017. +double: 1
  105018. +idouble: 1
  105019. +
  105020. +Function: "erfc":
  105021. +double: 1
  105022. +float: 1
  105023. +idouble: 1
  105024. +ifloat: 1
  105025. +
  105026. +Function: "exp":
  105027. +double: 1
  105028. +idouble: 1
  105029. +
  105030. +Function: "exp10":
  105031. +double: 1
  105032. +idouble: 1
  105033. +
  105034. +Function: "exp_downward":
  105035. +float: 1
  105036. +ifloat: 1
  105037. +
  105038. +Function: "exp_towardzero":
  105039. +float: 1
  105040. +ifloat: 1
  105041. +
  105042. +Function: "exp_upward":
  105043. +float: 1
  105044. +ifloat: 1
  105045. +
  105046. +Function: "expm1":
  105047. +double: 1
  105048. +float: 1
  105049. +idouble: 1
  105050. +ifloat: 1
  105051. +
  105052. +Function: "gamma":
  105053. +double: 1
  105054. +float: 2
  105055. +idouble: 1
  105056. +ifloat: 2
  105057. +
  105058. +Function: "hypot":
  105059. +float: 1
  105060. +ifloat: 1
  105061. +
  105062. +Function: "j0":
  105063. +double: 2
  105064. +float: 2
  105065. +idouble: 2
  105066. +ifloat: 2
  105067. +
  105068. +Function: "j1":
  105069. +double: 1
  105070. +float: 2
  105071. +idouble: 1
  105072. +ifloat: 2
  105073. +
  105074. +Function: "jn":
  105075. +double: 4
  105076. +float: 5
  105077. +idouble: 4
  105078. +ifloat: 5
  105079. +
  105080. +Function: "lgamma":
  105081. +double: 1
  105082. +float: 2
  105083. +idouble: 1
  105084. +ifloat: 2
  105085. +
  105086. +Function: "log":
  105087. +float: 1
  105088. +ifloat: 1
  105089. +
  105090. +Function: "log10":
  105091. +double: 1
  105092. +float: 2
  105093. +idouble: 1
  105094. +ifloat: 2
  105095. +
  105096. +Function: "log1p":
  105097. +float: 1
  105098. +ifloat: 1
  105099. +
  105100. +Function: "pow":
  105101. +float: 1
  105102. +ifloat: 1
  105103. +
  105104. +Function: "pow10":
  105105. +double: 1
  105106. +idouble: 1
  105107. +
  105108. +Function: "pow_downward":
  105109. +float: 1
  105110. +ifloat: 1
  105111. +
  105112. +Function: "pow_towardzero":
  105113. +float: 1
  105114. +ifloat: 1
  105115. +
  105116. +Function: "pow_upward":
  105117. +float: 1
  105118. +ifloat: 1
  105119. +
  105120. +Function: "sin_downward":
  105121. +float: 1
  105122. +ifloat: 1
  105123. +
  105124. +Function: "sin_tonearest":
  105125. +float: 1
  105126. +ifloat: 1
  105127. +
  105128. +Function: "sin_towardzero":
  105129. +float: 1
  105130. +ifloat: 1
  105131. +
  105132. +Function: "sin_upward":
  105133. +float: 2
  105134. +ifloat: 2
  105135. +
  105136. +Function: "sincos":
  105137. +double: 1
  105138. +float: 1
  105139. +idouble: 1
  105140. +ifloat: 1
  105141. +
  105142. +Function: "sinh_downward":
  105143. +float: 1
  105144. +ifloat: 1
  105145. +
  105146. +Function: "sinh_towardzero":
  105147. +float: 1
  105148. +ifloat: 1
  105149. +
  105150. +Function: "tan":
  105151. +double: 1
  105152. +idouble: 1
  105153. +
  105154. +Function: "tan_downward":
  105155. +float: 1
  105156. +ifloat: 1
  105157. +
  105158. +Function: "tan_towardzero":
  105159. +float: 1
  105160. +ifloat: 1
  105161. +
  105162. +Function: "tan_upward":
  105163. +float: 1
  105164. +ifloat: 1
  105165. +
  105166. +Function: "tgamma":
  105167. +double: 4
  105168. +float: 3
  105169. +idouble: 4
  105170. +ifloat: 3
  105171. +
  105172. +Function: "y0":
  105173. +double: 2
  105174. +float: 1
  105175. +idouble: 2
  105176. +ifloat: 1
  105177. +
  105178. +Function: "y1":
  105179. +double: 3
  105180. +float: 2
  105181. +idouble: 3
  105182. +ifloat: 2
  105183. +
  105184. +Function: "yn":
  105185. +double: 3
  105186. +float: 2
  105187. +idouble: 3
  105188. +ifloat: 2
  105189. +
  105190. +# end of automatic generation
  105191. diff -Nur uClibc-0.9.33.2/test/math/libm-test-ulps-mips32 uClibc-git/test/math/libm-test-ulps-mips32
  105192. --- uClibc-0.9.33.2/test/math/libm-test-ulps-mips32 1970-01-01 01:00:00.000000000 +0100
  105193. +++ uClibc-git/test/math/libm-test-ulps-mips32 2014-06-02 17:40:35.266718914 +0200
  105194. @@ -0,0 +1,4966 @@
  105195. +# Begin of automatic generation
  105196. +
  105197. +# acos_downward
  105198. +Test "acos_downward (-0)":
  105199. +float: 1
  105200. +ifloat: 1
  105201. +Test "acos_downward (-0.5)":
  105202. +double: 1
  105203. +idouble: 1
  105204. +Test "acos_downward (-1)":
  105205. +float: 1
  105206. +ifloat: 1
  105207. +Test "acos_downward (0)":
  105208. +float: 1
  105209. +ifloat: 1
  105210. +Test "acos_downward (0.5)":
  105211. +double: 1
  105212. +float: 1
  105213. +idouble: 1
  105214. +ifloat: 1
  105215. +
  105216. +# acos_towardzero
  105217. +Test "acos_towardzero (-0)":
  105218. +float: 1
  105219. +ifloat: 1
  105220. +Test "acos_towardzero (-0.5)":
  105221. +double: 1
  105222. +idouble: 1
  105223. +Test "acos_towardzero (-1)":
  105224. +float: 1
  105225. +ifloat: 1
  105226. +Test "acos_towardzero (0)":
  105227. +float: 1
  105228. +ifloat: 1
  105229. +Test "acos_towardzero (0.5)":
  105230. +double: 1
  105231. +float: 1
  105232. +idouble: 1
  105233. +ifloat: 1
  105234. +
  105235. +# asin_downward
  105236. +Test "asin_downward (-0.5)":
  105237. +double: 1
  105238. +idouble: 1
  105239. +Test "asin_downward (0.5)":
  105240. +double: 1
  105241. +idouble: 1
  105242. +Test "asin_downward (1.0)":
  105243. +float: 1
  105244. +ifloat: 1
  105245. +
  105246. +# asin_towardzero
  105247. +Test "asin_towardzero (-0.5)":
  105248. +double: 1
  105249. +idouble: 1
  105250. +Test "asin_towardzero (-1.0)":
  105251. +float: 1
  105252. +ifloat: 1
  105253. +Test "asin_towardzero (0.5)":
  105254. +double: 1
  105255. +idouble: 1
  105256. +Test "asin_towardzero (1.0)":
  105257. +float: 1
  105258. +ifloat: 1
  105259. +
  105260. +# asin_upward
  105261. +Test "asin_upward (-1.0)":
  105262. +float: 1
  105263. +ifloat: 1
  105264. +
  105265. +# atan2
  105266. +Test "atan2 (-0.75, -1.0)":
  105267. +float: 1
  105268. +ifloat: 1
  105269. +Test "atan2 (-max_value, -min_value)":
  105270. +float: 1
  105271. +ifloat: 1
  105272. +Test "atan2 (0.75, -1.0)":
  105273. +float: 1
  105274. +ifloat: 1
  105275. +Test "atan2 (1.390625, 0.9296875)":
  105276. +float: 1
  105277. +ifloat: 1
  105278. +
  105279. +# atanh
  105280. +Test "atanh (0.75)":
  105281. +float: 1
  105282. +ifloat: 1
  105283. +
  105284. +# cacos
  105285. +Test "Imaginary part of: cacos (+0 + 0.5 i)":
  105286. +float: 1
  105287. +ifloat: 1
  105288. +Test "Imaginary part of: cacos (+0 + 1.0 i)":
  105289. +double: 1
  105290. +float: 1
  105291. +idouble: 1
  105292. +ifloat: 1
  105293. +Test "Imaginary part of: cacos (+0 + 1.5 i)":
  105294. +double: 1
  105295. +idouble: 1
  105296. +Test "Imaginary part of: cacos (+0 - 0.5 i)":
  105297. +float: 1
  105298. +ifloat: 1
  105299. +Test "Imaginary part of: cacos (+0 - 1.0 i)":
  105300. +double: 1
  105301. +float: 1
  105302. +idouble: 1
  105303. +ifloat: 1
  105304. +Test "Imaginary part of: cacos (+0 - 1.5 i)":
  105305. +double: 1
  105306. +idouble: 1
  105307. +Test "Imaginary part of: cacos (-0 + 0.5 i)":
  105308. +float: 1
  105309. +ifloat: 1
  105310. +Test "Imaginary part of: cacos (-0 + 1.0 i)":
  105311. +double: 1
  105312. +float: 1
  105313. +idouble: 1
  105314. +ifloat: 1
  105315. +Test "Imaginary part of: cacos (-0 + 1.5 i)":
  105316. +double: 1
  105317. +idouble: 1
  105318. +Test "Imaginary part of: cacos (-0 - 0.5 i)":
  105319. +float: 1
  105320. +ifloat: 1
  105321. +Test "Imaginary part of: cacos (-0 - 1.0 i)":
  105322. +double: 1
  105323. +float: 1
  105324. +idouble: 1
  105325. +ifloat: 1
  105326. +Test "Imaginary part of: cacos (-0 - 1.5 i)":
  105327. +double: 1
  105328. +idouble: 1
  105329. +Test "Real part of: cacos (-0.25 + 1.0 i)":
  105330. +double: 1
  105331. +float: 1
  105332. +idouble: 1
  105333. +ifloat: 1
  105334. +Test "Imaginary part of: cacos (-0.25 + 1.0 i)":
  105335. +float: 1
  105336. +ifloat: 1
  105337. +Test "Real part of: cacos (-0.25 - 1.0 i)":
  105338. +double: 1
  105339. +float: 1
  105340. +idouble: 1
  105341. +ifloat: 1
  105342. +Test "Imaginary part of: cacos (-0.25 - 1.0 i)":
  105343. +float: 1
  105344. +ifloat: 1
  105345. +Test "Imaginary part of: cacos (-0.5 + 0x1.fp-129 i)":
  105346. +double: 1
  105347. +idouble: 1
  105348. +Test "Imaginary part of: cacos (-0.5 + 0x1p-105 i)":
  105349. +double: 1
  105350. +idouble: 1
  105351. +Test "Imaginary part of: cacos (-0.5 + 0x1p-112 i)":
  105352. +double: 1
  105353. +idouble: 1
  105354. +Test "Imaginary part of: cacos (-0.5 + 0x1p-23 i)":
  105355. +double: 1
  105356. +idouble: 1
  105357. +Test "Real part of: cacos (-0.5 + 1.0 i)":
  105358. +float: 1
  105359. +ifloat: 1
  105360. +Test "Imaginary part of: cacos (-0.5 + 1.0 i)":
  105361. +double: 1
  105362. +idouble: 1
  105363. +Test "Imaginary part of: cacos (-0.5 - 0x1.fp-129 i)":
  105364. +double: 1
  105365. +idouble: 1
  105366. +Test "Imaginary part of: cacos (-0.5 - 0x1p-105 i)":
  105367. +double: 1
  105368. +idouble: 1
  105369. +Test "Imaginary part of: cacos (-0.5 - 0x1p-112 i)":
  105370. +double: 1
  105371. +idouble: 1
  105372. +Test "Imaginary part of: cacos (-0.5 - 0x1p-23 i)":
  105373. +double: 1
  105374. +idouble: 1
  105375. +Test "Real part of: cacos (-0.5 - 1.0 i)":
  105376. +float: 1
  105377. +ifloat: 1
  105378. +Test "Imaginary part of: cacos (-0.5 - 1.0 i)":
  105379. +double: 1
  105380. +idouble: 1
  105381. +Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
  105382. +double: 1
  105383. +idouble: 1
  105384. +Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
  105385. +double: 1
  105386. +idouble: 1
  105387. +Test "Imaginary part of: cacos (-0x0.ffffffp0 + 0x1p-23 i)":
  105388. +float: 2
  105389. +ifloat: 2
  105390. +Test "Imaginary part of: cacos (-0x0.ffffffp0 - 0x1p-23 i)":
  105391. +float: 2
  105392. +ifloat: 2
  105393. +Test "Imaginary part of: cacos (-0x1.000002p0 + 0x1p-23 i)":
  105394. +float: 1
  105395. +ifloat: 1
  105396. +Test "Imaginary part of: cacos (-0x1.000002p0 - 0x1p-23 i)":
  105397. +float: 1
  105398. +ifloat: 1
  105399. +Test "Imaginary part of: cacos (-0x1.fp-10 + 1.0 i)":
  105400. +double: 1
  105401. +idouble: 1
  105402. +Test "Imaginary part of: cacos (-0x1.fp-10 - 1.0 i)":
  105403. +double: 1
  105404. +idouble: 1
  105405. +Test "Real part of: cacos (-0x1.fp-100 + 1.0 i)":
  105406. +float: 1
  105407. +ifloat: 1
  105408. +Test "Imaginary part of: cacos (-0x1.fp-100 + 1.0 i)":
  105409. +double: 1
  105410. +float: 1
  105411. +idouble: 1
  105412. +ifloat: 1
  105413. +Test "Real part of: cacos (-0x1.fp-100 - 1.0 i)":
  105414. +float: 1
  105415. +ifloat: 1
  105416. +Test "Imaginary part of: cacos (-0x1.fp-100 - 1.0 i)":
  105417. +double: 1
  105418. +float: 1
  105419. +idouble: 1
  105420. +ifloat: 1
  105421. +Test "Imaginary part of: cacos (-0x1.fp-1000 + 1.0 i)":
  105422. +double: 1
  105423. +idouble: 1
  105424. +Test "Imaginary part of: cacos (-0x1.fp-1000 - 1.0 i)":
  105425. +double: 1
  105426. +idouble: 1
  105427. +Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.0 i)":
  105428. +double: 1
  105429. +idouble: 1
  105430. +Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.5 i)":
  105431. +double: 1
  105432. +idouble: 1
  105433. +Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.0 i)":
  105434. +double: 1
  105435. +idouble: 1
  105436. +Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.5 i)":
  105437. +double: 1
  105438. +idouble: 1
  105439. +Test "Real part of: cacos (-0x1.fp-129 + 0.5 i)":
  105440. +float: 1
  105441. +ifloat: 1
  105442. +Test "Imaginary part of: cacos (-0x1.fp-129 + 0.5 i)":
  105443. +float: 1
  105444. +ifloat: 1
  105445. +Test "Real part of: cacos (-0x1.fp-129 + 0x0.ffffffp0 i)":
  105446. +float: 1
  105447. +ifloat: 1
  105448. +Test "Real part of: cacos (-0x1.fp-129 + 0x1.000002p0 i)":
  105449. +float: 1
  105450. +ifloat: 1
  105451. +Test "Real part of: cacos (-0x1.fp-129 + 0x1.fp-129 i)":
  105452. +float: 1
  105453. +ifloat: 1
  105454. +Test "Real part of: cacos (-0x1.fp-129 + 0x1p-23 i)":
  105455. +float: 1
  105456. +ifloat: 1
  105457. +Test "Real part of: cacos (-0x1.fp-129 + 1.0 i)":
  105458. +float: 1
  105459. +ifloat: 1
  105460. +Test "Imaginary part of: cacos (-0x1.fp-129 + 1.0 i)":
  105461. +double: 1
  105462. +float: 1
  105463. +idouble: 1
  105464. +ifloat: 1
  105465. +Test "Real part of: cacos (-0x1.fp-129 + 1.5 i)":
  105466. +float: 1
  105467. +ifloat: 1
  105468. +Test "Imaginary part of: cacos (-0x1.fp-129 + 1.5 i)":
  105469. +double: 1
  105470. +idouble: 1
  105471. +Test "Real part of: cacos (-0x1.fp-129 - 0.5 i)":
  105472. +float: 1
  105473. +ifloat: 1
  105474. +Test "Imaginary part of: cacos (-0x1.fp-129 - 0.5 i)":
  105475. +float: 1
  105476. +ifloat: 1
  105477. +Test "Real part of: cacos (-0x1.fp-129 - 0x0.ffffffp0 i)":
  105478. +float: 1
  105479. +ifloat: 1
  105480. +Test "Real part of: cacos (-0x1.fp-129 - 0x1.000002p0 i)":
  105481. +float: 1
  105482. +ifloat: 1
  105483. +Test "Real part of: cacos (-0x1.fp-129 - 0x1.fp-129 i)":
  105484. +float: 1
  105485. +ifloat: 1
  105486. +Test "Real part of: cacos (-0x1.fp-129 - 0x1p-23 i)":
  105487. +float: 1
  105488. +ifloat: 1
  105489. +Test "Real part of: cacos (-0x1.fp-129 - 1.0 i)":
  105490. +float: 1
  105491. +ifloat: 1
  105492. +Test "Imaginary part of: cacos (-0x1.fp-129 - 1.0 i)":
  105493. +double: 1
  105494. +float: 1
  105495. +idouble: 1
  105496. +ifloat: 1
  105497. +Test "Real part of: cacos (-0x1.fp-129 - 1.5 i)":
  105498. +float: 1
  105499. +ifloat: 1
  105500. +Test "Imaginary part of: cacos (-0x1.fp-129 - 1.5 i)":
  105501. +double: 1
  105502. +idouble: 1
  105503. +Test "Real part of: cacos (-0x1.fp-30 + 1.0 i)":
  105504. +float: 1
  105505. +ifloat: 1
  105506. +Test "Imaginary part of: cacos (-0x1.fp-30 + 1.0 i)":
  105507. +double: 1
  105508. +float: 1
  105509. +idouble: 1
  105510. +ifloat: 1
  105511. +Test "Real part of: cacos (-0x1.fp-30 - 1.0 i)":
  105512. +float: 1
  105513. +ifloat: 1
  105514. +Test "Imaginary part of: cacos (-0x1.fp-30 - 1.0 i)":
  105515. +double: 1
  105516. +float: 1
  105517. +idouble: 1
  105518. +ifloat: 1
  105519. +Test "Real part of: cacos (-0x1p-105 + 0.0 i)":
  105520. +float: 1
  105521. +ifloat: 1
  105522. +Test "Real part of: cacos (-0x1p-105 + 0.5 i)":
  105523. +float: 1
  105524. +ifloat: 1
  105525. +Test "Imaginary part of: cacos (-0x1p-105 + 0.5 i)":
  105526. +float: 1
  105527. +ifloat: 1
  105528. +Test "Real part of: cacos (-0x1p-105 + 0x1p-105 i)":
  105529. +float: 1
  105530. +ifloat: 1
  105531. +Test "Real part of: cacos (-0x1p-105 - 0.0 i)":
  105532. +float: 1
  105533. +ifloat: 1
  105534. +Test "Real part of: cacos (-0x1p-105 - 0.5 i)":
  105535. +float: 1
  105536. +ifloat: 1
  105537. +Test "Imaginary part of: cacos (-0x1p-105 - 0.5 i)":
  105538. +float: 1
  105539. +ifloat: 1
  105540. +Test "Real part of: cacos (-0x1p-105 - 0x1p-105 i)":
  105541. +float: 1
  105542. +ifloat: 1
  105543. +Test "Real part of: cacos (-0x1p-112 + 0.0 i)":
  105544. +float: 1
  105545. +ifloat: 1
  105546. +Test "Real part of: cacos (-0x1p-112 + 0.5 i)":
  105547. +float: 1
  105548. +ifloat: 1
  105549. +Test "Imaginary part of: cacos (-0x1p-112 + 0.5 i)":
  105550. +float: 1
  105551. +ifloat: 1
  105552. +Test "Real part of: cacos (-0x1p-112 + 0x1p-112 i)":
  105553. +float: 1
  105554. +ifloat: 1
  105555. +Test "Real part of: cacos (-0x1p-112 - 0.0 i)":
  105556. +float: 1
  105557. +ifloat: 1
  105558. +Test "Real part of: cacos (-0x1p-112 - 0.5 i)":
  105559. +float: 1
  105560. +ifloat: 1
  105561. +Test "Imaginary part of: cacos (-0x1p-112 - 0.5 i)":
  105562. +float: 1
  105563. +ifloat: 1
  105564. +Test "Real part of: cacos (-0x1p-112 - 0x1p-112 i)":
  105565. +float: 1
  105566. +ifloat: 1
  105567. +Test "Real part of: cacos (-0x1p-23 + 0.0 i)":
  105568. +float: 1
  105569. +ifloat: 1
  105570. +Test "Real part of: cacos (-0x1p-23 + 0.5 i)":
  105571. +float: 1
  105572. +ifloat: 1
  105573. +Test "Imaginary part of: cacos (-0x1p-23 + 0.5 i)":
  105574. +float: 1
  105575. +ifloat: 1
  105576. +Test "Imaginary part of: cacos (-0x1p-23 + 0x0.ffffffp0 i)":
  105577. +double: 1
  105578. +idouble: 1
  105579. +Test "Real part of: cacos (-0x1p-23 + 0x1.fp-129 i)":
  105580. +float: 1
  105581. +ifloat: 1
  105582. +Test "Real part of: cacos (-0x1p-23 + 0x1p-23 i)":
  105583. +float: 1
  105584. +ifloat: 1
  105585. +Test "Real part of: cacos (-0x1p-23 - 0.0 i)":
  105586. +float: 1
  105587. +ifloat: 1
  105588. +Test "Real part of: cacos (-0x1p-23 - 0.5 i)":
  105589. +float: 1
  105590. +ifloat: 1
  105591. +Test "Imaginary part of: cacos (-0x1p-23 - 0.5 i)":
  105592. +float: 1
  105593. +ifloat: 1
  105594. +Test "Imaginary part of: cacos (-0x1p-23 - 0x0.ffffffp0 i)":
  105595. +double: 1
  105596. +idouble: 1
  105597. +Test "Real part of: cacos (-0x1p-23 - 0x1.fp-129 i)":
  105598. +float: 1
  105599. +ifloat: 1
  105600. +Test "Real part of: cacos (-0x1p-23 - 0x1p-23 i)":
  105601. +float: 1
  105602. +ifloat: 1
  105603. +Test "Real part of: cacos (-0x1p-52 + 0.0 i)":
  105604. +float: 1
  105605. +ifloat: 1
  105606. +Test "Real part of: cacos (-0x1p-52 + 0.5 i)":
  105607. +float: 1
  105608. +ifloat: 1
  105609. +Test "Imaginary part of: cacos (-0x1p-52 + 0.5 i)":
  105610. +float: 1
  105611. +ifloat: 1
  105612. +Test "Real part of: cacos (-0x1p-52 + 0x1p-52 i)":
  105613. +float: 1
  105614. +ifloat: 1
  105615. +Test "Real part of: cacos (-0x1p-52 - 0.0 i)":
  105616. +float: 1
  105617. +ifloat: 1
  105618. +Test "Real part of: cacos (-0x1p-52 - 0.5 i)":
  105619. +float: 1
  105620. +ifloat: 1
  105621. +Test "Imaginary part of: cacos (-0x1p-52 - 0.5 i)":
  105622. +float: 1
  105623. +ifloat: 1
  105624. +Test "Real part of: cacos (-0x1p-52 - 0x1p-52 i)":
  105625. +float: 1
  105626. +ifloat: 1
  105627. +Test "Real part of: cacos (-0x1p-63 + 0.0 i)":
  105628. +float: 1
  105629. +ifloat: 1
  105630. +Test "Real part of: cacos (-0x1p-63 + 0.5 i)":
  105631. +float: 1
  105632. +ifloat: 1
  105633. +Test "Imaginary part of: cacos (-0x1p-63 + 0.5 i)":
  105634. +float: 1
  105635. +ifloat: 1
  105636. +Test "Real part of: cacos (-0x1p-63 + 0x1p-63 i)":
  105637. +float: 1
  105638. +ifloat: 1
  105639. +Test "Real part of: cacos (-0x1p-63 - 0.0 i)":
  105640. +float: 1
  105641. +ifloat: 1
  105642. +Test "Real part of: cacos (-0x1p-63 - 0.5 i)":
  105643. +float: 1
  105644. +ifloat: 1
  105645. +Test "Imaginary part of: cacos (-0x1p-63 - 0.5 i)":
  105646. +float: 1
  105647. +ifloat: 1
  105648. +Test "Real part of: cacos (-0x1p-63 - 0x1p-63 i)":
  105649. +float: 1
  105650. +ifloat: 1
  105651. +Test "Imaginary part of: cacos (-1.0 + 0.5 i)":
  105652. +float: 1
  105653. +ifloat: 1
  105654. +Test "Imaginary part of: cacos (-1.0 + 0x1.fp-10 i)":
  105655. +float: 1
  105656. +ifloat: 1
  105657. +Test "Real part of: cacos (-1.0 + 0x1p50 i)":
  105658. +float: 1
  105659. +ifloat: 1
  105660. +Test "Imaginary part of: cacos (-1.0 - 0.5 i)":
  105661. +float: 1
  105662. +ifloat: 1
  105663. +Test "Imaginary part of: cacos (-1.0 - 0x1.fp-10 i)":
  105664. +float: 1
  105665. +ifloat: 1
  105666. +Test "Real part of: cacos (-1.0 - 0x1p50 i)":
  105667. +float: 1
  105668. +ifloat: 1
  105669. +Test "Real part of: cacos (-2 - 3 i)":
  105670. +float: 1
  105671. +ifloat: 1
  105672. +Test "Imaginary part of: cacos (0.25 + 1.0 i)":
  105673. +float: 1
  105674. +ifloat: 1
  105675. +Test "Imaginary part of: cacos (0.25 - 1.0 i)":
  105676. +float: 1
  105677. +ifloat: 1
  105678. +Test "Real part of: cacos (0.5 + +0 i)":
  105679. +double: 1
  105680. +idouble: 1
  105681. +Test "Real part of: cacos (0.5 + 0x1.fp-1025 i)":
  105682. +double: 1
  105683. +idouble: 1
  105684. +Test "Real part of: cacos (0.5 + 0x1.fp-129 i)":
  105685. +double: 1
  105686. +idouble: 1
  105687. +Test "Imaginary part of: cacos (0.5 + 0x1.fp-129 i)":
  105688. +double: 1
  105689. +idouble: 1
  105690. +Test "Real part of: cacos (0.5 + 0x1p-105 i)":
  105691. +double: 1
  105692. +idouble: 1
  105693. +Test "Imaginary part of: cacos (0.5 + 0x1p-105 i)":
  105694. +double: 1
  105695. +idouble: 1
  105696. +Test "Real part of: cacos (0.5 + 0x1p-112 i)":
  105697. +double: 1
  105698. +idouble: 1
  105699. +Test "Imaginary part of: cacos (0.5 + 0x1p-112 i)":
  105700. +double: 1
  105701. +idouble: 1
  105702. +Test "Imaginary part of: cacos (0.5 + 0x1p-23 i)":
  105703. +double: 1
  105704. +idouble: 1
  105705. +Test "Real part of: cacos (0.5 + 0x1p-52 i)":
  105706. +double: 1
  105707. +idouble: 1
  105708. +Test "Real part of: cacos (0.5 + 0x1p-63 i)":
  105709. +double: 1
  105710. +idouble: 1
  105711. +Test "Real part of: cacos (0.5 + 1.0 i)":
  105712. +float: 1
  105713. +ifloat: 1
  105714. +Test "Imaginary part of: cacos (0.5 + 1.0 i)":
  105715. +double: 1
  105716. +idouble: 1
  105717. +Test "Real part of: cacos (0.5 - 0 i)":
  105718. +double: 1
  105719. +idouble: 1
  105720. +Test "Real part of: cacos (0.5 - 0x1.fp-1025 i)":
  105721. +double: 1
  105722. +idouble: 1
  105723. +Test "Real part of: cacos (0.5 - 0x1.fp-129 i)":
  105724. +double: 1
  105725. +idouble: 1
  105726. +Test "Imaginary part of: cacos (0.5 - 0x1.fp-129 i)":
  105727. +double: 1
  105728. +idouble: 1
  105729. +Test "Real part of: cacos (0.5 - 0x1p-105 i)":
  105730. +double: 1
  105731. +idouble: 1
  105732. +Test "Imaginary part of: cacos (0.5 - 0x1p-105 i)":
  105733. +double: 1
  105734. +idouble: 1
  105735. +Test "Real part of: cacos (0.5 - 0x1p-112 i)":
  105736. +double: 1
  105737. +idouble: 1
  105738. +Test "Imaginary part of: cacos (0.5 - 0x1p-112 i)":
  105739. +double: 1
  105740. +idouble: 1
  105741. +Test "Imaginary part of: cacos (0.5 - 0x1p-23 i)":
  105742. +double: 1
  105743. +idouble: 1
  105744. +Test "Real part of: cacos (0.5 - 0x1p-52 i)":
  105745. +double: 1
  105746. +idouble: 1
  105747. +Test "Real part of: cacos (0.5 - 0x1p-63 i)":
  105748. +double: 1
  105749. +idouble: 1
  105750. +Test "Real part of: cacos (0.5 - 1.0 i)":
  105751. +float: 1
  105752. +ifloat: 1
  105753. +Test "Imaginary part of: cacos (0.5 - 1.0 i)":
  105754. +double: 1
  105755. +idouble: 1
  105756. +Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 + 0x1p-52 i)":
  105757. +double: 1
  105758. +idouble: 1
  105759. +Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 - 0x1p-52 i)":
  105760. +double: 1
  105761. +idouble: 1
  105762. +Test "Real part of: cacos (0x0.ffffffp0 + 0.0 i)":
  105763. +float: 1
  105764. +ifloat: 1
  105765. +Test "Real part of: cacos (0x0.ffffffp0 + 0x1.fp-129 i)":
  105766. +float: 1
  105767. +ifloat: 1
  105768. +Test "Real part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
  105769. +float: 2
  105770. +ifloat: 2
  105771. +Test "Imaginary part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
  105772. +float: 2
  105773. +ifloat: 2
  105774. +Test "Real part of: cacos (0x0.ffffffp0 - 0.0 i)":
  105775. +float: 1
  105776. +ifloat: 1
  105777. +Test "Real part of: cacos (0x0.ffffffp0 - 0x1.fp-129 i)":
  105778. +float: 1
  105779. +ifloat: 1
  105780. +Test "Real part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
  105781. +float: 2
  105782. +ifloat: 2
  105783. +Test "Imaginary part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
  105784. +float: 2
  105785. +ifloat: 2
  105786. +Test "Real part of: cacos (0x1.0000000000001p0 + 0x1p-52 i)":
  105787. +double: 1
  105788. +idouble: 1
  105789. +Test "Real part of: cacos (0x1.0000000000001p0 - 0x1p-52 i)":
  105790. +double: 1
  105791. +idouble: 1
  105792. +Test "Real part of: cacos (0x1.000002p0 + 0x1p-23 i)":
  105793. +float: 2
  105794. +ifloat: 2
  105795. +Test "Imaginary part of: cacos (0x1.000002p0 + 0x1p-23 i)":
  105796. +float: 1
  105797. +ifloat: 1
  105798. +Test "Real part of: cacos (0x1.000002p0 - 0x1p-23 i)":
  105799. +float: 2
  105800. +ifloat: 2
  105801. +Test "Imaginary part of: cacos (0x1.000002p0 - 0x1p-23 i)":
  105802. +float: 1
  105803. +ifloat: 1
  105804. +Test "Imaginary part of: cacos (0x1.fp-10 + 1.0 i)":
  105805. +double: 1
  105806. +idouble: 1
  105807. +Test "Imaginary part of: cacos (0x1.fp-10 - 1.0 i)":
  105808. +double: 1
  105809. +idouble: 1
  105810. +Test "Imaginary part of: cacos (0x1.fp-100 + 1.0 i)":
  105811. +double: 1
  105812. +float: 1
  105813. +idouble: 1
  105814. +ifloat: 1
  105815. +Test "Imaginary part of: cacos (0x1.fp-100 - 1.0 i)":
  105816. +double: 1
  105817. +float: 1
  105818. +idouble: 1
  105819. +ifloat: 1
  105820. +Test "Imaginary part of: cacos (0x1.fp-1000 + 1.0 i)":
  105821. +double: 1
  105822. +idouble: 1
  105823. +Test "Imaginary part of: cacos (0x1.fp-1000 - 1.0 i)":
  105824. +double: 1
  105825. +idouble: 1
  105826. +Test "Imaginary part of: cacos (0x1.fp-1025 + 1.0 i)":
  105827. +double: 1
  105828. +idouble: 1
  105829. +Test "Imaginary part of: cacos (0x1.fp-1025 + 1.5 i)":
  105830. +double: 1
  105831. +idouble: 1
  105832. +Test "Imaginary part of: cacos (0x1.fp-1025 - 1.0 i)":
  105833. +double: 1
  105834. +idouble: 1
  105835. +Test "Imaginary part of: cacos (0x1.fp-1025 - 1.5 i)":
  105836. +double: 1
  105837. +idouble: 1
  105838. +Test "Imaginary part of: cacos (0x1.fp-129 + 0.5 i)":
  105839. +float: 1
  105840. +ifloat: 1
  105841. +Test "Imaginary part of: cacos (0x1.fp-129 + 1.0 i)":
  105842. +double: 1
  105843. +float: 1
  105844. +idouble: 1
  105845. +ifloat: 1
  105846. +Test "Imaginary part of: cacos (0x1.fp-129 + 1.5 i)":
  105847. +double: 1
  105848. +idouble: 1
  105849. +Test "Imaginary part of: cacos (0x1.fp-129 - 0.5 i)":
  105850. +float: 1
  105851. +ifloat: 1
  105852. +Test "Imaginary part of: cacos (0x1.fp-129 - 1.0 i)":
  105853. +double: 1
  105854. +float: 1
  105855. +idouble: 1
  105856. +ifloat: 1
  105857. +Test "Imaginary part of: cacos (0x1.fp-129 - 1.5 i)":
  105858. +double: 1
  105859. +idouble: 1
  105860. +Test "Imaginary part of: cacos (0x1.fp-30 + 1.0 i)":
  105861. +double: 1
  105862. +float: 1
  105863. +idouble: 1
  105864. +ifloat: 1
  105865. +Test "Imaginary part of: cacos (0x1.fp-30 - 1.0 i)":
  105866. +double: 1
  105867. +float: 1
  105868. +idouble: 1
  105869. +ifloat: 1
  105870. +Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i)":
  105871. +double: 1
  105872. +idouble: 1
  105873. +Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i)":
  105874. +double: 1
  105875. +idouble: 1
  105876. +Test "Imaginary part of: cacos (0x1p-105 + 0.5 i)":
  105877. +float: 1
  105878. +ifloat: 1
  105879. +Test "Imaginary part of: cacos (0x1p-105 - 0.5 i)":
  105880. +float: 1
  105881. +ifloat: 1
  105882. +Test "Imaginary part of: cacos (0x1p-112 + 0.5 i)":
  105883. +float: 1
  105884. +ifloat: 1
  105885. +Test "Imaginary part of: cacos (0x1p-112 - 0.5 i)":
  105886. +float: 1
  105887. +ifloat: 1
  105888. +Test "Imaginary part of: cacos (0x1p-23 + 0.5 i)":
  105889. +float: 1
  105890. +ifloat: 1
  105891. +Test "Imaginary part of: cacos (0x1p-23 + 0x0.ffffffp0 i)":
  105892. +double: 1
  105893. +idouble: 1
  105894. +Test "Imaginary part of: cacos (0x1p-23 - 0.5 i)":
  105895. +float: 1
  105896. +ifloat: 1
  105897. +Test "Imaginary part of: cacos (0x1p-23 - 0x0.ffffffp0 i)":
  105898. +double: 1
  105899. +idouble: 1
  105900. +Test "Imaginary part of: cacos (0x1p-52 + 0.5 i)":
  105901. +float: 1
  105902. +ifloat: 1
  105903. +Test "Imaginary part of: cacos (0x1p-52 - 0.5 i)":
  105904. +float: 1
  105905. +ifloat: 1
  105906. +Test "Imaginary part of: cacos (0x1p-63 + 0.5 i)":
  105907. +float: 1
  105908. +ifloat: 1
  105909. +Test "Imaginary part of: cacos (0x1p-63 - 0.5 i)":
  105910. +float: 1
  105911. +ifloat: 1
  105912. +Test "Real part of: cacos (1.0 + 0.25 i)":
  105913. +double: 1
  105914. +idouble: 1
  105915. +Test "Real part of: cacos (1.0 + 0.5 i)":
  105916. +float: 1
  105917. +ifloat: 1
  105918. +Test "Imaginary part of: cacos (1.0 + 0.5 i)":
  105919. +float: 1
  105920. +ifloat: 1
  105921. +Test "Real part of: cacos (1.0 + 0x1.fp-10 i)":
  105922. +float: 2
  105923. +ifloat: 2
  105924. +Test "Imaginary part of: cacos (1.0 + 0x1.fp-10 i)":
  105925. +float: 1
  105926. +ifloat: 1
  105927. +Test "Real part of: cacos (1.0 - 0.25 i)":
  105928. +double: 1
  105929. +idouble: 1
  105930. +Test "Real part of: cacos (1.0 - 0.5 i)":
  105931. +float: 1
  105932. +ifloat: 1
  105933. +Test "Imaginary part of: cacos (1.0 - 0.5 i)":
  105934. +float: 1
  105935. +ifloat: 1
  105936. +Test "Real part of: cacos (1.0 - 0x1.fp-10 i)":
  105937. +float: 2
  105938. +ifloat: 2
  105939. +Test "Imaginary part of: cacos (1.0 - 0x1.fp-10 i)":
  105940. +float: 1
  105941. +ifloat: 1
  105942. +
  105943. +# cacosh
  105944. +Test "Real part of: cacosh (+0 + 0.5 i)":
  105945. +float: 1
  105946. +ifloat: 1
  105947. +Test "Real part of: cacosh (+0 + 1.0 i)":
  105948. +double: 1
  105949. +float: 1
  105950. +idouble: 1
  105951. +ifloat: 1
  105952. +Test "Real part of: cacosh (+0 + 1.5 i)":
  105953. +double: 1
  105954. +idouble: 1
  105955. +Test "Real part of: cacosh (+0 - 0.5 i)":
  105956. +float: 1
  105957. +ifloat: 1
  105958. +Test "Real part of: cacosh (+0 - 1.0 i)":
  105959. +double: 1
  105960. +float: 1
  105961. +idouble: 1
  105962. +ifloat: 1
  105963. +Test "Real part of: cacosh (+0 - 1.5 i)":
  105964. +double: 1
  105965. +idouble: 1
  105966. +Test "Real part of: cacosh (-0 + 0.5 i)":
  105967. +float: 1
  105968. +ifloat: 1
  105969. +Test "Real part of: cacosh (-0 + 1.0 i)":
  105970. +double: 1
  105971. +float: 1
  105972. +idouble: 1
  105973. +ifloat: 1
  105974. +Test "Real part of: cacosh (-0 + 1.5 i)":
  105975. +double: 1
  105976. +idouble: 1
  105977. +Test "Real part of: cacosh (-0 - 0.5 i)":
  105978. +float: 1
  105979. +ifloat: 1
  105980. +Test "Real part of: cacosh (-0 - 1.0 i)":
  105981. +double: 1
  105982. +float: 1
  105983. +idouble: 1
  105984. +ifloat: 1
  105985. +Test "Real part of: cacosh (-0 - 1.5 i)":
  105986. +double: 1
  105987. +idouble: 1
  105988. +Test "Real part of: cacosh (-0.25 + 1.0 i)":
  105989. +float: 1
  105990. +ifloat: 1
  105991. +Test "Imaginary part of: cacosh (-0.25 + 1.0 i)":
  105992. +double: 1
  105993. +float: 1
  105994. +idouble: 1
  105995. +ifloat: 1
  105996. +Test "Real part of: cacosh (-0.25 - 1.0 i)":
  105997. +float: 1
  105998. +ifloat: 1
  105999. +Test "Imaginary part of: cacosh (-0.25 - 1.0 i)":
  106000. +double: 1
  106001. +float: 1
  106002. +idouble: 1
  106003. +ifloat: 1
  106004. +Test "Real part of: cacosh (-0.5 + 0x1.fp-129 i)":
  106005. +double: 1
  106006. +idouble: 1
  106007. +Test "Real part of: cacosh (-0.5 + 0x1p-105 i)":
  106008. +double: 1
  106009. +idouble: 1
  106010. +Test "Real part of: cacosh (-0.5 + 0x1p-112 i)":
  106011. +double: 1
  106012. +idouble: 1
  106013. +Test "Real part of: cacosh (-0.5 + 0x1p-23 i)":
  106014. +double: 1
  106015. +idouble: 1
  106016. +Test "Real part of: cacosh (-0.5 + 1.0 i)":
  106017. +double: 1
  106018. +idouble: 1
  106019. +Test "Imaginary part of: cacosh (-0.5 + 1.0 i)":
  106020. +float: 1
  106021. +ifloat: 1
  106022. +Test "Real part of: cacosh (-0.5 - 0x1.fp-129 i)":
  106023. +double: 1
  106024. +idouble: 1
  106025. +Test "Real part of: cacosh (-0.5 - 0x1p-105 i)":
  106026. +double: 1
  106027. +idouble: 1
  106028. +Test "Real part of: cacosh (-0.5 - 0x1p-112 i)":
  106029. +double: 1
  106030. +idouble: 1
  106031. +Test "Real part of: cacosh (-0.5 - 0x1p-23 i)":
  106032. +double: 1
  106033. +idouble: 1
  106034. +Test "Real part of: cacosh (-0.5 - 1.0 i)":
  106035. +double: 1
  106036. +idouble: 1
  106037. +Test "Imaginary part of: cacosh (-0.5 - 1.0 i)":
  106038. +float: 1
  106039. +ifloat: 1
  106040. +Test "Real part of: cacosh (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
  106041. +double: 1
  106042. +idouble: 1
  106043. +Test "Real part of: cacosh (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
  106044. +double: 1
  106045. +idouble: 1
  106046. +Test "Real part of: cacosh (-0x0.ffffffp0 + 0x1p-23 i)":
  106047. +float: 2
  106048. +ifloat: 2
  106049. +Test "Real part of: cacosh (-0x0.ffffffp0 - 0x1p-23 i)":
  106050. +float: 2
  106051. +ifloat: 2
  106052. +Test "Real part of: cacosh (-0x1.000002p0 + 0x1p-23 i)":
  106053. +float: 1
  106054. +ifloat: 1
  106055. +Test "Real part of: cacosh (-0x1.000002p0 - 0x1p-23 i)":
  106056. +float: 1
  106057. +ifloat: 1
  106058. +Test "Real part of: cacosh (-0x1.fp-10 + 1.0 i)":
  106059. +double: 1
  106060. +idouble: 1
  106061. +Test "Real part of: cacosh (-0x1.fp-10 - 1.0 i)":
  106062. +double: 1
  106063. +idouble: 1
  106064. +Test "Real part of: cacosh (-0x1.fp-100 + 1.0 i)":
  106065. +double: 1
  106066. +float: 1
  106067. +idouble: 1
  106068. +ifloat: 1
  106069. +Test "Imaginary part of: cacosh (-0x1.fp-100 + 1.0 i)":
  106070. +float: 1
  106071. +ifloat: 1
  106072. +Test "Real part of: cacosh (-0x1.fp-100 - 1.0 i)":
  106073. +double: 1
  106074. +float: 1
  106075. +idouble: 1
  106076. +ifloat: 1
  106077. +Test "Imaginary part of: cacosh (-0x1.fp-100 - 1.0 i)":
  106078. +float: 1
  106079. +ifloat: 1
  106080. +Test "Real part of: cacosh (-0x1.fp-1000 + 1.0 i)":
  106081. +double: 1
  106082. +idouble: 1
  106083. +Test "Real part of: cacosh (-0x1.fp-1000 - 1.0 i)":
  106084. +double: 1
  106085. +idouble: 1
  106086. +Test "Real part of: cacosh (-0x1.fp-1025 + 1.0 i)":
  106087. +double: 1
  106088. +idouble: 1
  106089. +Test "Real part of: cacosh (-0x1.fp-1025 + 1.5 i)":
  106090. +double: 1
  106091. +idouble: 1
  106092. +Test "Real part of: cacosh (-0x1.fp-1025 - 1.0 i)":
  106093. +double: 1
  106094. +idouble: 1
  106095. +Test "Real part of: cacosh (-0x1.fp-1025 - 1.5 i)":
  106096. +double: 1
  106097. +idouble: 1
  106098. +Test "Real part of: cacosh (-0x1.fp-129 + 0.5 i)":
  106099. +float: 1
  106100. +ifloat: 1
  106101. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0.5 i)":
  106102. +float: 1
  106103. +ifloat: 1
  106104. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x0.ffffffp0 i)":
  106105. +float: 1
  106106. +ifloat: 1
  106107. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.000002p0 i)":
  106108. +float: 1
  106109. +ifloat: 1
  106110. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.fp-129 i)":
  106111. +float: 1
  106112. +ifloat: 1
  106113. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1p-23 i)":
  106114. +float: 1
  106115. +ifloat: 1
  106116. +Test "Real part of: cacosh (-0x1.fp-129 + 1.0 i)":
  106117. +double: 1
  106118. +float: 1
  106119. +idouble: 1
  106120. +ifloat: 1
  106121. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.0 i)":
  106122. +float: 1
  106123. +ifloat: 1
  106124. +Test "Real part of: cacosh (-0x1.fp-129 + 1.5 i)":
  106125. +double: 1
  106126. +idouble: 1
  106127. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.5 i)":
  106128. +float: 1
  106129. +ifloat: 1
  106130. +Test "Real part of: cacosh (-0x1.fp-129 - 0.5 i)":
  106131. +float: 1
  106132. +ifloat: 1
  106133. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0.5 i)":
  106134. +float: 1
  106135. +ifloat: 1
  106136. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x0.ffffffp0 i)":
  106137. +float: 1
  106138. +ifloat: 1
  106139. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.000002p0 i)":
  106140. +float: 1
  106141. +ifloat: 1
  106142. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.fp-129 i)":
  106143. +float: 1
  106144. +ifloat: 1
  106145. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1p-23 i)":
  106146. +float: 1
  106147. +ifloat: 1
  106148. +Test "Real part of: cacosh (-0x1.fp-129 - 1.0 i)":
  106149. +double: 1
  106150. +float: 1
  106151. +idouble: 1
  106152. +ifloat: 1
  106153. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.0 i)":
  106154. +float: 1
  106155. +ifloat: 1
  106156. +Test "Real part of: cacosh (-0x1.fp-129 - 1.5 i)":
  106157. +double: 1
  106158. +idouble: 1
  106159. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.5 i)":
  106160. +float: 1
  106161. +ifloat: 1
  106162. +Test "Real part of: cacosh (-0x1.fp-30 + 1.0 i)":
  106163. +double: 1
  106164. +float: 1
  106165. +idouble: 1
  106166. +ifloat: 1
  106167. +Test "Imaginary part of: cacosh (-0x1.fp-30 + 1.0 i)":
  106168. +float: 1
  106169. +ifloat: 1
  106170. +Test "Real part of: cacosh (-0x1.fp-30 - 1.0 i)":
  106171. +double: 1
  106172. +float: 1
  106173. +idouble: 1
  106174. +ifloat: 1
  106175. +Test "Imaginary part of: cacosh (-0x1.fp-30 - 1.0 i)":
  106176. +float: 1
  106177. +ifloat: 1
  106178. +Test "Imaginary part of: cacosh (-0x1p-105 + 0.0 i)":
  106179. +float: 1
  106180. +ifloat: 1
  106181. +Test "Real part of: cacosh (-0x1p-105 + 0.5 i)":
  106182. +float: 1
  106183. +ifloat: 1
  106184. +Test "Imaginary part of: cacosh (-0x1p-105 + 0.5 i)":
  106185. +float: 1
  106186. +ifloat: 1
  106187. +Test "Imaginary part of: cacosh (-0x1p-105 + 0x1p-105 i)":
  106188. +float: 1
  106189. +ifloat: 1
  106190. +Test "Imaginary part of: cacosh (-0x1p-105 - 0.0 i)":
  106191. +float: 1
  106192. +ifloat: 1
  106193. +Test "Real part of: cacosh (-0x1p-105 - 0.5 i)":
  106194. +float: 1
  106195. +ifloat: 1
  106196. +Test "Imaginary part of: cacosh (-0x1p-105 - 0.5 i)":
  106197. +float: 1
  106198. +ifloat: 1
  106199. +Test "Imaginary part of: cacosh (-0x1p-105 - 0x1p-105 i)":
  106200. +float: 1
  106201. +ifloat: 1
  106202. +Test "Imaginary part of: cacosh (-0x1p-112 + 0.0 i)":
  106203. +float: 1
  106204. +ifloat: 1
  106205. +Test "Real part of: cacosh (-0x1p-112 + 0.5 i)":
  106206. +float: 1
  106207. +ifloat: 1
  106208. +Test "Imaginary part of: cacosh (-0x1p-112 + 0.5 i)":
  106209. +float: 1
  106210. +ifloat: 1
  106211. +Test "Imaginary part of: cacosh (-0x1p-112 + 0x1p-112 i)":
  106212. +float: 1
  106213. +ifloat: 1
  106214. +Test "Imaginary part of: cacosh (-0x1p-112 - 0.0 i)":
  106215. +float: 1
  106216. +ifloat: 1
  106217. +Test "Real part of: cacosh (-0x1p-112 - 0.5 i)":
  106218. +float: 1
  106219. +ifloat: 1
  106220. +Test "Imaginary part of: cacosh (-0x1p-112 - 0.5 i)":
  106221. +float: 1
  106222. +ifloat: 1
  106223. +Test "Imaginary part of: cacosh (-0x1p-112 - 0x1p-112 i)":
  106224. +float: 1
  106225. +ifloat: 1
  106226. +Test "Imaginary part of: cacosh (-0x1p-23 + 0.0 i)":
  106227. +float: 1
  106228. +ifloat: 1
  106229. +Test "Real part of: cacosh (-0x1p-23 + 0.5 i)":
  106230. +float: 1
  106231. +ifloat: 1
  106232. +Test "Imaginary part of: cacosh (-0x1p-23 + 0.5 i)":
  106233. +float: 1
  106234. +ifloat: 1
  106235. +Test "Real part of: cacosh (-0x1p-23 + 0x0.ffffffp0 i)":
  106236. +double: 1
  106237. +idouble: 1
  106238. +Test "Imaginary part of: cacosh (-0x1p-23 + 0x1.fp-129 i)":
  106239. +float: 1
  106240. +ifloat: 1
  106241. +Test "Imaginary part of: cacosh (-0x1p-23 + 0x1p-23 i)":
  106242. +float: 1
  106243. +ifloat: 1
  106244. +Test "Imaginary part of: cacosh (-0x1p-23 - 0.0 i)":
  106245. +float: 1
  106246. +ifloat: 1
  106247. +Test "Real part of: cacosh (-0x1p-23 - 0.5 i)":
  106248. +float: 1
  106249. +ifloat: 1
  106250. +Test "Imaginary part of: cacosh (-0x1p-23 - 0.5 i)":
  106251. +float: 1
  106252. +ifloat: 1
  106253. +Test "Real part of: cacosh (-0x1p-23 - 0x0.ffffffp0 i)":
  106254. +double: 1
  106255. +idouble: 1
  106256. +Test "Imaginary part of: cacosh (-0x1p-23 - 0x1.fp-129 i)":
  106257. +float: 1
  106258. +ifloat: 1
  106259. +Test "Imaginary part of: cacosh (-0x1p-23 - 0x1p-23 i)":
  106260. +float: 1
  106261. +ifloat: 1
  106262. +Test "Imaginary part of: cacosh (-0x1p-52 + 0.0 i)":
  106263. +float: 1
  106264. +ifloat: 1
  106265. +Test "Real part of: cacosh (-0x1p-52 + 0.5 i)":
  106266. +float: 1
  106267. +ifloat: 1
  106268. +Test "Imaginary part of: cacosh (-0x1p-52 + 0.5 i)":
  106269. +float: 1
  106270. +ifloat: 1
  106271. +Test "Imaginary part of: cacosh (-0x1p-52 + 0x1p-52 i)":
  106272. +float: 1
  106273. +ifloat: 1
  106274. +Test "Imaginary part of: cacosh (-0x1p-52 - 0.0 i)":
  106275. +float: 1
  106276. +ifloat: 1
  106277. +Test "Real part of: cacosh (-0x1p-52 - 0.5 i)":
  106278. +float: 1
  106279. +ifloat: 1
  106280. +Test "Imaginary part of: cacosh (-0x1p-52 - 0.5 i)":
  106281. +float: 1
  106282. +ifloat: 1
  106283. +Test "Imaginary part of: cacosh (-0x1p-52 - 0x1p-52 i)":
  106284. +float: 1
  106285. +ifloat: 1
  106286. +Test "Imaginary part of: cacosh (-0x1p-63 + 0.0 i)":
  106287. +float: 1
  106288. +ifloat: 1
  106289. +Test "Real part of: cacosh (-0x1p-63 + 0.5 i)":
  106290. +float: 1
  106291. +ifloat: 1
  106292. +Test "Imaginary part of: cacosh (-0x1p-63 + 0.5 i)":
  106293. +float: 1
  106294. +ifloat: 1
  106295. +Test "Imaginary part of: cacosh (-0x1p-63 + 0x1p-63 i)":
  106296. +float: 1
  106297. +ifloat: 1
  106298. +Test "Imaginary part of: cacosh (-0x1p-63 - 0.0 i)":
  106299. +float: 1
  106300. +ifloat: 1
  106301. +Test "Real part of: cacosh (-0x1p-63 - 0.5 i)":
  106302. +float: 1
  106303. +ifloat: 1
  106304. +Test "Imaginary part of: cacosh (-0x1p-63 - 0.5 i)":
  106305. +float: 1
  106306. +ifloat: 1
  106307. +Test "Imaginary part of: cacosh (-0x1p-63 - 0x1p-63 i)":
  106308. +float: 1
  106309. +ifloat: 1
  106310. +Test "Real part of: cacosh (-1.0 + 0.5 i)":
  106311. +float: 1
  106312. +ifloat: 1
  106313. +Test "Real part of: cacosh (-1.0 + 0x1.fp-10 i)":
  106314. +float: 1
  106315. +ifloat: 1
  106316. +Test "Imaginary part of: cacosh (-1.0 + 0x1p50 i)":
  106317. +float: 1
  106318. +ifloat: 1
  106319. +Test "Real part of: cacosh (-1.0 - 0.5 i)":
  106320. +float: 1
  106321. +ifloat: 1
  106322. +Test "Real part of: cacosh (-1.0 - 0x1.fp-10 i)":
  106323. +float: 1
  106324. +ifloat: 1
  106325. +Test "Imaginary part of: cacosh (-1.0 - 0x1p50 i)":
  106326. +float: 1
  106327. +ifloat: 1
  106328. +Test "Imaginary part of: cacosh (-2 - 3 i)":
  106329. +float: 1
  106330. +ifloat: 1
  106331. +Test "Real part of: cacosh (0.25 + 1.0 i)":
  106332. +float: 1
  106333. +ifloat: 1
  106334. +Test "Real part of: cacosh (0.25 - 1.0 i)":
  106335. +float: 1
  106336. +ifloat: 1
  106337. +Test "Imaginary part of: cacosh (0.5 + +0 i)":
  106338. +double: 1
  106339. +idouble: 1
  106340. +Test "Imaginary part of: cacosh (0.5 + 0x1.fp-1025 i)":
  106341. +double: 1
  106342. +idouble: 1
  106343. +Test "Real part of: cacosh (0.5 + 0x1.fp-129 i)":
  106344. +double: 1
  106345. +idouble: 1
  106346. +Test "Imaginary part of: cacosh (0.5 + 0x1.fp-129 i)":
  106347. +double: 1
  106348. +idouble: 1
  106349. +Test "Real part of: cacosh (0.5 + 0x1p-105 i)":
  106350. +double: 1
  106351. +idouble: 1
  106352. +Test "Imaginary part of: cacosh (0.5 + 0x1p-105 i)":
  106353. +double: 1
  106354. +idouble: 1
  106355. +Test "Real part of: cacosh (0.5 + 0x1p-112 i)":
  106356. +double: 1
  106357. +idouble: 1
  106358. +Test "Imaginary part of: cacosh (0.5 + 0x1p-112 i)":
  106359. +double: 1
  106360. +idouble: 1
  106361. +Test "Real part of: cacosh (0.5 + 0x1p-23 i)":
  106362. +double: 1
  106363. +idouble: 1
  106364. +Test "Imaginary part of: cacosh (0.5 + 0x1p-52 i)":
  106365. +double: 1
  106366. +idouble: 1
  106367. +Test "Imaginary part of: cacosh (0.5 + 0x1p-63 i)":
  106368. +double: 1
  106369. +idouble: 1
  106370. +Test "Real part of: cacosh (0.5 + 1.0 i)":
  106371. +double: 1
  106372. +idouble: 1
  106373. +Test "Imaginary part of: cacosh (0.5 + 1.0 i)":
  106374. +float: 1
  106375. +ifloat: 1
  106376. +Test "Imaginary part of: cacosh (0.5 - 0 i)":
  106377. +double: 1
  106378. +idouble: 1
  106379. +Test "Imaginary part of: cacosh (0.5 - 0x1.fp-1025 i)":
  106380. +double: 1
  106381. +idouble: 1
  106382. +Test "Real part of: cacosh (0.5 - 0x1.fp-129 i)":
  106383. +double: 1
  106384. +idouble: 1
  106385. +Test "Imaginary part of: cacosh (0.5 - 0x1.fp-129 i)":
  106386. +double: 1
  106387. +idouble: 1
  106388. +Test "Real part of: cacosh (0.5 - 0x1p-105 i)":
  106389. +double: 1
  106390. +idouble: 1
  106391. +Test "Imaginary part of: cacosh (0.5 - 0x1p-105 i)":
  106392. +double: 1
  106393. +idouble: 1
  106394. +Test "Real part of: cacosh (0.5 - 0x1p-112 i)":
  106395. +double: 1
  106396. +idouble: 1
  106397. +Test "Imaginary part of: cacosh (0.5 - 0x1p-112 i)":
  106398. +double: 1
  106399. +idouble: 1
  106400. +Test "Real part of: cacosh (0.5 - 0x1p-23 i)":
  106401. +double: 1
  106402. +idouble: 1
  106403. +Test "Imaginary part of: cacosh (0.5 - 0x1p-52 i)":
  106404. +double: 1
  106405. +idouble: 1
  106406. +Test "Imaginary part of: cacosh (0.5 - 0x1p-63 i)":
  106407. +double: 1
  106408. +idouble: 1
  106409. +Test "Real part of: cacosh (0.5 - 1.0 i)":
  106410. +double: 1
  106411. +idouble: 1
  106412. +Test "Imaginary part of: cacosh (0.5 - 1.0 i)":
  106413. +float: 1
  106414. +ifloat: 1
  106415. +Test "Real part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i)":
  106416. +double: 1
  106417. +idouble: 1
  106418. +Test "Real part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i)":
  106419. +double: 1
  106420. +idouble: 1
  106421. +Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0.0 i)":
  106422. +float: 1
  106423. +ifloat: 1
  106424. +Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1.fp-129 i)":
  106425. +float: 1
  106426. +ifloat: 1
  106427. +Test "Real part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
  106428. +float: 2
  106429. +ifloat: 2
  106430. +Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
  106431. +float: 2
  106432. +ifloat: 2
  106433. +Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0.0 i)":
  106434. +float: 1
  106435. +ifloat: 1
  106436. +Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1.fp-129 i)":
  106437. +float: 1
  106438. +ifloat: 1
  106439. +Test "Real part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
  106440. +float: 2
  106441. +ifloat: 2
  106442. +Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
  106443. +float: 2
  106444. +ifloat: 2
  106445. +Test "Imaginary part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i)":
  106446. +double: 1
  106447. +idouble: 1
  106448. +Test "Imaginary part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i)":
  106449. +double: 1
  106450. +idouble: 1
  106451. +Test "Real part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
  106452. +float: 1
  106453. +ifloat: 1
  106454. +Test "Imaginary part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
  106455. +float: 2
  106456. +ifloat: 2
  106457. +Test "Real part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
  106458. +float: 1
  106459. +ifloat: 1
  106460. +Test "Imaginary part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
  106461. +float: 2
  106462. +ifloat: 2
  106463. +Test "Real part of: cacosh (0x1.fp-10 + 1.0 i)":
  106464. +double: 1
  106465. +idouble: 1
  106466. +Test "Real part of: cacosh (0x1.fp-10 - 1.0 i)":
  106467. +double: 1
  106468. +idouble: 1
  106469. +Test "Real part of: cacosh (0x1.fp-100 + 1.0 i)":
  106470. +double: 1
  106471. +float: 1
  106472. +idouble: 1
  106473. +ifloat: 1
  106474. +Test "Real part of: cacosh (0x1.fp-100 - 1.0 i)":
  106475. +double: 1
  106476. +float: 1
  106477. +idouble: 1
  106478. +ifloat: 1
  106479. +Test "Real part of: cacosh (0x1.fp-1000 + 1.0 i)":
  106480. +double: 1
  106481. +idouble: 1
  106482. +Test "Real part of: cacosh (0x1.fp-1000 - 1.0 i)":
  106483. +double: 1
  106484. +idouble: 1
  106485. +Test "Real part of: cacosh (0x1.fp-1025 + 1.0 i)":
  106486. +double: 1
  106487. +idouble: 1
  106488. +Test "Real part of: cacosh (0x1.fp-1025 + 1.5 i)":
  106489. +double: 1
  106490. +idouble: 1
  106491. +Test "Real part of: cacosh (0x1.fp-1025 - 1.0 i)":
  106492. +double: 1
  106493. +idouble: 1
  106494. +Test "Real part of: cacosh (0x1.fp-1025 - 1.5 i)":
  106495. +double: 1
  106496. +idouble: 1
  106497. +Test "Real part of: cacosh (0x1.fp-129 + 0.5 i)":
  106498. +float: 1
  106499. +ifloat: 1
  106500. +Test "Real part of: cacosh (0x1.fp-129 + 1.0 i)":
  106501. +double: 1
  106502. +float: 1
  106503. +idouble: 1
  106504. +ifloat: 1
  106505. +Test "Real part of: cacosh (0x1.fp-129 + 1.5 i)":
  106506. +double: 1
  106507. +idouble: 1
  106508. +Test "Real part of: cacosh (0x1.fp-129 - 0.5 i)":
  106509. +float: 1
  106510. +ifloat: 1
  106511. +Test "Real part of: cacosh (0x1.fp-129 - 1.0 i)":
  106512. +double: 1
  106513. +float: 1
  106514. +idouble: 1
  106515. +ifloat: 1
  106516. +Test "Real part of: cacosh (0x1.fp-129 - 1.5 i)":
  106517. +double: 1
  106518. +idouble: 1
  106519. +Test "Real part of: cacosh (0x1.fp-30 + 1.0 i)":
  106520. +double: 1
  106521. +float: 1
  106522. +idouble: 1
  106523. +ifloat: 1
  106524. +Test "Real part of: cacosh (0x1.fp-30 - 1.0 i)":
  106525. +double: 1
  106526. +float: 1
  106527. +idouble: 1
  106528. +ifloat: 1
  106529. +Test "Real part of: cacosh (0x1.fp1023 + 0x1.fp1023 i)":
  106530. +double: 1
  106531. +idouble: 1
  106532. +Test "Real part of: cacosh (0x1.fp127 + 0x1.fp127 i)":
  106533. +double: 1
  106534. +idouble: 1
  106535. +Test "Real part of: cacosh (0x1p-105 + 0.5 i)":
  106536. +float: 1
  106537. +ifloat: 1
  106538. +Test "Real part of: cacosh (0x1p-105 - 0.5 i)":
  106539. +float: 1
  106540. +ifloat: 1
  106541. +Test "Real part of: cacosh (0x1p-112 + 0.5 i)":
  106542. +float: 1
  106543. +ifloat: 1
  106544. +Test "Real part of: cacosh (0x1p-112 - 0.5 i)":
  106545. +float: 1
  106546. +ifloat: 1
  106547. +Test "Real part of: cacosh (0x1p-23 + 0.5 i)":
  106548. +float: 1
  106549. +ifloat: 1
  106550. +Test "Real part of: cacosh (0x1p-23 + 0x0.ffffffp0 i)":
  106551. +double: 1
  106552. +idouble: 1
  106553. +Test "Real part of: cacosh (0x1p-23 - 0.5 i)":
  106554. +float: 1
  106555. +ifloat: 1
  106556. +Test "Real part of: cacosh (0x1p-23 - 0x0.ffffffp0 i)":
  106557. +double: 1
  106558. +idouble: 1
  106559. +Test "Real part of: cacosh (0x1p-52 + 0.5 i)":
  106560. +float: 1
  106561. +ifloat: 1
  106562. +Test "Real part of: cacosh (0x1p-52 - 0.5 i)":
  106563. +float: 1
  106564. +ifloat: 1
  106565. +Test "Real part of: cacosh (0x1p-63 + 0.5 i)":
  106566. +float: 1
  106567. +ifloat: 1
  106568. +Test "Real part of: cacosh (0x1p-63 - 0.5 i)":
  106569. +float: 1
  106570. +ifloat: 1
  106571. +Test "Imaginary part of: cacosh (1.0 + 0.25 i)":
  106572. +double: 1
  106573. +idouble: 1
  106574. +Test "Real part of: cacosh (1.0 + 0.5 i)":
  106575. +float: 1
  106576. +ifloat: 1
  106577. +Test "Imaginary part of: cacosh (1.0 + 0.5 i)":
  106578. +float: 1
  106579. +ifloat: 1
  106580. +Test "Real part of: cacosh (1.0 + 0x1.fp-10 i)":
  106581. +float: 1
  106582. +ifloat: 1
  106583. +Test "Imaginary part of: cacosh (1.0 + 0x1.fp-10 i)":
  106584. +float: 2
  106585. +ifloat: 2
  106586. +Test "Imaginary part of: cacosh (1.0 - 0.25 i)":
  106587. +double: 1
  106588. +idouble: 1
  106589. +Test "Real part of: cacosh (1.0 - 0.5 i)":
  106590. +float: 1
  106591. +ifloat: 1
  106592. +Test "Imaginary part of: cacosh (1.0 - 0.5 i)":
  106593. +float: 1
  106594. +ifloat: 1
  106595. +Test "Real part of: cacosh (1.0 - 0x1.fp-10 i)":
  106596. +float: 1
  106597. +ifloat: 1
  106598. +Test "Imaginary part of: cacosh (1.0 - 0x1.fp-10 i)":
  106599. +float: 2
  106600. +ifloat: 2
  106601. +
  106602. +# casin
  106603. +Test "Imaginary part of: casin (+0 + 0.5 i)":
  106604. +float: 1
  106605. +ifloat: 1
  106606. +Test "Imaginary part of: casin (+0 + 1.0 i)":
  106607. +double: 1
  106608. +float: 1
  106609. +idouble: 1
  106610. +ifloat: 1
  106611. +Test "Imaginary part of: casin (+0 + 1.5 i)":
  106612. +double: 1
  106613. +idouble: 1
  106614. +Test "Imaginary part of: casin (+0 - 0.5 i)":
  106615. +float: 1
  106616. +ifloat: 1
  106617. +Test "Imaginary part of: casin (+0 - 1.0 i)":
  106618. +double: 1
  106619. +float: 1
  106620. +idouble: 1
  106621. +ifloat: 1
  106622. +Test "Imaginary part of: casin (+0 - 1.5 i)":
  106623. +double: 1
  106624. +idouble: 1
  106625. +Test "Imaginary part of: casin (-0 + 0.5 i)":
  106626. +float: 1
  106627. +ifloat: 1
  106628. +Test "Imaginary part of: casin (-0 + 1.0 i)":
  106629. +double: 1
  106630. +float: 1
  106631. +idouble: 1
  106632. +ifloat: 1
  106633. +Test "Imaginary part of: casin (-0 + 1.5 i)":
  106634. +double: 1
  106635. +idouble: 1
  106636. +Test "Imaginary part of: casin (-0 - 0.5 i)":
  106637. +float: 1
  106638. +ifloat: 1
  106639. +Test "Imaginary part of: casin (-0 - 1.0 i)":
  106640. +double: 1
  106641. +float: 1
  106642. +idouble: 1
  106643. +ifloat: 1
  106644. +Test "Imaginary part of: casin (-0 - 1.5 i)":
  106645. +double: 1
  106646. +idouble: 1
  106647. +Test "Imaginary part of: casin (-0.25 + 1.0 i)":
  106648. +float: 1
  106649. +ifloat: 1
  106650. +Test "Imaginary part of: casin (-0.25 - 1.0 i)":
  106651. +float: 1
  106652. +ifloat: 1
  106653. +Test "Imaginary part of: casin (-0.5 + 0x1.fp-129 i)":
  106654. +double: 1
  106655. +idouble: 1
  106656. +Test "Imaginary part of: casin (-0.5 + 0x1p-105 i)":
  106657. +double: 1
  106658. +idouble: 1
  106659. +Test "Imaginary part of: casin (-0.5 + 0x1p-112 i)":
  106660. +double: 1
  106661. +idouble: 1
  106662. +Test "Imaginary part of: casin (-0.5 + 0x1p-23 i)":
  106663. +double: 1
  106664. +idouble: 1
  106665. +Test "Imaginary part of: casin (-0.5 + 1.0 i)":
  106666. +double: 1
  106667. +idouble: 1
  106668. +Test "Imaginary part of: casin (-0.5 - 0x1.fp-129 i)":
  106669. +double: 1
  106670. +idouble: 1
  106671. +Test "Imaginary part of: casin (-0.5 - 0x1p-105 i)":
  106672. +double: 1
  106673. +idouble: 1
  106674. +Test "Imaginary part of: casin (-0.5 - 0x1p-112 i)":
  106675. +double: 1
  106676. +idouble: 1
  106677. +Test "Imaginary part of: casin (-0.5 - 0x1p-23 i)":
  106678. +double: 1
  106679. +idouble: 1
  106680. +Test "Imaginary part of: casin (-0.5 - 1.0 i)":
  106681. +double: 1
  106682. +idouble: 1
  106683. +Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
  106684. +double: 1
  106685. +idouble: 1
  106686. +Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
  106687. +double: 1
  106688. +idouble: 1
  106689. +Test "Imaginary part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
  106690. +float: 2
  106691. +ifloat: 2
  106692. +Test "Imaginary part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
  106693. +float: 2
  106694. +ifloat: 2
  106695. +Test "Imaginary part of: casin (-0x1.000002p0 + 0x1p-23 i)":
  106696. +float: 1
  106697. +ifloat: 1
  106698. +Test "Imaginary part of: casin (-0x1.000002p0 - 0x1p-23 i)":
  106699. +float: 1
  106700. +ifloat: 1
  106701. +Test "Real part of: casin (-0x1.fp-10 + 1.0 i)":
  106702. +float: 1
  106703. +ifloat: 1
  106704. +Test "Imaginary part of: casin (-0x1.fp-10 + 1.0 i)":
  106705. +double: 1
  106706. +idouble: 1
  106707. +Test "Real part of: casin (-0x1.fp-10 - 1.0 i)":
  106708. +float: 1
  106709. +ifloat: 1
  106710. +Test "Imaginary part of: casin (-0x1.fp-10 - 1.0 i)":
  106711. +double: 1
  106712. +idouble: 1
  106713. +Test "Imaginary part of: casin (-0x1.fp-100 + 1.0 i)":
  106714. +double: 1
  106715. +float: 1
  106716. +idouble: 1
  106717. +ifloat: 1
  106718. +Test "Imaginary part of: casin (-0x1.fp-100 - 1.0 i)":
  106719. +double: 1
  106720. +float: 1
  106721. +idouble: 1
  106722. +ifloat: 1
  106723. +Test "Imaginary part of: casin (-0x1.fp-1000 + 1.0 i)":
  106724. +double: 1
  106725. +idouble: 1
  106726. +Test "Imaginary part of: casin (-0x1.fp-1000 - 1.0 i)":
  106727. +double: 1
  106728. +idouble: 1
  106729. +Test "Imaginary part of: casin (-0x1.fp-1025 + 1.0 i)":
  106730. +double: 1
  106731. +idouble: 1
  106732. +Test "Imaginary part of: casin (-0x1.fp-1025 + 1.5 i)":
  106733. +double: 1
  106734. +idouble: 1
  106735. +Test "Imaginary part of: casin (-0x1.fp-1025 - 1.0 i)":
  106736. +double: 1
  106737. +idouble: 1
  106738. +Test "Imaginary part of: casin (-0x1.fp-1025 - 1.5 i)":
  106739. +double: 1
  106740. +idouble: 1
  106741. +Test "Imaginary part of: casin (-0x1.fp-129 + 0.5 i)":
  106742. +float: 1
  106743. +ifloat: 1
  106744. +Test "Imaginary part of: casin (-0x1.fp-129 + 1.0 i)":
  106745. +double: 1
  106746. +float: 1
  106747. +idouble: 1
  106748. +ifloat: 1
  106749. +Test "Imaginary part of: casin (-0x1.fp-129 + 1.5 i)":
  106750. +double: 1
  106751. +idouble: 1
  106752. +Test "Imaginary part of: casin (-0x1.fp-129 - 0.5 i)":
  106753. +float: 1
  106754. +ifloat: 1
  106755. +Test "Imaginary part of: casin (-0x1.fp-129 - 1.0 i)":
  106756. +double: 1
  106757. +float: 1
  106758. +idouble: 1
  106759. +ifloat: 1
  106760. +Test "Imaginary part of: casin (-0x1.fp-129 - 1.5 i)":
  106761. +double: 1
  106762. +idouble: 1
  106763. +Test "Imaginary part of: casin (-0x1.fp-30 + 1.0 i)":
  106764. +double: 1
  106765. +float: 1
  106766. +idouble: 1
  106767. +ifloat: 1
  106768. +Test "Imaginary part of: casin (-0x1.fp-30 - 1.0 i)":
  106769. +double: 1
  106770. +float: 1
  106771. +idouble: 1
  106772. +ifloat: 1
  106773. +Test "Imaginary part of: casin (-0x1p-105 + 0.5 i)":
  106774. +float: 1
  106775. +ifloat: 1
  106776. +Test "Imaginary part of: casin (-0x1p-105 - 0.5 i)":
  106777. +float: 1
  106778. +ifloat: 1
  106779. +Test "Imaginary part of: casin (-0x1p-112 + 0.5 i)":
  106780. +float: 1
  106781. +ifloat: 1
  106782. +Test "Imaginary part of: casin (-0x1p-112 - 0.5 i)":
  106783. +float: 1
  106784. +ifloat: 1
  106785. +Test "Real part of: casin (-0x1p-23 + 0.5 i)":
  106786. +double: 1
  106787. +float: 1
  106788. +idouble: 1
  106789. +ifloat: 1
  106790. +Test "Imaginary part of: casin (-0x1p-23 + 0.5 i)":
  106791. +float: 1
  106792. +ifloat: 1
  106793. +Test "Imaginary part of: casin (-0x1p-23 + 0x0.ffffffp0 i)":
  106794. +double: 1
  106795. +idouble: 1
  106796. +Test "Real part of: casin (-0x1p-23 + 0x1.000002p0 i)":
  106797. +double: 1
  106798. +float: 1
  106799. +idouble: 1
  106800. +ifloat: 1
  106801. +Test "Real part of: casin (-0x1p-23 - 0.5 i)":
  106802. +double: 1
  106803. +float: 1
  106804. +idouble: 1
  106805. +ifloat: 1
  106806. +Test "Imaginary part of: casin (-0x1p-23 - 0.5 i)":
  106807. +float: 1
  106808. +ifloat: 1
  106809. +Test "Imaginary part of: casin (-0x1p-23 - 0x0.ffffffp0 i)":
  106810. +double: 1
  106811. +idouble: 1
  106812. +Test "Real part of: casin (-0x1p-23 - 0x1.000002p0 i)":
  106813. +double: 1
  106814. +float: 1
  106815. +idouble: 1
  106816. +ifloat: 1
  106817. +Test "Imaginary part of: casin (-0x1p-52 + 0.5 i)":
  106818. +float: 1
  106819. +ifloat: 1
  106820. +Test "Imaginary part of: casin (-0x1p-52 - 0.5 i)":
  106821. +float: 1
  106822. +ifloat: 1
  106823. +Test "Imaginary part of: casin (-0x1p-63 + 0.5 i)":
  106824. +float: 1
  106825. +ifloat: 1
  106826. +Test "Imaginary part of: casin (-0x1p-63 - 0.5 i)":
  106827. +float: 1
  106828. +ifloat: 1
  106829. +Test "Real part of: casin (-1.0 + 0.25 i)":
  106830. +double: 1
  106831. +idouble: 1
  106832. +Test "Real part of: casin (-1.0 + 0.5 i)":
  106833. +float: 1
  106834. +ifloat: 1
  106835. +Test "Imaginary part of: casin (-1.0 + 0.5 i)":
  106836. +float: 1
  106837. +ifloat: 1
  106838. +Test "Imaginary part of: casin (-1.0 + 0x1.fp-10 i)":
  106839. +float: 1
  106840. +ifloat: 1
  106841. +Test "Real part of: casin (-1.0 - 0.25 i)":
  106842. +double: 1
  106843. +idouble: 1
  106844. +Test "Real part of: casin (-1.0 - 0.5 i)":
  106845. +float: 1
  106846. +ifloat: 1
  106847. +Test "Imaginary part of: casin (-1.0 - 0.5 i)":
  106848. +float: 1
  106849. +ifloat: 1
  106850. +Test "Imaginary part of: casin (-1.0 - 0x1.fp-10 i)":
  106851. +float: 1
  106852. +ifloat: 1
  106853. +Test "Imaginary part of: casin (0.25 + 1.0 i)":
  106854. +float: 1
  106855. +ifloat: 1
  106856. +Test "Imaginary part of: casin (0.25 - 1.0 i)":
  106857. +float: 1
  106858. +ifloat: 1
  106859. +Test "Imaginary part of: casin (0.5 + 0x1.fp-129 i)":
  106860. +double: 1
  106861. +idouble: 1
  106862. +Test "Imaginary part of: casin (0.5 + 0x1p-105 i)":
  106863. +double: 1
  106864. +idouble: 1
  106865. +Test "Imaginary part of: casin (0.5 + 0x1p-112 i)":
  106866. +double: 1
  106867. +idouble: 1
  106868. +Test "Imaginary part of: casin (0.5 + 0x1p-23 i)":
  106869. +double: 1
  106870. +idouble: 1
  106871. +Test "Imaginary part of: casin (0.5 + 1.0 i)":
  106872. +double: 1
  106873. +idouble: 1
  106874. +Test "Imaginary part of: casin (0.5 - 0x1.fp-129 i)":
  106875. +double: 1
  106876. +idouble: 1
  106877. +Test "Imaginary part of: casin (0.5 - 0x1p-105 i)":
  106878. +double: 1
  106879. +idouble: 1
  106880. +Test "Imaginary part of: casin (0.5 - 0x1p-112 i)":
  106881. +double: 1
  106882. +idouble: 1
  106883. +Test "Imaginary part of: casin (0.5 - 0x1p-23 i)":
  106884. +double: 1
  106885. +idouble: 1
  106886. +Test "Imaginary part of: casin (0.5 - 1.0 i)":
  106887. +double: 1
  106888. +idouble: 1
  106889. +Test "Real part of: casin (0.75 + 1.25 i)":
  106890. +double: 1
  106891. +float: 1
  106892. +idouble: 1
  106893. +ifloat: 1
  106894. +Test "Imaginary part of: casin (0x0.fffffffffffff8p0 + 0x1p-52 i)":
  106895. +double: 1
  106896. +idouble: 1
  106897. +Test "Imaginary part of: casin (0x0.fffffffffffff8p0 - 0x1p-52 i)":
  106898. +double: 1
  106899. +idouble: 1
  106900. +Test "Imaginary part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
  106901. +float: 2
  106902. +ifloat: 2
  106903. +Test "Imaginary part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
  106904. +float: 2
  106905. +ifloat: 2
  106906. +Test "Imaginary part of: casin (0x1.000002p0 + 0x1p-23 i)":
  106907. +float: 1
  106908. +ifloat: 1
  106909. +Test "Imaginary part of: casin (0x1.000002p0 - 0x1p-23 i)":
  106910. +float: 1
  106911. +ifloat: 1
  106912. +Test "Real part of: casin (0x1.fp-10 + 1.0 i)":
  106913. +float: 1
  106914. +ifloat: 1
  106915. +Test "Imaginary part of: casin (0x1.fp-10 + 1.0 i)":
  106916. +double: 1
  106917. +idouble: 1
  106918. +Test "Real part of: casin (0x1.fp-10 - 1.0 i)":
  106919. +float: 1
  106920. +ifloat: 1
  106921. +Test "Imaginary part of: casin (0x1.fp-10 - 1.0 i)":
  106922. +double: 1
  106923. +idouble: 1
  106924. +Test "Imaginary part of: casin (0x1.fp-100 + 1.0 i)":
  106925. +double: 1
  106926. +float: 1
  106927. +idouble: 1
  106928. +ifloat: 1
  106929. +Test "Imaginary part of: casin (0x1.fp-100 - 1.0 i)":
  106930. +double: 1
  106931. +float: 1
  106932. +idouble: 1
  106933. +ifloat: 1
  106934. +Test "Imaginary part of: casin (0x1.fp-1000 + 1.0 i)":
  106935. +double: 1
  106936. +idouble: 1
  106937. +Test "Imaginary part of: casin (0x1.fp-1000 - 1.0 i)":
  106938. +double: 1
  106939. +idouble: 1
  106940. +Test "Imaginary part of: casin (0x1.fp-1025 + 1.0 i)":
  106941. +double: 1
  106942. +idouble: 1
  106943. +Test "Imaginary part of: casin (0x1.fp-1025 + 1.5 i)":
  106944. +double: 1
  106945. +idouble: 1
  106946. +Test "Imaginary part of: casin (0x1.fp-1025 - 1.0 i)":
  106947. +double: 1
  106948. +idouble: 1
  106949. +Test "Imaginary part of: casin (0x1.fp-1025 - 1.5 i)":
  106950. +double: 1
  106951. +idouble: 1
  106952. +Test "Imaginary part of: casin (0x1.fp-129 + 0.5 i)":
  106953. +float: 1
  106954. +ifloat: 1
  106955. +Test "Imaginary part of: casin (0x1.fp-129 + 1.0 i)":
  106956. +double: 1
  106957. +float: 1
  106958. +idouble: 1
  106959. +ifloat: 1
  106960. +Test "Imaginary part of: casin (0x1.fp-129 + 1.5 i)":
  106961. +double: 1
  106962. +idouble: 1
  106963. +Test "Imaginary part of: casin (0x1.fp-129 - 0.5 i)":
  106964. +float: 1
  106965. +ifloat: 1
  106966. +Test "Imaginary part of: casin (0x1.fp-129 - 1.0 i)":
  106967. +double: 1
  106968. +float: 1
  106969. +idouble: 1
  106970. +ifloat: 1
  106971. +Test "Imaginary part of: casin (0x1.fp-129 - 1.5 i)":
  106972. +double: 1
  106973. +idouble: 1
  106974. +Test "Imaginary part of: casin (0x1.fp-30 + 1.0 i)":
  106975. +double: 1
  106976. +float: 1
  106977. +idouble: 1
  106978. +ifloat: 1
  106979. +Test "Imaginary part of: casin (0x1.fp-30 - 1.0 i)":
  106980. +double: 1
  106981. +float: 1
  106982. +idouble: 1
  106983. +ifloat: 1
  106984. +Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i)":
  106985. +double: 1
  106986. +idouble: 1
  106987. +Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i)":
  106988. +double: 1
  106989. +idouble: 1
  106990. +Test "Imaginary part of: casin (0x1p-105 + 0.5 i)":
  106991. +float: 1
  106992. +ifloat: 1
  106993. +Test "Imaginary part of: casin (0x1p-105 - 0.5 i)":
  106994. +float: 1
  106995. +ifloat: 1
  106996. +Test "Imaginary part of: casin (0x1p-112 + 0.5 i)":
  106997. +float: 1
  106998. +ifloat: 1
  106999. +Test "Imaginary part of: casin (0x1p-112 - 0.5 i)":
  107000. +float: 1
  107001. +ifloat: 1
  107002. +Test "Real part of: casin (0x1p-23 + 0.5 i)":
  107003. +double: 1
  107004. +float: 1
  107005. +idouble: 1
  107006. +ifloat: 1
  107007. +Test "Imaginary part of: casin (0x1p-23 + 0.5 i)":
  107008. +float: 1
  107009. +ifloat: 1
  107010. +Test "Imaginary part of: casin (0x1p-23 + 0x0.ffffffp0 i)":
  107011. +double: 1
  107012. +idouble: 1
  107013. +Test "Real part of: casin (0x1p-23 + 0x1.000002p0 i)":
  107014. +double: 1
  107015. +float: 1
  107016. +idouble: 1
  107017. +ifloat: 1
  107018. +Test "Real part of: casin (0x1p-23 - 0.5 i)":
  107019. +double: 1
  107020. +float: 1
  107021. +idouble: 1
  107022. +ifloat: 1
  107023. +Test "Imaginary part of: casin (0x1p-23 - 0.5 i)":
  107024. +float: 1
  107025. +ifloat: 1
  107026. +Test "Imaginary part of: casin (0x1p-23 - 0x0.ffffffp0 i)":
  107027. +double: 1
  107028. +idouble: 1
  107029. +Test "Real part of: casin (0x1p-23 - 0x1.000002p0 i)":
  107030. +double: 1
  107031. +float: 1
  107032. +idouble: 1
  107033. +ifloat: 1
  107034. +Test "Imaginary part of: casin (0x1p-52 + 0.5 i)":
  107035. +float: 1
  107036. +ifloat: 1
  107037. +Test "Imaginary part of: casin (0x1p-52 - 0.5 i)":
  107038. +float: 1
  107039. +ifloat: 1
  107040. +Test "Imaginary part of: casin (0x1p-63 + 0.5 i)":
  107041. +float: 1
  107042. +ifloat: 1
  107043. +Test "Imaginary part of: casin (0x1p-63 - 0.5 i)":
  107044. +float: 1
  107045. +ifloat: 1
  107046. +Test "Real part of: casin (1.0 + 0.25 i)":
  107047. +double: 1
  107048. +idouble: 1
  107049. +Test "Real part of: casin (1.0 + 0.5 i)":
  107050. +float: 1
  107051. +ifloat: 1
  107052. +Test "Imaginary part of: casin (1.0 + 0.5 i)":
  107053. +float: 1
  107054. +ifloat: 1
  107055. +Test "Imaginary part of: casin (1.0 + 0x1.fp-10 i)":
  107056. +float: 1
  107057. +ifloat: 1
  107058. +Test "Real part of: casin (1.0 - 0.25 i)":
  107059. +double: 1
  107060. +idouble: 1
  107061. +Test "Real part of: casin (1.0 - 0.5 i)":
  107062. +float: 1
  107063. +ifloat: 1
  107064. +Test "Imaginary part of: casin (1.0 - 0.5 i)":
  107065. +float: 1
  107066. +ifloat: 1
  107067. +Test "Imaginary part of: casin (1.0 - 0x1.fp-10 i)":
  107068. +float: 1
  107069. +ifloat: 1
  107070. +
  107071. +# casinh
  107072. +Test "Imaginary part of: casinh (-0.25 + 1.0 i)":
  107073. +double: 1
  107074. +idouble: 1
  107075. +Test "Imaginary part of: casinh (-0.25 - 1.0 i)":
  107076. +double: 1
  107077. +idouble: 1
  107078. +Test "Real part of: casinh (-0.5 + +0 i)":
  107079. +float: 1
  107080. +ifloat: 1
  107081. +Test "Real part of: casinh (-0.5 + 0x1.fp-129 i)":
  107082. +float: 1
  107083. +ifloat: 1
  107084. +Test "Real part of: casinh (-0.5 + 0x1p-105 i)":
  107085. +float: 1
  107086. +ifloat: 1
  107087. +Test "Real part of: casinh (-0.5 + 0x1p-112 i)":
  107088. +float: 1
  107089. +ifloat: 1
  107090. +Test "Real part of: casinh (-0.5 + 0x1p-23 i)":
  107091. +float: 1
  107092. +ifloat: 1
  107093. +Test "Imaginary part of: casinh (-0.5 + 0x1p-23 i)":
  107094. +double: 1
  107095. +float: 1
  107096. +idouble: 1
  107097. +ifloat: 1
  107098. +Test "Real part of: casinh (-0.5 + 0x1p-52 i)":
  107099. +float: 1
  107100. +ifloat: 1
  107101. +Test "Real part of: casinh (-0.5 + 0x1p-63 i)":
  107102. +float: 1
  107103. +ifloat: 1
  107104. +Test "Real part of: casinh (-0.5 + 1.0 i)":
  107105. +float: 1
  107106. +ifloat: 1
  107107. +Test "Imaginary part of: casinh (-0.5 + 1.0 i)":
  107108. +float: 1
  107109. +ifloat: 1
  107110. +Test "Real part of: casinh (-0.5 - 0 i)":
  107111. +float: 1
  107112. +ifloat: 1
  107113. +Test "Real part of: casinh (-0.5 - 0x1.fp-129 i)":
  107114. +float: 1
  107115. +ifloat: 1
  107116. +Test "Real part of: casinh (-0.5 - 0x1p-105 i)":
  107117. +float: 1
  107118. +ifloat: 1
  107119. +Test "Real part of: casinh (-0.5 - 0x1p-112 i)":
  107120. +float: 1
  107121. +ifloat: 1
  107122. +Test "Real part of: casinh (-0.5 - 0x1p-23 i)":
  107123. +float: 1
  107124. +ifloat: 1
  107125. +Test "Imaginary part of: casinh (-0.5 - 0x1p-23 i)":
  107126. +double: 1
  107127. +float: 1
  107128. +idouble: 1
  107129. +ifloat: 1
  107130. +Test "Real part of: casinh (-0.5 - 0x1p-52 i)":
  107131. +float: 1
  107132. +ifloat: 1
  107133. +Test "Real part of: casinh (-0.5 - 0x1p-63 i)":
  107134. +float: 1
  107135. +ifloat: 1
  107136. +Test "Real part of: casinh (-0.5 - 1.0 i)":
  107137. +float: 1
  107138. +ifloat: 1
  107139. +Test "Imaginary part of: casinh (-0.5 - 1.0 i)":
  107140. +float: 1
  107141. +ifloat: 1
  107142. +Test "Real part of: casinh (-0x0.ffffffp0 + 0x1p-23 i)":
  107143. +double: 1
  107144. +idouble: 1
  107145. +Test "Real part of: casinh (-0x0.ffffffp0 - 0x1p-23 i)":
  107146. +double: 1
  107147. +idouble: 1
  107148. +Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1p-23 i)":
  107149. +double: 1
  107150. +float: 1
  107151. +idouble: 1
  107152. +ifloat: 1
  107153. +Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1p-23 i)":
  107154. +double: 1
  107155. +float: 1
  107156. +idouble: 1
  107157. +ifloat: 1
  107158. +Test "Real part of: casinh (-0x1.fp-10 + 1.0 i)":
  107159. +float: 1
  107160. +ifloat: 1
  107161. +Test "Real part of: casinh (-0x1.fp-10 - 1.0 i)":
  107162. +float: 1
  107163. +ifloat: 1
  107164. +Test "Real part of: casinh (-0x1.fp-129 + 0.5 i)":
  107165. +double: 1
  107166. +idouble: 1
  107167. +Test "Real part of: casinh (-0x1.fp-129 - 0.5 i)":
  107168. +double: 1
  107169. +idouble: 1
  107170. +Test "Real part of: casinh (-0x1p-105 + 0.5 i)":
  107171. +double: 1
  107172. +idouble: 1
  107173. +Test "Real part of: casinh (-0x1p-105 - 0.5 i)":
  107174. +double: 1
  107175. +idouble: 1
  107176. +Test "Real part of: casinh (-0x1p-112 + 0.5 i)":
  107177. +double: 1
  107178. +idouble: 1
  107179. +Test "Real part of: casinh (-0x1p-112 - 0.5 i)":
  107180. +double: 1
  107181. +idouble: 1
  107182. +Test "Real part of: casinh (-0x1p-23 + 0.5 i)":
  107183. +double: 1
  107184. +idouble: 1
  107185. +Test "Real part of: casinh (-0x1p-23 + 0x0.ffffffp0 i)":
  107186. +float: 2
  107187. +ifloat: 2
  107188. +Test "Real part of: casinh (-0x1p-23 + 0x1.000002p0 i)":
  107189. +float: 1
  107190. +ifloat: 1
  107191. +Test "Real part of: casinh (-0x1p-23 - 0.5 i)":
  107192. +double: 1
  107193. +idouble: 1
  107194. +Test "Real part of: casinh (-0x1p-23 - 0x0.ffffffp0 i)":
  107195. +float: 2
  107196. +ifloat: 2
  107197. +Test "Real part of: casinh (-0x1p-23 - 0x1.000002p0 i)":
  107198. +float: 1
  107199. +ifloat: 1
  107200. +Test "Real part of: casinh (-0x1p-52 + 0x0.fffffffffffff8p0 i)":
  107201. +double: 1
  107202. +idouble: 1
  107203. +Test "Real part of: casinh (-0x1p-52 - 0x0.fffffffffffff8p0 i)":
  107204. +double: 1
  107205. +idouble: 1
  107206. +Test "Real part of: casinh (-1.0 + +0 i)":
  107207. +double: 1
  107208. +float: 1
  107209. +idouble: 1
  107210. +ifloat: 1
  107211. +Test "Real part of: casinh (-1.0 + 0.25 i)":
  107212. +float: 1
  107213. +ifloat: 1
  107214. +Test "Real part of: casinh (-1.0 + 0.5 i)":
  107215. +double: 1
  107216. +idouble: 1
  107217. +Test "Real part of: casinh (-1.0 + 0x1.fp-10 i)":
  107218. +double: 1
  107219. +idouble: 1
  107220. +Test "Imaginary part of: casinh (-1.0 + 0x1.fp-10 i)":
  107221. +float: 1
  107222. +ifloat: 1
  107223. +Test "Real part of: casinh (-1.0 + 0x1.fp-100 i)":
  107224. +double: 1
  107225. +float: 1
  107226. +idouble: 1
  107227. +ifloat: 1
  107228. +Test "Real part of: casinh (-1.0 + 0x1.fp-1000 i)":
  107229. +double: 1
  107230. +idouble: 1
  107231. +Test "Real part of: casinh (-1.0 + 0x1.fp-1025 i)":
  107232. +double: 1
  107233. +idouble: 1
  107234. +Test "Real part of: casinh (-1.0 + 0x1.fp-129 i)":
  107235. +double: 1
  107236. +float: 1
  107237. +idouble: 1
  107238. +ifloat: 1
  107239. +Test "Real part of: casinh (-1.0 + 0x1.fp-30 i)":
  107240. +double: 1
  107241. +float: 1
  107242. +idouble: 1
  107243. +ifloat: 1
  107244. +Test "Real part of: casinh (-1.0 - 0 i)":
  107245. +double: 1
  107246. +float: 1
  107247. +idouble: 1
  107248. +ifloat: 1
  107249. +Test "Real part of: casinh (-1.0 - 0.25 i)":
  107250. +float: 1
  107251. +ifloat: 1
  107252. +Test "Real part of: casinh (-1.0 - 0.5 i)":
  107253. +double: 1
  107254. +idouble: 1
  107255. +Test "Real part of: casinh (-1.0 - 0x1.fp-10 i)":
  107256. +double: 1
  107257. +idouble: 1
  107258. +Test "Imaginary part of: casinh (-1.0 - 0x1.fp-10 i)":
  107259. +float: 1
  107260. +ifloat: 1
  107261. +Test "Real part of: casinh (-1.0 - 0x1.fp-100 i)":
  107262. +double: 1
  107263. +float: 1
  107264. +idouble: 1
  107265. +ifloat: 1
  107266. +Test "Real part of: casinh (-1.0 - 0x1.fp-1000 i)":
  107267. +double: 1
  107268. +idouble: 1
  107269. +Test "Real part of: casinh (-1.0 - 0x1.fp-1025 i)":
  107270. +double: 1
  107271. +idouble: 1
  107272. +Test "Real part of: casinh (-1.0 - 0x1.fp-129 i)":
  107273. +double: 1
  107274. +float: 1
  107275. +idouble: 1
  107276. +ifloat: 1
  107277. +Test "Real part of: casinh (-1.0 - 0x1.fp-30 i)":
  107278. +double: 1
  107279. +float: 1
  107280. +idouble: 1
  107281. +ifloat: 1
  107282. +Test "Real part of: casinh (-1.5 + +0 i)":
  107283. +double: 1
  107284. +idouble: 1
  107285. +Test "Real part of: casinh (-1.5 + 0x1.fp-1025 i)":
  107286. +double: 1
  107287. +idouble: 1
  107288. +Test "Real part of: casinh (-1.5 + 0x1.fp-129 i)":
  107289. +double: 1
  107290. +idouble: 1
  107291. +Test "Real part of: casinh (-1.5 - 0 i)":
  107292. +double: 1
  107293. +idouble: 1
  107294. +Test "Real part of: casinh (-1.5 - 0x1.fp-1025 i)":
  107295. +double: 1
  107296. +idouble: 1
  107297. +Test "Real part of: casinh (-1.5 - 0x1.fp-129 i)":
  107298. +double: 1
  107299. +idouble: 1
  107300. +Test "Imaginary part of: casinh (0.25 + 1.0 i)":
  107301. +double: 1
  107302. +idouble: 1
  107303. +Test "Imaginary part of: casinh (0.25 - 1.0 i)":
  107304. +double: 1
  107305. +idouble: 1
  107306. +Test "Real part of: casinh (0.5 + +0 i)":
  107307. +float: 1
  107308. +ifloat: 1
  107309. +Test "Real part of: casinh (0.5 + 0x1.fp-129 i)":
  107310. +float: 1
  107311. +ifloat: 1
  107312. +Test "Real part of: casinh (0.5 + 0x1p-105 i)":
  107313. +float: 1
  107314. +ifloat: 1
  107315. +Test "Real part of: casinh (0.5 + 0x1p-112 i)":
  107316. +float: 1
  107317. +ifloat: 1
  107318. +Test "Real part of: casinh (0.5 + 0x1p-23 i)":
  107319. +float: 1
  107320. +ifloat: 1
  107321. +Test "Imaginary part of: casinh (0.5 + 0x1p-23 i)":
  107322. +double: 1
  107323. +float: 1
  107324. +idouble: 1
  107325. +ifloat: 1
  107326. +Test "Real part of: casinh (0.5 + 0x1p-52 i)":
  107327. +float: 1
  107328. +ifloat: 1
  107329. +Test "Real part of: casinh (0.5 + 0x1p-63 i)":
  107330. +float: 1
  107331. +ifloat: 1
  107332. +Test "Real part of: casinh (0.5 + 1.0 i)":
  107333. +float: 1
  107334. +ifloat: 1
  107335. +Test "Imaginary part of: casinh (0.5 + 1.0 i)":
  107336. +float: 1
  107337. +ifloat: 1
  107338. +Test "Real part of: casinh (0.5 - 0 i)":
  107339. +float: 1
  107340. +ifloat: 1
  107341. +Test "Real part of: casinh (0.5 - 0x1.fp-129 i)":
  107342. +float: 1
  107343. +ifloat: 1
  107344. +Test "Real part of: casinh (0.5 - 0x1p-105 i)":
  107345. +float: 1
  107346. +ifloat: 1
  107347. +Test "Real part of: casinh (0.5 - 0x1p-112 i)":
  107348. +float: 1
  107349. +ifloat: 1
  107350. +Test "Real part of: casinh (0.5 - 0x1p-23 i)":
  107351. +float: 1
  107352. +ifloat: 1
  107353. +Test "Imaginary part of: casinh (0.5 - 0x1p-23 i)":
  107354. +double: 1
  107355. +float: 1
  107356. +idouble: 1
  107357. +ifloat: 1
  107358. +Test "Real part of: casinh (0.5 - 0x1p-52 i)":
  107359. +float: 1
  107360. +ifloat: 1
  107361. +Test "Real part of: casinh (0.5 - 0x1p-63 i)":
  107362. +float: 1
  107363. +ifloat: 1
  107364. +Test "Real part of: casinh (0.5 - 1.0 i)":
  107365. +float: 1
  107366. +ifloat: 1
  107367. +Test "Imaginary part of: casinh (0.5 - 1.0 i)":
  107368. +float: 1
  107369. +ifloat: 1
  107370. +Test "Real part of: casinh (0.75 + 1.25 i)":
  107371. +float: 1
  107372. +ifloat: 1
  107373. +Test "Imaginary part of: casinh (0.75 + 1.25 i)":
  107374. +double: 1
  107375. +float: 1
  107376. +idouble: 1
  107377. +ifloat: 1
  107378. +Test "Real part of: casinh (0x0.ffffffp0 + 0x1p-23 i)":
  107379. +double: 1
  107380. +idouble: 1
  107381. +Test "Real part of: casinh (0x0.ffffffp0 - 0x1p-23 i)":
  107382. +double: 1
  107383. +idouble: 1
  107384. +Test "Imaginary part of: casinh (0x1.000002p0 + 0x1p-23 i)":
  107385. +double: 1
  107386. +float: 1
  107387. +idouble: 1
  107388. +ifloat: 1
  107389. +Test "Imaginary part of: casinh (0x1.000002p0 - 0x1p-23 i)":
  107390. +double: 1
  107391. +float: 1
  107392. +idouble: 1
  107393. +ifloat: 1
  107394. +Test "Real part of: casinh (0x1.fp-10 + 1.0 i)":
  107395. +float: 1
  107396. +ifloat: 1
  107397. +Test "Real part of: casinh (0x1.fp-10 - 1.0 i)":
  107398. +float: 1
  107399. +ifloat: 1
  107400. +Test "Real part of: casinh (0x1.fp-129 + 0.5 i)":
  107401. +double: 1
  107402. +idouble: 1
  107403. +Test "Real part of: casinh (0x1.fp-129 - 0.5 i)":
  107404. +double: 1
  107405. +idouble: 1
  107406. +Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i)":
  107407. +double: 1
  107408. +idouble: 1
  107409. +Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i)":
  107410. +double: 1
  107411. +idouble: 1
  107412. +Test "Real part of: casinh (0x1p-105 + 0.5 i)":
  107413. +double: 1
  107414. +idouble: 1
  107415. +Test "Real part of: casinh (0x1p-105 - 0.5 i)":
  107416. +double: 1
  107417. +idouble: 1
  107418. +Test "Real part of: casinh (0x1p-112 + 0.5 i)":
  107419. +double: 1
  107420. +idouble: 1
  107421. +Test "Real part of: casinh (0x1p-112 - 0.5 i)":
  107422. +double: 1
  107423. +idouble: 1
  107424. +Test "Real part of: casinh (0x1p-23 + 0.5 i)":
  107425. +double: 1
  107426. +idouble: 1
  107427. +Test "Real part of: casinh (0x1p-23 + 0x0.ffffffp0 i)":
  107428. +float: 2
  107429. +ifloat: 2
  107430. +Test "Real part of: casinh (0x1p-23 + 0x1.000002p0 i)":
  107431. +float: 1
  107432. +ifloat: 1
  107433. +Test "Real part of: casinh (0x1p-23 - 0.5 i)":
  107434. +double: 1
  107435. +idouble: 1
  107436. +Test "Real part of: casinh (0x1p-23 - 0x0.ffffffp0 i)":
  107437. +float: 2
  107438. +ifloat: 2
  107439. +Test "Real part of: casinh (0x1p-23 - 0x1.000002p0 i)":
  107440. +float: 1
  107441. +ifloat: 1
  107442. +Test "Real part of: casinh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
  107443. +double: 1
  107444. +idouble: 1
  107445. +Test "Real part of: casinh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
  107446. +double: 1
  107447. +idouble: 1
  107448. +Test "Real part of: casinh (1.0 + +0 i)":
  107449. +double: 1
  107450. +float: 1
  107451. +idouble: 1
  107452. +ifloat: 1
  107453. +Test "Real part of: casinh (1.0 + 0.25 i)":
  107454. +float: 1
  107455. +ifloat: 1
  107456. +Test "Real part of: casinh (1.0 + 0.5 i)":
  107457. +double: 1
  107458. +idouble: 1
  107459. +Test "Real part of: casinh (1.0 + 0x1.fp-10 i)":
  107460. +double: 1
  107461. +idouble: 1
  107462. +Test "Imaginary part of: casinh (1.0 + 0x1.fp-10 i)":
  107463. +float: 1
  107464. +ifloat: 1
  107465. +Test "Real part of: casinh (1.0 + 0x1.fp-100 i)":
  107466. +double: 1
  107467. +float: 1
  107468. +idouble: 1
  107469. +ifloat: 1
  107470. +Test "Real part of: casinh (1.0 + 0x1.fp-1000 i)":
  107471. +double: 1
  107472. +idouble: 1
  107473. +Test "Real part of: casinh (1.0 + 0x1.fp-1025 i)":
  107474. +double: 1
  107475. +idouble: 1
  107476. +Test "Real part of: casinh (1.0 + 0x1.fp-129 i)":
  107477. +double: 1
  107478. +float: 1
  107479. +idouble: 1
  107480. +ifloat: 1
  107481. +Test "Real part of: casinh (1.0 + 0x1.fp-30 i)":
  107482. +double: 1
  107483. +float: 1
  107484. +idouble: 1
  107485. +ifloat: 1
  107486. +Test "Real part of: casinh (1.0 - 0 i)":
  107487. +double: 1
  107488. +float: 1
  107489. +idouble: 1
  107490. +ifloat: 1
  107491. +Test "Real part of: casinh (1.0 - 0.25 i)":
  107492. +float: 1
  107493. +ifloat: 1
  107494. +Test "Real part of: casinh (1.0 - 0.5 i)":
  107495. +double: 1
  107496. +idouble: 1
  107497. +Test "Real part of: casinh (1.0 - 0x1.fp-10 i)":
  107498. +double: 1
  107499. +idouble: 1
  107500. +Test "Imaginary part of: casinh (1.0 - 0x1.fp-10 i)":
  107501. +float: 1
  107502. +ifloat: 1
  107503. +Test "Real part of: casinh (1.0 - 0x1.fp-100 i)":
  107504. +double: 1
  107505. +float: 1
  107506. +idouble: 1
  107507. +ifloat: 1
  107508. +Test "Real part of: casinh (1.0 - 0x1.fp-1000 i)":
  107509. +double: 1
  107510. +idouble: 1
  107511. +Test "Real part of: casinh (1.0 - 0x1.fp-1025 i)":
  107512. +double: 1
  107513. +idouble: 1
  107514. +Test "Real part of: casinh (1.0 - 0x1.fp-129 i)":
  107515. +double: 1
  107516. +float: 1
  107517. +idouble: 1
  107518. +ifloat: 1
  107519. +Test "Real part of: casinh (1.0 - 0x1.fp-30 i)":
  107520. +double: 1
  107521. +float: 1
  107522. +idouble: 1
  107523. +ifloat: 1
  107524. +Test "Real part of: casinh (1.5 + +0 i)":
  107525. +double: 1
  107526. +idouble: 1
  107527. +Test "Real part of: casinh (1.5 + 0x1.fp-1025 i)":
  107528. +double: 1
  107529. +idouble: 1
  107530. +Test "Real part of: casinh (1.5 + 0x1.fp-129 i)":
  107531. +double: 1
  107532. +idouble: 1
  107533. +Test "Real part of: casinh (1.5 - 0 i)":
  107534. +double: 1
  107535. +idouble: 1
  107536. +Test "Real part of: casinh (1.5 - 0x1.fp-1025 i)":
  107537. +double: 1
  107538. +idouble: 1
  107539. +Test "Real part of: casinh (1.5 - 0x1.fp-129 i)":
  107540. +double: 1
  107541. +idouble: 1
  107542. +
  107543. +# catan
  107544. +Test "Imaginary part of: catan (-0x0.fffffffffffff8p0 + 0x1p-27 i)":
  107545. +double: 1
  107546. +idouble: 1
  107547. +Test "Imaginary part of: catan (-0x0.ffffffp0 + 0x1p-13 i)":
  107548. +double: 1
  107549. +float: 1
  107550. +idouble: 1
  107551. +ifloat: 1
  107552. +Test "Imaginary part of: catan (-0x1.0000000000001p0 - 0x1p-27 i)":
  107553. +double: 1
  107554. +idouble: 1
  107555. +Test "Real part of: catan (-0x1.000002p0 + 0x1p-126 i)":
  107556. +float: 1
  107557. +ifloat: 1
  107558. +Test "Real part of: catan (-0x1.000002p0 + 0x1p-13 i)":
  107559. +float: 1
  107560. +ifloat: 1
  107561. +Test "Real part of: catan (-0x1.000002p0 - 0x1p-126 i)":
  107562. +float: 1
  107563. +ifloat: 1
  107564. +Test "Real part of: catan (-0x1.000002p0 - 0x1p-13 i)":
  107565. +float: 1
  107566. +ifloat: 1
  107567. +Test "Imaginary part of: catan (-0x1.000002p0 - 0x1p-13 i)":
  107568. +double: 1
  107569. +idouble: 1
  107570. +Test "Imaginary part of: catan (-0x1.fp1023 + 0x1.fp1023 i)":
  107571. +double: 1
  107572. +idouble: 1
  107573. +Test "Imaginary part of: catan (-0x1.fp1023 - 0x1.fp1023 i)":
  107574. +double: 1
  107575. +idouble: 1
  107576. +Test "Imaginary part of: catan (-0x1.fp127 + 0x1.fp127 i)":
  107577. +double: 1
  107578. +idouble: 1
  107579. +Test "Imaginary part of: catan (-0x1.fp127 - 0x1.fp127 i)":
  107580. +double: 1
  107581. +idouble: 1
  107582. +Test "Imaginary part of: catan (-0x1p-1020 + 1.0 i)":
  107583. +double: 1
  107584. +idouble: 1
  107585. +Test "Imaginary part of: catan (-0x1p-1020 - 1.0 i)":
  107586. +double: 1
  107587. +idouble: 1
  107588. +Test "Real part of: catan (-0x1p-13 + 0x1.000002p0 i)":
  107589. +float: 1
  107590. +ifloat: 1
  107591. +Test "Real part of: catan (-0x1p-13 + 1.0 i)":
  107592. +float: 1
  107593. +ifloat: 1
  107594. +Test "Real part of: catan (-0x1p-13 - 0x1.000002p0 i)":
  107595. +float: 1
  107596. +ifloat: 1
  107597. +Test "Imaginary part of: catan (-0x1p-13 - 0x1.000002p0 i)":
  107598. +float: 1
  107599. +ifloat: 1
  107600. +Test "Real part of: catan (-0x1p-13 - 1.0 i)":
  107601. +float: 1
  107602. +ifloat: 1
  107603. +Test "Imaginary part of: catan (-0x1p-54 + 1.0 i)":
  107604. +float: 1
  107605. +ifloat: 1
  107606. +Test "Imaginary part of: catan (-0x1p-54 - 1.0 i)":
  107607. +float: 1
  107608. +ifloat: 1
  107609. +Test "Imaginary part of: catan (-0x1p-57 + 1.0 i)":
  107610. +float: 1
  107611. +ifloat: 1
  107612. +Test "Imaginary part of: catan (-0x1p-57 - 1.0 i)":
  107613. +float: 1
  107614. +ifloat: 1
  107615. +Test "Real part of: catan (-1.0 + 0x1p-13 i)":
  107616. +float: 1
  107617. +ifloat: 1
  107618. +Test "Real part of: catan (-1.0 - 0x1p-13 i)":
  107619. +float: 1
  107620. +ifloat: 1
  107621. +Test "Imaginary part of: catan (-2 - 3 i)":
  107622. +double: 1
  107623. +float: 1
  107624. +idouble: 1
  107625. +ifloat: 1
  107626. +Test "Imaginary part of: catan (0x0.fffffffffffff8p0 + 0x1p-27 i)":
  107627. +double: 1
  107628. +idouble: 1
  107629. +Test "Imaginary part of: catan (0x0.ffffffp0 + 0x1p-13 i)":
  107630. +double: 1
  107631. +float: 1
  107632. +idouble: 1
  107633. +ifloat: 1
  107634. +Test "Imaginary part of: catan (0x1.0000000000001p0 - 0x1p-27 i)":
  107635. +double: 1
  107636. +idouble: 1
  107637. +Test "Real part of: catan (0x1.000002p0 + 0x1p-126 i)":
  107638. +float: 1
  107639. +ifloat: 1
  107640. +Test "Real part of: catan (0x1.000002p0 + 0x1p-13 i)":
  107641. +float: 1
  107642. +ifloat: 1
  107643. +Test "Real part of: catan (0x1.000002p0 - 0x1p-126 i)":
  107644. +float: 1
  107645. +ifloat: 1
  107646. +Test "Real part of: catan (0x1.000002p0 - 0x1p-13 i)":
  107647. +float: 1
  107648. +ifloat: 1
  107649. +Test "Imaginary part of: catan (0x1.000002p0 - 0x1p-13 i)":
  107650. +double: 1
  107651. +idouble: 1
  107652. +Test "Imaginary part of: catan (0x1.fp1023 + 0x1.fp1023 i)":
  107653. +double: 1
  107654. +idouble: 1
  107655. +Test "Imaginary part of: catan (0x1.fp1023 - 0x1.fp1023 i)":
  107656. +double: 1
  107657. +idouble: 1
  107658. +Test "Imaginary part of: catan (0x1.fp127 + 0x1.fp127 i)":
  107659. +double: 1
  107660. +idouble: 1
  107661. +Test "Imaginary part of: catan (0x1.fp127 - 0x1.fp127 i)":
  107662. +double: 1
  107663. +idouble: 1
  107664. +Test "Imaginary part of: catan (0x1p-1020 + 1.0 i)":
  107665. +double: 1
  107666. +idouble: 1
  107667. +Test "Imaginary part of: catan (0x1p-1020 - 1.0 i)":
  107668. +double: 1
  107669. +idouble: 1
  107670. +Test "Real part of: catan (0x1p-13 + 0x1.000002p0 i)":
  107671. +float: 1
  107672. +ifloat: 1
  107673. +Test "Real part of: catan (0x1p-13 + 1.0 i)":
  107674. +float: 1
  107675. +ifloat: 1
  107676. +Test "Real part of: catan (0x1p-13 - 0x1.000002p0 i)":
  107677. +float: 1
  107678. +ifloat: 1
  107679. +Test "Imaginary part of: catan (0x1p-13 - 0x1.000002p0 i)":
  107680. +float: 1
  107681. +ifloat: 1
  107682. +Test "Real part of: catan (0x1p-13 - 1.0 i)":
  107683. +float: 1
  107684. +ifloat: 1
  107685. +Test "Imaginary part of: catan (0x1p-54 + 1.0 i)":
  107686. +float: 1
  107687. +ifloat: 1
  107688. +Test "Imaginary part of: catan (0x1p-54 - 1.0 i)":
  107689. +float: 1
  107690. +ifloat: 1
  107691. +Test "Imaginary part of: catan (0x1p-57 + 1.0 i)":
  107692. +float: 1
  107693. +ifloat: 1
  107694. +Test "Imaginary part of: catan (0x1p-57 - 1.0 i)":
  107695. +float: 1
  107696. +ifloat: 1
  107697. +Test "Real part of: catan (1.0 + 0x1p-13 i)":
  107698. +float: 1
  107699. +ifloat: 1
  107700. +Test "Real part of: catan (1.0 - 0x1p-13 i)":
  107701. +float: 1
  107702. +ifloat: 1
  107703. +
  107704. +# catanh
  107705. +Test "Real part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
  107706. +float: 1
  107707. +ifloat: 1
  107708. +Test "Imaginary part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
  107709. +float: 1
  107710. +ifloat: 1
  107711. +Test "Real part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
  107712. +float: 1
  107713. +ifloat: 1
  107714. +Test "Imaginary part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
  107715. +float: 1
  107716. +ifloat: 1
  107717. +Test "Real part of: catanh (-0x1.fp1023 + 0x1.fp1023 i)":
  107718. +double: 1
  107719. +idouble: 1
  107720. +Test "Real part of: catanh (-0x1.fp1023 - 0x1.fp1023 i)":
  107721. +double: 1
  107722. +idouble: 1
  107723. +Test "Real part of: catanh (-0x1.fp127 + 0x1.fp127 i)":
  107724. +double: 1
  107725. +idouble: 1
  107726. +Test "Real part of: catanh (-0x1.fp127 - 0x1.fp127 i)":
  107727. +double: 1
  107728. +idouble: 1
  107729. +Test "Imaginary part of: catanh (-0x1p-126 + 0x1.000002p0 i)":
  107730. +float: 1
  107731. +ifloat: 1
  107732. +Test "Imaginary part of: catanh (-0x1p-126 - 0x1.000002p0 i)":
  107733. +float: 1
  107734. +ifloat: 1
  107735. +Test "Real part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
  107736. +double: 1
  107737. +idouble: 1
  107738. +Test "Imaginary part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
  107739. +float: 1
  107740. +ifloat: 1
  107741. +Test "Imaginary part of: catanh (-0x1p-13 + 1.0 i)":
  107742. +float: 1
  107743. +ifloat: 1
  107744. +Test "Real part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
  107745. +double: 1
  107746. +idouble: 1
  107747. +Test "Imaginary part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
  107748. +float: 1
  107749. +ifloat: 1
  107750. +Test "Imaginary part of: catanh (-0x1p-13 - 1.0 i)":
  107751. +float: 1
  107752. +ifloat: 1
  107753. +Test "Real part of: catanh (-0x1p-27 + 0x1.0000000000001p0 i)":
  107754. +double: 1
  107755. +idouble: 1
  107756. +Test "Real part of: catanh (-0x1p-27 - 0x1.0000000000001p0 i)":
  107757. +double: 1
  107758. +idouble: 1
  107759. +Test "Real part of: catanh (-1.0 + 0x1p-1020 i)":
  107760. +double: 1
  107761. +idouble: 1
  107762. +Test "Imaginary part of: catanh (-1.0 + 0x1p-13 i)":
  107763. +float: 1
  107764. +ifloat: 1
  107765. +Test "Real part of: catanh (-1.0 + 0x1p-54 i)":
  107766. +float: 1
  107767. +ifloat: 1
  107768. +Test "Real part of: catanh (-1.0 + 0x1p-57 i)":
  107769. +float: 1
  107770. +ifloat: 1
  107771. +Test "Real part of: catanh (-1.0 - 0x1p-1020 i)":
  107772. +double: 1
  107773. +idouble: 1
  107774. +Test "Imaginary part of: catanh (-1.0 - 0x1p-13 i)":
  107775. +float: 1
  107776. +ifloat: 1
  107777. +Test "Real part of: catanh (-1.0 - 0x1p-54 i)":
  107778. +float: 1
  107779. +ifloat: 1
  107780. +Test "Real part of: catanh (-1.0 - 0x1p-57 i)":
  107781. +float: 1
  107782. +ifloat: 1
  107783. +Test "Real part of: catanh (-2 - 3 i)":
  107784. +double: 1
  107785. +idouble: 1
  107786. +Test "Imaginary part of: catanh (0x1.000002p0 + 0x1p-13 i)":
  107787. +float: 1
  107788. +ifloat: 1
  107789. +Test "Imaginary part of: catanh (0x1.000002p0 - 0x1p-13 i)":
  107790. +float: 1
  107791. +ifloat: 1
  107792. +Test "Real part of: catanh (0x1.fp1023 + 0x1.fp1023 i)":
  107793. +double: 1
  107794. +idouble: 1
  107795. +Test "Real part of: catanh (0x1.fp1023 - 0x1.fp1023 i)":
  107796. +double: 1
  107797. +idouble: 1
  107798. +Test "Real part of: catanh (0x1.fp127 + 0x1.fp127 i)":
  107799. +double: 1
  107800. +idouble: 1
  107801. +Test "Real part of: catanh (0x1.fp127 - 0x1.fp127 i)":
  107802. +double: 1
  107803. +idouble: 1
  107804. +Test "Imaginary part of: catanh (0x1p-126 + 0x1.000002p0 i)":
  107805. +float: 1
  107806. +ifloat: 1
  107807. +Test "Imaginary part of: catanh (0x1p-126 - 0x1.000002p0 i)":
  107808. +float: 1
  107809. +ifloat: 1
  107810. +Test "Real part of: catanh (0x1p-13 + 0x0.ffffffp0 i)":
  107811. +double: 1
  107812. +float: 1
  107813. +idouble: 1
  107814. +ifloat: 1
  107815. +Test "Imaginary part of: catanh (0x1p-13 + 0x1.000002p0 i)":
  107816. +float: 1
  107817. +ifloat: 1
  107818. +Test "Imaginary part of: catanh (0x1p-13 + 1.0 i)":
  107819. +float: 1
  107820. +ifloat: 1
  107821. +Test "Real part of: catanh (0x1p-13 - 0x0.ffffffp0 i)":
  107822. +double: 1
  107823. +float: 1
  107824. +idouble: 1
  107825. +ifloat: 1
  107826. +Test "Imaginary part of: catanh (0x1p-13 - 0x1.000002p0 i)":
  107827. +float: 1
  107828. +ifloat: 1
  107829. +Test "Imaginary part of: catanh (0x1p-13 - 1.0 i)":
  107830. +float: 1
  107831. +ifloat: 1
  107832. +Test "Real part of: catanh (0x1p-27 + 0x0.fffffffffffff8p0 i)":
  107833. +double: 1
  107834. +idouble: 1
  107835. +Test "Real part of: catanh (0x1p-27 - 0x0.fffffffffffff8p0 i)":
  107836. +double: 1
  107837. +idouble: 1
  107838. +Test "Real part of: catanh (1.0 + 0x1p-1020 i)":
  107839. +double: 1
  107840. +idouble: 1
  107841. +Test "Imaginary part of: catanh (1.0 + 0x1p-13 i)":
  107842. +float: 1
  107843. +ifloat: 1
  107844. +Test "Real part of: catanh (1.0 + 0x1p-54 i)":
  107845. +float: 1
  107846. +ifloat: 1
  107847. +Test "Real part of: catanh (1.0 + 0x1p-57 i)":
  107848. +float: 1
  107849. +ifloat: 1
  107850. +Test "Real part of: catanh (1.0 - 0x1p-1020 i)":
  107851. +double: 1
  107852. +idouble: 1
  107853. +Test "Imaginary part of: catanh (1.0 - 0x1p-13 i)":
  107854. +float: 1
  107855. +ifloat: 1
  107856. +Test "Real part of: catanh (1.0 - 0x1p-54 i)":
  107857. +float: 1
  107858. +ifloat: 1
  107859. +Test "Real part of: catanh (1.0 - 0x1p-57 i)":
  107860. +float: 1
  107861. +ifloat: 1
  107862. +
  107863. +# cbrt
  107864. +Test "cbrt (-27.0)":
  107865. +double: 1
  107866. +idouble: 1
  107867. +Test "cbrt (0.75)":
  107868. +double: 1
  107869. +idouble: 1
  107870. +Test "cbrt (0.9921875)":
  107871. +double: 1
  107872. +idouble: 1
  107873. +
  107874. +# ccos
  107875. +Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
  107876. +double: 1
  107877. +idouble: 1
  107878. +Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
  107879. +float: 1
  107880. +ifloat: 1
  107881. +Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
  107882. +double: 1
  107883. +idouble: 1
  107884. +Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
  107885. +float: 1
  107886. +ifloat: 1
  107887. +Test "Imaginary part of: ccos (-2 - 3 i)":
  107888. +float: 1
  107889. +ifloat: 1
  107890. +Test "Real part of: ccos (0.75 + 1.25 i)":
  107891. +double: 1
  107892. +float: 1
  107893. +idouble: 1
  107894. +ifloat: 1
  107895. +Test "Imaginary part of: ccos (0.75 + 1.25 i)":
  107896. +float: 1
  107897. +ifloat: 1
  107898. +Test "Imaginary part of: ccos (0.75 + 710.5 i)":
  107899. +double: 1
  107900. +idouble: 1
  107901. +Test "Imaginary part of: ccos (0.75 + 89.5 i)":
  107902. +float: 1
  107903. +ifloat: 1
  107904. +Test "Imaginary part of: ccos (0.75 - 710.5 i)":
  107905. +double: 1
  107906. +idouble: 1
  107907. +Test "Imaginary part of: ccos (0.75 - 89.5 i)":
  107908. +float: 1
  107909. +ifloat: 1
  107910. +Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
  107911. +double: 1
  107912. +idouble: 1
  107913. +
  107914. +# ccosh
  107915. +Test "Real part of: ccosh (-2 - 3 i)":
  107916. +float: 1
  107917. +ifloat: 1
  107918. +Test "Imaginary part of: ccosh (-2 - 3 i)":
  107919. +float: 1
  107920. +ifloat: 1
  107921. +Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
  107922. +double: 1
  107923. +idouble: 1
  107924. +Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
  107925. +double: 1
  107926. +idouble: 1
  107927. +Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
  107928. +float: 1
  107929. +ifloat: 1
  107930. +Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
  107931. +float: 1
  107932. +ifloat: 1
  107933. +Test "Real part of: ccosh (0.75 + 1.25 i)":
  107934. +double: 1
  107935. +float: 1
  107936. +idouble: 1
  107937. +ifloat: 1
  107938. +Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
  107939. +float: 1
  107940. +ifloat: 1
  107941. +Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
  107942. +double: 1
  107943. +idouble: 1
  107944. +Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
  107945. +double: 1
  107946. +idouble: 1
  107947. +Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
  107948. +double: 1
  107949. +idouble: 1
  107950. +Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
  107951. +float: 1
  107952. +ifloat: 1
  107953. +Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
  107954. +float: 1
  107955. +ifloat: 1
  107956. +
  107957. +# cexp
  107958. +Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
  107959. +float: 1
  107960. +ifloat: 1
  107961. +Test "Imaginary part of: cexp (-95 + 0.75 i)":
  107962. +double: 1
  107963. +idouble: 1
  107964. +Test "Real part of: cexp (0.75 + 1.25 i)":
  107965. +float: 1
  107966. +ifloat: 1
  107967. +Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
  107968. +double: 1
  107969. +idouble: 1
  107970. +Test "Real part of: cexp (50 + 0x1p127 i)":
  107971. +double: 2
  107972. +float: 1
  107973. +idouble: 2
  107974. +ifloat: 1
  107975. +Test "Imaginary part of: cexp (50 + 0x1p127 i)":
  107976. +double: 1
  107977. +idouble: 1
  107978. +Test "Real part of: cexp (500 + 0x1p1023 i)":
  107979. +double: 1
  107980. +idouble: 1
  107981. +Test "Real part of: cexp (709.8125 + 0.75 i)":
  107982. +double: 1
  107983. +idouble: 1
  107984. +Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
  107985. +double: 1
  107986. +idouble: 1
  107987. +Test "Real part of: cexp (88.75 + 0.75 i)":
  107988. +float: 1
  107989. +ifloat: 1
  107990. +Test "Imaginary part of: cexp (88.75 + 0.75 i)":
  107991. +float: 2
  107992. +ifloat: 2
  107993. +
  107994. +# clog
  107995. +Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
  107996. +double: 1
  107997. +idouble: 1
  107998. +Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
  107999. +double: 1
  108000. +idouble: 1
  108001. +Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
  108002. +float: 1
  108003. +ifloat: 1
  108004. +Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
  108005. +float: 1
  108006. +ifloat: 1
  108007. +Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
  108008. +float: 1
  108009. +ifloat: 1
  108010. +Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
  108011. +float: 1
  108012. +ifloat: 1
  108013. +Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
  108014. +float: 1
  108015. +ifloat: 1
  108016. +Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
  108017. +float: 1
  108018. +ifloat: 1
  108019. +Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i)":
  108020. +float: 1
  108021. +ifloat: 1
  108022. +Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
  108023. +float: 1
  108024. +ifloat: 1
  108025. +Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
  108026. +float: 1
  108027. +ifloat: 1
  108028. +Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
  108029. +float: 1
  108030. +ifloat: 1
  108031. +Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
  108032. +float: 1
  108033. +ifloat: 1
  108034. +Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
  108035. +double: 1
  108036. +idouble: 1
  108037. +Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
  108038. +float: 1
  108039. +ifloat: 1
  108040. +Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
  108041. +float: 1
  108042. +ifloat: 1
  108043. +Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
  108044. +float: 1
  108045. +ifloat: 1
  108046. +Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
  108047. +float: 1
  108048. +ifloat: 1
  108049. +Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
  108050. +float: 1
  108051. +ifloat: 1
  108052. +
  108053. +# clog10
  108054. +Test "Imaginary part of: clog10 (-0 + inf i)":
  108055. +double: 1
  108056. +float: 1
  108057. +idouble: 1
  108058. +ifloat: 1
  108059. +Test "Imaginary part of: clog10 (-0 - inf i)":
  108060. +double: 1
  108061. +float: 1
  108062. +idouble: 1
  108063. +ifloat: 1
  108064. +Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
  108065. +double: 2
  108066. +idouble: 2
  108067. +Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
  108068. +double: 1
  108069. +idouble: 1
  108070. +Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
  108071. +double: 2
  108072. +idouble: 2
  108073. +Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
  108074. +double: 1
  108075. +idouble: 1
  108076. +Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
  108077. +double: 1
  108078. +idouble: 1
  108079. +Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
  108080. +double: 1
  108081. +idouble: 1
  108082. +Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
  108083. +double: 1
  108084. +float: 1
  108085. +idouble: 1
  108086. +ifloat: 1
  108087. +Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
  108088. +double: 1
  108089. +float: 1
  108090. +idouble: 1
  108091. +ifloat: 1
  108092. +Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i)":
  108093. +double: 1
  108094. +idouble: 1
  108095. +Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i)":
  108096. +double: 1
  108097. +idouble: 1
  108098. +Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
  108099. +double: 1
  108100. +idouble: 1
  108101. +Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
  108102. +double: 1
  108103. +idouble: 1
  108104. +Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
  108105. +double: 1
  108106. +idouble: 1
  108107. +Test "Imaginary part of: clog10 (-2 - 3 i)":
  108108. +double: 1
  108109. +idouble: 1
  108110. +Test "Imaginary part of: clog10 (-3 + inf i)":
  108111. +double: 1
  108112. +float: 1
  108113. +idouble: 1
  108114. +ifloat: 1
  108115. +Test "Imaginary part of: clog10 (-3 - inf i)":
  108116. +double: 1
  108117. +float: 1
  108118. +idouble: 1
  108119. +ifloat: 1
  108120. +Test "Imaginary part of: clog10 (-inf + 0 i)":
  108121. +double: 1
  108122. +float: 1
  108123. +idouble: 1
  108124. +ifloat: 1
  108125. +Test "Imaginary part of: clog10 (-inf + 1 i)":
  108126. +double: 1
  108127. +float: 1
  108128. +idouble: 1
  108129. +ifloat: 1
  108130. +Test "Imaginary part of: clog10 (-inf + inf i)":
  108131. +double: 1
  108132. +idouble: 1
  108133. +Test "Imaginary part of: clog10 (-inf - 0 i)":
  108134. +double: 1
  108135. +float: 1
  108136. +idouble: 1
  108137. +ifloat: 1
  108138. +Test "Imaginary part of: clog10 (-inf - 1 i)":
  108139. +double: 1
  108140. +float: 1
  108141. +idouble: 1
  108142. +ifloat: 1
  108143. +Test "Imaginary part of: clog10 (0 + inf i)":
  108144. +double: 1
  108145. +float: 1
  108146. +idouble: 1
  108147. +ifloat: 1
  108148. +Test "Imaginary part of: clog10 (0 - inf i)":
  108149. +double: 1
  108150. +float: 1
  108151. +idouble: 1
  108152. +ifloat: 1
  108153. +Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
  108154. +double: 1
  108155. +idouble: 1
  108156. +Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
  108157. +double: 1
  108158. +float: 2
  108159. +idouble: 1
  108160. +ifloat: 2
  108161. +Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
  108162. +float: 1
  108163. +ifloat: 1
  108164. +Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
  108165. +double: 1
  108166. +idouble: 1
  108167. +Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
  108168. +float: 1
  108169. +ifloat: 1
  108170. +Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
  108171. +float: 1
  108172. +ifloat: 1
  108173. +Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
  108174. +float: 1
  108175. +ifloat: 1
  108176. +Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
  108177. +double: 1
  108178. +float: 1
  108179. +idouble: 1
  108180. +ifloat: 1
  108181. +Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i)":
  108182. +double: 1
  108183. +float: 1
  108184. +idouble: 1
  108185. +ifloat: 1
  108186. +Test "Real part of: clog10 (0x1.fffffep+127 + 1.0 i)":
  108187. +float: 1
  108188. +ifloat: 1
  108189. +Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
  108190. +double: 1
  108191. +idouble: 1
  108192. +Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
  108193. +double: 1
  108194. +idouble: 1
  108195. +Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
  108196. +double: 1
  108197. +idouble: 1
  108198. +Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
  108199. +double: 1
  108200. +idouble: 1
  108201. +Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
  108202. +double: 1
  108203. +idouble: 1
  108204. +Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
  108205. +double: 1
  108206. +idouble: 1
  108207. +Test "Imaginary part of: clog10 (0x1p-1073 + 0x1p-1073 i)":
  108208. +double: 1
  108209. +idouble: 1
  108210. +Test "Imaginary part of: clog10 (0x1p-1074 + 0x1.fp+1023 i)":
  108211. +double: 1
  108212. +idouble: 1
  108213. +Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
  108214. +double: 1
  108215. +idouble: 1
  108216. +Test "Imaginary part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
  108217. +double: 1
  108218. +idouble: 1
  108219. +Test "Imaginary part of: clog10 (0x1p-1074 - 0x1.fp+1023 i)":
  108220. +double: 1
  108221. +idouble: 1
  108222. +Test "Imaginary part of: clog10 (0x1p-147 + 0x1p-147 i)":
  108223. +double: 1
  108224. +float: 1
  108225. +idouble: 1
  108226. +ifloat: 1
  108227. +Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
  108228. +double: 1
  108229. +float: 1
  108230. +idouble: 1
  108231. +ifloat: 1
  108232. +Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i)":
  108233. +double: 1
  108234. +float: 1
  108235. +idouble: 1
  108236. +ifloat: 1
  108237. +Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
  108238. +double: 1
  108239. +float: 1
  108240. +idouble: 1
  108241. +ifloat: 1
  108242. +Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
  108243. +double: 1
  108244. +idouble: 1
  108245. +Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
  108246. +double: 1
  108247. +idouble: 1
  108248. +Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
  108249. +double: 1
  108250. +idouble: 1
  108251. +Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
  108252. +double: 1
  108253. +float: 1
  108254. +idouble: 1
  108255. +ifloat: 1
  108256. +Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
  108257. +double: 1
  108258. +float: 1
  108259. +idouble: 1
  108260. +ifloat: 1
  108261. +Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
  108262. +double: 1
  108263. +float: 1
  108264. +idouble: 1
  108265. +ifloat: 1
  108266. +Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
  108267. +double: 1
  108268. +float: 1
  108269. +idouble: 1
  108270. +ifloat: 1
  108271. +Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
  108272. +float: 1
  108273. +ifloat: 1
  108274. +Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
  108275. +double: 1
  108276. +idouble: 1
  108277. +Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
  108278. +float: 1
  108279. +ifloat: 1
  108280. +Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
  108281. +double: 1
  108282. +idouble: 1
  108283. +Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
  108284. +double: 1
  108285. +idouble: 1
  108286. +Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
  108287. +double: 1
  108288. +idouble: 1
  108289. +Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
  108290. +double: 1
  108291. +idouble: 1
  108292. +Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
  108293. +double: 1
  108294. +idouble: 1
  108295. +Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
  108296. +double: 1
  108297. +idouble: 1
  108298. +Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
  108299. +double: 1
  108300. +idouble: 1
  108301. +Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
  108302. +double: 1
  108303. +idouble: 1
  108304. +Test "Imaginary part of: clog10 (3 + inf i)":
  108305. +double: 1
  108306. +float: 1
  108307. +idouble: 1
  108308. +ifloat: 1
  108309. +Test "Imaginary part of: clog10 (3 - inf i)":
  108310. +double: 1
  108311. +float: 1
  108312. +idouble: 1
  108313. +ifloat: 1
  108314. +Test "Imaginary part of: clog10 (inf + inf i)":
  108315. +double: 1
  108316. +float: 1
  108317. +idouble: 1
  108318. +ifloat: 1
  108319. +Test "Imaginary part of: clog10 (inf - inf i)":
  108320. +double: 1
  108321. +float: 1
  108322. +idouble: 1
  108323. +ifloat: 1
  108324. +
  108325. +# cos
  108326. +Test "cos (0x1p+120)":
  108327. +float: 1
  108328. +ifloat: 1
  108329. +Test "cos (0x1p+127)":
  108330. +float: 1
  108331. +ifloat: 1
  108332. +Test "cos (M_PI_6l * 2.0)":
  108333. +double: 1
  108334. +idouble: 1
  108335. +Test "cos (M_PI_6l * 4.0)":
  108336. +double: 2
  108337. +float: 1
  108338. +idouble: 2
  108339. +ifloat: 1
  108340. +
  108341. +# cos_downward
  108342. +Test "cos_downward (1)":
  108343. +float: 1
  108344. +ifloat: 1
  108345. +Test "cos_downward (2)":
  108346. +float: 1
  108347. +ifloat: 1
  108348. +Test "cos_downward (3)":
  108349. +float: 1
  108350. +ifloat: 1
  108351. +Test "cos_downward (4)":
  108352. +float: 1
  108353. +ifloat: 1
  108354. +Test "cos_downward (5)":
  108355. +float: 1
  108356. +ifloat: 1
  108357. +Test "cos_downward (7)":
  108358. +float: 1
  108359. +ifloat: 1
  108360. +Test "cos_downward (8)":
  108361. +float: 1
  108362. +ifloat: 1
  108363. +
  108364. +# cos_tonearest
  108365. +Test "cos_tonearest (7)":
  108366. +float: 1
  108367. +ifloat: 1
  108368. +
  108369. +# cos_towardzero
  108370. +Test "cos_towardzero (2)":
  108371. +float: 1
  108372. +ifloat: 1
  108373. +Test "cos_towardzero (3)":
  108374. +float: 1
  108375. +ifloat: 1
  108376. +Test "cos_towardzero (5)":
  108377. +float: 1
  108378. +ifloat: 1
  108379. +Test "cos_towardzero (7)":
  108380. +float: 1
  108381. +ifloat: 1
  108382. +Test "cos_towardzero (8)":
  108383. +float: 1
  108384. +ifloat: 1
  108385. +
  108386. +# cos_upward
  108387. +Test "cos_upward (10)":
  108388. +float: 1
  108389. +ifloat: 1
  108390. +Test "cos_upward (6)":
  108391. +float: 1
  108392. +ifloat: 1
  108393. +Test "cos_upward (7)":
  108394. +float: 1
  108395. +ifloat: 1
  108396. +Test "cos_upward (9)":
  108397. +float: 2
  108398. +ifloat: 2
  108399. +
  108400. +# cosh_downward
  108401. +Test "cosh_downward (22)":
  108402. +float: 1
  108403. +ifloat: 1
  108404. +Test "cosh_downward (23)":
  108405. +float: 1
  108406. +ifloat: 1
  108407. +Test "cosh_downward (24)":
  108408. +float: 1
  108409. +ifloat: 1
  108410. +
  108411. +# cosh_towardzero
  108412. +Test "cosh_towardzero (22)":
  108413. +float: 1
  108414. +ifloat: 1
  108415. +Test "cosh_towardzero (23)":
  108416. +float: 1
  108417. +ifloat: 1
  108418. +Test "cosh_towardzero (24)":
  108419. +float: 1
  108420. +ifloat: 1
  108421. +
  108422. +# cpow
  108423. +Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
  108424. +float: 1
  108425. +ifloat: 1
  108426. +Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
  108427. +double: 1
  108428. +float: 4
  108429. +idouble: 1
  108430. +ifloat: 4
  108431. +Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
  108432. +double: 2
  108433. +float: 3
  108434. +idouble: 2
  108435. +ifloat: 3
  108436. +Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
  108437. +double: 1
  108438. +float: 4
  108439. +idouble: 1
  108440. +ifloat: 4
  108441. +Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i)":
  108442. +float: 2
  108443. +ifloat: 2
  108444. +
  108445. +# csin
  108446. +Test "Real part of: csin (-0.75 + 710.5 i)":
  108447. +double: 1
  108448. +idouble: 1
  108449. +Test "Real part of: csin (-0.75 + 89.5 i)":
  108450. +float: 1
  108451. +ifloat: 1
  108452. +Test "Real part of: csin (-0.75 - 710.5 i)":
  108453. +double: 1
  108454. +idouble: 1
  108455. +Test "Real part of: csin (-0.75 - 89.5 i)":
  108456. +float: 1
  108457. +ifloat: 1
  108458. +Test "Real part of: csin (0.75 + 710.5 i)":
  108459. +double: 1
  108460. +idouble: 1
  108461. +Test "Real part of: csin (0.75 + 89.5 i)":
  108462. +float: 1
  108463. +ifloat: 1
  108464. +Test "Real part of: csin (0.75 - 710.5 i)":
  108465. +double: 1
  108466. +idouble: 1
  108467. +Test "Real part of: csin (0.75 - 89.5 i)":
  108468. +float: 1
  108469. +ifloat: 1
  108470. +Test "Real part of: csin (0x1p-1074 + 1440 i)":
  108471. +double: 1
  108472. +idouble: 1
  108473. +
  108474. +# csinh
  108475. +Test "Imaginary part of: csinh (-2 - 3 i)":
  108476. +double: 1
  108477. +idouble: 1
  108478. +Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
  108479. +double: 1
  108480. +idouble: 1
  108481. +Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
  108482. +double: 1
  108483. +idouble: 1
  108484. +Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
  108485. +float: 1
  108486. +ifloat: 1
  108487. +Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
  108488. +float: 1
  108489. +ifloat: 1
  108490. +Test "Real part of: csinh (0.75 + 1.25 i)":
  108491. +float: 1
  108492. +ifloat: 1
  108493. +Test "Imaginary part of: csinh (0.75 + 1.25 i)":
  108494. +float: 1
  108495. +ifloat: 1
  108496. +Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
  108497. +double: 1
  108498. +idouble: 1
  108499. +Test "Imaginary part of: csinh (710.5 + 0.75 i)":
  108500. +double: 1
  108501. +idouble: 1
  108502. +Test "Imaginary part of: csinh (710.5 - 0.75 i)":
  108503. +double: 1
  108504. +idouble: 1
  108505. +Test "Imaginary part of: csinh (89.5 + 0.75 i)":
  108506. +float: 1
  108507. +ifloat: 1
  108508. +Test "Imaginary part of: csinh (89.5 - 0.75 i)":
  108509. +float: 1
  108510. +ifloat: 1
  108511. +
  108512. +# csqrt
  108513. +Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
  108514. +double: 1
  108515. +idouble: 1
  108516. +Test "Real part of: csqrt (-2 + 3 i)":
  108517. +float: 1
  108518. +ifloat: 1
  108519. +Test "Real part of: csqrt (-2 - 3 i)":
  108520. +float: 1
  108521. +ifloat: 1
  108522. +Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
  108523. +double: 1
  108524. +idouble: 1
  108525. +Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
  108526. +float: 1
  108527. +ifloat: 1
  108528. +Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
  108529. +double: 1
  108530. +idouble: 1
  108531. +Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
  108532. +double: 1
  108533. +idouble: 1
  108534. +Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
  108535. +double: 1
  108536. +idouble: 1
  108537. +
  108538. +# ctan
  108539. +Test "Real part of: ctan (-2 - 3 i)":
  108540. +float: 1
  108541. +ifloat: 1
  108542. +Test "Imaginary part of: ctan (-2 - 3 i)":
  108543. +double: 1
  108544. +idouble: 1
  108545. +Test "Imaginary part of: ctan (0.75 + 1.25 i)":
  108546. +double: 1
  108547. +idouble: 1
  108548. +Test "Real part of: ctan (0x1p1023 + 1 i)":
  108549. +double: 1
  108550. +idouble: 1
  108551. +Test "Imaginary part of: ctan (0x1p127 + 1 i)":
  108552. +double: 1
  108553. +idouble: 1
  108554. +Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
  108555. +float: 1
  108556. +ifloat: 1
  108557. +
  108558. +# ctan_downward
  108559. +Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
  108560. +double: 2
  108561. +float: 1
  108562. +idouble: 2
  108563. +ifloat: 1
  108564. +Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
  108565. +float: 1
  108566. +ifloat: 1
  108567. +
  108568. +# ctan_tonearest
  108569. +Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
  108570. +float: 1
  108571. +ifloat: 1
  108572. +Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
  108573. +float: 1
  108574. +ifloat: 1
  108575. +
  108576. +# ctan_towardzero
  108577. +Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
  108578. +float: 1
  108579. +ifloat: 1
  108580. +Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
  108581. +float: 1
  108582. +ifloat: 1
  108583. +
  108584. +# ctan_upward
  108585. +Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
  108586. +double: 1
  108587. +idouble: 1
  108588. +Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
  108589. +double: 2
  108590. +float: 1
  108591. +idouble: 2
  108592. +ifloat: 1
  108593. +Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
  108594. +double: 1
  108595. +float: 2
  108596. +idouble: 1
  108597. +ifloat: 2
  108598. +
  108599. +# ctanh
  108600. +Test "Real part of: ctanh (-2 - 3 i)":
  108601. +double: 1
  108602. +float: 1
  108603. +idouble: 1
  108604. +ifloat: 1
  108605. +Test "Imaginary part of: ctanh (-2 - 3 i)":
  108606. +double: 1
  108607. +float: 1
  108608. +idouble: 1
  108609. +ifloat: 1
  108610. +Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
  108611. +float: 1
  108612. +ifloat: 1
  108613. +Test "Imaginary part of: ctanh (0 + pi/4 i)":
  108614. +double: 1
  108615. +float: 1
  108616. +idouble: 1
  108617. +ifloat: 1
  108618. +Test "Real part of: ctanh (0.75 + 1.25 i)":
  108619. +double: 1
  108620. +float: 1
  108621. +idouble: 1
  108622. +ifloat: 1
  108623. +Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
  108624. +float: 2
  108625. +ifloat: 2
  108626. +Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
  108627. +double: 1
  108628. +idouble: 1
  108629. +Test "Real part of: ctanh (1 + 0x1p127 i)":
  108630. +double: 1
  108631. +idouble: 1
  108632. +
  108633. +# ctanh_downward
  108634. +Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
  108635. +float: 1
  108636. +ifloat: 1
  108637. +Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
  108638. +double: 2
  108639. +float: 1
  108640. +idouble: 2
  108641. +ifloat: 1
  108642. +
  108643. +# ctanh_tonearest
  108644. +Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
  108645. +float: 1
  108646. +ifloat: 1
  108647. +Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
  108648. +float: 1
  108649. +ifloat: 1
  108650. +
  108651. +# ctanh_towardzero
  108652. +Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
  108653. +float: 1
  108654. +ifloat: 1
  108655. +Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
  108656. +float: 1
  108657. +ifloat: 1
  108658. +
  108659. +# ctanh_upward
  108660. +Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
  108661. +double: 1
  108662. +idouble: 1
  108663. +Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
  108664. +double: 1
  108665. +float: 2
  108666. +idouble: 1
  108667. +ifloat: 2
  108668. +Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
  108669. +double: 2
  108670. +float: 1
  108671. +idouble: 2
  108672. +ifloat: 1
  108673. +
  108674. +# erf
  108675. +Test "erf (1.25)":
  108676. +double: 1
  108677. +idouble: 1
  108678. +
  108679. +# erfc
  108680. +Test "erfc (0x1.f7303cp+1)":
  108681. +double: 1
  108682. +idouble: 1
  108683. +Test "erfc (0x1.ffa002p+2)":
  108684. +float: 1
  108685. +ifloat: 1
  108686. +Test "erfc (2.0)":
  108687. +double: 1
  108688. +idouble: 1
  108689. +Test "erfc (4.125)":
  108690. +double: 1
  108691. +idouble: 1
  108692. +
  108693. +# exp10
  108694. +Test "exp10 (-1)":
  108695. +double: 1
  108696. +idouble: 1
  108697. +Test "exp10 (-305)":
  108698. +double: 1
  108699. +idouble: 1
  108700. +Test "exp10 (-36)":
  108701. +double: 1
  108702. +idouble: 1
  108703. +Test "exp10 (3)":
  108704. +double: 1
  108705. +idouble: 1
  108706. +Test "exp10 (36)":
  108707. +double: 1
  108708. +idouble: 1
  108709. +
  108710. +# exp_downward
  108711. +Test "exp_downward (2)":
  108712. +float: 1
  108713. +ifloat: 1
  108714. +Test "exp_downward (3)":
  108715. +float: 1
  108716. +ifloat: 1
  108717. +
  108718. +# exp_towardzero
  108719. +Test "exp_towardzero (2)":
  108720. +float: 1
  108721. +ifloat: 1
  108722. +Test "exp_towardzero (3)":
  108723. +float: 1
  108724. +ifloat: 1
  108725. +
  108726. +# exp_upward
  108727. +Test "exp_upward (1)":
  108728. +float: 1
  108729. +ifloat: 1
  108730. +
  108731. +# expm1
  108732. +Test "expm1 (0.75)":
  108733. +double: 1
  108734. +idouble: 1
  108735. +Test "expm1 (1)":
  108736. +float: 1
  108737. +ifloat: 1
  108738. +Test "expm1 (500.0)":
  108739. +double: 1
  108740. +idouble: 1
  108741. +
  108742. +# gamma
  108743. +Test "gamma (0.7)":
  108744. +double: 1
  108745. +float: 1
  108746. +idouble: 1
  108747. +ifloat: 1
  108748. +Test "gamma (1.2)":
  108749. +double: 1
  108750. +float: 2
  108751. +idouble: 1
  108752. +ifloat: 2
  108753. +
  108754. +# hypot
  108755. +Test "hypot (-0.7, -12.4)":
  108756. +float: 1
  108757. +ifloat: 1
  108758. +Test "hypot (-0.7, 12.4)":
  108759. +float: 1
  108760. +ifloat: 1
  108761. +Test "hypot (-12.4, -0.7)":
  108762. +float: 1
  108763. +ifloat: 1
  108764. +Test "hypot (-12.4, 0.7)":
  108765. +float: 1
  108766. +ifloat: 1
  108767. +Test "hypot (0.7, -12.4)":
  108768. +float: 1
  108769. +ifloat: 1
  108770. +Test "hypot (0.7, 12.4)":
  108771. +float: 1
  108772. +ifloat: 1
  108773. +Test "hypot (12.4, -0.7)":
  108774. +float: 1
  108775. +ifloat: 1
  108776. +Test "hypot (12.4, 0.7)":
  108777. +float: 1
  108778. +ifloat: 1
  108779. +
  108780. +# j0
  108781. +Test "j0 (-4.0)":
  108782. +double: 1
  108783. +float: 1
  108784. +idouble: 1
  108785. +ifloat: 1
  108786. +Test "j0 (0.75)":
  108787. +float: 1
  108788. +ifloat: 1
  108789. +Test "j0 (0x1.d7ce3ap+107)":
  108790. +float: 2
  108791. +ifloat: 2
  108792. +Test "j0 (10.0)":
  108793. +double: 2
  108794. +float: 1
  108795. +idouble: 2
  108796. +ifloat: 1
  108797. +Test "j0 (2.0)":
  108798. +float: 2
  108799. +ifloat: 2
  108800. +Test "j0 (4.0)":
  108801. +double: 1
  108802. +float: 1
  108803. +idouble: 1
  108804. +ifloat: 1
  108805. +Test "j0 (8.0)":
  108806. +float: 1
  108807. +ifloat: 1
  108808. +
  108809. +# j1
  108810. +Test "j1 (0x1.3ffp+74)":
  108811. +double: 1
  108812. +idouble: 1
  108813. +Test "j1 (0x1.ff00000000002p+840)":
  108814. +double: 1
  108815. +idouble: 1
  108816. +Test "j1 (10.0)":
  108817. +float: 2
  108818. +ifloat: 2
  108819. +Test "j1 (2.0)":
  108820. +double: 1
  108821. +idouble: 1
  108822. +Test "j1 (8.0)":
  108823. +double: 1
  108824. +idouble: 1
  108825. +
  108826. +# jn
  108827. +Test "jn (0, -4.0)":
  108828. +double: 1
  108829. +float: 1
  108830. +idouble: 1
  108831. +ifloat: 1
  108832. +Test "jn (0, 0.75)":
  108833. +float: 1
  108834. +ifloat: 1
  108835. +Test "jn (0, 10.0)":
  108836. +double: 2
  108837. +float: 1
  108838. +idouble: 2
  108839. +ifloat: 1
  108840. +Test "jn (0, 2.0)":
  108841. +float: 2
  108842. +ifloat: 2
  108843. +Test "jn (0, 4.0)":
  108844. +double: 1
  108845. +float: 1
  108846. +idouble: 1
  108847. +ifloat: 1
  108848. +Test "jn (0, 8.0)":
  108849. +float: 1
  108850. +ifloat: 1
  108851. +Test "jn (1, 10.0)":
  108852. +float: 2
  108853. +ifloat: 2
  108854. +Test "jn (1, 2.0)":
  108855. +double: 1
  108856. +idouble: 1
  108857. +Test "jn (1, 8.0)":
  108858. +double: 1
  108859. +idouble: 1
  108860. +Test "jn (10, 0.125)":
  108861. +double: 1
  108862. +float: 1
  108863. +idouble: 1
  108864. +ifloat: 1
  108865. +Test "jn (10, 0.75)":
  108866. +double: 1
  108867. +float: 1
  108868. +idouble: 1
  108869. +ifloat: 1
  108870. +Test "jn (10, 10.0)":
  108871. +double: 4
  108872. +float: 3
  108873. +idouble: 4
  108874. +ifloat: 3
  108875. +Test "jn (10, 2.0)":
  108876. +double: 1
  108877. +float: 2
  108878. +idouble: 1
  108879. +ifloat: 2
  108880. +Test "jn (2, 0x1.ffff62p+99)":
  108881. +double: 2
  108882. +float: 2
  108883. +idouble: 2
  108884. +ifloat: 2
  108885. +Test "jn (2, 2.4048255576957729)":
  108886. +double: 2
  108887. +float: 1
  108888. +idouble: 2
  108889. +ifloat: 1
  108890. +Test "jn (3, 0.125)":
  108891. +double: 1
  108892. +float: 1
  108893. +idouble: 1
  108894. +ifloat: 1
  108895. +Test "jn (3, 0.75)":
  108896. +double: 1
  108897. +float: 1
  108898. +idouble: 1
  108899. +ifloat: 1
  108900. +Test "jn (3, 10.0)":
  108901. +double: 3
  108902. +float: 1
  108903. +idouble: 3
  108904. +ifloat: 1
  108905. +Test "jn (3, 2.0)":
  108906. +float: 1
  108907. +ifloat: 1
  108908. +Test "jn (3, 2.4048255576957729)":
  108909. +double: 3
  108910. +idouble: 3
  108911. +Test "jn (4, 2.4048255576957729)":
  108912. +double: 1
  108913. +idouble: 1
  108914. +Test "jn (5, 2.4048255576957729)":
  108915. +double: 3
  108916. +float: 1
  108917. +idouble: 3
  108918. +ifloat: 1
  108919. +Test "jn (6, 2.4048255576957729)":
  108920. +double: 4
  108921. +float: 3
  108922. +idouble: 4
  108923. +ifloat: 3
  108924. +Test "jn (7, 2.4048255576957729)":
  108925. +double: 3
  108926. +float: 5
  108927. +idouble: 3
  108928. +ifloat: 5
  108929. +Test "jn (8, 2.4048255576957729)":
  108930. +double: 3
  108931. +float: 2
  108932. +idouble: 3
  108933. +ifloat: 2
  108934. +Test "jn (9, 2.4048255576957729)":
  108935. +double: 1
  108936. +float: 2
  108937. +idouble: 1
  108938. +ifloat: 2
  108939. +
  108940. +# lgamma
  108941. +Test "lgamma (0.7)":
  108942. +double: 1
  108943. +float: 1
  108944. +idouble: 1
  108945. +ifloat: 1
  108946. +Test "lgamma (1.2)":
  108947. +double: 1
  108948. +float: 2
  108949. +idouble: 1
  108950. +ifloat: 2
  108951. +
  108952. +# log10
  108953. +Test "log10 (0.75)":
  108954. +double: 1
  108955. +float: 2
  108956. +idouble: 1
  108957. +ifloat: 2
  108958. +Test "log10 (e)":
  108959. +float: 1
  108960. +ifloat: 1
  108961. +
  108962. +# log1p
  108963. +Test "log1p (-0.25)":
  108964. +float: 1
  108965. +ifloat: 1
  108966. +
  108967. +# pow
  108968. +Test "pow (0x0.ffffffp0, -0x1p24)":
  108969. +float: 1
  108970. +ifloat: 1
  108971. +Test "pow (0x0.ffffffp0, 0x1p24)":
  108972. +float: 1
  108973. +ifloat: 1
  108974. +Test "pow (0x1.000002p0, 0x1p24)":
  108975. +float: 1
  108976. +ifloat: 1
  108977. +
  108978. +# pow10
  108979. +Test "pow10 (-1)":
  108980. +double: 1
  108981. +idouble: 1
  108982. +Test "pow10 (-305)":
  108983. +double: 1
  108984. +idouble: 1
  108985. +Test "pow10 (-36)":
  108986. +double: 1
  108987. +idouble: 1
  108988. +Test "pow10 (3)":
  108989. +double: 1
  108990. +idouble: 1
  108991. +Test "pow10 (36)":
  108992. +double: 1
  108993. +idouble: 1
  108994. +
  108995. +# pow_downward
  108996. +Test "pow_downward (1.5, 1.03125)":
  108997. +float: 1
  108998. +ifloat: 1
  108999. +
  109000. +# pow_towardzero
  109001. +Test "pow_towardzero (1.5, 1.03125)":
  109002. +float: 1
  109003. +ifloat: 1
  109004. +
  109005. +# pow_upward
  109006. +Test "pow_upward (1.0625, 1.125)":
  109007. +float: 1
  109008. +ifloat: 1
  109009. +
  109010. +# sin_downward
  109011. +Test "sin_downward (10)":
  109012. +float: 1
  109013. +ifloat: 1
  109014. +Test "sin_downward (3)":
  109015. +float: 1
  109016. +ifloat: 1
  109017. +Test "sin_downward (5)":
  109018. +float: 1
  109019. +ifloat: 1
  109020. +Test "sin_downward (6)":
  109021. +float: 1
  109022. +ifloat: 1
  109023. +
  109024. +# sin_tonearest
  109025. +Test "sin_tonearest (1)":
  109026. +float: 1
  109027. +ifloat: 1
  109028. +
  109029. +# sin_towardzero
  109030. +Test "sin_towardzero (1)":
  109031. +float: 1
  109032. +ifloat: 1
  109033. +Test "sin_towardzero (10)":
  109034. +float: 1
  109035. +ifloat: 1
  109036. +Test "sin_towardzero (4)":
  109037. +float: 1
  109038. +ifloat: 1
  109039. +Test "sin_towardzero (5)":
  109040. +float: 1
  109041. +ifloat: 1
  109042. +Test "sin_towardzero (9)":
  109043. +float: 1
  109044. +ifloat: 1
  109045. +
  109046. +# sin_upward
  109047. +Test "sin_upward (1)":
  109048. +float: 1
  109049. +ifloat: 1
  109050. +Test "sin_upward (2)":
  109051. +float: 2
  109052. +ifloat: 2
  109053. +Test "sin_upward (4)":
  109054. +float: 1
  109055. +ifloat: 1
  109056. +Test "sin_upward (9)":
  109057. +float: 1
  109058. +ifloat: 1
  109059. +
  109060. +# sincos
  109061. +Test "sincos (0x1p+120) extra output 2":
  109062. +float: 1
  109063. +ifloat: 1
  109064. +Test "sincos (0x1p+127) extra output 2":
  109065. +float: 1
  109066. +ifloat: 1
  109067. +Test "sincos (M_PI_6l*2.0) extra output 1":
  109068. +double: 1
  109069. +float: 1
  109070. +idouble: 1
  109071. +ifloat: 1
  109072. +Test "sincos (M_PI_6l*2.0) extra output 2":
  109073. +double: 1
  109074. +idouble: 1
  109075. +Test "sincos (pi/6) extra output 2":
  109076. +float: 1
  109077. +ifloat: 1
  109078. +
  109079. +# sinh_downward
  109080. +Test "sinh_downward (22)":
  109081. +float: 1
  109082. +ifloat: 1
  109083. +Test "sinh_downward (23)":
  109084. +float: 1
  109085. +ifloat: 1
  109086. +Test "sinh_downward (24)":
  109087. +float: 1
  109088. +ifloat: 1
  109089. +
  109090. +# sinh_towardzero
  109091. +Test "sinh_towardzero (22)":
  109092. +float: 1
  109093. +ifloat: 1
  109094. +Test "sinh_towardzero (23)":
  109095. +float: 1
  109096. +ifloat: 1
  109097. +Test "sinh_towardzero (24)":
  109098. +float: 1
  109099. +ifloat: 1
  109100. +
  109101. +# tan_downward
  109102. +Test "tan_downward (1)":
  109103. +float: 1
  109104. +ifloat: 1
  109105. +Test "tan_downward (10)":
  109106. +float: 1
  109107. +ifloat: 1
  109108. +Test "tan_downward (2)":
  109109. +float: 1
  109110. +ifloat: 1
  109111. +Test "tan_downward (6)":
  109112. +float: 1
  109113. +ifloat: 1
  109114. +Test "tan_downward (8)":
  109115. +float: 1
  109116. +ifloat: 1
  109117. +Test "tan_downward (9)":
  109118. +float: 1
  109119. +ifloat: 1
  109120. +
  109121. +# tan_towardzero
  109122. +Test "tan_towardzero (10)":
  109123. +float: 1
  109124. +ifloat: 1
  109125. +Test "tan_towardzero (3)":
  109126. +float: 1
  109127. +ifloat: 1
  109128. +Test "tan_towardzero (4)":
  109129. +float: 1
  109130. +ifloat: 1
  109131. +Test "tan_towardzero (5)":
  109132. +float: 1
  109133. +ifloat: 1
  109134. +Test "tan_towardzero (9)":
  109135. +float: 1
  109136. +ifloat: 1
  109137. +
  109138. +# tan_upward
  109139. +Test "tan_upward (1)":
  109140. +float: 1
  109141. +ifloat: 1
  109142. +Test "tan_upward (10)":
  109143. +float: 1
  109144. +ifloat: 1
  109145. +Test "tan_upward (3)":
  109146. +float: 1
  109147. +ifloat: 1
  109148. +Test "tan_upward (5)":
  109149. +float: 1
  109150. +ifloat: 1
  109151. +
  109152. +# tgamma
  109153. +Test "tgamma (-0.5)":
  109154. +double: 1
  109155. +float: 1
  109156. +idouble: 1
  109157. +ifloat: 1
  109158. +Test "tgamma (-0x0.fffffffffffff8p0)":
  109159. +double: 1
  109160. +idouble: 1
  109161. +Test "tgamma (-0x0.ffffffp0)":
  109162. +float: 1
  109163. +ifloat: 1
  109164. +Test "tgamma (-0x1.000002p0)":
  109165. +double: 2
  109166. +idouble: 2
  109167. +Test "tgamma (-0x1.0a32a2p+5)":
  109168. +float: 2
  109169. +ifloat: 2
  109170. +Test "tgamma (-0x13.ffffep0)":
  109171. +float: 2
  109172. +ifloat: 2
  109173. +Test "tgamma (-0x14.000000000001p0)":
  109174. +double: 1
  109175. +idouble: 1
  109176. +Test "tgamma (-0x14.00002p0)":
  109177. +float: 1
  109178. +ifloat: 1
  109179. +Test "tgamma (-0x1d.ffffep0)":
  109180. +double: 1
  109181. +float: 1
  109182. +idouble: 1
  109183. +ifloat: 1
  109184. +Test "tgamma (-0x1e.000000000001p0)":
  109185. +double: 3
  109186. +idouble: 3
  109187. +Test "tgamma (-0x1e.00002p0)":
  109188. +double: 1
  109189. +float: 1
  109190. +idouble: 1
  109191. +ifloat: 1
  109192. +Test "tgamma (-0x2.0000000000002p0)":
  109193. +double: 1
  109194. +idouble: 1
  109195. +Test "tgamma (-0x2.000004p0)":
  109196. +double: 2
  109197. +float: 1
  109198. +idouble: 2
  109199. +ifloat: 1
  109200. +Test "tgamma (-0x2.fffffcp0)":
  109201. +double: 1
  109202. +float: 1
  109203. +idouble: 1
  109204. +ifloat: 1
  109205. +Test "tgamma (-0x27.fffffffffffep0)":
  109206. +double: 1
  109207. +idouble: 1
  109208. +Test "tgamma (-0x28.000000000002p0)":
  109209. +double: 1
  109210. +idouble: 1
  109211. +Test "tgamma (-0x28.00004p0)":
  109212. +double: 2
  109213. +idouble: 2
  109214. +Test "tgamma (-0x29.00004p0)":
  109215. +double: 1
  109216. +idouble: 1
  109217. +Test "tgamma (-0x29.ffffcp0)":
  109218. +double: 1
  109219. +idouble: 1
  109220. +Test "tgamma (-0x3.000004p0)":
  109221. +double: 2
  109222. +float: 1
  109223. +idouble: 2
  109224. +ifloat: 1
  109225. +Test "tgamma (-0x3.fffffcp0)":
  109226. +double: 1
  109227. +float: 1
  109228. +idouble: 1
  109229. +ifloat: 1
  109230. +Test "tgamma (-0x3.ffffffffffffep0)":
  109231. +double: 2
  109232. +idouble: 2
  109233. +Test "tgamma (-0x31.fffffffffffep0)":
  109234. +double: 3
  109235. +idouble: 3
  109236. +Test "tgamma (-0x4.000008p0)":
  109237. +float: 1
  109238. +ifloat: 1
  109239. +Test "tgamma (-0x4.fffff8p0)":
  109240. +double: 1
  109241. +idouble: 1
  109242. +Test "tgamma (-0x4.ffffffffffffcp0)":
  109243. +double: 1
  109244. +idouble: 1
  109245. +Test "tgamma (-0x5.000008p0)":
  109246. +double: 1
  109247. +float: 1
  109248. +idouble: 1
  109249. +ifloat: 1
  109250. +Test "tgamma (-0x5.ffffffffffffcp0)":
  109251. +double: 1
  109252. +idouble: 1
  109253. +Test "tgamma (-0x6.000008p0)":
  109254. +float: 2
  109255. +ifloat: 2
  109256. +Test "tgamma (-0x6.fffff8p0)":
  109257. +double: 2
  109258. +float: 1
  109259. +idouble: 2
  109260. +ifloat: 1
  109261. +Test "tgamma (-0x6.ffffffffffffcp0)":
  109262. +double: 4
  109263. +idouble: 4
  109264. +Test "tgamma (-0x63.fffffffffffcp0)":
  109265. +double: 2
  109266. +idouble: 2
  109267. +Test "tgamma (-0x64.000000000004p0)":
  109268. +double: 1
  109269. +idouble: 1
  109270. +Test "tgamma (-0x7.0000000000004p0)":
  109271. +double: 3
  109272. +idouble: 3
  109273. +Test "tgamma (-0x7.000008p0)":
  109274. +double: 1
  109275. +float: 1
  109276. +idouble: 1
  109277. +ifloat: 1
  109278. +Test "tgamma (-0x7.fffff8p0)":
  109279. +double: 3
  109280. +float: 1
  109281. +idouble: 3
  109282. +ifloat: 1
  109283. +Test "tgamma (-0x7.ffffffffffffcp0)":
  109284. +double: 3
  109285. +idouble: 3
  109286. +Test "tgamma (-0x8.00001p0)":
  109287. +double: 2
  109288. +idouble: 2
  109289. +Test "tgamma (-0x9.ffffffffffff8p0)":
  109290. +double: 1
  109291. +idouble: 1
  109292. +Test "tgamma (-0x9.fffffp0)":
  109293. +float: 1
  109294. +ifloat: 1
  109295. +Test "tgamma (-0x96.000000000008p0)":
  109296. +double: 1
  109297. +idouble: 1
  109298. +Test "tgamma (-0xa.00001p0)":
  109299. +double: 1
  109300. +idouble: 1
  109301. +Test "tgamma (-2.5)":
  109302. +double: 1
  109303. +float: 2
  109304. +idouble: 1
  109305. +ifloat: 2
  109306. +Test "tgamma (-3.5)":
  109307. +double: 1
  109308. +float: 1
  109309. +idouble: 1
  109310. +ifloat: 1
  109311. +Test "tgamma (-4.5)":
  109312. +double: 1
  109313. +float: 1
  109314. +idouble: 1
  109315. +ifloat: 1
  109316. +Test "tgamma (-5.5)":
  109317. +double: 1
  109318. +idouble: 1
  109319. +Test "tgamma (-6.5)":
  109320. +float: 1
  109321. +ifloat: 1
  109322. +Test "tgamma (-7.5)":
  109323. +double: 2
  109324. +float: 1
  109325. +idouble: 2
  109326. +ifloat: 1
  109327. +Test "tgamma (-8.5)":
  109328. +double: 1
  109329. +float: 1
  109330. +idouble: 1
  109331. +ifloat: 1
  109332. +Test "tgamma (-9.5)":
  109333. +double: 1
  109334. +float: 1
  109335. +idouble: 1
  109336. +ifloat: 1
  109337. +Test "tgamma (0.5)":
  109338. +float: 1
  109339. +ifloat: 1
  109340. +Test "tgamma (0.7)":
  109341. +double: 1
  109342. +float: 1
  109343. +idouble: 1
  109344. +ifloat: 1
  109345. +Test "tgamma (0x1.fffffep0)":
  109346. +float: 1
  109347. +ifloat: 1
  109348. +Test "tgamma (0x1.fffffffffffffp0)":
  109349. +double: 1
  109350. +idouble: 1
  109351. +Test "tgamma (0x1p-24)":
  109352. +float: 1
  109353. +ifloat: 1
  109354. +Test "tgamma (0x1p-53)":
  109355. +double: 1
  109356. +idouble: 1
  109357. +Test "tgamma (0x2.30a43cp+4)":
  109358. +double: 1
  109359. +float: 2
  109360. +idouble: 1
  109361. +ifloat: 2
  109362. +Test "tgamma (0x2.fffffcp0)":
  109363. +float: 3
  109364. +ifloat: 3
  109365. +Test "tgamma (0x3.fffffcp0)":
  109366. +float: 1
  109367. +ifloat: 1
  109368. +Test "tgamma (0x3.ffffffffffffep0)":
  109369. +double: 1
  109370. +idouble: 1
  109371. +Test "tgamma (0x4.0000000000004p0)":
  109372. +double: 1
  109373. +idouble: 1
  109374. +Test "tgamma (0x4.ffffffffffffcp0)":
  109375. +double: 1
  109376. +idouble: 1
  109377. +Test "tgamma (0x5.0000000000004p0)":
  109378. +double: 1
  109379. +idouble: 1
  109380. +Test "tgamma (0x5.000008p0)":
  109381. +float: 2
  109382. +ifloat: 2
  109383. +Test "tgamma (0x5.fffff8p0)":
  109384. +double: 1
  109385. +float: 1
  109386. +idouble: 1
  109387. +ifloat: 1
  109388. +Test "tgamma (0x6.0000000000004p0)":
  109389. +double: 1
  109390. +idouble: 1
  109391. +Test "tgamma (0x6.000008p0)":
  109392. +float: 2
  109393. +ifloat: 2
  109394. +Test "tgamma (0x6.fffff8p0)":
  109395. +double: 1
  109396. +idouble: 1
  109397. +Test "tgamma (0x6.ffffffffffffcp0)":
  109398. +double: 4
  109399. +idouble: 4
  109400. +Test "tgamma (0x7.0000000000004p0)":
  109401. +double: 4
  109402. +idouble: 4
  109403. +Test "tgamma (0x7.000008p0)":
  109404. +double: 1
  109405. +float: 1
  109406. +idouble: 1
  109407. +ifloat: 1
  109408. +Test "tgamma (0x7.fffff8p0)":
  109409. +double: 2
  109410. +float: 1
  109411. +idouble: 2
  109412. +ifloat: 1
  109413. +Test "tgamma (0x7.ffffffffffffcp0)":
  109414. +double: 2
  109415. +idouble: 2
  109416. +Test "tgamma (0x8.00001p0)":
  109417. +double: 2
  109418. +idouble: 2
  109419. +Test "tgamma (0xa.b9fd72b0fb238p+4)":
  109420. +double: 1
  109421. +idouble: 1
  109422. +Test "tgamma (10)":
  109423. +double: 1
  109424. +float: 1
  109425. +idouble: 1
  109426. +ifloat: 1
  109427. +Test "tgamma (18.5)":
  109428. +double: 1
  109429. +float: 1
  109430. +idouble: 1
  109431. +ifloat: 1
  109432. +Test "tgamma (19.5)":
  109433. +double: 2
  109434. +idouble: 2
  109435. +Test "tgamma (2.5)":
  109436. +float: 2
  109437. +ifloat: 2
  109438. +Test "tgamma (23.5)":
  109439. +double: 1
  109440. +float: 1
  109441. +idouble: 1
  109442. +ifloat: 1
  109443. +Test "tgamma (29.5)":
  109444. +double: 1
  109445. +float: 1
  109446. +idouble: 1
  109447. +ifloat: 1
  109448. +Test "tgamma (3)":
  109449. +float: 1
  109450. +ifloat: 1
  109451. +Test "tgamma (3.5)":
  109452. +float: 2
  109453. +ifloat: 2
  109454. +Test "tgamma (30.5)":
  109455. +float: 1
  109456. +ifloat: 1
  109457. +Test "tgamma (33.5)":
  109458. +float: 1
  109459. +ifloat: 1
  109460. +Test "tgamma (34.5)":
  109461. +double: 1
  109462. +float: 2
  109463. +idouble: 1
  109464. +ifloat: 2
  109465. +Test "tgamma (4)":
  109466. +float: 1
  109467. +ifloat: 1
  109468. +Test "tgamma (4.5)":
  109469. +double: 1
  109470. +float: 1
  109471. +idouble: 1
  109472. +ifloat: 1
  109473. +Test "tgamma (6)":
  109474. +float: 1
  109475. +ifloat: 1
  109476. +Test "tgamma (6.5)":
  109477. +float: 1
  109478. +ifloat: 1
  109479. +Test "tgamma (7)":
  109480. +double: 1
  109481. +idouble: 1
  109482. +Test "tgamma (7.5)":
  109483. +double: 2
  109484. +float: 1
  109485. +idouble: 2
  109486. +ifloat: 1
  109487. +Test "tgamma (8)":
  109488. +double: 1
  109489. +idouble: 1
  109490. +Test "tgamma (8.5)":
  109491. +double: 1
  109492. +float: 1
  109493. +idouble: 1
  109494. +ifloat: 1
  109495. +Test "tgamma (9)":
  109496. +double: 1
  109497. +idouble: 1
  109498. +Test "tgamma (9.5)":
  109499. +double: 1
  109500. +idouble: 1
  109501. +
  109502. +# y0
  109503. +Test "y0 (0x1.3ffp+74)":
  109504. +double: 1
  109505. +idouble: 1
  109506. +Test "y0 (0x1.ff00000000002p+840)":
  109507. +double: 1
  109508. +idouble: 1
  109509. +Test "y0 (0x1p-10)":
  109510. +double: 1
  109511. +idouble: 1
  109512. +Test "y0 (0x1p-110)":
  109513. +double: 1
  109514. +idouble: 1
  109515. +Test "y0 (0x1p-20)":
  109516. +float: 1
  109517. +ifloat: 1
  109518. +Test "y0 (0x1p-30)":
  109519. +float: 1
  109520. +ifloat: 1
  109521. +Test "y0 (0x1p-40)":
  109522. +double: 1
  109523. +float: 1
  109524. +idouble: 1
  109525. +ifloat: 1
  109526. +Test "y0 (0x1p-50)":
  109527. +float: 1
  109528. +ifloat: 1
  109529. +Test "y0 (0x1p-70)":
  109530. +double: 1
  109531. +idouble: 1
  109532. +Test "y0 (0x1p-80)":
  109533. +double: 1
  109534. +float: 1
  109535. +idouble: 1
  109536. +ifloat: 1
  109537. +Test "y0 (1.0)":
  109538. +double: 2
  109539. +float: 1
  109540. +idouble: 2
  109541. +ifloat: 1
  109542. +Test "y0 (1.5)":
  109543. +double: 2
  109544. +float: 1
  109545. +idouble: 2
  109546. +ifloat: 1
  109547. +Test "y0 (10.0)":
  109548. +float: 1
  109549. +ifloat: 1
  109550. +Test "y0 (8.0)":
  109551. +double: 1
  109552. +float: 1
  109553. +idouble: 1
  109554. +ifloat: 1
  109555. +
  109556. +# y1
  109557. +Test "y1 (0.125)":
  109558. +double: 1
  109559. +idouble: 1
  109560. +Test "y1 (0x1.27e204p+99)":
  109561. +double: 1
  109562. +idouble: 1
  109563. +Test "y1 (0x1p-10)":
  109564. +double: 1
  109565. +idouble: 1
  109566. +Test "y1 (1.5)":
  109567. +float: 1
  109568. +ifloat: 1
  109569. +Test "y1 (10.0)":
  109570. +double: 3
  109571. +float: 1
  109572. +idouble: 3
  109573. +ifloat: 1
  109574. +Test "y1 (2.0)":
  109575. +double: 1
  109576. +float: 1
  109577. +idouble: 1
  109578. +ifloat: 1
  109579. +Test "y1 (8.0)":
  109580. +double: 1
  109581. +float: 2
  109582. +idouble: 1
  109583. +ifloat: 2
  109584. +
  109585. +# yn
  109586. +Test "yn (0, 1.0)":
  109587. +double: 2
  109588. +float: 1
  109589. +idouble: 2
  109590. +ifloat: 1
  109591. +Test "yn (0, 1.5)":
  109592. +double: 2
  109593. +float: 1
  109594. +idouble: 2
  109595. +ifloat: 1
  109596. +Test "yn (0, 10.0)":
  109597. +float: 1
  109598. +ifloat: 1
  109599. +Test "yn (0, 8.0)":
  109600. +double: 1
  109601. +float: 1
  109602. +idouble: 1
  109603. +ifloat: 1
  109604. +Test "yn (1, 0.125)":
  109605. +double: 1
  109606. +idouble: 1
  109607. +Test "yn (1, 1.5)":
  109608. +float: 1
  109609. +ifloat: 1
  109610. +Test "yn (1, 10.0)":
  109611. +double: 3
  109612. +float: 1
  109613. +idouble: 3
  109614. +ifloat: 1
  109615. +Test "yn (1, 2.0)":
  109616. +double: 1
  109617. +float: 1
  109618. +idouble: 1
  109619. +ifloat: 1
  109620. +Test "yn (1, 8.0)":
  109621. +double: 1
  109622. +float: 2
  109623. +idouble: 1
  109624. +ifloat: 2
  109625. +Test "yn (10, 0.125)":
  109626. +double: 1
  109627. +idouble: 1
  109628. +Test "yn (10, 0.75)":
  109629. +double: 1
  109630. +float: 1
  109631. +idouble: 1
  109632. +ifloat: 1
  109633. +Test "yn (10, 1.0)":
  109634. +double: 1
  109635. +idouble: 1
  109636. +Test "yn (10, 10.0)":
  109637. +double: 1
  109638. +float: 1
  109639. +idouble: 1
  109640. +ifloat: 1
  109641. +Test "yn (10, 2.0)":
  109642. +double: 2
  109643. +idouble: 2
  109644. +Test "yn (3, 0.125)":
  109645. +double: 1
  109646. +idouble: 1
  109647. +Test "yn (3, 0.75)":
  109648. +double: 1
  109649. +float: 1
  109650. +idouble: 1
  109651. +ifloat: 1
  109652. +Test "yn (3, 10.0)":
  109653. +double: 1
  109654. +float: 1
  109655. +idouble: 1
  109656. +ifloat: 1
  109657. +Test "yn (3, 2.0)":
  109658. +double: 1
  109659. +idouble: 1
  109660. +
  109661. +# Maximal error of functions:
  109662. +Function: "acos_downward":
  109663. +double: 1
  109664. +float: 1
  109665. +idouble: 1
  109666. +ifloat: 1
  109667. +
  109668. +Function: "acos_towardzero":
  109669. +double: 1
  109670. +float: 1
  109671. +idouble: 1
  109672. +ifloat: 1
  109673. +
  109674. +Function: "asin_downward":
  109675. +double: 1
  109676. +float: 1
  109677. +idouble: 1
  109678. +ifloat: 1
  109679. +
  109680. +Function: "asin_towardzero":
  109681. +double: 1
  109682. +float: 1
  109683. +idouble: 1
  109684. +ifloat: 1
  109685. +
  109686. +Function: "asin_upward":
  109687. +float: 1
  109688. +ifloat: 1
  109689. +
  109690. +Function: "atan2":
  109691. +float: 1
  109692. +ifloat: 1
  109693. +
  109694. +Function: "atanh":
  109695. +float: 1
  109696. +ifloat: 1
  109697. +
  109698. +Function: Real part of "cacos":
  109699. +double: 1
  109700. +float: 2
  109701. +idouble: 1
  109702. +ifloat: 2
  109703. +
  109704. +Function: Imaginary part of "cacos":
  109705. +double: 1
  109706. +float: 2
  109707. +idouble: 1
  109708. +ifloat: 2
  109709. +
  109710. +Function: Real part of "cacosh":
  109711. +double: 1
  109712. +float: 2
  109713. +idouble: 1
  109714. +ifloat: 2
  109715. +
  109716. +Function: Imaginary part of "cacosh":
  109717. +double: 1
  109718. +float: 2
  109719. +idouble: 1
  109720. +ifloat: 2
  109721. +
  109722. +Function: Real part of "casin":
  109723. +double: 1
  109724. +float: 1
  109725. +idouble: 1
  109726. +ifloat: 1
  109727. +
  109728. +Function: Imaginary part of "casin":
  109729. +double: 1
  109730. +float: 2
  109731. +idouble: 1
  109732. +ifloat: 2
  109733. +
  109734. +Function: Real part of "casinh":
  109735. +double: 1
  109736. +float: 2
  109737. +idouble: 1
  109738. +ifloat: 2
  109739. +
  109740. +Function: Imaginary part of "casinh":
  109741. +double: 1
  109742. +float: 1
  109743. +idouble: 1
  109744. +ifloat: 1
  109745. +
  109746. +Function: Real part of "catan":
  109747. +float: 1
  109748. +ifloat: 1
  109749. +
  109750. +Function: Imaginary part of "catan":
  109751. +double: 1
  109752. +float: 1
  109753. +idouble: 1
  109754. +ifloat: 1
  109755. +
  109756. +Function: Real part of "catanh":
  109757. +double: 1
  109758. +float: 1
  109759. +idouble: 1
  109760. +ifloat: 1
  109761. +
  109762. +Function: Imaginary part of "catanh":
  109763. +float: 1
  109764. +ifloat: 1
  109765. +
  109766. +Function: "cbrt":
  109767. +double: 1
  109768. +idouble: 1
  109769. +
  109770. +Function: Real part of "ccos":
  109771. +double: 1
  109772. +float: 1
  109773. +idouble: 1
  109774. +ifloat: 1
  109775. +
  109776. +Function: Imaginary part of "ccos":
  109777. +double: 1
  109778. +float: 1
  109779. +idouble: 1
  109780. +ifloat: 1
  109781. +
  109782. +Function: Real part of "ccosh":
  109783. +double: 1
  109784. +float: 1
  109785. +idouble: 1
  109786. +ifloat: 1
  109787. +
  109788. +Function: Imaginary part of "ccosh":
  109789. +double: 1
  109790. +float: 1
  109791. +idouble: 1
  109792. +ifloat: 1
  109793. +
  109794. +Function: Real part of "cexp":
  109795. +double: 2
  109796. +float: 1
  109797. +idouble: 2
  109798. +ifloat: 1
  109799. +
  109800. +Function: Imaginary part of "cexp":
  109801. +double: 1
  109802. +float: 2
  109803. +idouble: 1
  109804. +ifloat: 2
  109805. +
  109806. +Function: Real part of "clog":
  109807. +double: 1
  109808. +float: 1
  109809. +idouble: 1
  109810. +ifloat: 1
  109811. +
  109812. +Function: Imaginary part of "clog":
  109813. +float: 1
  109814. +ifloat: 1
  109815. +
  109816. +Function: Real part of "clog10":
  109817. +double: 2
  109818. +float: 2
  109819. +idouble: 2
  109820. +ifloat: 2
  109821. +
  109822. +Function: Imaginary part of "clog10":
  109823. +double: 1
  109824. +float: 1
  109825. +idouble: 1
  109826. +ifloat: 1
  109827. +
  109828. +Function: "cos":
  109829. +double: 2
  109830. +float: 1
  109831. +idouble: 2
  109832. +ifloat: 1
  109833. +
  109834. +Function: "cos_downward":
  109835. +float: 1
  109836. +ifloat: 1
  109837. +
  109838. +Function: "cos_tonearest":
  109839. +float: 1
  109840. +ifloat: 1
  109841. +
  109842. +Function: "cos_towardzero":
  109843. +float: 1
  109844. +ifloat: 1
  109845. +
  109846. +Function: "cos_upward":
  109847. +float: 2
  109848. +ifloat: 2
  109849. +
  109850. +Function: "cosh_downward":
  109851. +float: 1
  109852. +ifloat: 1
  109853. +
  109854. +Function: "cosh_towardzero":
  109855. +float: 1
  109856. +ifloat: 1
  109857. +
  109858. +Function: Real part of "cpow":
  109859. +double: 2
  109860. +float: 4
  109861. +idouble: 2
  109862. +ifloat: 4
  109863. +
  109864. +Function: Imaginary part of "cpow":
  109865. +float: 2
  109866. +ifloat: 2
  109867. +
  109868. +Function: Real part of "csin":
  109869. +double: 1
  109870. +float: 1
  109871. +idouble: 1
  109872. +ifloat: 1
  109873. +
  109874. +Function: Real part of "csinh":
  109875. +float: 1
  109876. +ifloat: 1
  109877. +
  109878. +Function: Imaginary part of "csinh":
  109879. +double: 1
  109880. +float: 1
  109881. +idouble: 1
  109882. +ifloat: 1
  109883. +
  109884. +Function: Real part of "csqrt":
  109885. +double: 1
  109886. +float: 1
  109887. +idouble: 1
  109888. +ifloat: 1
  109889. +
  109890. +Function: Imaginary part of "csqrt":
  109891. +double: 1
  109892. +float: 1
  109893. +idouble: 1
  109894. +ifloat: 1
  109895. +
  109896. +Function: Real part of "ctan":
  109897. +double: 1
  109898. +float: 1
  109899. +idouble: 1
  109900. +ifloat: 1
  109901. +
  109902. +Function: Imaginary part of "ctan":
  109903. +double: 1
  109904. +idouble: 1
  109905. +
  109906. +Function: Real part of "ctan_downward":
  109907. +double: 2
  109908. +float: 1
  109909. +idouble: 2
  109910. +ifloat: 1
  109911. +
  109912. +Function: Imaginary part of "ctan_downward":
  109913. +float: 1
  109914. +ifloat: 1
  109915. +
  109916. +Function: Real part of "ctan_tonearest":
  109917. +float: 1
  109918. +ifloat: 1
  109919. +
  109920. +Function: Imaginary part of "ctan_tonearest":
  109921. +float: 1
  109922. +ifloat: 1
  109923. +
  109924. +Function: Real part of "ctan_towardzero":
  109925. +float: 1
  109926. +ifloat: 1
  109927. +
  109928. +Function: Imaginary part of "ctan_towardzero":
  109929. +float: 1
  109930. +ifloat: 1
  109931. +
  109932. +Function: Real part of "ctan_upward":
  109933. +double: 2
  109934. +float: 1
  109935. +idouble: 2
  109936. +ifloat: 1
  109937. +
  109938. +Function: Imaginary part of "ctan_upward":
  109939. +double: 1
  109940. +float: 2
  109941. +idouble: 1
  109942. +ifloat: 2
  109943. +
  109944. +Function: Real part of "ctanh":
  109945. +double: 1
  109946. +float: 1
  109947. +idouble: 1
  109948. +ifloat: 1
  109949. +
  109950. +Function: Imaginary part of "ctanh":
  109951. +double: 1
  109952. +float: 2
  109953. +idouble: 1
  109954. +ifloat: 2
  109955. +
  109956. +Function: Real part of "ctanh_downward":
  109957. +float: 1
  109958. +ifloat: 1
  109959. +
  109960. +Function: Imaginary part of "ctanh_downward":
  109961. +double: 2
  109962. +float: 1
  109963. +idouble: 2
  109964. +ifloat: 1
  109965. +
  109966. +Function: Real part of "ctanh_tonearest":
  109967. +float: 1
  109968. +ifloat: 1
  109969. +
  109970. +Function: Imaginary part of "ctanh_tonearest":
  109971. +float: 1
  109972. +ifloat: 1
  109973. +
  109974. +Function: Real part of "ctanh_towardzero":
  109975. +float: 1
  109976. +ifloat: 1
  109977. +
  109978. +Function: Imaginary part of "ctanh_towardzero":
  109979. +float: 1
  109980. +ifloat: 1
  109981. +
  109982. +Function: Real part of "ctanh_upward":
  109983. +double: 1
  109984. +float: 2
  109985. +idouble: 1
  109986. +ifloat: 2
  109987. +
  109988. +Function: Imaginary part of "ctanh_upward":
  109989. +double: 2
  109990. +float: 1
  109991. +idouble: 2
  109992. +ifloat: 1
  109993. +
  109994. +Function: "erf":
  109995. +double: 1
  109996. +idouble: 1
  109997. +
  109998. +Function: "erfc":
  109999. +double: 1
  110000. +float: 1
  110001. +idouble: 1
  110002. +ifloat: 1
  110003. +
  110004. +Function: "exp10":
  110005. +double: 1
  110006. +idouble: 1
  110007. +
  110008. +Function: "exp_downward":
  110009. +float: 1
  110010. +ifloat: 1
  110011. +
  110012. +Function: "exp_towardzero":
  110013. +float: 1
  110014. +ifloat: 1
  110015. +
  110016. +Function: "exp_upward":
  110017. +float: 1
  110018. +ifloat: 1
  110019. +
  110020. +Function: "expm1":
  110021. +double: 1
  110022. +float: 1
  110023. +idouble: 1
  110024. +ifloat: 1
  110025. +
  110026. +Function: "gamma":
  110027. +double: 1
  110028. +float: 2
  110029. +idouble: 1
  110030. +ifloat: 2
  110031. +
  110032. +Function: "hypot":
  110033. +float: 1
  110034. +ifloat: 1
  110035. +
  110036. +Function: "j0":
  110037. +double: 2
  110038. +float: 2
  110039. +idouble: 2
  110040. +ifloat: 2
  110041. +
  110042. +Function: "j1":
  110043. +double: 1
  110044. +float: 2
  110045. +idouble: 1
  110046. +ifloat: 2
  110047. +
  110048. +Function: "jn":
  110049. +double: 4
  110050. +float: 5
  110051. +idouble: 4
  110052. +ifloat: 5
  110053. +
  110054. +Function: "lgamma":
  110055. +double: 1
  110056. +float: 2
  110057. +idouble: 1
  110058. +ifloat: 2
  110059. +
  110060. +Function: "log10":
  110061. +double: 1
  110062. +float: 2
  110063. +idouble: 1
  110064. +ifloat: 2
  110065. +
  110066. +Function: "log1p":
  110067. +float: 1
  110068. +ifloat: 1
  110069. +
  110070. +Function: "pow":
  110071. +float: 1
  110072. +ifloat: 1
  110073. +
  110074. +Function: "pow10":
  110075. +double: 1
  110076. +idouble: 1
  110077. +
  110078. +Function: "pow_downward":
  110079. +float: 1
  110080. +ifloat: 1
  110081. +
  110082. +Function: "pow_towardzero":
  110083. +float: 1
  110084. +ifloat: 1
  110085. +
  110086. +Function: "pow_upward":
  110087. +float: 1
  110088. +ifloat: 1
  110089. +
  110090. +Function: "sin_downward":
  110091. +float: 1
  110092. +ifloat: 1
  110093. +
  110094. +Function: "sin_tonearest":
  110095. +float: 1
  110096. +ifloat: 1
  110097. +
  110098. +Function: "sin_towardzero":
  110099. +float: 1
  110100. +ifloat: 1
  110101. +
  110102. +Function: "sin_upward":
  110103. +float: 2
  110104. +ifloat: 2
  110105. +
  110106. +Function: "sincos":
  110107. +double: 1
  110108. +float: 1
  110109. +idouble: 1
  110110. +ifloat: 1
  110111. +
  110112. +Function: "sinh_downward":
  110113. +float: 1
  110114. +ifloat: 1
  110115. +
  110116. +Function: "sinh_towardzero":
  110117. +float: 1
  110118. +ifloat: 1
  110119. +
  110120. +Function: "tan":
  110121. +double: 1
  110122. +idouble: 1
  110123. +
  110124. +Function: "tan_downward":
  110125. +float: 1
  110126. +ifloat: 1
  110127. +
  110128. +Function: "tan_towardzero":
  110129. +float: 1
  110130. +ifloat: 1
  110131. +
  110132. +Function: "tan_upward":
  110133. +float: 1
  110134. +ifloat: 1
  110135. +
  110136. +Function: "tgamma":
  110137. +double: 4
  110138. +float: 3
  110139. +idouble: 4
  110140. +ifloat: 3
  110141. +
  110142. +Function: "y0":
  110143. +double: 2
  110144. +float: 1
  110145. +idouble: 2
  110146. +ifloat: 1
  110147. +
  110148. +Function: "y1":
  110149. +double: 3
  110150. +float: 2
  110151. +idouble: 3
  110152. +ifloat: 2
  110153. +
  110154. +Function: "yn":
  110155. +double: 3
  110156. +float: 2
  110157. +idouble: 3
  110158. +ifloat: 2
  110159. +
  110160. +# end of automatic generation
  110161. diff -Nur uClibc-0.9.33.2/test/math/libm-test-ulps-mips64 uClibc-git/test/math/libm-test-ulps-mips64
  110162. --- uClibc-0.9.33.2/test/math/libm-test-ulps-mips64 1970-01-01 01:00:00.000000000 +0100
  110163. +++ uClibc-git/test/math/libm-test-ulps-mips64 2014-06-02 17:40:35.266718914 +0200
  110164. @@ -0,0 +1,9633 @@
  110165. +# Begin of automatic generation
  110166. +
  110167. +# acos_downward
  110168. +Test "acos_downward (-0)":
  110169. +float: 1
  110170. +ifloat: 1
  110171. +Test "acos_downward (-0.5)":
  110172. +double: 1
  110173. +idouble: 1
  110174. +Test "acos_downward (-1)":
  110175. +float: 1
  110176. +ifloat: 1
  110177. +Test "acos_downward (0)":
  110178. +float: 1
  110179. +ifloat: 1
  110180. +Test "acos_downward (0.5)":
  110181. +double: 1
  110182. +float: 1
  110183. +idouble: 1
  110184. +ifloat: 1
  110185. +
  110186. +# acos_towardzero
  110187. +Test "acos_towardzero (-0)":
  110188. +float: 1
  110189. +ifloat: 1
  110190. +Test "acos_towardzero (-0.5)":
  110191. +double: 1
  110192. +idouble: 1
  110193. +Test "acos_towardzero (-1)":
  110194. +float: 1
  110195. +ifloat: 1
  110196. +Test "acos_towardzero (0)":
  110197. +float: 1
  110198. +ifloat: 1
  110199. +Test "acos_towardzero (0.5)":
  110200. +double: 1
  110201. +float: 1
  110202. +idouble: 1
  110203. +ifloat: 1
  110204. +
  110205. +# asin_downward
  110206. +Test "asin_downward (-0.5)":
  110207. +double: 1
  110208. +idouble: 1
  110209. +Test "asin_downward (0.5)":
  110210. +double: 1
  110211. +idouble: 1
  110212. +Test "asin_downward (1.0)":
  110213. +float: 1
  110214. +ifloat: 1
  110215. +
  110216. +# asin_towardzero
  110217. +Test "asin_towardzero (-0.5)":
  110218. +double: 1
  110219. +idouble: 1
  110220. +Test "asin_towardzero (-1.0)":
  110221. +float: 1
  110222. +ifloat: 1
  110223. +Test "asin_towardzero (0.5)":
  110224. +double: 1
  110225. +idouble: 1
  110226. +Test "asin_towardzero (1.0)":
  110227. +float: 1
  110228. +ifloat: 1
  110229. +
  110230. +# asin_upward
  110231. +Test "asin_upward (-1.0)":
  110232. +float: 1
  110233. +ifloat: 1
  110234. +
  110235. +# atan2
  110236. +Test "atan2 (-0.00756827042671106339, -.001792735857538728036)":
  110237. +ildouble: 1
  110238. +ldouble: 1
  110239. +Test "atan2 (-0.75, -1.0)":
  110240. +float: 1
  110241. +ifloat: 1
  110242. +ildouble: 1
  110243. +ldouble: 1
  110244. +Test "atan2 (-max_value, -min_value)":
  110245. +float: 1
  110246. +ifloat: 1
  110247. +Test "atan2 (0.75, -1.0)":
  110248. +float: 1
  110249. +ifloat: 1
  110250. +ildouble: 1
  110251. +ldouble: 1
  110252. +Test "atan2 (1.390625, 0.9296875)":
  110253. +float: 1
  110254. +ifloat: 1
  110255. +ildouble: 1
  110256. +ldouble: 1
  110257. +
  110258. +# atanh
  110259. +Test "atanh (0.75)":
  110260. +float: 1
  110261. +ifloat: 1
  110262. +
  110263. +# cacos
  110264. +Test "Imaginary part of: cacos (+0 + 0.5 i)":
  110265. +float: 1
  110266. +ifloat: 1
  110267. +ildouble: 1
  110268. +ldouble: 1
  110269. +Test "Imaginary part of: cacos (+0 + 1.0 i)":
  110270. +double: 1
  110271. +float: 1
  110272. +idouble: 1
  110273. +ifloat: 1
  110274. +ildouble: 1
  110275. +ldouble: 1
  110276. +Test "Imaginary part of: cacos (+0 + 1.5 i)":
  110277. +double: 1
  110278. +idouble: 1
  110279. +ildouble: 1
  110280. +ldouble: 1
  110281. +Test "Imaginary part of: cacos (+0 - 0.5 i)":
  110282. +float: 1
  110283. +ifloat: 1
  110284. +ildouble: 1
  110285. +ldouble: 1
  110286. +Test "Imaginary part of: cacos (+0 - 1.0 i)":
  110287. +double: 1
  110288. +float: 1
  110289. +idouble: 1
  110290. +ifloat: 1
  110291. +ildouble: 1
  110292. +ldouble: 1
  110293. +Test "Imaginary part of: cacos (+0 - 1.5 i)":
  110294. +double: 1
  110295. +idouble: 1
  110296. +ildouble: 1
  110297. +ldouble: 1
  110298. +Test "Imaginary part of: cacos (-0 + 0.5 i)":
  110299. +float: 1
  110300. +ifloat: 1
  110301. +ildouble: 1
  110302. +ldouble: 1
  110303. +Test "Imaginary part of: cacos (-0 + 1.0 i)":
  110304. +double: 1
  110305. +float: 1
  110306. +idouble: 1
  110307. +ifloat: 1
  110308. +ildouble: 1
  110309. +ldouble: 1
  110310. +Test "Imaginary part of: cacos (-0 + 1.5 i)":
  110311. +double: 1
  110312. +idouble: 1
  110313. +ildouble: 1
  110314. +ldouble: 1
  110315. +Test "Imaginary part of: cacos (-0 - 0.5 i)":
  110316. +float: 1
  110317. +ifloat: 1
  110318. +ildouble: 1
  110319. +ldouble: 1
  110320. +Test "Imaginary part of: cacos (-0 - 1.0 i)":
  110321. +double: 1
  110322. +float: 1
  110323. +idouble: 1
  110324. +ifloat: 1
  110325. +ildouble: 1
  110326. +ldouble: 1
  110327. +Test "Imaginary part of: cacos (-0 - 1.5 i)":
  110328. +double: 1
  110329. +idouble: 1
  110330. +ildouble: 1
  110331. +ldouble: 1
  110332. +Test "Imaginary part of: cacos (-0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  110333. +ildouble: 1
  110334. +ldouble: 1
  110335. +Test "Imaginary part of: cacos (-0.0 + 0x0.ffffffffffffffffp0 i)":
  110336. +ildouble: 1
  110337. +ldouble: 1
  110338. +Test "Imaginary part of: cacos (-0.0 + 0x1.0000000000000000000000000001p0 i)":
  110339. +ildouble: 1
  110340. +ldouble: 1
  110341. +Test "Imaginary part of: cacos (-0.0 + 0x1.0000000000000002p0 i)":
  110342. +ildouble: 1
  110343. +ldouble: 1
  110344. +Test "Imaginary part of: cacos (-0.0 + 0x1.0000000000001p0 i)":
  110345. +ildouble: 1
  110346. +ldouble: 1
  110347. +Test "Imaginary part of: cacos (-0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  110348. +ildouble: 1
  110349. +ldouble: 1
  110350. +Test "Imaginary part of: cacos (-0.0 - 0x0.ffffffffffffffffp0 i)":
  110351. +ildouble: 1
  110352. +ldouble: 1
  110353. +Test "Imaginary part of: cacos (-0.0 - 0x1.0000000000000000000000000001p0 i)":
  110354. +ildouble: 1
  110355. +ldouble: 1
  110356. +Test "Imaginary part of: cacos (-0.0 - 0x1.0000000000000002p0 i)":
  110357. +ildouble: 1
  110358. +ldouble: 1
  110359. +Test "Imaginary part of: cacos (-0.0 - 0x1.0000000000001p0 i)":
  110360. +ildouble: 1
  110361. +ldouble: 1
  110362. +Test "Real part of: cacos (-0.25 + 1.0 i)":
  110363. +double: 1
  110364. +float: 1
  110365. +idouble: 1
  110366. +ifloat: 1
  110367. +Test "Imaginary part of: cacos (-0.25 + 1.0 i)":
  110368. +float: 1
  110369. +ifloat: 1
  110370. +ildouble: 1
  110371. +ldouble: 1
  110372. +Test "Real part of: cacos (-0.25 - 1.0 i)":
  110373. +double: 1
  110374. +float: 1
  110375. +idouble: 1
  110376. +ifloat: 1
  110377. +Test "Imaginary part of: cacos (-0.25 - 1.0 i)":
  110378. +float: 1
  110379. +ifloat: 1
  110380. +ildouble: 1
  110381. +ldouble: 1
  110382. +Test "Real part of: cacos (-0.5 + +0 i)":
  110383. +ildouble: 1
  110384. +ldouble: 1
  110385. +Test "Real part of: cacos (-0.5 + 0x1.fp-1025 i)":
  110386. +ildouble: 1
  110387. +ldouble: 1
  110388. +Test "Real part of: cacos (-0.5 + 0x1.fp-129 i)":
  110389. +ildouble: 1
  110390. +ldouble: 1
  110391. +Test "Imaginary part of: cacos (-0.5 + 0x1.fp-129 i)":
  110392. +double: 1
  110393. +idouble: 1
  110394. +Test "Real part of: cacos (-0.5 + 0x1.fp-16385 i)":
  110395. +ildouble: 1
  110396. +ldouble: 1
  110397. +Test "Real part of: cacos (-0.5 + 0x1p-105 i)":
  110398. +ildouble: 1
  110399. +ldouble: 1
  110400. +Test "Imaginary part of: cacos (-0.5 + 0x1p-105 i)":
  110401. +double: 1
  110402. +idouble: 1
  110403. +ildouble: 1
  110404. +ldouble: 1
  110405. +Test "Real part of: cacos (-0.5 + 0x1p-112 i)":
  110406. +ildouble: 1
  110407. +ldouble: 1
  110408. +Test "Imaginary part of: cacos (-0.5 + 0x1p-112 i)":
  110409. +double: 1
  110410. +idouble: 1
  110411. +ildouble: 1
  110412. +ldouble: 1
  110413. +Test "Imaginary part of: cacos (-0.5 + 0x1p-23 i)":
  110414. +double: 1
  110415. +idouble: 1
  110416. +ildouble: 1
  110417. +ldouble: 1
  110418. +Test "Real part of: cacos (-0.5 + 0x1p-52 i)":
  110419. +ildouble: 1
  110420. +ldouble: 1
  110421. +Test "Real part of: cacos (-0.5 + 0x1p-63 i)":
  110422. +ildouble: 1
  110423. +ldouble: 1
  110424. +Test "Imaginary part of: cacos (-0.5 + 0x1p-63 i)":
  110425. +ildouble: 1
  110426. +ldouble: 1
  110427. +Test "Real part of: cacos (-0.5 + 1.0 i)":
  110428. +float: 1
  110429. +ifloat: 1
  110430. +Test "Imaginary part of: cacos (-0.5 + 1.0 i)":
  110431. +double: 1
  110432. +idouble: 1
  110433. +ildouble: 1
  110434. +ldouble: 1
  110435. +Test "Real part of: cacos (-0.5 - 0 i)":
  110436. +ildouble: 1
  110437. +ldouble: 1
  110438. +Test "Real part of: cacos (-0.5 - 0x1.fp-1025 i)":
  110439. +ildouble: 1
  110440. +ldouble: 1
  110441. +Test "Real part of: cacos (-0.5 - 0x1.fp-129 i)":
  110442. +ildouble: 1
  110443. +ldouble: 1
  110444. +Test "Imaginary part of: cacos (-0.5 - 0x1.fp-129 i)":
  110445. +double: 1
  110446. +idouble: 1
  110447. +Test "Real part of: cacos (-0.5 - 0x1.fp-16385 i)":
  110448. +ildouble: 1
  110449. +ldouble: 1
  110450. +Test "Real part of: cacos (-0.5 - 0x1p-105 i)":
  110451. +ildouble: 1
  110452. +ldouble: 1
  110453. +Test "Imaginary part of: cacos (-0.5 - 0x1p-105 i)":
  110454. +double: 1
  110455. +idouble: 1
  110456. +ildouble: 1
  110457. +ldouble: 1
  110458. +Test "Real part of: cacos (-0.5 - 0x1p-112 i)":
  110459. +ildouble: 1
  110460. +ldouble: 1
  110461. +Test "Imaginary part of: cacos (-0.5 - 0x1p-112 i)":
  110462. +double: 1
  110463. +idouble: 1
  110464. +ildouble: 1
  110465. +ldouble: 1
  110466. +Test "Imaginary part of: cacos (-0.5 - 0x1p-23 i)":
  110467. +double: 1
  110468. +idouble: 1
  110469. +ildouble: 1
  110470. +ldouble: 1
  110471. +Test "Real part of: cacos (-0.5 - 0x1p-52 i)":
  110472. +ildouble: 1
  110473. +ldouble: 1
  110474. +Test "Real part of: cacos (-0.5 - 0x1p-63 i)":
  110475. +ildouble: 1
  110476. +ldouble: 1
  110477. +Test "Imaginary part of: cacos (-0.5 - 0x1p-63 i)":
  110478. +ildouble: 1
  110479. +ldouble: 1
  110480. +Test "Real part of: cacos (-0.5 - 1.0 i)":
  110481. +float: 1
  110482. +ifloat: 1
  110483. +Test "Imaginary part of: cacos (-0.5 - 1.0 i)":
  110484. +double: 1
  110485. +idouble: 1
  110486. +ildouble: 1
  110487. +ldouble: 1
  110488. +Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
  110489. +double: 1
  110490. +idouble: 1
  110491. +Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
  110492. +double: 1
  110493. +idouble: 1
  110494. +Test "Imaginary part of: cacos (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
  110495. +ildouble: 1
  110496. +ldouble: 1
  110497. +Test "Imaginary part of: cacos (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
  110498. +ildouble: 1
  110499. +ldouble: 1
  110500. +Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
  110501. +ildouble: 1
  110502. +ldouble: 1
  110503. +Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
  110504. +ildouble: 1
  110505. +ldouble: 1
  110506. +Test "Imaginary part of: cacos (-0x0.ffffffp0 + 0x1p-23 i)":
  110507. +float: 2
  110508. +ifloat: 2
  110509. +Test "Imaginary part of: cacos (-0x0.ffffffp0 - 0x1p-23 i)":
  110510. +float: 2
  110511. +ifloat: 2
  110512. +Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 + 0.0 i)":
  110513. +ildouble: 1
  110514. +ldouble: 1
  110515. +Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
  110516. +ildouble: 1
  110517. +ldouble: 1
  110518. +Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
  110519. +ildouble: 1
  110520. +ldouble: 1
  110521. +Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 - 0.0 i)":
  110522. +ildouble: 1
  110523. +ldouble: 1
  110524. +Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
  110525. +ildouble: 1
  110526. +ldouble: 1
  110527. +Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
  110528. +ildouble: 1
  110529. +ldouble: 1
  110530. +Test "Imaginary part of: cacos (-0x1.000002p0 + 0x1p-23 i)":
  110531. +float: 1
  110532. +ifloat: 1
  110533. +ildouble: 1
  110534. +ldouble: 1
  110535. +Test "Imaginary part of: cacos (-0x1.000002p0 - 0x1p-23 i)":
  110536. +float: 1
  110537. +ifloat: 1
  110538. +ildouble: 1
  110539. +ldouble: 1
  110540. +Test "Imaginary part of: cacos (-0x1.fp-10 + 1.0 i)":
  110541. +double: 1
  110542. +idouble: 1
  110543. +Test "Imaginary part of: cacos (-0x1.fp-10 - 1.0 i)":
  110544. +double: 1
  110545. +idouble: 1
  110546. +Test "Real part of: cacos (-0x1.fp-100 + 1.0 i)":
  110547. +float: 1
  110548. +ifloat: 1
  110549. +Test "Imaginary part of: cacos (-0x1.fp-100 + 1.0 i)":
  110550. +double: 1
  110551. +float: 1
  110552. +idouble: 1
  110553. +ifloat: 1
  110554. +ildouble: 1
  110555. +ldouble: 1
  110556. +Test "Real part of: cacos (-0x1.fp-100 - 1.0 i)":
  110557. +float: 1
  110558. +ifloat: 1
  110559. +Test "Imaginary part of: cacos (-0x1.fp-100 - 1.0 i)":
  110560. +double: 1
  110561. +float: 1
  110562. +idouble: 1
  110563. +ifloat: 1
  110564. +ildouble: 1
  110565. +ldouble: 1
  110566. +Test "Imaginary part of: cacos (-0x1.fp-1000 + 1.0 i)":
  110567. +double: 1
  110568. +idouble: 1
  110569. +ildouble: 1
  110570. +ldouble: 1
  110571. +Test "Imaginary part of: cacos (-0x1.fp-1000 - 1.0 i)":
  110572. +double: 1
  110573. +idouble: 1
  110574. +ildouble: 1
  110575. +ldouble: 1
  110576. +Test "Imaginary part of: cacos (-0x1.fp-10000 + 1.0 i)":
  110577. +ildouble: 1
  110578. +ldouble: 1
  110579. +Test "Imaginary part of: cacos (-0x1.fp-10000 - 1.0 i)":
  110580. +ildouble: 1
  110581. +ldouble: 1
  110582. +Test "Imaginary part of: cacos (-0x1.fp-1025 + 0.5 i)":
  110583. +ildouble: 1
  110584. +ldouble: 1
  110585. +Test "Imaginary part of: cacos (-0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  110586. +ildouble: 1
  110587. +ldouble: 1
  110588. +Test "Imaginary part of: cacos (-0x1.fp-1025 + 0x1.0000000000001p0 i)":
  110589. +ildouble: 1
  110590. +ldouble: 1
  110591. +Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.0 i)":
  110592. +double: 1
  110593. +idouble: 1
  110594. +ildouble: 1
  110595. +ldouble: 1
  110596. +Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.5 i)":
  110597. +double: 1
  110598. +idouble: 1
  110599. +ildouble: 1
  110600. +ldouble: 1
  110601. +Test "Imaginary part of: cacos (-0x1.fp-1025 - 0.5 i)":
  110602. +ildouble: 1
  110603. +ldouble: 1
  110604. +Test "Imaginary part of: cacos (-0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  110605. +ildouble: 1
  110606. +ldouble: 1
  110607. +Test "Imaginary part of: cacos (-0x1.fp-1025 - 0x1.0000000000001p0 i)":
  110608. +ildouble: 1
  110609. +ldouble: 1
  110610. +Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.0 i)":
  110611. +double: 1
  110612. +idouble: 1
  110613. +ildouble: 1
  110614. +ldouble: 1
  110615. +Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.5 i)":
  110616. +double: 1
  110617. +idouble: 1
  110618. +ildouble: 1
  110619. +ldouble: 1
  110620. +Test "Real part of: cacos (-0x1.fp-129 + 0.5 i)":
  110621. +float: 1
  110622. +ifloat: 1
  110623. +Test "Imaginary part of: cacos (-0x1.fp-129 + 0.5 i)":
  110624. +float: 1
  110625. +ifloat: 1
  110626. +ildouble: 1
  110627. +ldouble: 1
  110628. +Test "Real part of: cacos (-0x1.fp-129 + 0x0.ffffffp0 i)":
  110629. +float: 1
  110630. +ifloat: 1
  110631. +Test "Real part of: cacos (-0x1.fp-129 + 0x1.000002p0 i)":
  110632. +float: 1
  110633. +ifloat: 1
  110634. +Test "Real part of: cacos (-0x1.fp-129 + 0x1.fp-129 i)":
  110635. +float: 1
  110636. +ifloat: 1
  110637. +Test "Real part of: cacos (-0x1.fp-129 + 0x1p-23 i)":
  110638. +float: 1
  110639. +ifloat: 1
  110640. +Test "Real part of: cacos (-0x1.fp-129 + 1.0 i)":
  110641. +float: 1
  110642. +ifloat: 1
  110643. +Test "Imaginary part of: cacos (-0x1.fp-129 + 1.0 i)":
  110644. +double: 1
  110645. +float: 1
  110646. +idouble: 1
  110647. +ifloat: 1
  110648. +ildouble: 1
  110649. +ldouble: 1
  110650. +Test "Real part of: cacos (-0x1.fp-129 + 1.5 i)":
  110651. +float: 1
  110652. +ifloat: 1
  110653. +Test "Imaginary part of: cacos (-0x1.fp-129 + 1.5 i)":
  110654. +double: 1
  110655. +idouble: 1
  110656. +ildouble: 1
  110657. +ldouble: 1
  110658. +Test "Real part of: cacos (-0x1.fp-129 - 0.5 i)":
  110659. +float: 1
  110660. +ifloat: 1
  110661. +Test "Imaginary part of: cacos (-0x1.fp-129 - 0.5 i)":
  110662. +float: 1
  110663. +ifloat: 1
  110664. +ildouble: 1
  110665. +ldouble: 1
  110666. +Test "Real part of: cacos (-0x1.fp-129 - 0x0.ffffffp0 i)":
  110667. +float: 1
  110668. +ifloat: 1
  110669. +Test "Real part of: cacos (-0x1.fp-129 - 0x1.000002p0 i)":
  110670. +float: 1
  110671. +ifloat: 1
  110672. +Test "Real part of: cacos (-0x1.fp-129 - 0x1.fp-129 i)":
  110673. +float: 1
  110674. +ifloat: 1
  110675. +Test "Real part of: cacos (-0x1.fp-129 - 0x1p-23 i)":
  110676. +float: 1
  110677. +ifloat: 1
  110678. +Test "Real part of: cacos (-0x1.fp-129 - 1.0 i)":
  110679. +float: 1
  110680. +ifloat: 1
  110681. +Test "Imaginary part of: cacos (-0x1.fp-129 - 1.0 i)":
  110682. +double: 1
  110683. +float: 1
  110684. +idouble: 1
  110685. +ifloat: 1
  110686. +ildouble: 1
  110687. +ldouble: 1
  110688. +Test "Real part of: cacos (-0x1.fp-129 - 1.5 i)":
  110689. +float: 1
  110690. +ifloat: 1
  110691. +Test "Imaginary part of: cacos (-0x1.fp-129 - 1.5 i)":
  110692. +double: 1
  110693. +idouble: 1
  110694. +ildouble: 1
  110695. +ldouble: 1
  110696. +Test "Imaginary part of: cacos (-0x1.fp-16385 + 0.5 i)":
  110697. +ildouble: 1
  110698. +ldouble: 1
  110699. +Test "Imaginary part of: cacos (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
  110700. +ildouble: 1
  110701. +ldouble: 1
  110702. +Test "Imaginary part of: cacos (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
  110703. +ildouble: 1
  110704. +ldouble: 1
  110705. +Test "Imaginary part of: cacos (-0x1.fp-16385 + 0x1.0000000000000002p0 i)":
  110706. +ildouble: 1
  110707. +ldouble: 1
  110708. +Test "Imaginary part of: cacos (-0x1.fp-16385 + 1.0 i)":
  110709. +ildouble: 1
  110710. +ldouble: 1
  110711. +Test "Imaginary part of: cacos (-0x1.fp-16385 + 1.5 i)":
  110712. +ildouble: 1
  110713. +ldouble: 1
  110714. +Test "Imaginary part of: cacos (-0x1.fp-16385 - 0.5 i)":
  110715. +ildouble: 1
  110716. +ldouble: 1
  110717. +Test "Imaginary part of: cacos (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
  110718. +ildouble: 1
  110719. +ldouble: 1
  110720. +Test "Imaginary part of: cacos (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
  110721. +ildouble: 1
  110722. +ldouble: 1
  110723. +Test "Imaginary part of: cacos (-0x1.fp-16385 - 0x1.0000000000000002p0 i)":
  110724. +ildouble: 1
  110725. +ldouble: 1
  110726. +Test "Imaginary part of: cacos (-0x1.fp-16385 - 1.0 i)":
  110727. +ildouble: 1
  110728. +ldouble: 1
  110729. +Test "Imaginary part of: cacos (-0x1.fp-16385 - 1.5 i)":
  110730. +ildouble: 1
  110731. +ldouble: 1
  110732. +Test "Real part of: cacos (-0x1.fp-30 + 1.0 i)":
  110733. +float: 1
  110734. +ifloat: 1
  110735. +Test "Imaginary part of: cacos (-0x1.fp-30 + 1.0 i)":
  110736. +double: 1
  110737. +float: 1
  110738. +idouble: 1
  110739. +ifloat: 1
  110740. +ildouble: 1
  110741. +ldouble: 1
  110742. +Test "Real part of: cacos (-0x1.fp-30 - 1.0 i)":
  110743. +float: 1
  110744. +ifloat: 1
  110745. +Test "Imaginary part of: cacos (-0x1.fp-30 - 1.0 i)":
  110746. +double: 1
  110747. +float: 1
  110748. +idouble: 1
  110749. +ifloat: 1
  110750. +ildouble: 1
  110751. +ldouble: 1
  110752. +Test "Real part of: cacos (-0x1p-105 + 0.0 i)":
  110753. +float: 1
  110754. +ifloat: 1
  110755. +Test "Real part of: cacos (-0x1p-105 + 0.5 i)":
  110756. +float: 1
  110757. +ifloat: 1
  110758. +ildouble: 1
  110759. +ldouble: 1
  110760. +Test "Imaginary part of: cacos (-0x1p-105 + 0.5 i)":
  110761. +float: 1
  110762. +ifloat: 1
  110763. +Test "Imaginary part of: cacos (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  110764. +ildouble: 1
  110765. +ldouble: 1
  110766. +Test "Real part of: cacos (-0x1p-105 + 0x1p-105 i)":
  110767. +float: 1
  110768. +ifloat: 1
  110769. +Test "Real part of: cacos (-0x1p-105 - 0.0 i)":
  110770. +float: 1
  110771. +ifloat: 1
  110772. +Test "Real part of: cacos (-0x1p-105 - 0.5 i)":
  110773. +float: 1
  110774. +ifloat: 1
  110775. +ildouble: 1
  110776. +ldouble: 1
  110777. +Test "Imaginary part of: cacos (-0x1p-105 - 0.5 i)":
  110778. +float: 1
  110779. +ifloat: 1
  110780. +Test "Imaginary part of: cacos (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  110781. +ildouble: 1
  110782. +ldouble: 1
  110783. +Test "Real part of: cacos (-0x1p-105 - 0x1p-105 i)":
  110784. +float: 1
  110785. +ifloat: 1
  110786. +Test "Real part of: cacos (-0x1p-112 + 0.0 i)":
  110787. +float: 1
  110788. +ifloat: 1
  110789. +Test "Real part of: cacos (-0x1p-112 + 0.5 i)":
  110790. +float: 1
  110791. +ifloat: 1
  110792. +Test "Imaginary part of: cacos (-0x1p-112 + 0.5 i)":
  110793. +float: 1
  110794. +ifloat: 1
  110795. +Test "Real part of: cacos (-0x1p-112 + 0x1p-112 i)":
  110796. +float: 1
  110797. +ifloat: 1
  110798. +Test "Real part of: cacos (-0x1p-112 - 0.0 i)":
  110799. +float: 1
  110800. +ifloat: 1
  110801. +Test "Real part of: cacos (-0x1p-112 - 0.5 i)":
  110802. +float: 1
  110803. +ifloat: 1
  110804. +Test "Imaginary part of: cacos (-0x1p-112 - 0.5 i)":
  110805. +float: 1
  110806. +ifloat: 1
  110807. +Test "Real part of: cacos (-0x1p-112 - 0x1p-112 i)":
  110808. +float: 1
  110809. +ifloat: 1
  110810. +Test "Real part of: cacos (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  110811. +ildouble: 1
  110812. +ldouble: 1
  110813. +Test "Imaginary part of: cacos (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  110814. +ildouble: 1
  110815. +ldouble: 1
  110816. +Test "Real part of: cacos (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  110817. +ildouble: 1
  110818. +ldouble: 1
  110819. +Test "Imaginary part of: cacos (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  110820. +ildouble: 1
  110821. +ldouble: 1
  110822. +Test "Real part of: cacos (-0x1p-23 + 0.0 i)":
  110823. +float: 1
  110824. +ifloat: 1
  110825. +ildouble: 1
  110826. +ldouble: 1
  110827. +Test "Real part of: cacos (-0x1p-23 + 0.5 i)":
  110828. +float: 1
  110829. +ifloat: 1
  110830. +Test "Imaginary part of: cacos (-0x1p-23 + 0.5 i)":
  110831. +float: 1
  110832. +ifloat: 1
  110833. +ildouble: 2
  110834. +ldouble: 2
  110835. +Test "Imaginary part of: cacos (-0x1p-23 + 0x0.ffffffp0 i)":
  110836. +double: 1
  110837. +idouble: 1
  110838. +Test "Real part of: cacos (-0x1p-23 + 0x1.fp-129 i)":
  110839. +float: 1
  110840. +ifloat: 1
  110841. +ildouble: 1
  110842. +ldouble: 1
  110843. +Test "Real part of: cacos (-0x1p-23 + 0x1p-23 i)":
  110844. +float: 1
  110845. +ifloat: 1
  110846. +ildouble: 1
  110847. +ldouble: 1
  110848. +Test "Real part of: cacos (-0x1p-23 - 0.0 i)":
  110849. +float: 1
  110850. +ifloat: 1
  110851. +ildouble: 1
  110852. +ldouble: 1
  110853. +Test "Real part of: cacos (-0x1p-23 - 0.5 i)":
  110854. +float: 1
  110855. +ifloat: 1
  110856. +Test "Imaginary part of: cacos (-0x1p-23 - 0.5 i)":
  110857. +float: 1
  110858. +ifloat: 1
  110859. +ildouble: 2
  110860. +ldouble: 2
  110861. +Test "Imaginary part of: cacos (-0x1p-23 - 0x0.ffffffp0 i)":
  110862. +double: 1
  110863. +idouble: 1
  110864. +Test "Real part of: cacos (-0x1p-23 - 0x1.fp-129 i)":
  110865. +float: 1
  110866. +ifloat: 1
  110867. +ildouble: 1
  110868. +ldouble: 1
  110869. +Test "Real part of: cacos (-0x1p-23 - 0x1p-23 i)":
  110870. +float: 1
  110871. +ifloat: 1
  110872. +ildouble: 1
  110873. +ldouble: 1
  110874. +Test "Real part of: cacos (-0x1p-52 + 0.0 i)":
  110875. +float: 1
  110876. +ifloat: 1
  110877. +Test "Real part of: cacos (-0x1p-52 + 0.5 i)":
  110878. +float: 1
  110879. +ifloat: 1
  110880. +Test "Imaginary part of: cacos (-0x1p-52 + 0.5 i)":
  110881. +float: 1
  110882. +ifloat: 1
  110883. +ildouble: 1
  110884. +ldouble: 1
  110885. +Test "Real part of: cacos (-0x1p-52 + 0x1p-52 i)":
  110886. +float: 1
  110887. +ifloat: 1
  110888. +Test "Real part of: cacos (-0x1p-52 - 0.0 i)":
  110889. +float: 1
  110890. +ifloat: 1
  110891. +Test "Real part of: cacos (-0x1p-52 - 0.5 i)":
  110892. +float: 1
  110893. +ifloat: 1
  110894. +Test "Imaginary part of: cacos (-0x1p-52 - 0.5 i)":
  110895. +float: 1
  110896. +ifloat: 1
  110897. +ildouble: 1
  110898. +ldouble: 1
  110899. +Test "Real part of: cacos (-0x1p-52 - 0x1p-52 i)":
  110900. +float: 1
  110901. +ifloat: 1
  110902. +Test "Real part of: cacos (-0x1p-63 + 0.0 i)":
  110903. +float: 1
  110904. +ifloat: 1
  110905. +Test "Real part of: cacos (-0x1p-63 + 0.5 i)":
  110906. +float: 1
  110907. +ifloat: 1
  110908. +Test "Imaginary part of: cacos (-0x1p-63 + 0.5 i)":
  110909. +float: 1
  110910. +ifloat: 1
  110911. +Test "Imaginary part of: cacos (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
  110912. +ildouble: 1
  110913. +ldouble: 1
  110914. +Test "Imaginary part of: cacos (-0x1p-63 + 0x1.0000000000000002p0 i)":
  110915. +ildouble: 1
  110916. +ldouble: 1
  110917. +Test "Real part of: cacos (-0x1p-63 + 0x1p-63 i)":
  110918. +float: 1
  110919. +ifloat: 1
  110920. +Test "Real part of: cacos (-0x1p-63 - 0.0 i)":
  110921. +float: 1
  110922. +ifloat: 1
  110923. +Test "Real part of: cacos (-0x1p-63 - 0.5 i)":
  110924. +float: 1
  110925. +ifloat: 1
  110926. +Test "Imaginary part of: cacos (-0x1p-63 - 0.5 i)":
  110927. +float: 1
  110928. +ifloat: 1
  110929. +Test "Imaginary part of: cacos (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
  110930. +ildouble: 1
  110931. +ldouble: 1
  110932. +Test "Imaginary part of: cacos (-0x1p-63 - 0x1.0000000000000002p0 i)":
  110933. +ildouble: 1
  110934. +ldouble: 1
  110935. +Test "Real part of: cacos (-0x1p-63 - 0x1p-63 i)":
  110936. +float: 1
  110937. +ifloat: 1
  110938. +Test "Imaginary part of: cacos (-0x1p500 + 1.0 i)":
  110939. +ildouble: 1
  110940. +ldouble: 1
  110941. +Test "Imaginary part of: cacos (-0x1p500 - 1.0 i)":
  110942. +ildouble: 1
  110943. +ldouble: 1
  110944. +Test "Imaginary part of: cacos (-0x1p5000 + 1.0 i)":
  110945. +ildouble: 1
  110946. +ldouble: 1
  110947. +Test "Imaginary part of: cacos (-0x1p5000 - 1.0 i)":
  110948. +ildouble: 1
  110949. +ldouble: 1
  110950. +Test "Imaginary part of: cacos (-1.0 + 0.5 i)":
  110951. +float: 1
  110952. +ifloat: 1
  110953. +Test "Imaginary part of: cacos (-1.0 + 0x1.fp-10 i)":
  110954. +float: 1
  110955. +ifloat: 1
  110956. +ildouble: 1
  110957. +ldouble: 1
  110958. +Test "Imaginary part of: cacos (-1.0 + 0x1.fp-30 i)":
  110959. +ildouble: 1
  110960. +ldouble: 1
  110961. +Test "Real part of: cacos (-1.0 + 0x1p50 i)":
  110962. +float: 1
  110963. +ifloat: 1
  110964. +Test "Imaginary part of: cacos (-1.0 + 0x1p500 i)":
  110965. +ildouble: 1
  110966. +ldouble: 1
  110967. +Test "Imaginary part of: cacos (-1.0 + 0x1p5000 i)":
  110968. +ildouble: 1
  110969. +ldouble: 1
  110970. +Test "Imaginary part of: cacos (-1.0 - 0.5 i)":
  110971. +float: 1
  110972. +ifloat: 1
  110973. +Test "Imaginary part of: cacos (-1.0 - 0x1.fp-10 i)":
  110974. +float: 1
  110975. +ifloat: 1
  110976. +ildouble: 1
  110977. +ldouble: 1
  110978. +Test "Imaginary part of: cacos (-1.0 - 0x1.fp-30 i)":
  110979. +ildouble: 1
  110980. +ldouble: 1
  110981. +Test "Real part of: cacos (-1.0 - 0x1p50 i)":
  110982. +float: 1
  110983. +ifloat: 1
  110984. +Test "Imaginary part of: cacos (-1.0 - 0x1p500 i)":
  110985. +ildouble: 1
  110986. +ldouble: 1
  110987. +Test "Imaginary part of: cacos (-1.0 - 0x1p5000 i)":
  110988. +ildouble: 1
  110989. +ldouble: 1
  110990. +Test "Real part of: cacos (-2 - 3 i)":
  110991. +float: 1
  110992. +ifloat: 1
  110993. +ildouble: 1
  110994. +ldouble: 1
  110995. +Test "Imaginary part of: cacos (0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  110996. +ildouble: 1
  110997. +ldouble: 1
  110998. +Test "Imaginary part of: cacos (0.0 + 0x0.ffffffffffffffffp0 i)":
  110999. +ildouble: 1
  111000. +ldouble: 1
  111001. +Test "Imaginary part of: cacos (0.0 + 0x1.0000000000000000000000000001p0 i)":
  111002. +ildouble: 1
  111003. +ldouble: 1
  111004. +Test "Imaginary part of: cacos (0.0 + 0x1.0000000000000002p0 i)":
  111005. +ildouble: 1
  111006. +ldouble: 1
  111007. +Test "Imaginary part of: cacos (0.0 + 0x1.0000000000001p0 i)":
  111008. +ildouble: 1
  111009. +ldouble: 1
  111010. +Test "Imaginary part of: cacos (0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  111011. +ildouble: 1
  111012. +ldouble: 1
  111013. +Test "Imaginary part of: cacos (0.0 - 0x0.ffffffffffffffffp0 i)":
  111014. +ildouble: 1
  111015. +ldouble: 1
  111016. +Test "Imaginary part of: cacos (0.0 - 0x1.0000000000000000000000000001p0 i)":
  111017. +ildouble: 1
  111018. +ldouble: 1
  111019. +Test "Imaginary part of: cacos (0.0 - 0x1.0000000000000002p0 i)":
  111020. +ildouble: 1
  111021. +ldouble: 1
  111022. +Test "Imaginary part of: cacos (0.0 - 0x1.0000000000001p0 i)":
  111023. +ildouble: 1
  111024. +ldouble: 1
  111025. +Test "Imaginary part of: cacos (0.25 + 1.0 i)":
  111026. +float: 1
  111027. +ifloat: 1
  111028. +ildouble: 1
  111029. +ldouble: 1
  111030. +Test "Imaginary part of: cacos (0.25 - 1.0 i)":
  111031. +float: 1
  111032. +ifloat: 1
  111033. +ildouble: 1
  111034. +ldouble: 1
  111035. +Test "Real part of: cacos (0.5 + +0 i)":
  111036. +double: 1
  111037. +idouble: 1
  111038. +Test "Real part of: cacos (0.5 + 0x1.fp-1025 i)":
  111039. +double: 1
  111040. +idouble: 1
  111041. +Test "Real part of: cacos (0.5 + 0x1.fp-129 i)":
  111042. +double: 1
  111043. +idouble: 1
  111044. +Test "Imaginary part of: cacos (0.5 + 0x1.fp-129 i)":
  111045. +double: 1
  111046. +idouble: 1
  111047. +Test "Real part of: cacos (0.5 + 0x1p-105 i)":
  111048. +double: 1
  111049. +idouble: 1
  111050. +Test "Imaginary part of: cacos (0.5 + 0x1p-105 i)":
  111051. +double: 1
  111052. +idouble: 1
  111053. +ildouble: 1
  111054. +ldouble: 1
  111055. +Test "Real part of: cacos (0.5 + 0x1p-112 i)":
  111056. +double: 1
  111057. +idouble: 1
  111058. +Test "Imaginary part of: cacos (0.5 + 0x1p-112 i)":
  111059. +double: 1
  111060. +idouble: 1
  111061. +ildouble: 1
  111062. +ldouble: 1
  111063. +Test "Imaginary part of: cacos (0.5 + 0x1p-23 i)":
  111064. +double: 1
  111065. +idouble: 1
  111066. +ildouble: 1
  111067. +ldouble: 1
  111068. +Test "Real part of: cacos (0.5 + 0x1p-52 i)":
  111069. +double: 1
  111070. +idouble: 1
  111071. +ildouble: 1
  111072. +ldouble: 1
  111073. +Test "Real part of: cacos (0.5 + 0x1p-63 i)":
  111074. +double: 1
  111075. +idouble: 1
  111076. +Test "Imaginary part of: cacos (0.5 + 0x1p-63 i)":
  111077. +ildouble: 1
  111078. +ldouble: 1
  111079. +Test "Real part of: cacos (0.5 + 1.0 i)":
  111080. +float: 1
  111081. +ifloat: 1
  111082. +Test "Imaginary part of: cacos (0.5 + 1.0 i)":
  111083. +double: 1
  111084. +idouble: 1
  111085. +ildouble: 1
  111086. +ldouble: 1
  111087. +Test "Real part of: cacos (0.5 - 0 i)":
  111088. +double: 1
  111089. +idouble: 1
  111090. +Test "Real part of: cacos (0.5 - 0x1.fp-1025 i)":
  111091. +double: 1
  111092. +idouble: 1
  111093. +Test "Real part of: cacos (0.5 - 0x1.fp-129 i)":
  111094. +double: 1
  111095. +idouble: 1
  111096. +Test "Imaginary part of: cacos (0.5 - 0x1.fp-129 i)":
  111097. +double: 1
  111098. +idouble: 1
  111099. +Test "Real part of: cacos (0.5 - 0x1p-105 i)":
  111100. +double: 1
  111101. +idouble: 1
  111102. +Test "Imaginary part of: cacos (0.5 - 0x1p-105 i)":
  111103. +double: 1
  111104. +idouble: 1
  111105. +ildouble: 1
  111106. +ldouble: 1
  111107. +Test "Real part of: cacos (0.5 - 0x1p-112 i)":
  111108. +double: 1
  111109. +idouble: 1
  111110. +Test "Imaginary part of: cacos (0.5 - 0x1p-112 i)":
  111111. +double: 1
  111112. +idouble: 1
  111113. +ildouble: 1
  111114. +ldouble: 1
  111115. +Test "Imaginary part of: cacos (0.5 - 0x1p-23 i)":
  111116. +double: 1
  111117. +idouble: 1
  111118. +ildouble: 1
  111119. +ldouble: 1
  111120. +Test "Real part of: cacos (0.5 - 0x1p-52 i)":
  111121. +double: 1
  111122. +idouble: 1
  111123. +ildouble: 1
  111124. +ldouble: 1
  111125. +Test "Real part of: cacos (0.5 - 0x1p-63 i)":
  111126. +double: 1
  111127. +idouble: 1
  111128. +Test "Imaginary part of: cacos (0.5 - 0x1p-63 i)":
  111129. +ildouble: 1
  111130. +ldouble: 1
  111131. +Test "Real part of: cacos (0.5 - 1.0 i)":
  111132. +float: 1
  111133. +ifloat: 1
  111134. +Test "Imaginary part of: cacos (0.5 - 1.0 i)":
  111135. +double: 1
  111136. +idouble: 1
  111137. +ildouble: 1
  111138. +ldouble: 1
  111139. +Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 + 0x1p-52 i)":
  111140. +double: 1
  111141. +idouble: 1
  111142. +Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 - 0x1p-52 i)":
  111143. +double: 1
  111144. +idouble: 1
  111145. +Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 + 0.0 i)":
  111146. +ildouble: 1
  111147. +ldouble: 1
  111148. +Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025 i)":
  111149. +ildouble: 1
  111150. +ldouble: 1
  111151. +Test "Imaginary part of: cacos (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
  111152. +ildouble: 1
  111153. +ldouble: 1
  111154. +Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
  111155. +ildouble: 1
  111156. +ldouble: 1
  111157. +Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025 i)":
  111158. +ildouble: 1
  111159. +ldouble: 1
  111160. +Test "Imaginary part of: cacos (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
  111161. +ildouble: 1
  111162. +ldouble: 1
  111163. +Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 + 0.0 i)":
  111164. +ildouble: 1
  111165. +ldouble: 1
  111166. +Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 + 0x1.fp-16385 i)":
  111167. +ildouble: 1
  111168. +ldouble: 1
  111169. +Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 - 0.0 i)":
  111170. +ildouble: 1
  111171. +ldouble: 1
  111172. +Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 - 0x1.fp-16385 i)":
  111173. +ildouble: 1
  111174. +ldouble: 1
  111175. +Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
  111176. +ildouble: 1
  111177. +ldouble: 1
  111178. +Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
  111179. +ildouble: 1
  111180. +ldouble: 1
  111181. +Test "Real part of: cacos (0x0.ffffffp0 + 0.0 i)":
  111182. +float: 1
  111183. +ifloat: 1
  111184. +ildouble: 1
  111185. +ldouble: 1
  111186. +Test "Real part of: cacos (0x0.ffffffp0 + 0x1.fp-129 i)":
  111187. +float: 1
  111188. +ifloat: 1
  111189. +ildouble: 1
  111190. +ldouble: 1
  111191. +Test "Real part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
  111192. +float: 2
  111193. +ifloat: 2
  111194. +ildouble: 1
  111195. +ldouble: 1
  111196. +Test "Imaginary part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
  111197. +float: 2
  111198. +ifloat: 2
  111199. +Test "Real part of: cacos (0x0.ffffffp0 - 0.0 i)":
  111200. +float: 1
  111201. +ifloat: 1
  111202. +ildouble: 1
  111203. +ldouble: 1
  111204. +Test "Real part of: cacos (0x0.ffffffp0 - 0x1.fp-129 i)":
  111205. +float: 1
  111206. +ifloat: 1
  111207. +ildouble: 1
  111208. +ldouble: 1
  111209. +Test "Real part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
  111210. +float: 2
  111211. +ifloat: 2
  111212. +ildouble: 1
  111213. +ldouble: 1
  111214. +Test "Imaginary part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
  111215. +float: 2
  111216. +ifloat: 2
  111217. +Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 + 0.0 i)":
  111218. +ildouble: 1
  111219. +ldouble: 1
  111220. +Test "Real part of: cacos (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
  111221. +ildouble: 1
  111222. +ldouble: 1
  111223. +Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
  111224. +ildouble: 1
  111225. +ldouble: 1
  111226. +Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
  111227. +ildouble: 1
  111228. +ldouble: 1
  111229. +Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 - 0.0 i)":
  111230. +ildouble: 1
  111231. +ldouble: 1
  111232. +Test "Real part of: cacos (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
  111233. +ildouble: 1
  111234. +ldouble: 1
  111235. +Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
  111236. +ildouble: 1
  111237. +ldouble: 1
  111238. +Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
  111239. +ildouble: 1
  111240. +ldouble: 1
  111241. +Test "Real part of: cacos (0x1.0000000000000002p0 + 0x1p-63 i)":
  111242. +ildouble: 2
  111243. +ldouble: 2
  111244. +Test "Real part of: cacos (0x1.0000000000000002p0 - 0x1p-63 i)":
  111245. +ildouble: 2
  111246. +ldouble: 2
  111247. +Test "Real part of: cacos (0x1.0000000000001p0 + 0x1p-52 i)":
  111248. +double: 1
  111249. +idouble: 1
  111250. +ildouble: 1
  111251. +ldouble: 1
  111252. +Test "Real part of: cacos (0x1.0000000000001p0 - 0x1p-52 i)":
  111253. +double: 1
  111254. +idouble: 1
  111255. +ildouble: 1
  111256. +ldouble: 1
  111257. +Test "Real part of: cacos (0x1.000002p0 + 0x1p-23 i)":
  111258. +float: 2
  111259. +ifloat: 2
  111260. +ildouble: 1
  111261. +ldouble: 1
  111262. +Test "Imaginary part of: cacos (0x1.000002p0 + 0x1p-23 i)":
  111263. +float: 1
  111264. +ifloat: 1
  111265. +ildouble: 1
  111266. +ldouble: 1
  111267. +Test "Real part of: cacos (0x1.000002p0 - 0x1p-23 i)":
  111268. +float: 2
  111269. +ifloat: 2
  111270. +ildouble: 1
  111271. +ldouble: 1
  111272. +Test "Imaginary part of: cacos (0x1.000002p0 - 0x1p-23 i)":
  111273. +float: 1
  111274. +ifloat: 1
  111275. +ildouble: 1
  111276. +ldouble: 1
  111277. +Test "Imaginary part of: cacos (0x1.fp-10 + 1.0 i)":
  111278. +double: 1
  111279. +idouble: 1
  111280. +Test "Imaginary part of: cacos (0x1.fp-10 - 1.0 i)":
  111281. +double: 1
  111282. +idouble: 1
  111283. +Test "Real part of: cacos (0x1.fp-100 + 1.0 i)":
  111284. +ildouble: 1
  111285. +ldouble: 1
  111286. +Test "Imaginary part of: cacos (0x1.fp-100 + 1.0 i)":
  111287. +double: 1
  111288. +float: 1
  111289. +idouble: 1
  111290. +ifloat: 1
  111291. +ildouble: 1
  111292. +ldouble: 1
  111293. +Test "Real part of: cacos (0x1.fp-100 - 1.0 i)":
  111294. +ildouble: 1
  111295. +ldouble: 1
  111296. +Test "Imaginary part of: cacos (0x1.fp-100 - 1.0 i)":
  111297. +double: 1
  111298. +float: 1
  111299. +idouble: 1
  111300. +ifloat: 1
  111301. +ildouble: 1
  111302. +ldouble: 1
  111303. +Test "Imaginary part of: cacos (0x1.fp-1000 + 1.0 i)":
  111304. +double: 1
  111305. +idouble: 1
  111306. +ildouble: 1
  111307. +ldouble: 1
  111308. +Test "Imaginary part of: cacos (0x1.fp-1000 - 1.0 i)":
  111309. +double: 1
  111310. +idouble: 1
  111311. +ildouble: 1
  111312. +ldouble: 1
  111313. +Test "Imaginary part of: cacos (0x1.fp-10000 + 1.0 i)":
  111314. +ildouble: 1
  111315. +ldouble: 1
  111316. +Test "Imaginary part of: cacos (0x1.fp-10000 - 1.0 i)":
  111317. +ildouble: 1
  111318. +ldouble: 1
  111319. +Test "Imaginary part of: cacos (0x1.fp-1025 + 0.5 i)":
  111320. +ildouble: 1
  111321. +ldouble: 1
  111322. +Test "Imaginary part of: cacos (0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  111323. +ildouble: 1
  111324. +ldouble: 1
  111325. +Test "Imaginary part of: cacos (0x1.fp-1025 + 0x1.0000000000001p0 i)":
  111326. +ildouble: 1
  111327. +ldouble: 1
  111328. +Test "Imaginary part of: cacos (0x1.fp-1025 + 1.0 i)":
  111329. +double: 1
  111330. +idouble: 1
  111331. +ildouble: 1
  111332. +ldouble: 1
  111333. +Test "Imaginary part of: cacos (0x1.fp-1025 + 1.5 i)":
  111334. +double: 1
  111335. +idouble: 1
  111336. +ildouble: 1
  111337. +ldouble: 1
  111338. +Test "Imaginary part of: cacos (0x1.fp-1025 - 0.5 i)":
  111339. +ildouble: 1
  111340. +ldouble: 1
  111341. +Test "Imaginary part of: cacos (0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  111342. +ildouble: 1
  111343. +ldouble: 1
  111344. +Test "Imaginary part of: cacos (0x1.fp-1025 - 0x1.0000000000001p0 i)":
  111345. +ildouble: 1
  111346. +ldouble: 1
  111347. +Test "Imaginary part of: cacos (0x1.fp-1025 - 1.0 i)":
  111348. +double: 1
  111349. +idouble: 1
  111350. +ildouble: 1
  111351. +ldouble: 1
  111352. +Test "Imaginary part of: cacos (0x1.fp-1025 - 1.5 i)":
  111353. +double: 1
  111354. +idouble: 1
  111355. +ildouble: 1
  111356. +ldouble: 1
  111357. +Test "Imaginary part of: cacos (0x1.fp-129 + 0.5 i)":
  111358. +float: 1
  111359. +ifloat: 1
  111360. +ildouble: 1
  111361. +ldouble: 1
  111362. +Test "Imaginary part of: cacos (0x1.fp-129 + 1.0 i)":
  111363. +double: 1
  111364. +float: 1
  111365. +idouble: 1
  111366. +ifloat: 1
  111367. +ildouble: 1
  111368. +ldouble: 1
  111369. +Test "Imaginary part of: cacos (0x1.fp-129 + 1.5 i)":
  111370. +double: 1
  111371. +idouble: 1
  111372. +ildouble: 1
  111373. +ldouble: 1
  111374. +Test "Imaginary part of: cacos (0x1.fp-129 - 0.5 i)":
  111375. +float: 1
  111376. +ifloat: 1
  111377. +ildouble: 1
  111378. +ldouble: 1
  111379. +Test "Imaginary part of: cacos (0x1.fp-129 - 1.0 i)":
  111380. +double: 1
  111381. +float: 1
  111382. +idouble: 1
  111383. +ifloat: 1
  111384. +ildouble: 1
  111385. +ldouble: 1
  111386. +Test "Imaginary part of: cacos (0x1.fp-129 - 1.5 i)":
  111387. +double: 1
  111388. +idouble: 1
  111389. +ildouble: 1
  111390. +ldouble: 1
  111391. +Test "Imaginary part of: cacos (0x1.fp-16385 + 0.5 i)":
  111392. +ildouble: 1
  111393. +ldouble: 1
  111394. +Test "Imaginary part of: cacos (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
  111395. +ildouble: 1
  111396. +ldouble: 1
  111397. +Test "Imaginary part of: cacos (0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
  111398. +ildouble: 1
  111399. +ldouble: 1
  111400. +Test "Imaginary part of: cacos (0x1.fp-16385 + 0x1.0000000000000002p0 i)":
  111401. +ildouble: 1
  111402. +ldouble: 1
  111403. +Test "Imaginary part of: cacos (0x1.fp-16385 + 1.0 i)":
  111404. +ildouble: 1
  111405. +ldouble: 1
  111406. +Test "Imaginary part of: cacos (0x1.fp-16385 + 1.5 i)":
  111407. +ildouble: 1
  111408. +ldouble: 1
  111409. +Test "Imaginary part of: cacos (0x1.fp-16385 - 0.5 i)":
  111410. +ildouble: 1
  111411. +ldouble: 1
  111412. +Test "Imaginary part of: cacos (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
  111413. +ildouble: 1
  111414. +ldouble: 1
  111415. +Test "Imaginary part of: cacos (0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
  111416. +ildouble: 1
  111417. +ldouble: 1
  111418. +Test "Imaginary part of: cacos (0x1.fp-16385 - 0x1.0000000000000002p0 i)":
  111419. +ildouble: 1
  111420. +ldouble: 1
  111421. +Test "Imaginary part of: cacos (0x1.fp-16385 - 1.0 i)":
  111422. +ildouble: 1
  111423. +ldouble: 1
  111424. +Test "Imaginary part of: cacos (0x1.fp-16385 - 1.5 i)":
  111425. +ildouble: 1
  111426. +ldouble: 1
  111427. +Test "Imaginary part of: cacos (0x1.fp-30 + 1.0 i)":
  111428. +double: 1
  111429. +float: 1
  111430. +idouble: 1
  111431. +ifloat: 1
  111432. +ildouble: 1
  111433. +ldouble: 1
  111434. +Test "Imaginary part of: cacos (0x1.fp-30 - 1.0 i)":
  111435. +double: 1
  111436. +float: 1
  111437. +idouble: 1
  111438. +ifloat: 1
  111439. +ildouble: 1
  111440. +ldouble: 1
  111441. +Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i)":
  111442. +double: 1
  111443. +idouble: 1
  111444. +Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i)":
  111445. +double: 1
  111446. +idouble: 1
  111447. +Test "Imaginary part of: cacos (0x1.fp16383 + 0x1.fp16383 i)":
  111448. +ildouble: 1
  111449. +ldouble: 1
  111450. +Test "Imaginary part of: cacos (0x1p-105 + 0.5 i)":
  111451. +float: 1
  111452. +ifloat: 1
  111453. +Test "Real part of: cacos (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  111454. +ildouble: 1
  111455. +ldouble: 1
  111456. +Test "Imaginary part of: cacos (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  111457. +ildouble: 1
  111458. +ldouble: 1
  111459. +Test "Imaginary part of: cacos (0x1p-105 - 0.5 i)":
  111460. +float: 1
  111461. +ifloat: 1
  111462. +Test "Real part of: cacos (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  111463. +ildouble: 1
  111464. +ldouble: 1
  111465. +Test "Imaginary part of: cacos (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  111466. +ildouble: 1
  111467. +ldouble: 1
  111468. +Test "Imaginary part of: cacos (0x1p-112 + 0.5 i)":
  111469. +float: 1
  111470. +ifloat: 1
  111471. +Test "Real part of: cacos (0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
  111472. +ildouble: 1
  111473. +ldouble: 1
  111474. +Test "Imaginary part of: cacos (0x1p-112 - 0.5 i)":
  111475. +float: 1
  111476. +ifloat: 1
  111477. +Test "Real part of: cacos (0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
  111478. +ildouble: 1
  111479. +ldouble: 1
  111480. +Test "Imaginary part of: cacos (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  111481. +ildouble: 1
  111482. +ldouble: 1
  111483. +Test "Imaginary part of: cacos (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  111484. +ildouble: 1
  111485. +ldouble: 1
  111486. +Test "Imaginary part of: cacos (0x1p-23 + 0.5 i)":
  111487. +float: 1
  111488. +ifloat: 1
  111489. +ildouble: 2
  111490. +ldouble: 2
  111491. +Test "Imaginary part of: cacos (0x1p-23 + 0x0.ffffffp0 i)":
  111492. +double: 1
  111493. +idouble: 1
  111494. +Test "Real part of: cacos (0x1p-23 + 0x1.000002p0 i)":
  111495. +ildouble: 1
  111496. +ldouble: 1
  111497. +Test "Imaginary part of: cacos (0x1p-23 - 0.5 i)":
  111498. +float: 1
  111499. +ifloat: 1
  111500. +ildouble: 2
  111501. +ldouble: 2
  111502. +Test "Imaginary part of: cacos (0x1p-23 - 0x0.ffffffp0 i)":
  111503. +double: 1
  111504. +idouble: 1
  111505. +Test "Real part of: cacos (0x1p-23 - 0x1.000002p0 i)":
  111506. +ildouble: 1
  111507. +ldouble: 1
  111508. +Test "Real part of: cacos (0x1p-52 + 0.5 i)":
  111509. +ildouble: 1
  111510. +ldouble: 1
  111511. +Test "Imaginary part of: cacos (0x1p-52 + 0.5 i)":
  111512. +float: 1
  111513. +ifloat: 1
  111514. +ildouble: 1
  111515. +ldouble: 1
  111516. +Test "Real part of: cacos (0x1p-52 + 0x0.fffffffffffff8p0 i)":
  111517. +ildouble: 1
  111518. +ldouble: 1
  111519. +Test "Real part of: cacos (0x1p-52 - 0.5 i)":
  111520. +ildouble: 1
  111521. +ldouble: 1
  111522. +Test "Imaginary part of: cacos (0x1p-52 - 0.5 i)":
  111523. +float: 1
  111524. +ifloat: 1
  111525. +ildouble: 1
  111526. +ldouble: 1
  111527. +Test "Real part of: cacos (0x1p-52 - 0x0.fffffffffffff8p0 i)":
  111528. +ildouble: 1
  111529. +ldouble: 1
  111530. +Test "Real part of: cacos (0x1p-63 + 0.5 i)":
  111531. +ildouble: 1
  111532. +ldouble: 1
  111533. +Test "Imaginary part of: cacos (0x1p-63 + 0.5 i)":
  111534. +float: 1
  111535. +ifloat: 1
  111536. +Test "Imaginary part of: cacos (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
  111537. +ildouble: 1
  111538. +ldouble: 1
  111539. +Test "Imaginary part of: cacos (0x1p-63 + 0x1.0000000000000002p0 i)":
  111540. +ildouble: 1
  111541. +ldouble: 1
  111542. +Test "Real part of: cacos (0x1p-63 - 0.5 i)":
  111543. +ildouble: 1
  111544. +ldouble: 1
  111545. +Test "Imaginary part of: cacos (0x1p-63 - 0.5 i)":
  111546. +float: 1
  111547. +ifloat: 1
  111548. +Test "Imaginary part of: cacos (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
  111549. +ildouble: 1
  111550. +ldouble: 1
  111551. +Test "Imaginary part of: cacos (0x1p-63 - 0x1.0000000000000002p0 i)":
  111552. +ildouble: 1
  111553. +ldouble: 1
  111554. +Test "Imaginary part of: cacos (0x1p500 + 1.0 i)":
  111555. +ildouble: 1
  111556. +ldouble: 1
  111557. +Test "Imaginary part of: cacos (0x1p500 - 1.0 i)":
  111558. +ildouble: 1
  111559. +ldouble: 1
  111560. +Test "Imaginary part of: cacos (0x1p5000 + 1.0 i)":
  111561. +ildouble: 1
  111562. +ldouble: 1
  111563. +Test "Imaginary part of: cacos (0x1p5000 - 1.0 i)":
  111564. +ildouble: 1
  111565. +ldouble: 1
  111566. +Test "Real part of: cacos (1.0 + 0.25 i)":
  111567. +double: 1
  111568. +idouble: 1
  111569. +Test "Real part of: cacos (1.0 + 0.5 i)":
  111570. +float: 1
  111571. +ifloat: 1
  111572. +Test "Imaginary part of: cacos (1.0 + 0.5 i)":
  111573. +float: 1
  111574. +ifloat: 1
  111575. +Test "Real part of: cacos (1.0 + 0x1.fp-10 i)":
  111576. +float: 2
  111577. +ifloat: 2
  111578. +Test "Imaginary part of: cacos (1.0 + 0x1.fp-10 i)":
  111579. +float: 1
  111580. +ifloat: 1
  111581. +ildouble: 1
  111582. +ldouble: 1
  111583. +Test "Real part of: cacos (1.0 + 0x1.fp-100 i)":
  111584. +ildouble: 1
  111585. +ldouble: 1
  111586. +Test "Imaginary part of: cacos (1.0 + 0x1.fp-30 i)":
  111587. +ildouble: 1
  111588. +ldouble: 1
  111589. +Test "Imaginary part of: cacos (1.0 + 0x1p500 i)":
  111590. +ildouble: 1
  111591. +ldouble: 1
  111592. +Test "Imaginary part of: cacos (1.0 + 0x1p5000 i)":
  111593. +ildouble: 1
  111594. +ldouble: 1
  111595. +Test "Real part of: cacos (1.0 - 0.25 i)":
  111596. +double: 1
  111597. +idouble: 1
  111598. +Test "Real part of: cacos (1.0 - 0.5 i)":
  111599. +float: 1
  111600. +ifloat: 1
  111601. +Test "Imaginary part of: cacos (1.0 - 0.5 i)":
  111602. +float: 1
  111603. +ifloat: 1
  111604. +Test "Real part of: cacos (1.0 - 0x1.fp-10 i)":
  111605. +float: 2
  111606. +ifloat: 2
  111607. +Test "Imaginary part of: cacos (1.0 - 0x1.fp-10 i)":
  111608. +float: 1
  111609. +ifloat: 1
  111610. +ildouble: 1
  111611. +ldouble: 1
  111612. +Test "Real part of: cacos (1.0 - 0x1.fp-100 i)":
  111613. +ildouble: 1
  111614. +ldouble: 1
  111615. +Test "Imaginary part of: cacos (1.0 - 0x1.fp-30 i)":
  111616. +ildouble: 1
  111617. +ldouble: 1
  111618. +Test "Imaginary part of: cacos (1.0 - 0x1p500 i)":
  111619. +ildouble: 1
  111620. +ldouble: 1
  111621. +Test "Imaginary part of: cacos (1.0 - 0x1p5000 i)":
  111622. +ildouble: 1
  111623. +ldouble: 1
  111624. +
  111625. +# cacosh
  111626. +Test "Real part of: cacosh (+0 + 0.5 i)":
  111627. +float: 1
  111628. +ifloat: 1
  111629. +ildouble: 1
  111630. +ldouble: 1
  111631. +Test "Real part of: cacosh (+0 + 1.0 i)":
  111632. +double: 1
  111633. +float: 1
  111634. +idouble: 1
  111635. +ifloat: 1
  111636. +ildouble: 1
  111637. +ldouble: 1
  111638. +Test "Real part of: cacosh (+0 + 1.5 i)":
  111639. +double: 1
  111640. +idouble: 1
  111641. +ildouble: 1
  111642. +ldouble: 1
  111643. +Test "Real part of: cacosh (+0 - 0.5 i)":
  111644. +float: 1
  111645. +ifloat: 1
  111646. +ildouble: 1
  111647. +ldouble: 1
  111648. +Test "Real part of: cacosh (+0 - 1.0 i)":
  111649. +double: 1
  111650. +float: 1
  111651. +idouble: 1
  111652. +ifloat: 1
  111653. +ildouble: 1
  111654. +ldouble: 1
  111655. +Test "Real part of: cacosh (+0 - 1.5 i)":
  111656. +double: 1
  111657. +idouble: 1
  111658. +ildouble: 1
  111659. +ldouble: 1
  111660. +Test "Real part of: cacosh (-0 + 0.5 i)":
  111661. +float: 1
  111662. +ifloat: 1
  111663. +ildouble: 1
  111664. +ldouble: 1
  111665. +Test "Real part of: cacosh (-0 + 1.0 i)":
  111666. +double: 1
  111667. +float: 1
  111668. +idouble: 1
  111669. +ifloat: 1
  111670. +ildouble: 1
  111671. +ldouble: 1
  111672. +Test "Real part of: cacosh (-0 + 1.5 i)":
  111673. +double: 1
  111674. +idouble: 1
  111675. +ildouble: 1
  111676. +ldouble: 1
  111677. +Test "Real part of: cacosh (-0 - 0.5 i)":
  111678. +float: 1
  111679. +ifloat: 1
  111680. +ildouble: 1
  111681. +ldouble: 1
  111682. +Test "Real part of: cacosh (-0 - 1.0 i)":
  111683. +double: 1
  111684. +float: 1
  111685. +idouble: 1
  111686. +ifloat: 1
  111687. +ildouble: 1
  111688. +ldouble: 1
  111689. +Test "Real part of: cacosh (-0 - 1.5 i)":
  111690. +double: 1
  111691. +idouble: 1
  111692. +ildouble: 1
  111693. +ldouble: 1
  111694. +Test "Real part of: cacosh (-0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  111695. +ildouble: 1
  111696. +ldouble: 1
  111697. +Test "Real part of: cacosh (-0.0 + 0x0.ffffffffffffffffp0 i)":
  111698. +ildouble: 1
  111699. +ldouble: 1
  111700. +Test "Real part of: cacosh (-0.0 + 0x1.0000000000000000000000000001p0 i)":
  111701. +ildouble: 1
  111702. +ldouble: 1
  111703. +Test "Real part of: cacosh (-0.0 + 0x1.0000000000000002p0 i)":
  111704. +ildouble: 1
  111705. +ldouble: 1
  111706. +Test "Real part of: cacosh (-0.0 + 0x1.0000000000001p0 i)":
  111707. +ildouble: 1
  111708. +ldouble: 1
  111709. +Test "Real part of: cacosh (-0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  111710. +ildouble: 1
  111711. +ldouble: 1
  111712. +Test "Real part of: cacosh (-0.0 - 0x0.ffffffffffffffffp0 i)":
  111713. +ildouble: 1
  111714. +ldouble: 1
  111715. +Test "Real part of: cacosh (-0.0 - 0x1.0000000000000000000000000001p0 i)":
  111716. +ildouble: 1
  111717. +ldouble: 1
  111718. +Test "Real part of: cacosh (-0.0 - 0x1.0000000000000002p0 i)":
  111719. +ildouble: 1
  111720. +ldouble: 1
  111721. +Test "Real part of: cacosh (-0.0 - 0x1.0000000000001p0 i)":
  111722. +ildouble: 1
  111723. +ldouble: 1
  111724. +Test "Real part of: cacosh (-0.25 + 1.0 i)":
  111725. +float: 1
  111726. +ifloat: 1
  111727. +ildouble: 1
  111728. +ldouble: 1
  111729. +Test "Imaginary part of: cacosh (-0.25 + 1.0 i)":
  111730. +double: 1
  111731. +float: 1
  111732. +idouble: 1
  111733. +ifloat: 1
  111734. +Test "Real part of: cacosh (-0.25 - 1.0 i)":
  111735. +float: 1
  111736. +ifloat: 1
  111737. +ildouble: 1
  111738. +ldouble: 1
  111739. +Test "Imaginary part of: cacosh (-0.25 - 1.0 i)":
  111740. +double: 1
  111741. +float: 1
  111742. +idouble: 1
  111743. +ifloat: 1
  111744. +Test "Imaginary part of: cacosh (-0.5 + +0 i)":
  111745. +ildouble: 1
  111746. +ldouble: 1
  111747. +Test "Imaginary part of: cacosh (-0.5 + 0x1.fp-1025 i)":
  111748. +ildouble: 1
  111749. +ldouble: 1
  111750. +Test "Real part of: cacosh (-0.5 + 0x1.fp-129 i)":
  111751. +double: 1
  111752. +idouble: 1
  111753. +Test "Imaginary part of: cacosh (-0.5 + 0x1.fp-129 i)":
  111754. +ildouble: 1
  111755. +ldouble: 1
  111756. +Test "Imaginary part of: cacosh (-0.5 + 0x1.fp-16385 i)":
  111757. +ildouble: 1
  111758. +ldouble: 1
  111759. +Test "Real part of: cacosh (-0.5 + 0x1p-105 i)":
  111760. +double: 1
  111761. +idouble: 1
  111762. +ildouble: 1
  111763. +ldouble: 1
  111764. +Test "Imaginary part of: cacosh (-0.5 + 0x1p-105 i)":
  111765. +ildouble: 1
  111766. +ldouble: 1
  111767. +Test "Real part of: cacosh (-0.5 + 0x1p-112 i)":
  111768. +double: 1
  111769. +idouble: 1
  111770. +ildouble: 1
  111771. +ldouble: 1
  111772. +Test "Imaginary part of: cacosh (-0.5 + 0x1p-112 i)":
  111773. +ildouble: 1
  111774. +ldouble: 1
  111775. +Test "Real part of: cacosh (-0.5 + 0x1p-23 i)":
  111776. +double: 1
  111777. +idouble: 1
  111778. +ildouble: 1
  111779. +ldouble: 1
  111780. +Test "Imaginary part of: cacosh (-0.5 + 0x1p-52 i)":
  111781. +ildouble: 1
  111782. +ldouble: 1
  111783. +Test "Real part of: cacosh (-0.5 + 0x1p-63 i)":
  111784. +ildouble: 1
  111785. +ldouble: 1
  111786. +Test "Imaginary part of: cacosh (-0.5 + 0x1p-63 i)":
  111787. +ildouble: 1
  111788. +ldouble: 1
  111789. +Test "Real part of: cacosh (-0.5 + 1.0 i)":
  111790. +double: 1
  111791. +idouble: 1
  111792. +ildouble: 1
  111793. +ldouble: 1
  111794. +Test "Imaginary part of: cacosh (-0.5 + 1.0 i)":
  111795. +float: 1
  111796. +ifloat: 1
  111797. +Test "Imaginary part of: cacosh (-0.5 - 0 i)":
  111798. +ildouble: 1
  111799. +ldouble: 1
  111800. +Test "Imaginary part of: cacosh (-0.5 - 0x1.fp-1025 i)":
  111801. +ildouble: 1
  111802. +ldouble: 1
  111803. +Test "Real part of: cacosh (-0.5 - 0x1.fp-129 i)":
  111804. +double: 1
  111805. +idouble: 1
  111806. +Test "Imaginary part of: cacosh (-0.5 - 0x1.fp-129 i)":
  111807. +ildouble: 1
  111808. +ldouble: 1
  111809. +Test "Imaginary part of: cacosh (-0.5 - 0x1.fp-16385 i)":
  111810. +ildouble: 1
  111811. +ldouble: 1
  111812. +Test "Real part of: cacosh (-0.5 - 0x1p-105 i)":
  111813. +double: 1
  111814. +idouble: 1
  111815. +ildouble: 1
  111816. +ldouble: 1
  111817. +Test "Imaginary part of: cacosh (-0.5 - 0x1p-105 i)":
  111818. +ildouble: 1
  111819. +ldouble: 1
  111820. +Test "Real part of: cacosh (-0.5 - 0x1p-112 i)":
  111821. +double: 1
  111822. +idouble: 1
  111823. +ildouble: 1
  111824. +ldouble: 1
  111825. +Test "Imaginary part of: cacosh (-0.5 - 0x1p-112 i)":
  111826. +ildouble: 1
  111827. +ldouble: 1
  111828. +Test "Real part of: cacosh (-0.5 - 0x1p-23 i)":
  111829. +double: 1
  111830. +idouble: 1
  111831. +ildouble: 1
  111832. +ldouble: 1
  111833. +Test "Imaginary part of: cacosh (-0.5 - 0x1p-52 i)":
  111834. +ildouble: 1
  111835. +ldouble: 1
  111836. +Test "Real part of: cacosh (-0.5 - 0x1p-63 i)":
  111837. +ildouble: 1
  111838. +ldouble: 1
  111839. +Test "Imaginary part of: cacosh (-0.5 - 0x1p-63 i)":
  111840. +ildouble: 1
  111841. +ldouble: 1
  111842. +Test "Real part of: cacosh (-0.5 - 1.0 i)":
  111843. +double: 1
  111844. +idouble: 1
  111845. +ildouble: 1
  111846. +ldouble: 1
  111847. +Test "Imaginary part of: cacosh (-0.5 - 1.0 i)":
  111848. +float: 1
  111849. +ifloat: 1
  111850. +Test "Real part of: cacosh (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
  111851. +double: 1
  111852. +idouble: 1
  111853. +Test "Real part of: cacosh (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
  111854. +double: 1
  111855. +idouble: 1
  111856. +Test "Real part of: cacosh (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
  111857. +ildouble: 1
  111858. +ldouble: 1
  111859. +Test "Real part of: cacosh (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
  111860. +ildouble: 1
  111861. +ldouble: 1
  111862. +Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
  111863. +ildouble: 1
  111864. +ldouble: 1
  111865. +Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
  111866. +ildouble: 1
  111867. +ldouble: 1
  111868. +Test "Real part of: cacosh (-0x0.ffffffp0 + 0x1p-23 i)":
  111869. +float: 2
  111870. +ifloat: 2
  111871. +Test "Real part of: cacosh (-0x0.ffffffp0 - 0x1p-23 i)":
  111872. +float: 2
  111873. +ifloat: 2
  111874. +Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 + 0.0 i)":
  111875. +ildouble: 1
  111876. +ldouble: 1
  111877. +Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
  111878. +ildouble: 1
  111879. +ldouble: 1
  111880. +Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
  111881. +ildouble: 1
  111882. +ldouble: 1
  111883. +Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 - 0.0 i)":
  111884. +ildouble: 1
  111885. +ldouble: 1
  111886. +Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
  111887. +ildouble: 1
  111888. +ldouble: 1
  111889. +Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
  111890. +ildouble: 1
  111891. +ldouble: 1
  111892. +Test "Real part of: cacosh (-0x1.000002p0 + 0x1p-23 i)":
  111893. +float: 1
  111894. +ifloat: 1
  111895. +ildouble: 1
  111896. +ldouble: 1
  111897. +Test "Real part of: cacosh (-0x1.000002p0 - 0x1p-23 i)":
  111898. +float: 1
  111899. +ifloat: 1
  111900. +ildouble: 1
  111901. +ldouble: 1
  111902. +Test "Real part of: cacosh (-0x1.fp-10 + 1.0 i)":
  111903. +double: 1
  111904. +idouble: 1
  111905. +Test "Real part of: cacosh (-0x1.fp-10 - 1.0 i)":
  111906. +double: 1
  111907. +idouble: 1
  111908. +Test "Real part of: cacosh (-0x1.fp-100 + 1.0 i)":
  111909. +double: 1
  111910. +float: 1
  111911. +idouble: 1
  111912. +ifloat: 1
  111913. +ildouble: 1
  111914. +ldouble: 1
  111915. +Test "Imaginary part of: cacosh (-0x1.fp-100 + 1.0 i)":
  111916. +float: 1
  111917. +ifloat: 1
  111918. +Test "Real part of: cacosh (-0x1.fp-100 - 1.0 i)":
  111919. +double: 1
  111920. +float: 1
  111921. +idouble: 1
  111922. +ifloat: 1
  111923. +ildouble: 1
  111924. +ldouble: 1
  111925. +Test "Imaginary part of: cacosh (-0x1.fp-100 - 1.0 i)":
  111926. +float: 1
  111927. +ifloat: 1
  111928. +Test "Real part of: cacosh (-0x1.fp-1000 + 1.0 i)":
  111929. +double: 1
  111930. +idouble: 1
  111931. +ildouble: 1
  111932. +ldouble: 1
  111933. +Test "Real part of: cacosh (-0x1.fp-1000 - 1.0 i)":
  111934. +double: 1
  111935. +idouble: 1
  111936. +ildouble: 1
  111937. +ldouble: 1
  111938. +Test "Real part of: cacosh (-0x1.fp-10000 + 1.0 i)":
  111939. +ildouble: 1
  111940. +ldouble: 1
  111941. +Test "Real part of: cacosh (-0x1.fp-10000 - 1.0 i)":
  111942. +ildouble: 1
  111943. +ldouble: 1
  111944. +Test "Real part of: cacosh (-0x1.fp-1025 + 0.5 i)":
  111945. +ildouble: 1
  111946. +ldouble: 1
  111947. +Test "Real part of: cacosh (-0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  111948. +ildouble: 1
  111949. +ldouble: 1
  111950. +Test "Real part of: cacosh (-0x1.fp-1025 + 0x1.0000000000001p0 i)":
  111951. +ildouble: 1
  111952. +ldouble: 1
  111953. +Test "Real part of: cacosh (-0x1.fp-1025 + 1.0 i)":
  111954. +double: 1
  111955. +idouble: 1
  111956. +ildouble: 1
  111957. +ldouble: 1
  111958. +Test "Real part of: cacosh (-0x1.fp-1025 + 1.5 i)":
  111959. +double: 1
  111960. +idouble: 1
  111961. +ildouble: 1
  111962. +ldouble: 1
  111963. +Test "Real part of: cacosh (-0x1.fp-1025 - 0.5 i)":
  111964. +ildouble: 1
  111965. +ldouble: 1
  111966. +Test "Real part of: cacosh (-0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  111967. +ildouble: 1
  111968. +ldouble: 1
  111969. +Test "Real part of: cacosh (-0x1.fp-1025 - 0x1.0000000000001p0 i)":
  111970. +ildouble: 1
  111971. +ldouble: 1
  111972. +Test "Real part of: cacosh (-0x1.fp-1025 - 1.0 i)":
  111973. +double: 1
  111974. +idouble: 1
  111975. +ildouble: 1
  111976. +ldouble: 1
  111977. +Test "Real part of: cacosh (-0x1.fp-1025 - 1.5 i)":
  111978. +double: 1
  111979. +idouble: 1
  111980. +ildouble: 1
  111981. +ldouble: 1
  111982. +Test "Real part of: cacosh (-0x1.fp-129 + 0.5 i)":
  111983. +float: 1
  111984. +ifloat: 1
  111985. +ildouble: 1
  111986. +ldouble: 1
  111987. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0.5 i)":
  111988. +float: 1
  111989. +ifloat: 1
  111990. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x0.ffffffp0 i)":
  111991. +float: 1
  111992. +ifloat: 1
  111993. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.000002p0 i)":
  111994. +float: 1
  111995. +ifloat: 1
  111996. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.fp-129 i)":
  111997. +float: 1
  111998. +ifloat: 1
  111999. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1p-23 i)":
  112000. +float: 1
  112001. +ifloat: 1
  112002. +Test "Real part of: cacosh (-0x1.fp-129 + 1.0 i)":
  112003. +double: 1
  112004. +float: 1
  112005. +idouble: 1
  112006. +ifloat: 1
  112007. +ildouble: 1
  112008. +ldouble: 1
  112009. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.0 i)":
  112010. +float: 1
  112011. +ifloat: 1
  112012. +Test "Real part of: cacosh (-0x1.fp-129 + 1.5 i)":
  112013. +double: 1
  112014. +idouble: 1
  112015. +ildouble: 1
  112016. +ldouble: 1
  112017. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.5 i)":
  112018. +float: 1
  112019. +ifloat: 1
  112020. +Test "Real part of: cacosh (-0x1.fp-129 - 0.5 i)":
  112021. +float: 1
  112022. +ifloat: 1
  112023. +ildouble: 1
  112024. +ldouble: 1
  112025. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0.5 i)":
  112026. +float: 1
  112027. +ifloat: 1
  112028. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x0.ffffffp0 i)":
  112029. +float: 1
  112030. +ifloat: 1
  112031. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.000002p0 i)":
  112032. +float: 1
  112033. +ifloat: 1
  112034. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.fp-129 i)":
  112035. +float: 1
  112036. +ifloat: 1
  112037. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1p-23 i)":
  112038. +float: 1
  112039. +ifloat: 1
  112040. +Test "Real part of: cacosh (-0x1.fp-129 - 1.0 i)":
  112041. +double: 1
  112042. +float: 1
  112043. +idouble: 1
  112044. +ifloat: 1
  112045. +ildouble: 1
  112046. +ldouble: 1
  112047. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.0 i)":
  112048. +float: 1
  112049. +ifloat: 1
  112050. +Test "Real part of: cacosh (-0x1.fp-129 - 1.5 i)":
  112051. +double: 1
  112052. +idouble: 1
  112053. +ildouble: 1
  112054. +ldouble: 1
  112055. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.5 i)":
  112056. +float: 1
  112057. +ifloat: 1
  112058. +Test "Real part of: cacosh (-0x1.fp-16385 + 0.5 i)":
  112059. +ildouble: 1
  112060. +ldouble: 1
  112061. +Test "Real part of: cacosh (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
  112062. +ildouble: 1
  112063. +ldouble: 1
  112064. +Test "Real part of: cacosh (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
  112065. +ildouble: 1
  112066. +ldouble: 1
  112067. +Test "Real part of: cacosh (-0x1.fp-16385 + 0x1.0000000000000002p0 i)":
  112068. +ildouble: 1
  112069. +ldouble: 1
  112070. +Test "Real part of: cacosh (-0x1.fp-16385 + 1.0 i)":
  112071. +ildouble: 1
  112072. +ldouble: 1
  112073. +Test "Real part of: cacosh (-0x1.fp-16385 + 1.5 i)":
  112074. +ildouble: 1
  112075. +ldouble: 1
  112076. +Test "Real part of: cacosh (-0x1.fp-16385 - 0.5 i)":
  112077. +ildouble: 1
  112078. +ldouble: 1
  112079. +Test "Real part of: cacosh (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
  112080. +ildouble: 1
  112081. +ldouble: 1
  112082. +Test "Real part of: cacosh (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
  112083. +ildouble: 1
  112084. +ldouble: 1
  112085. +Test "Real part of: cacosh (-0x1.fp-16385 - 0x1.0000000000000002p0 i)":
  112086. +ildouble: 1
  112087. +ldouble: 1
  112088. +Test "Real part of: cacosh (-0x1.fp-16385 - 1.0 i)":
  112089. +ildouble: 1
  112090. +ldouble: 1
  112091. +Test "Real part of: cacosh (-0x1.fp-16385 - 1.5 i)":
  112092. +ildouble: 1
  112093. +ldouble: 1
  112094. +Test "Real part of: cacosh (-0x1.fp-30 + 1.0 i)":
  112095. +double: 1
  112096. +float: 1
  112097. +idouble: 1
  112098. +ifloat: 1
  112099. +ildouble: 1
  112100. +ldouble: 1
  112101. +Test "Imaginary part of: cacosh (-0x1.fp-30 + 1.0 i)":
  112102. +float: 1
  112103. +ifloat: 1
  112104. +Test "Real part of: cacosh (-0x1.fp-30 - 1.0 i)":
  112105. +double: 1
  112106. +float: 1
  112107. +idouble: 1
  112108. +ifloat: 1
  112109. +ildouble: 1
  112110. +ldouble: 1
  112111. +Test "Imaginary part of: cacosh (-0x1.fp-30 - 1.0 i)":
  112112. +float: 1
  112113. +ifloat: 1
  112114. +Test "Imaginary part of: cacosh (-0x1p-105 + 0.0 i)":
  112115. +float: 1
  112116. +ifloat: 1
  112117. +Test "Real part of: cacosh (-0x1p-105 + 0.5 i)":
  112118. +float: 1
  112119. +ifloat: 1
  112120. +Test "Imaginary part of: cacosh (-0x1p-105 + 0.5 i)":
  112121. +float: 1
  112122. +ifloat: 1
  112123. +ildouble: 1
  112124. +ldouble: 1
  112125. +Test "Real part of: cacosh (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  112126. +ildouble: 1
  112127. +ldouble: 1
  112128. +Test "Imaginary part of: cacosh (-0x1p-105 + 0x1p-105 i)":
  112129. +float: 1
  112130. +ifloat: 1
  112131. +Test "Imaginary part of: cacosh (-0x1p-105 - 0.0 i)":
  112132. +float: 1
  112133. +ifloat: 1
  112134. +Test "Real part of: cacosh (-0x1p-105 - 0.5 i)":
  112135. +float: 1
  112136. +ifloat: 1
  112137. +Test "Imaginary part of: cacosh (-0x1p-105 - 0.5 i)":
  112138. +float: 1
  112139. +ifloat: 1
  112140. +ildouble: 1
  112141. +ldouble: 1
  112142. +Test "Real part of: cacosh (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  112143. +ildouble: 1
  112144. +ldouble: 1
  112145. +Test "Imaginary part of: cacosh (-0x1p-105 - 0x1p-105 i)":
  112146. +float: 1
  112147. +ifloat: 1
  112148. +Test "Imaginary part of: cacosh (-0x1p-112 + 0.0 i)":
  112149. +float: 1
  112150. +ifloat: 1
  112151. +Test "Real part of: cacosh (-0x1p-112 + 0.5 i)":
  112152. +float: 1
  112153. +ifloat: 1
  112154. +Test "Imaginary part of: cacosh (-0x1p-112 + 0.5 i)":
  112155. +float: 1
  112156. +ifloat: 1
  112157. +Test "Imaginary part of: cacosh (-0x1p-112 + 0x1p-112 i)":
  112158. +float: 1
  112159. +ifloat: 1
  112160. +Test "Imaginary part of: cacosh (-0x1p-112 - 0.0 i)":
  112161. +float: 1
  112162. +ifloat: 1
  112163. +Test "Real part of: cacosh (-0x1p-112 - 0.5 i)":
  112164. +float: 1
  112165. +ifloat: 1
  112166. +Test "Imaginary part of: cacosh (-0x1p-112 - 0.5 i)":
  112167. +float: 1
  112168. +ifloat: 1
  112169. +Test "Imaginary part of: cacosh (-0x1p-112 - 0x1p-112 i)":
  112170. +float: 1
  112171. +ifloat: 1
  112172. +Test "Real part of: cacosh (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  112173. +ildouble: 1
  112174. +ldouble: 1
  112175. +Test "Imaginary part of: cacosh (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  112176. +ildouble: 1
  112177. +ldouble: 1
  112178. +Test "Real part of: cacosh (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  112179. +ildouble: 1
  112180. +ldouble: 1
  112181. +Test "Imaginary part of: cacosh (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  112182. +ildouble: 1
  112183. +ldouble: 1
  112184. +Test "Imaginary part of: cacosh (-0x1p-23 + 0.0 i)":
  112185. +float: 1
  112186. +ifloat: 1
  112187. +ildouble: 1
  112188. +ldouble: 1
  112189. +Test "Real part of: cacosh (-0x1p-23 + 0.5 i)":
  112190. +float: 1
  112191. +ifloat: 1
  112192. +ildouble: 2
  112193. +ldouble: 2
  112194. +Test "Imaginary part of: cacosh (-0x1p-23 + 0.5 i)":
  112195. +float: 1
  112196. +ifloat: 1
  112197. +Test "Real part of: cacosh (-0x1p-23 + 0x0.ffffffp0 i)":
  112198. +double: 1
  112199. +idouble: 1
  112200. +Test "Imaginary part of: cacosh (-0x1p-23 + 0x1.fp-129 i)":
  112201. +float: 1
  112202. +ifloat: 1
  112203. +ildouble: 1
  112204. +ldouble: 1
  112205. +Test "Imaginary part of: cacosh (-0x1p-23 + 0x1p-23 i)":
  112206. +float: 1
  112207. +ifloat: 1
  112208. +ildouble: 1
  112209. +ldouble: 1
  112210. +Test "Imaginary part of: cacosh (-0x1p-23 - 0.0 i)":
  112211. +float: 1
  112212. +ifloat: 1
  112213. +ildouble: 1
  112214. +ldouble: 1
  112215. +Test "Real part of: cacosh (-0x1p-23 - 0.5 i)":
  112216. +float: 1
  112217. +ifloat: 1
  112218. +ildouble: 2
  112219. +ldouble: 2
  112220. +Test "Imaginary part of: cacosh (-0x1p-23 - 0.5 i)":
  112221. +float: 1
  112222. +ifloat: 1
  112223. +Test "Real part of: cacosh (-0x1p-23 - 0x0.ffffffp0 i)":
  112224. +double: 1
  112225. +idouble: 1
  112226. +Test "Imaginary part of: cacosh (-0x1p-23 - 0x1.fp-129 i)":
  112227. +float: 1
  112228. +ifloat: 1
  112229. +ildouble: 1
  112230. +ldouble: 1
  112231. +Test "Imaginary part of: cacosh (-0x1p-23 - 0x1p-23 i)":
  112232. +float: 1
  112233. +ifloat: 1
  112234. +ildouble: 1
  112235. +ldouble: 1
  112236. +Test "Imaginary part of: cacosh (-0x1p-52 + 0.0 i)":
  112237. +float: 1
  112238. +ifloat: 1
  112239. +Test "Real part of: cacosh (-0x1p-52 + 0.5 i)":
  112240. +float: 1
  112241. +ifloat: 1
  112242. +ildouble: 1
  112243. +ldouble: 1
  112244. +Test "Imaginary part of: cacosh (-0x1p-52 + 0.5 i)":
  112245. +float: 1
  112246. +ifloat: 1
  112247. +Test "Imaginary part of: cacosh (-0x1p-52 + 0x1p-52 i)":
  112248. +float: 1
  112249. +ifloat: 1
  112250. +Test "Imaginary part of: cacosh (-0x1p-52 - 0.0 i)":
  112251. +float: 1
  112252. +ifloat: 1
  112253. +Test "Real part of: cacosh (-0x1p-52 - 0.5 i)":
  112254. +float: 1
  112255. +ifloat: 1
  112256. +ildouble: 1
  112257. +ldouble: 1
  112258. +Test "Imaginary part of: cacosh (-0x1p-52 - 0.5 i)":
  112259. +float: 1
  112260. +ifloat: 1
  112261. +Test "Imaginary part of: cacosh (-0x1p-52 - 0x1p-52 i)":
  112262. +float: 1
  112263. +ifloat: 1
  112264. +Test "Imaginary part of: cacosh (-0x1p-63 + 0.0 i)":
  112265. +float: 1
  112266. +ifloat: 1
  112267. +Test "Real part of: cacosh (-0x1p-63 + 0.5 i)":
  112268. +float: 1
  112269. +ifloat: 1
  112270. +Test "Imaginary part of: cacosh (-0x1p-63 + 0.5 i)":
  112271. +float: 1
  112272. +ifloat: 1
  112273. +Test "Real part of: cacosh (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
  112274. +ildouble: 1
  112275. +ldouble: 1
  112276. +Test "Real part of: cacosh (-0x1p-63 + 0x1.0000000000000002p0 i)":
  112277. +ildouble: 1
  112278. +ldouble: 1
  112279. +Test "Imaginary part of: cacosh (-0x1p-63 + 0x1p-63 i)":
  112280. +float: 1
  112281. +ifloat: 1
  112282. +Test "Imaginary part of: cacosh (-0x1p-63 - 0.0 i)":
  112283. +float: 1
  112284. +ifloat: 1
  112285. +Test "Real part of: cacosh (-0x1p-63 - 0.5 i)":
  112286. +float: 1
  112287. +ifloat: 1
  112288. +Test "Imaginary part of: cacosh (-0x1p-63 - 0.5 i)":
  112289. +float: 1
  112290. +ifloat: 1
  112291. +Test "Real part of: cacosh (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
  112292. +ildouble: 1
  112293. +ldouble: 1
  112294. +Test "Real part of: cacosh (-0x1p-63 - 0x1.0000000000000002p0 i)":
  112295. +ildouble: 1
  112296. +ldouble: 1
  112297. +Test "Imaginary part of: cacosh (-0x1p-63 - 0x1p-63 i)":
  112298. +float: 1
  112299. +ifloat: 1
  112300. +Test "Real part of: cacosh (-0x1p500 + 1.0 i)":
  112301. +ildouble: 1
  112302. +ldouble: 1
  112303. +Test "Real part of: cacosh (-0x1p500 - 1.0 i)":
  112304. +ildouble: 1
  112305. +ldouble: 1
  112306. +Test "Real part of: cacosh (-0x1p5000 + 1.0 i)":
  112307. +ildouble: 1
  112308. +ldouble: 1
  112309. +Test "Real part of: cacosh (-0x1p5000 - 1.0 i)":
  112310. +ildouble: 1
  112311. +ldouble: 1
  112312. +Test "Real part of: cacosh (-1.0 + 0.5 i)":
  112313. +float: 1
  112314. +ifloat: 1
  112315. +Test "Real part of: cacosh (-1.0 + 0x1.fp-10 i)":
  112316. +float: 1
  112317. +ifloat: 1
  112318. +ildouble: 1
  112319. +ldouble: 1
  112320. +Test "Real part of: cacosh (-1.0 + 0x1.fp-30 i)":
  112321. +ildouble: 1
  112322. +ldouble: 1
  112323. +Test "Imaginary part of: cacosh (-1.0 + 0x1p50 i)":
  112324. +float: 1
  112325. +ifloat: 1
  112326. +Test "Real part of: cacosh (-1.0 + 0x1p500 i)":
  112327. +ildouble: 1
  112328. +ldouble: 1
  112329. +Test "Real part of: cacosh (-1.0 + 0x1p5000 i)":
  112330. +ildouble: 1
  112331. +ldouble: 1
  112332. +Test "Real part of: cacosh (-1.0 - 0.5 i)":
  112333. +float: 1
  112334. +ifloat: 1
  112335. +Test "Real part of: cacosh (-1.0 - 0x1.fp-10 i)":
  112336. +float: 1
  112337. +ifloat: 1
  112338. +ildouble: 1
  112339. +ldouble: 1
  112340. +Test "Real part of: cacosh (-1.0 - 0x1.fp-30 i)":
  112341. +ildouble: 1
  112342. +ldouble: 1
  112343. +Test "Imaginary part of: cacosh (-1.0 - 0x1p50 i)":
  112344. +float: 1
  112345. +ifloat: 1
  112346. +Test "Real part of: cacosh (-1.0 - 0x1p500 i)":
  112347. +ildouble: 1
  112348. +ldouble: 1
  112349. +Test "Real part of: cacosh (-1.0 - 0x1p5000 i)":
  112350. +ildouble: 1
  112351. +ldouble: 1
  112352. +Test "Imaginary part of: cacosh (-2 - 3 i)":
  112353. +float: 1
  112354. +ifloat: 1
  112355. +ildouble: 1
  112356. +ldouble: 1
  112357. +Test "Real part of: cacosh (0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  112358. +ildouble: 1
  112359. +ldouble: 1
  112360. +Test "Real part of: cacosh (0.0 + 0x0.ffffffffffffffffp0 i)":
  112361. +ildouble: 1
  112362. +ldouble: 1
  112363. +Test "Real part of: cacosh (0.0 + 0x1.0000000000000000000000000001p0 i)":
  112364. +ildouble: 1
  112365. +ldouble: 1
  112366. +Test "Real part of: cacosh (0.0 + 0x1.0000000000000002p0 i)":
  112367. +ildouble: 1
  112368. +ldouble: 1
  112369. +Test "Real part of: cacosh (0.0 + 0x1.0000000000001p0 i)":
  112370. +ildouble: 1
  112371. +ldouble: 1
  112372. +Test "Real part of: cacosh (0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  112373. +ildouble: 1
  112374. +ldouble: 1
  112375. +Test "Real part of: cacosh (0.0 - 0x0.ffffffffffffffffp0 i)":
  112376. +ildouble: 1
  112377. +ldouble: 1
  112378. +Test "Real part of: cacosh (0.0 - 0x1.0000000000000000000000000001p0 i)":
  112379. +ildouble: 1
  112380. +ldouble: 1
  112381. +Test "Real part of: cacosh (0.0 - 0x1.0000000000000002p0 i)":
  112382. +ildouble: 1
  112383. +ldouble: 1
  112384. +Test "Real part of: cacosh (0.0 - 0x1.0000000000001p0 i)":
  112385. +ildouble: 1
  112386. +ldouble: 1
  112387. +Test "Real part of: cacosh (0.25 + 1.0 i)":
  112388. +float: 1
  112389. +ifloat: 1
  112390. +ildouble: 1
  112391. +ldouble: 1
  112392. +Test "Real part of: cacosh (0.25 - 1.0 i)":
  112393. +float: 1
  112394. +ifloat: 1
  112395. +ildouble: 1
  112396. +ldouble: 1
  112397. +Test "Imaginary part of: cacosh (0.5 + +0 i)":
  112398. +double: 1
  112399. +idouble: 1
  112400. +Test "Imaginary part of: cacosh (0.5 + 0x1.fp-1025 i)":
  112401. +double: 1
  112402. +idouble: 1
  112403. +Test "Real part of: cacosh (0.5 + 0x1.fp-129 i)":
  112404. +double: 1
  112405. +idouble: 1
  112406. +Test "Imaginary part of: cacosh (0.5 + 0x1.fp-129 i)":
  112407. +double: 1
  112408. +idouble: 1
  112409. +Test "Real part of: cacosh (0.5 + 0x1p-105 i)":
  112410. +double: 1
  112411. +idouble: 1
  112412. +ildouble: 1
  112413. +ldouble: 1
  112414. +Test "Imaginary part of: cacosh (0.5 + 0x1p-105 i)":
  112415. +double: 1
  112416. +idouble: 1
  112417. +Test "Real part of: cacosh (0.5 + 0x1p-112 i)":
  112418. +double: 1
  112419. +idouble: 1
  112420. +ildouble: 1
  112421. +ldouble: 1
  112422. +Test "Imaginary part of: cacosh (0.5 + 0x1p-112 i)":
  112423. +double: 1
  112424. +idouble: 1
  112425. +Test "Real part of: cacosh (0.5 + 0x1p-23 i)":
  112426. +double: 1
  112427. +idouble: 1
  112428. +ildouble: 1
  112429. +ldouble: 1
  112430. +Test "Imaginary part of: cacosh (0.5 + 0x1p-52 i)":
  112431. +double: 1
  112432. +idouble: 1
  112433. +ildouble: 1
  112434. +ldouble: 1
  112435. +Test "Real part of: cacosh (0.5 + 0x1p-63 i)":
  112436. +ildouble: 1
  112437. +ldouble: 1
  112438. +Test "Imaginary part of: cacosh (0.5 + 0x1p-63 i)":
  112439. +double: 1
  112440. +idouble: 1
  112441. +Test "Real part of: cacosh (0.5 + 1.0 i)":
  112442. +double: 1
  112443. +idouble: 1
  112444. +ildouble: 1
  112445. +ldouble: 1
  112446. +Test "Imaginary part of: cacosh (0.5 + 1.0 i)":
  112447. +float: 1
  112448. +ifloat: 1
  112449. +Test "Imaginary part of: cacosh (0.5 - 0 i)":
  112450. +double: 1
  112451. +idouble: 1
  112452. +Test "Imaginary part of: cacosh (0.5 - 0x1.fp-1025 i)":
  112453. +double: 1
  112454. +idouble: 1
  112455. +Test "Real part of: cacosh (0.5 - 0x1.fp-129 i)":
  112456. +double: 1
  112457. +idouble: 1
  112458. +Test "Imaginary part of: cacosh (0.5 - 0x1.fp-129 i)":
  112459. +double: 1
  112460. +idouble: 1
  112461. +Test "Real part of: cacosh (0.5 - 0x1p-105 i)":
  112462. +double: 1
  112463. +idouble: 1
  112464. +ildouble: 1
  112465. +ldouble: 1
  112466. +Test "Imaginary part of: cacosh (0.5 - 0x1p-105 i)":
  112467. +double: 1
  112468. +idouble: 1
  112469. +Test "Real part of: cacosh (0.5 - 0x1p-112 i)":
  112470. +double: 1
  112471. +idouble: 1
  112472. +ildouble: 1
  112473. +ldouble: 1
  112474. +Test "Imaginary part of: cacosh (0.5 - 0x1p-112 i)":
  112475. +double: 1
  112476. +idouble: 1
  112477. +Test "Real part of: cacosh (0.5 - 0x1p-23 i)":
  112478. +double: 1
  112479. +idouble: 1
  112480. +ildouble: 1
  112481. +ldouble: 1
  112482. +Test "Imaginary part of: cacosh (0.5 - 0x1p-52 i)":
  112483. +double: 1
  112484. +idouble: 1
  112485. +ildouble: 1
  112486. +ldouble: 1
  112487. +Test "Real part of: cacosh (0.5 - 0x1p-63 i)":
  112488. +ildouble: 1
  112489. +ldouble: 1
  112490. +Test "Imaginary part of: cacosh (0.5 - 0x1p-63 i)":
  112491. +double: 1
  112492. +idouble: 1
  112493. +Test "Real part of: cacosh (0.5 - 1.0 i)":
  112494. +double: 1
  112495. +idouble: 1
  112496. +ildouble: 1
  112497. +ldouble: 1
  112498. +Test "Imaginary part of: cacosh (0.5 - 1.0 i)":
  112499. +float: 1
  112500. +ifloat: 1
  112501. +Test "Real part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i)":
  112502. +double: 1
  112503. +idouble: 1
  112504. +Test "Real part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i)":
  112505. +double: 1
  112506. +idouble: 1
  112507. +Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 + 0.0 i)":
  112508. +ildouble: 1
  112509. +ldouble: 1
  112510. +Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025 i)":
  112511. +ildouble: 1
  112512. +ldouble: 1
  112513. +Test "Real part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
  112514. +ildouble: 1
  112515. +ldouble: 1
  112516. +Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
  112517. +ildouble: 1
  112518. +ldouble: 1
  112519. +Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025 i)":
  112520. +ildouble: 1
  112521. +ldouble: 1
  112522. +Test "Real part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
  112523. +ildouble: 1
  112524. +ldouble: 1
  112525. +Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 + 0.0 i)":
  112526. +ildouble: 1
  112527. +ldouble: 1
  112528. +Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 + 0x1.fp-16385 i)":
  112529. +ildouble: 1
  112530. +ldouble: 1
  112531. +Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 - 0.0 i)":
  112532. +ildouble: 1
  112533. +ldouble: 1
  112534. +Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 - 0x1.fp-16385 i)":
  112535. +ildouble: 1
  112536. +ldouble: 1
  112537. +Test "Real part of: cacosh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
  112538. +ildouble: 1
  112539. +ldouble: 1
  112540. +Test "Real part of: cacosh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
  112541. +ildouble: 1
  112542. +ldouble: 1
  112543. +Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0.0 i)":
  112544. +float: 1
  112545. +ifloat: 1
  112546. +ildouble: 1
  112547. +ldouble: 1
  112548. +Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1.fp-129 i)":
  112549. +float: 1
  112550. +ifloat: 1
  112551. +ildouble: 1
  112552. +ldouble: 1
  112553. +Test "Real part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
  112554. +float: 2
  112555. +ifloat: 2
  112556. +Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
  112557. +float: 2
  112558. +ifloat: 2
  112559. +ildouble: 1
  112560. +ldouble: 1
  112561. +Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0.0 i)":
  112562. +float: 1
  112563. +ifloat: 1
  112564. +ildouble: 1
  112565. +ldouble: 1
  112566. +Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1.fp-129 i)":
  112567. +float: 1
  112568. +ifloat: 1
  112569. +ildouble: 1
  112570. +ldouble: 1
  112571. +Test "Real part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
  112572. +float: 2
  112573. +ifloat: 2
  112574. +Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
  112575. +float: 2
  112576. +ifloat: 2
  112577. +ildouble: 1
  112578. +ldouble: 1
  112579. +Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 + 0.0 i)":
  112580. +ildouble: 1
  112581. +ldouble: 1
  112582. +Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
  112583. +ildouble: 1
  112584. +ldouble: 1
  112585. +Test "Imaginary part of: cacosh (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
  112586. +ildouble: 1
  112587. +ldouble: 1
  112588. +Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
  112589. +ildouble: 1
  112590. +ldouble: 1
  112591. +Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 - 0.0 i)":
  112592. +ildouble: 1
  112593. +ldouble: 1
  112594. +Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
  112595. +ildouble: 1
  112596. +ldouble: 1
  112597. +Test "Imaginary part of: cacosh (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
  112598. +ildouble: 1
  112599. +ldouble: 1
  112600. +Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
  112601. +ildouble: 1
  112602. +ldouble: 1
  112603. +Test "Imaginary part of: cacosh (0x1.0000000000000002p0 + 0x1p-63 i)":
  112604. +ildouble: 2
  112605. +ldouble: 2
  112606. +Test "Imaginary part of: cacosh (0x1.0000000000000002p0 - 0x1p-63 i)":
  112607. +ildouble: 2
  112608. +ldouble: 2
  112609. +Test "Imaginary part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i)":
  112610. +double: 1
  112611. +idouble: 1
  112612. +ildouble: 1
  112613. +ldouble: 1
  112614. +Test "Imaginary part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i)":
  112615. +double: 1
  112616. +idouble: 1
  112617. +ildouble: 1
  112618. +ldouble: 1
  112619. +Test "Real part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
  112620. +float: 1
  112621. +ifloat: 1
  112622. +ildouble: 1
  112623. +ldouble: 1
  112624. +Test "Imaginary part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
  112625. +float: 2
  112626. +ifloat: 2
  112627. +ildouble: 1
  112628. +ldouble: 1
  112629. +Test "Real part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
  112630. +float: 1
  112631. +ifloat: 1
  112632. +ildouble: 1
  112633. +ldouble: 1
  112634. +Test "Imaginary part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
  112635. +float: 2
  112636. +ifloat: 2
  112637. +ildouble: 1
  112638. +ldouble: 1
  112639. +Test "Real part of: cacosh (0x1.fp-10 + 1.0 i)":
  112640. +double: 1
  112641. +idouble: 1
  112642. +Test "Real part of: cacosh (0x1.fp-10 - 1.0 i)":
  112643. +double: 1
  112644. +idouble: 1
  112645. +Test "Real part of: cacosh (0x1.fp-100 + 1.0 i)":
  112646. +double: 1
  112647. +float: 1
  112648. +idouble: 1
  112649. +ifloat: 1
  112650. +ildouble: 1
  112651. +ldouble: 1
  112652. +Test "Imaginary part of: cacosh (0x1.fp-100 + 1.0 i)":
  112653. +ildouble: 1
  112654. +ldouble: 1
  112655. +Test "Real part of: cacosh (0x1.fp-100 - 1.0 i)":
  112656. +double: 1
  112657. +float: 1
  112658. +idouble: 1
  112659. +ifloat: 1
  112660. +ildouble: 1
  112661. +ldouble: 1
  112662. +Test "Imaginary part of: cacosh (0x1.fp-100 - 1.0 i)":
  112663. +ildouble: 1
  112664. +ldouble: 1
  112665. +Test "Real part of: cacosh (0x1.fp-1000 + 1.0 i)":
  112666. +double: 1
  112667. +idouble: 1
  112668. +ildouble: 1
  112669. +ldouble: 1
  112670. +Test "Real part of: cacosh (0x1.fp-1000 - 1.0 i)":
  112671. +double: 1
  112672. +idouble: 1
  112673. +ildouble: 1
  112674. +ldouble: 1
  112675. +Test "Real part of: cacosh (0x1.fp-10000 + 1.0 i)":
  112676. +ildouble: 1
  112677. +ldouble: 1
  112678. +Test "Real part of: cacosh (0x1.fp-10000 - 1.0 i)":
  112679. +ildouble: 1
  112680. +ldouble: 1
  112681. +Test "Real part of: cacosh (0x1.fp-1025 + 0.5 i)":
  112682. +ildouble: 1
  112683. +ldouble: 1
  112684. +Test "Real part of: cacosh (0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  112685. +ildouble: 1
  112686. +ldouble: 1
  112687. +Test "Real part of: cacosh (0x1.fp-1025 + 0x1.0000000000001p0 i)":
  112688. +ildouble: 1
  112689. +ldouble: 1
  112690. +Test "Real part of: cacosh (0x1.fp-1025 + 1.0 i)":
  112691. +double: 1
  112692. +idouble: 1
  112693. +ildouble: 1
  112694. +ldouble: 1
  112695. +Test "Real part of: cacosh (0x1.fp-1025 + 1.5 i)":
  112696. +double: 1
  112697. +idouble: 1
  112698. +ildouble: 1
  112699. +ldouble: 1
  112700. +Test "Real part of: cacosh (0x1.fp-1025 - 0.5 i)":
  112701. +ildouble: 1
  112702. +ldouble: 1
  112703. +Test "Real part of: cacosh (0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  112704. +ildouble: 1
  112705. +ldouble: 1
  112706. +Test "Real part of: cacosh (0x1.fp-1025 - 0x1.0000000000001p0 i)":
  112707. +ildouble: 1
  112708. +ldouble: 1
  112709. +Test "Real part of: cacosh (0x1.fp-1025 - 1.0 i)":
  112710. +double: 1
  112711. +idouble: 1
  112712. +ildouble: 1
  112713. +ldouble: 1
  112714. +Test "Real part of: cacosh (0x1.fp-1025 - 1.5 i)":
  112715. +double: 1
  112716. +idouble: 1
  112717. +ildouble: 1
  112718. +ldouble: 1
  112719. +Test "Real part of: cacosh (0x1.fp-129 + 0.5 i)":
  112720. +float: 1
  112721. +ifloat: 1
  112722. +ildouble: 1
  112723. +ldouble: 1
  112724. +Test "Real part of: cacosh (0x1.fp-129 + 1.0 i)":
  112725. +double: 1
  112726. +float: 1
  112727. +idouble: 1
  112728. +ifloat: 1
  112729. +ildouble: 1
  112730. +ldouble: 1
  112731. +Test "Real part of: cacosh (0x1.fp-129 + 1.5 i)":
  112732. +double: 1
  112733. +idouble: 1
  112734. +ildouble: 1
  112735. +ldouble: 1
  112736. +Test "Real part of: cacosh (0x1.fp-129 - 0.5 i)":
  112737. +float: 1
  112738. +ifloat: 1
  112739. +ildouble: 1
  112740. +ldouble: 1
  112741. +Test "Real part of: cacosh (0x1.fp-129 - 1.0 i)":
  112742. +double: 1
  112743. +float: 1
  112744. +idouble: 1
  112745. +ifloat: 1
  112746. +ildouble: 1
  112747. +ldouble: 1
  112748. +Test "Real part of: cacosh (0x1.fp-129 - 1.5 i)":
  112749. +double: 1
  112750. +idouble: 1
  112751. +ildouble: 1
  112752. +ldouble: 1
  112753. +Test "Real part of: cacosh (0x1.fp-16385 + 0.5 i)":
  112754. +ildouble: 1
  112755. +ldouble: 1
  112756. +Test "Real part of: cacosh (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
  112757. +ildouble: 1
  112758. +ldouble: 1
  112759. +Test "Real part of: cacosh (0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
  112760. +ildouble: 1
  112761. +ldouble: 1
  112762. +Test "Real part of: cacosh (0x1.fp-16385 + 0x1.0000000000000002p0 i)":
  112763. +ildouble: 1
  112764. +ldouble: 1
  112765. +Test "Real part of: cacosh (0x1.fp-16385 + 1.0 i)":
  112766. +ildouble: 1
  112767. +ldouble: 1
  112768. +Test "Real part of: cacosh (0x1.fp-16385 + 1.5 i)":
  112769. +ildouble: 1
  112770. +ldouble: 1
  112771. +Test "Real part of: cacosh (0x1.fp-16385 - 0.5 i)":
  112772. +ildouble: 1
  112773. +ldouble: 1
  112774. +Test "Real part of: cacosh (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
  112775. +ildouble: 1
  112776. +ldouble: 1
  112777. +Test "Real part of: cacosh (0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
  112778. +ildouble: 1
  112779. +ldouble: 1
  112780. +Test "Real part of: cacosh (0x1.fp-16385 - 0x1.0000000000000002p0 i)":
  112781. +ildouble: 1
  112782. +ldouble: 1
  112783. +Test "Real part of: cacosh (0x1.fp-16385 - 1.0 i)":
  112784. +ildouble: 1
  112785. +ldouble: 1
  112786. +Test "Real part of: cacosh (0x1.fp-16385 - 1.5 i)":
  112787. +ildouble: 1
  112788. +ldouble: 1
  112789. +Test "Real part of: cacosh (0x1.fp-30 + 1.0 i)":
  112790. +double: 1
  112791. +float: 1
  112792. +idouble: 1
  112793. +ifloat: 1
  112794. +ildouble: 1
  112795. +ldouble: 1
  112796. +Test "Real part of: cacosh (0x1.fp-30 - 1.0 i)":
  112797. +double: 1
  112798. +float: 1
  112799. +idouble: 1
  112800. +ifloat: 1
  112801. +ildouble: 1
  112802. +ldouble: 1
  112803. +Test "Real part of: cacosh (0x1.fp1023 + 0x1.fp1023 i)":
  112804. +double: 1
  112805. +idouble: 1
  112806. +Test "Real part of: cacosh (0x1.fp127 + 0x1.fp127 i)":
  112807. +double: 1
  112808. +idouble: 1
  112809. +Test "Real part of: cacosh (0x1.fp16383 + 0x1.fp16383 i)":
  112810. +ildouble: 1
  112811. +ldouble: 1
  112812. +Test "Real part of: cacosh (0x1p-105 + 0.5 i)":
  112813. +float: 1
  112814. +ifloat: 1
  112815. +Test "Real part of: cacosh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  112816. +ildouble: 1
  112817. +ldouble: 1
  112818. +Test "Imaginary part of: cacosh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  112819. +ildouble: 1
  112820. +ldouble: 1
  112821. +Test "Real part of: cacosh (0x1p-105 - 0.5 i)":
  112822. +float: 1
  112823. +ifloat: 1
  112824. +Test "Real part of: cacosh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  112825. +ildouble: 1
  112826. +ldouble: 1
  112827. +Test "Imaginary part of: cacosh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  112828. +ildouble: 1
  112829. +ldouble: 1
  112830. +Test "Real part of: cacosh (0x1p-112 + 0.5 i)":
  112831. +float: 1
  112832. +ifloat: 1
  112833. +Test "Imaginary part of: cacosh (0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
  112834. +ildouble: 1
  112835. +ldouble: 1
  112836. +Test "Real part of: cacosh (0x1p-112 - 0.5 i)":
  112837. +float: 1
  112838. +ifloat: 1
  112839. +Test "Imaginary part of: cacosh (0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
  112840. +ildouble: 1
  112841. +ldouble: 1
  112842. +Test "Real part of: cacosh (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  112843. +ildouble: 1
  112844. +ldouble: 1
  112845. +Test "Real part of: cacosh (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  112846. +ildouble: 1
  112847. +ldouble: 1
  112848. +Test "Real part of: cacosh (0x1p-23 + 0.5 i)":
  112849. +float: 1
  112850. +ifloat: 1
  112851. +ildouble: 2
  112852. +ldouble: 2
  112853. +Test "Real part of: cacosh (0x1p-23 + 0x0.ffffffp0 i)":
  112854. +double: 1
  112855. +idouble: 1
  112856. +Test "Imaginary part of: cacosh (0x1p-23 + 0x1.000002p0 i)":
  112857. +ildouble: 1
  112858. +ldouble: 1
  112859. +Test "Real part of: cacosh (0x1p-23 - 0.5 i)":
  112860. +float: 1
  112861. +ifloat: 1
  112862. +ildouble: 2
  112863. +ldouble: 2
  112864. +Test "Real part of: cacosh (0x1p-23 - 0x0.ffffffp0 i)":
  112865. +double: 1
  112866. +idouble: 1
  112867. +Test "Imaginary part of: cacosh (0x1p-23 - 0x1.000002p0 i)":
  112868. +ildouble: 1
  112869. +ldouble: 1
  112870. +Test "Real part of: cacosh (0x1p-52 + 0.5 i)":
  112871. +float: 1
  112872. +ifloat: 1
  112873. +ildouble: 1
  112874. +ldouble: 1
  112875. +Test "Imaginary part of: cacosh (0x1p-52 + 0.5 i)":
  112876. +ildouble: 1
  112877. +ldouble: 1
  112878. +Test "Imaginary part of: cacosh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
  112879. +ildouble: 1
  112880. +ldouble: 1
  112881. +Test "Real part of: cacosh (0x1p-52 - 0.5 i)":
  112882. +float: 1
  112883. +ifloat: 1
  112884. +ildouble: 1
  112885. +ldouble: 1
  112886. +Test "Imaginary part of: cacosh (0x1p-52 - 0.5 i)":
  112887. +ildouble: 1
  112888. +ldouble: 1
  112889. +Test "Imaginary part of: cacosh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
  112890. +ildouble: 1
  112891. +ldouble: 1
  112892. +Test "Real part of: cacosh (0x1p-63 + 0.5 i)":
  112893. +float: 1
  112894. +ifloat: 1
  112895. +Test "Imaginary part of: cacosh (0x1p-63 + 0.5 i)":
  112896. +ildouble: 1
  112897. +ldouble: 1
  112898. +Test "Real part of: cacosh (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
  112899. +ildouble: 1
  112900. +ldouble: 1
  112901. +Test "Real part of: cacosh (0x1p-63 + 0x1.0000000000000002p0 i)":
  112902. +ildouble: 1
  112903. +ldouble: 1
  112904. +Test "Real part of: cacosh (0x1p-63 - 0.5 i)":
  112905. +float: 1
  112906. +ifloat: 1
  112907. +Test "Imaginary part of: cacosh (0x1p-63 - 0.5 i)":
  112908. +ildouble: 1
  112909. +ldouble: 1
  112910. +Test "Real part of: cacosh (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
  112911. +ildouble: 1
  112912. +ldouble: 1
  112913. +Test "Real part of: cacosh (0x1p-63 - 0x1.0000000000000002p0 i)":
  112914. +ildouble: 1
  112915. +ldouble: 1
  112916. +Test "Real part of: cacosh (0x1p500 + 1.0 i)":
  112917. +ildouble: 1
  112918. +ldouble: 1
  112919. +Test "Real part of: cacosh (0x1p500 - 1.0 i)":
  112920. +ildouble: 1
  112921. +ldouble: 1
  112922. +Test "Real part of: cacosh (0x1p5000 + 1.0 i)":
  112923. +ildouble: 1
  112924. +ldouble: 1
  112925. +Test "Real part of: cacosh (0x1p5000 - 1.0 i)":
  112926. +ildouble: 1
  112927. +ldouble: 1
  112928. +Test "Imaginary part of: cacosh (1.0 + 0.25 i)":
  112929. +double: 1
  112930. +idouble: 1
  112931. +Test "Real part of: cacosh (1.0 + 0.5 i)":
  112932. +float: 1
  112933. +ifloat: 1
  112934. +Test "Imaginary part of: cacosh (1.0 + 0.5 i)":
  112935. +float: 1
  112936. +ifloat: 1
  112937. +Test "Real part of: cacosh (1.0 + 0x1.fp-10 i)":
  112938. +float: 1
  112939. +ifloat: 1
  112940. +ildouble: 1
  112941. +ldouble: 1
  112942. +Test "Imaginary part of: cacosh (1.0 + 0x1.fp-10 i)":
  112943. +float: 2
  112944. +ifloat: 2
  112945. +Test "Imaginary part of: cacosh (1.0 + 0x1.fp-100 i)":
  112946. +ildouble: 1
  112947. +ldouble: 1
  112948. +Test "Real part of: cacosh (1.0 + 0x1.fp-30 i)":
  112949. +ildouble: 1
  112950. +ldouble: 1
  112951. +Test "Real part of: cacosh (1.0 + 0x1p500 i)":
  112952. +ildouble: 1
  112953. +ldouble: 1
  112954. +Test "Real part of: cacosh (1.0 + 0x1p5000 i)":
  112955. +ildouble: 1
  112956. +ldouble: 1
  112957. +Test "Imaginary part of: cacosh (1.0 - 0.25 i)":
  112958. +double: 1
  112959. +idouble: 1
  112960. +Test "Real part of: cacosh (1.0 - 0.5 i)":
  112961. +float: 1
  112962. +ifloat: 1
  112963. +Test "Imaginary part of: cacosh (1.0 - 0.5 i)":
  112964. +float: 1
  112965. +ifloat: 1
  112966. +Test "Real part of: cacosh (1.0 - 0x1.fp-10 i)":
  112967. +float: 1
  112968. +ifloat: 1
  112969. +ildouble: 1
  112970. +ldouble: 1
  112971. +Test "Imaginary part of: cacosh (1.0 - 0x1.fp-10 i)":
  112972. +float: 2
  112973. +ifloat: 2
  112974. +Test "Imaginary part of: cacosh (1.0 - 0x1.fp-100 i)":
  112975. +ildouble: 1
  112976. +ldouble: 1
  112977. +Test "Real part of: cacosh (1.0 - 0x1.fp-30 i)":
  112978. +ildouble: 1
  112979. +ldouble: 1
  112980. +Test "Real part of: cacosh (1.0 - 0x1p500 i)":
  112981. +ildouble: 1
  112982. +ldouble: 1
  112983. +Test "Real part of: cacosh (1.0 - 0x1p5000 i)":
  112984. +ildouble: 1
  112985. +ldouble: 1
  112986. +
  112987. +# casin
  112988. +Test "Imaginary part of: casin (+0 + 0.5 i)":
  112989. +float: 1
  112990. +ifloat: 1
  112991. +ildouble: 1
  112992. +ldouble: 1
  112993. +Test "Imaginary part of: casin (+0 + 1.0 i)":
  112994. +double: 1
  112995. +float: 1
  112996. +idouble: 1
  112997. +ifloat: 1
  112998. +ildouble: 1
  112999. +ldouble: 1
  113000. +Test "Imaginary part of: casin (+0 + 1.5 i)":
  113001. +double: 1
  113002. +idouble: 1
  113003. +ildouble: 1
  113004. +ldouble: 1
  113005. +Test "Imaginary part of: casin (+0 - 0.5 i)":
  113006. +float: 1
  113007. +ifloat: 1
  113008. +ildouble: 1
  113009. +ldouble: 1
  113010. +Test "Imaginary part of: casin (+0 - 1.0 i)":
  113011. +double: 1
  113012. +float: 1
  113013. +idouble: 1
  113014. +ifloat: 1
  113015. +ildouble: 1
  113016. +ldouble: 1
  113017. +Test "Imaginary part of: casin (+0 - 1.5 i)":
  113018. +double: 1
  113019. +idouble: 1
  113020. +ildouble: 1
  113021. +ldouble: 1
  113022. +Test "Imaginary part of: casin (-0 + 0.5 i)":
  113023. +float: 1
  113024. +ifloat: 1
  113025. +ildouble: 1
  113026. +ldouble: 1
  113027. +Test "Imaginary part of: casin (-0 + 1.0 i)":
  113028. +double: 1
  113029. +float: 1
  113030. +idouble: 1
  113031. +ifloat: 1
  113032. +ildouble: 1
  113033. +ldouble: 1
  113034. +Test "Imaginary part of: casin (-0 + 1.5 i)":
  113035. +double: 1
  113036. +idouble: 1
  113037. +ildouble: 1
  113038. +ldouble: 1
  113039. +Test "Imaginary part of: casin (-0 - 0.5 i)":
  113040. +float: 1
  113041. +ifloat: 1
  113042. +ildouble: 1
  113043. +ldouble: 1
  113044. +Test "Imaginary part of: casin (-0 - 1.0 i)":
  113045. +double: 1
  113046. +float: 1
  113047. +idouble: 1
  113048. +ifloat: 1
  113049. +ildouble: 1
  113050. +ldouble: 1
  113051. +Test "Imaginary part of: casin (-0 - 1.5 i)":
  113052. +double: 1
  113053. +idouble: 1
  113054. +ildouble: 1
  113055. +ldouble: 1
  113056. +Test "Imaginary part of: casin (-0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  113057. +ildouble: 1
  113058. +ldouble: 1
  113059. +Test "Imaginary part of: casin (-0.0 + 0x0.ffffffffffffffffp0 i)":
  113060. +ildouble: 1
  113061. +ldouble: 1
  113062. +Test "Imaginary part of: casin (-0.0 + 0x1.0000000000000000000000000001p0 i)":
  113063. +ildouble: 1
  113064. +ldouble: 1
  113065. +Test "Imaginary part of: casin (-0.0 + 0x1.0000000000000002p0 i)":
  113066. +ildouble: 1
  113067. +ldouble: 1
  113068. +Test "Imaginary part of: casin (-0.0 + 0x1.0000000000001p0 i)":
  113069. +ildouble: 1
  113070. +ldouble: 1
  113071. +Test "Imaginary part of: casin (-0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  113072. +ildouble: 1
  113073. +ldouble: 1
  113074. +Test "Imaginary part of: casin (-0.0 - 0x0.ffffffffffffffffp0 i)":
  113075. +ildouble: 1
  113076. +ldouble: 1
  113077. +Test "Imaginary part of: casin (-0.0 - 0x1.0000000000000000000000000001p0 i)":
  113078. +ildouble: 1
  113079. +ldouble: 1
  113080. +Test "Imaginary part of: casin (-0.0 - 0x1.0000000000000002p0 i)":
  113081. +ildouble: 1
  113082. +ldouble: 1
  113083. +Test "Imaginary part of: casin (-0.0 - 0x1.0000000000001p0 i)":
  113084. +ildouble: 1
  113085. +ldouble: 1
  113086. +Test "Imaginary part of: casin (-0.25 + 1.0 i)":
  113087. +float: 1
  113088. +ifloat: 1
  113089. +ildouble: 1
  113090. +ldouble: 1
  113091. +Test "Imaginary part of: casin (-0.25 - 1.0 i)":
  113092. +float: 1
  113093. +ifloat: 1
  113094. +ildouble: 1
  113095. +ldouble: 1
  113096. +Test "Imaginary part of: casin (-0.5 + 0x1.fp-129 i)":
  113097. +double: 1
  113098. +idouble: 1
  113099. +Test "Imaginary part of: casin (-0.5 + 0x1p-105 i)":
  113100. +double: 1
  113101. +idouble: 1
  113102. +ildouble: 1
  113103. +ldouble: 1
  113104. +Test "Real part of: casin (-0.5 + 0x1p-112 i)":
  113105. +ildouble: 1
  113106. +ldouble: 1
  113107. +Test "Imaginary part of: casin (-0.5 + 0x1p-112 i)":
  113108. +double: 1
  113109. +idouble: 1
  113110. +ildouble: 1
  113111. +ldouble: 1
  113112. +Test "Real part of: casin (-0.5 + 0x1p-23 i)":
  113113. +ildouble: 1
  113114. +ldouble: 1
  113115. +Test "Imaginary part of: casin (-0.5 + 0x1p-23 i)":
  113116. +double: 1
  113117. +idouble: 1
  113118. +ildouble: 1
  113119. +ldouble: 1
  113120. +Test "Imaginary part of: casin (-0.5 + 0x1p-63 i)":
  113121. +ildouble: 1
  113122. +ldouble: 1
  113123. +Test "Real part of: casin (-0.5 + 1.0 i)":
  113124. +ildouble: 1
  113125. +ldouble: 1
  113126. +Test "Imaginary part of: casin (-0.5 + 1.0 i)":
  113127. +double: 1
  113128. +idouble: 1
  113129. +ildouble: 1
  113130. +ldouble: 1
  113131. +Test "Imaginary part of: casin (-0.5 - 0x1.fp-129 i)":
  113132. +double: 1
  113133. +idouble: 1
  113134. +Test "Imaginary part of: casin (-0.5 - 0x1p-105 i)":
  113135. +double: 1
  113136. +idouble: 1
  113137. +ildouble: 1
  113138. +ldouble: 1
  113139. +Test "Real part of: casin (-0.5 - 0x1p-112 i)":
  113140. +ildouble: 1
  113141. +ldouble: 1
  113142. +Test "Imaginary part of: casin (-0.5 - 0x1p-112 i)":
  113143. +double: 1
  113144. +idouble: 1
  113145. +ildouble: 1
  113146. +ldouble: 1
  113147. +Test "Real part of: casin (-0.5 - 0x1p-23 i)":
  113148. +ildouble: 1
  113149. +ldouble: 1
  113150. +Test "Imaginary part of: casin (-0.5 - 0x1p-23 i)":
  113151. +double: 1
  113152. +idouble: 1
  113153. +ildouble: 1
  113154. +ldouble: 1
  113155. +Test "Imaginary part of: casin (-0.5 - 0x1p-63 i)":
  113156. +ildouble: 1
  113157. +ldouble: 1
  113158. +Test "Real part of: casin (-0.5 - 1.0 i)":
  113159. +ildouble: 1
  113160. +ldouble: 1
  113161. +Test "Imaginary part of: casin (-0.5 - 1.0 i)":
  113162. +double: 1
  113163. +idouble: 1
  113164. +ildouble: 1
  113165. +ldouble: 1
  113166. +Test "Real part of: casin (-0x0.fffffffffffff8p0 + 0.0 i)":
  113167. +ildouble: 1
  113168. +ldouble: 1
  113169. +Test "Real part of: casin (-0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
  113170. +ildouble: 1
  113171. +ldouble: 1
  113172. +Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
  113173. +double: 1
  113174. +idouble: 1
  113175. +Test "Real part of: casin (-0x0.fffffffffffff8p0 - 0.0 i)":
  113176. +ildouble: 1
  113177. +ldouble: 1
  113178. +Test "Real part of: casin (-0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
  113179. +ildouble: 1
  113180. +ldouble: 1
  113181. +Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
  113182. +double: 1
  113183. +idouble: 1
  113184. +Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
  113185. +ildouble: 1
  113186. +ldouble: 1
  113187. +Test "Imaginary part of: casin (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
  113188. +ildouble: 1
  113189. +ldouble: 1
  113190. +Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
  113191. +ildouble: 1
  113192. +ldouble: 1
  113193. +Test "Imaginary part of: casin (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
  113194. +ildouble: 1
  113195. +ldouble: 1
  113196. +Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-112 i)":
  113197. +ildouble: 1
  113198. +ldouble: 1
  113199. +Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-112 i)":
  113200. +ildouble: 1
  113201. +ldouble: 1
  113202. +Test "Real part of: casin (-0x0.ffffffffffffffffp0 + 0.0 i)":
  113203. +ildouble: 1
  113204. +ldouble: 1
  113205. +Test "Real part of: casin (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
  113206. +ildouble: 1
  113207. +ldouble: 1
  113208. +Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
  113209. +ildouble: 1
  113210. +ldouble: 1
  113211. +Test "Real part of: casin (-0x0.ffffffffffffffffp0 - 0.0 i)":
  113212. +ildouble: 1
  113213. +ldouble: 1
  113214. +Test "Real part of: casin (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
  113215. +ildouble: 1
  113216. +ldouble: 1
  113217. +Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
  113218. +ildouble: 1
  113219. +ldouble: 1
  113220. +Test "Real part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
  113221. +ildouble: 1
  113222. +ldouble: 1
  113223. +Test "Imaginary part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
  113224. +float: 2
  113225. +ifloat: 2
  113226. +Test "Real part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
  113227. +ildouble: 1
  113228. +ldouble: 1
  113229. +Test "Imaginary part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
  113230. +float: 2
  113231. +ifloat: 2
  113232. +Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 + 0.0 i)":
  113233. +ildouble: 1
  113234. +ldouble: 1
  113235. +Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
  113236. +ildouble: 1
  113237. +ldouble: 1
  113238. +Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
  113239. +ildouble: 1
  113240. +ldouble: 1
  113241. +Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 - 0.0 i)":
  113242. +ildouble: 1
  113243. +ldouble: 1
  113244. +Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
  113245. +ildouble: 1
  113246. +ldouble: 1
  113247. +Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
  113248. +ildouble: 1
  113249. +ldouble: 1
  113250. +Test "Imaginary part of: casin (-0x1.000002p0 + 0x1p-23 i)":
  113251. +float: 1
  113252. +ifloat: 1
  113253. +ildouble: 1
  113254. +ldouble: 1
  113255. +Test "Imaginary part of: casin (-0x1.000002p0 - 0x1p-23 i)":
  113256. +float: 1
  113257. +ifloat: 1
  113258. +ildouble: 1
  113259. +ldouble: 1
  113260. +Test "Real part of: casin (-0x1.fp-10 + 1.0 i)":
  113261. +float: 1
  113262. +ifloat: 1
  113263. +ildouble: 1
  113264. +ldouble: 1
  113265. +Test "Imaginary part of: casin (-0x1.fp-10 + 1.0 i)":
  113266. +double: 1
  113267. +idouble: 1
  113268. +Test "Real part of: casin (-0x1.fp-10 - 1.0 i)":
  113269. +float: 1
  113270. +ifloat: 1
  113271. +ildouble: 1
  113272. +ldouble: 1
  113273. +Test "Imaginary part of: casin (-0x1.fp-10 - 1.0 i)":
  113274. +double: 1
  113275. +idouble: 1
  113276. +Test "Imaginary part of: casin (-0x1.fp-100 + 1.0 i)":
  113277. +double: 1
  113278. +float: 1
  113279. +idouble: 1
  113280. +ifloat: 1
  113281. +ildouble: 1
  113282. +ldouble: 1
  113283. +Test "Imaginary part of: casin (-0x1.fp-100 - 1.0 i)":
  113284. +double: 1
  113285. +float: 1
  113286. +idouble: 1
  113287. +ifloat: 1
  113288. +ildouble: 1
  113289. +ldouble: 1
  113290. +Test "Imaginary part of: casin (-0x1.fp-1000 + 1.0 i)":
  113291. +double: 1
  113292. +idouble: 1
  113293. +ildouble: 1
  113294. +ldouble: 1
  113295. +Test "Imaginary part of: casin (-0x1.fp-1000 - 1.0 i)":
  113296. +double: 1
  113297. +idouble: 1
  113298. +ildouble: 1
  113299. +ldouble: 1
  113300. +Test "Imaginary part of: casin (-0x1.fp-10000 + 1.0 i)":
  113301. +ildouble: 1
  113302. +ldouble: 1
  113303. +Test "Imaginary part of: casin (-0x1.fp-10000 - 1.0 i)":
  113304. +ildouble: 1
  113305. +ldouble: 1
  113306. +Test "Imaginary part of: casin (-0x1.fp-1025 + 0.5 i)":
  113307. +ildouble: 1
  113308. +ldouble: 1
  113309. +Test "Real part of: casin (-0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
  113310. +ildouble: 1
  113311. +ldouble: 1
  113312. +Test "Imaginary part of: casin (-0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  113313. +ildouble: 1
  113314. +ldouble: 1
  113315. +Test "Imaginary part of: casin (-0x1.fp-1025 + 0x1.0000000000001p0 i)":
  113316. +ildouble: 1
  113317. +ldouble: 1
  113318. +Test "Imaginary part of: casin (-0x1.fp-1025 + 1.0 i)":
  113319. +double: 1
  113320. +idouble: 1
  113321. +ildouble: 1
  113322. +ldouble: 1
  113323. +Test "Imaginary part of: casin (-0x1.fp-1025 + 1.5 i)":
  113324. +double: 1
  113325. +idouble: 1
  113326. +ildouble: 1
  113327. +ldouble: 1
  113328. +Test "Imaginary part of: casin (-0x1.fp-1025 - 0.5 i)":
  113329. +ildouble: 1
  113330. +ldouble: 1
  113331. +Test "Real part of: casin (-0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
  113332. +ildouble: 1
  113333. +ldouble: 1
  113334. +Test "Imaginary part of: casin (-0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  113335. +ildouble: 1
  113336. +ldouble: 1
  113337. +Test "Imaginary part of: casin (-0x1.fp-1025 - 0x1.0000000000001p0 i)":
  113338. +ildouble: 1
  113339. +ldouble: 1
  113340. +Test "Imaginary part of: casin (-0x1.fp-1025 - 1.0 i)":
  113341. +double: 1
  113342. +idouble: 1
  113343. +ildouble: 1
  113344. +ldouble: 1
  113345. +Test "Imaginary part of: casin (-0x1.fp-1025 - 1.5 i)":
  113346. +double: 1
  113347. +idouble: 1
  113348. +ildouble: 1
  113349. +ldouble: 1
  113350. +Test "Imaginary part of: casin (-0x1.fp-129 + 0.5 i)":
  113351. +float: 1
  113352. +ifloat: 1
  113353. +ildouble: 1
  113354. +ldouble: 1
  113355. +Test "Imaginary part of: casin (-0x1.fp-129 + 1.0 i)":
  113356. +double: 1
  113357. +float: 1
  113358. +idouble: 1
  113359. +ifloat: 1
  113360. +ildouble: 1
  113361. +ldouble: 1
  113362. +Test "Imaginary part of: casin (-0x1.fp-129 + 1.5 i)":
  113363. +double: 1
  113364. +idouble: 1
  113365. +ildouble: 1
  113366. +ldouble: 1
  113367. +Test "Imaginary part of: casin (-0x1.fp-129 - 0.5 i)":
  113368. +float: 1
  113369. +ifloat: 1
  113370. +ildouble: 1
  113371. +ldouble: 1
  113372. +Test "Imaginary part of: casin (-0x1.fp-129 - 1.0 i)":
  113373. +double: 1
  113374. +float: 1
  113375. +idouble: 1
  113376. +ifloat: 1
  113377. +ildouble: 1
  113378. +ldouble: 1
  113379. +Test "Imaginary part of: casin (-0x1.fp-129 - 1.5 i)":
  113380. +double: 1
  113381. +idouble: 1
  113382. +ildouble: 1
  113383. +ldouble: 1
  113384. +Test "Imaginary part of: casin (-0x1.fp-16385 + 0.5 i)":
  113385. +ildouble: 1
  113386. +ldouble: 1
  113387. +Test "Imaginary part of: casin (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
  113388. +ildouble: 1
  113389. +ldouble: 1
  113390. +Test "Imaginary part of: casin (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
  113391. +ildouble: 1
  113392. +ldouble: 1
  113393. +Test "Imaginary part of: casin (-0x1.fp-16385 + 0x1.0000000000000002p0 i)":
  113394. +ildouble: 1
  113395. +ldouble: 1
  113396. +Test "Imaginary part of: casin (-0x1.fp-16385 + 1.0 i)":
  113397. +ildouble: 1
  113398. +ldouble: 1
  113399. +Test "Imaginary part of: casin (-0x1.fp-16385 + 1.5 i)":
  113400. +ildouble: 1
  113401. +ldouble: 1
  113402. +Test "Imaginary part of: casin (-0x1.fp-16385 - 0.5 i)":
  113403. +ildouble: 1
  113404. +ldouble: 1
  113405. +Test "Imaginary part of: casin (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
  113406. +ildouble: 1
  113407. +ldouble: 1
  113408. +Test "Imaginary part of: casin (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
  113409. +ildouble: 1
  113410. +ldouble: 1
  113411. +Test "Imaginary part of: casin (-0x1.fp-16385 - 0x1.0000000000000002p0 i)":
  113412. +ildouble: 1
  113413. +ldouble: 1
  113414. +Test "Imaginary part of: casin (-0x1.fp-16385 - 1.0 i)":
  113415. +ildouble: 1
  113416. +ldouble: 1
  113417. +Test "Imaginary part of: casin (-0x1.fp-16385 - 1.5 i)":
  113418. +ildouble: 1
  113419. +ldouble: 1
  113420. +Test "Real part of: casin (-0x1.fp-30 + 1.0 i)":
  113421. +ildouble: 1
  113422. +ldouble: 1
  113423. +Test "Imaginary part of: casin (-0x1.fp-30 + 1.0 i)":
  113424. +double: 1
  113425. +float: 1
  113426. +idouble: 1
  113427. +ifloat: 1
  113428. +ildouble: 1
  113429. +ldouble: 1
  113430. +Test "Real part of: casin (-0x1.fp-30 - 1.0 i)":
  113431. +ildouble: 1
  113432. +ldouble: 1
  113433. +Test "Imaginary part of: casin (-0x1.fp-30 - 1.0 i)":
  113434. +double: 1
  113435. +float: 1
  113436. +idouble: 1
  113437. +ifloat: 1
  113438. +ildouble: 1
  113439. +ldouble: 1
  113440. +Test "Imaginary part of: casin (-0x1p-105 + 0.5 i)":
  113441. +float: 1
  113442. +ifloat: 1
  113443. +Test "Imaginary part of: casin (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  113444. +ildouble: 1
  113445. +ldouble: 1
  113446. +Test "Imaginary part of: casin (-0x1p-105 - 0.5 i)":
  113447. +float: 1
  113448. +ifloat: 1
  113449. +Test "Imaginary part of: casin (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  113450. +ildouble: 1
  113451. +ldouble: 1
  113452. +Test "Imaginary part of: casin (-0x1p-112 + 0.5 i)":
  113453. +float: 1
  113454. +ifloat: 1
  113455. +Test "Imaginary part of: casin (-0x1p-112 - 0.5 i)":
  113456. +float: 1
  113457. +ifloat: 1
  113458. +Test "Real part of: casin (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  113459. +ildouble: 1
  113460. +ldouble: 1
  113461. +Test "Imaginary part of: casin (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  113462. +ildouble: 1
  113463. +ldouble: 1
  113464. +Test "Real part of: casin (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  113465. +ildouble: 1
  113466. +ldouble: 1
  113467. +Test "Imaginary part of: casin (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  113468. +ildouble: 1
  113469. +ldouble: 1
  113470. +Test "Real part of: casin (-0x1p-23 + 0.5 i)":
  113471. +double: 1
  113472. +float: 1
  113473. +idouble: 1
  113474. +ifloat: 1
  113475. +ildouble: 2
  113476. +ldouble: 2
  113477. +Test "Imaginary part of: casin (-0x1p-23 + 0.5 i)":
  113478. +float: 1
  113479. +ifloat: 1
  113480. +ildouble: 2
  113481. +ldouble: 2
  113482. +Test "Imaginary part of: casin (-0x1p-23 + 0x0.ffffffp0 i)":
  113483. +double: 1
  113484. +idouble: 1
  113485. +Test "Real part of: casin (-0x1p-23 + 0x1.000002p0 i)":
  113486. +double: 1
  113487. +float: 1
  113488. +idouble: 1
  113489. +ifloat: 1
  113490. +ildouble: 1
  113491. +ldouble: 1
  113492. +Test "Real part of: casin (-0x1p-23 - 0.5 i)":
  113493. +double: 1
  113494. +float: 1
  113495. +idouble: 1
  113496. +ifloat: 1
  113497. +ildouble: 2
  113498. +ldouble: 2
  113499. +Test "Imaginary part of: casin (-0x1p-23 - 0.5 i)":
  113500. +float: 1
  113501. +ifloat: 1
  113502. +ildouble: 2
  113503. +ldouble: 2
  113504. +Test "Imaginary part of: casin (-0x1p-23 - 0x0.ffffffp0 i)":
  113505. +double: 1
  113506. +idouble: 1
  113507. +Test "Real part of: casin (-0x1p-23 - 0x1.000002p0 i)":
  113508. +double: 1
  113509. +float: 1
  113510. +idouble: 1
  113511. +ifloat: 1
  113512. +ildouble: 1
  113513. +ldouble: 1
  113514. +Test "Real part of: casin (-0x1p-52 + 0.5 i)":
  113515. +ildouble: 1
  113516. +ldouble: 1
  113517. +Test "Imaginary part of: casin (-0x1p-52 + 0.5 i)":
  113518. +float: 1
  113519. +ifloat: 1
  113520. +ildouble: 1
  113521. +ldouble: 1
  113522. +Test "Real part of: casin (-0x1p-52 + 0x1.0000000000001p0 i)":
  113523. +ildouble: 1
  113524. +ldouble: 1
  113525. +Test "Real part of: casin (-0x1p-52 - 0.5 i)":
  113526. +ildouble: 1
  113527. +ldouble: 1
  113528. +Test "Imaginary part of: casin (-0x1p-52 - 0.5 i)":
  113529. +float: 1
  113530. +ifloat: 1
  113531. +ildouble: 1
  113532. +ldouble: 1
  113533. +Test "Real part of: casin (-0x1p-52 - 0x1.0000000000001p0 i)":
  113534. +ildouble: 1
  113535. +ldouble: 1
  113536. +Test "Imaginary part of: casin (-0x1p-63 + 0.5 i)":
  113537. +float: 1
  113538. +ifloat: 1
  113539. +Test "Imaginary part of: casin (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
  113540. +ildouble: 1
  113541. +ldouble: 1
  113542. +Test "Real part of: casin (-0x1p-63 + 0x1.0000000000000002p0 i)":
  113543. +ildouble: 1
  113544. +ldouble: 1
  113545. +Test "Imaginary part of: casin (-0x1p-63 + 0x1.0000000000000002p0 i)":
  113546. +ildouble: 1
  113547. +ldouble: 1
  113548. +Test "Imaginary part of: casin (-0x1p-63 - 0.5 i)":
  113549. +float: 1
  113550. +ifloat: 1
  113551. +Test "Imaginary part of: casin (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
  113552. +ildouble: 1
  113553. +ldouble: 1
  113554. +Test "Real part of: casin (-0x1p-63 - 0x1.0000000000000002p0 i)":
  113555. +ildouble: 1
  113556. +ldouble: 1
  113557. +Test "Imaginary part of: casin (-0x1p-63 - 0x1.0000000000000002p0 i)":
  113558. +ildouble: 1
  113559. +ldouble: 1
  113560. +Test "Imaginary part of: casin (-0x1p500 + 1.0 i)":
  113561. +ildouble: 1
  113562. +ldouble: 1
  113563. +Test "Imaginary part of: casin (-0x1p500 - 1.0 i)":
  113564. +ildouble: 1
  113565. +ldouble: 1
  113566. +Test "Imaginary part of: casin (-0x1p5000 + 1.0 i)":
  113567. +ildouble: 1
  113568. +ldouble: 1
  113569. +Test "Imaginary part of: casin (-0x1p5000 - 1.0 i)":
  113570. +ildouble: 1
  113571. +ldouble: 1
  113572. +Test "Real part of: casin (-1.0 + 0.25 i)":
  113573. +double: 1
  113574. +idouble: 1
  113575. +ildouble: 1
  113576. +ldouble: 1
  113577. +Test "Real part of: casin (-1.0 + 0.5 i)":
  113578. +float: 1
  113579. +ifloat: 1
  113580. +Test "Imaginary part of: casin (-1.0 + 0.5 i)":
  113581. +float: 1
  113582. +ifloat: 1
  113583. +Test "Imaginary part of: casin (-1.0 + 0x1.fp-10 i)":
  113584. +float: 1
  113585. +ifloat: 1
  113586. +ildouble: 1
  113587. +ldouble: 1
  113588. +Test "Real part of: casin (-1.0 + 0x1.fp-129 i)":
  113589. +ildouble: 1
  113590. +ldouble: 1
  113591. +Test "Imaginary part of: casin (-1.0 + 0x1.fp-30 i)":
  113592. +ildouble: 1
  113593. +ldouble: 1
  113594. +Test "Imaginary part of: casin (-1.0 + 0x1p500 i)":
  113595. +ildouble: 1
  113596. +ldouble: 1
  113597. +Test "Imaginary part of: casin (-1.0 + 0x1p5000 i)":
  113598. +ildouble: 1
  113599. +ldouble: 1
  113600. +Test "Real part of: casin (-1.0 - 0.25 i)":
  113601. +double: 1
  113602. +idouble: 1
  113603. +ildouble: 1
  113604. +ldouble: 1
  113605. +Test "Real part of: casin (-1.0 - 0.5 i)":
  113606. +float: 1
  113607. +ifloat: 1
  113608. +Test "Imaginary part of: casin (-1.0 - 0.5 i)":
  113609. +float: 1
  113610. +ifloat: 1
  113611. +Test "Imaginary part of: casin (-1.0 - 0x1.fp-10 i)":
  113612. +float: 1
  113613. +ifloat: 1
  113614. +ildouble: 1
  113615. +ldouble: 1
  113616. +Test "Real part of: casin (-1.0 - 0x1.fp-129 i)":
  113617. +ildouble: 1
  113618. +ldouble: 1
  113619. +Test "Imaginary part of: casin (-1.0 - 0x1.fp-30 i)":
  113620. +ildouble: 1
  113621. +ldouble: 1
  113622. +Test "Imaginary part of: casin (-1.0 - 0x1p500 i)":
  113623. +ildouble: 1
  113624. +ldouble: 1
  113625. +Test "Imaginary part of: casin (-1.0 - 0x1p5000 i)":
  113626. +ildouble: 1
  113627. +ldouble: 1
  113628. +Test "Imaginary part of: casin (0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  113629. +ildouble: 1
  113630. +ldouble: 1
  113631. +Test "Imaginary part of: casin (0.0 + 0x0.ffffffffffffffffp0 i)":
  113632. +ildouble: 1
  113633. +ldouble: 1
  113634. +Test "Imaginary part of: casin (0.0 + 0x1.0000000000000000000000000001p0 i)":
  113635. +ildouble: 1
  113636. +ldouble: 1
  113637. +Test "Imaginary part of: casin (0.0 + 0x1.0000000000000002p0 i)":
  113638. +ildouble: 1
  113639. +ldouble: 1
  113640. +Test "Imaginary part of: casin (0.0 + 0x1.0000000000001p0 i)":
  113641. +ildouble: 1
  113642. +ldouble: 1
  113643. +Test "Imaginary part of: casin (0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  113644. +ildouble: 1
  113645. +ldouble: 1
  113646. +Test "Imaginary part of: casin (0.0 - 0x0.ffffffffffffffffp0 i)":
  113647. +ildouble: 1
  113648. +ldouble: 1
  113649. +Test "Imaginary part of: casin (0.0 - 0x1.0000000000000000000000000001p0 i)":
  113650. +ildouble: 1
  113651. +ldouble: 1
  113652. +Test "Imaginary part of: casin (0.0 - 0x1.0000000000000002p0 i)":
  113653. +ildouble: 1
  113654. +ldouble: 1
  113655. +Test "Imaginary part of: casin (0.0 - 0x1.0000000000001p0 i)":
  113656. +ildouble: 1
  113657. +ldouble: 1
  113658. +Test "Imaginary part of: casin (0.25 + 1.0 i)":
  113659. +float: 1
  113660. +ifloat: 1
  113661. +ildouble: 1
  113662. +ldouble: 1
  113663. +Test "Imaginary part of: casin (0.25 - 1.0 i)":
  113664. +float: 1
  113665. +ifloat: 1
  113666. +ildouble: 1
  113667. +ldouble: 1
  113668. +Test "Imaginary part of: casin (0.5 + 0x1.fp-129 i)":
  113669. +double: 1
  113670. +idouble: 1
  113671. +Test "Imaginary part of: casin (0.5 + 0x1p-105 i)":
  113672. +double: 1
  113673. +idouble: 1
  113674. +ildouble: 1
  113675. +ldouble: 1
  113676. +Test "Real part of: casin (0.5 + 0x1p-112 i)":
  113677. +ildouble: 1
  113678. +ldouble: 1
  113679. +Test "Imaginary part of: casin (0.5 + 0x1p-112 i)":
  113680. +double: 1
  113681. +idouble: 1
  113682. +ildouble: 1
  113683. +ldouble: 1
  113684. +Test "Real part of: casin (0.5 + 0x1p-23 i)":
  113685. +ildouble: 1
  113686. +ldouble: 1
  113687. +Test "Imaginary part of: casin (0.5 + 0x1p-23 i)":
  113688. +double: 1
  113689. +idouble: 1
  113690. +ildouble: 1
  113691. +ldouble: 1
  113692. +Test "Imaginary part of: casin (0.5 + 0x1p-63 i)":
  113693. +ildouble: 1
  113694. +ldouble: 1
  113695. +Test "Real part of: casin (0.5 + 1.0 i)":
  113696. +ildouble: 1
  113697. +ldouble: 1
  113698. +Test "Imaginary part of: casin (0.5 + 1.0 i)":
  113699. +double: 1
  113700. +idouble: 1
  113701. +ildouble: 1
  113702. +ldouble: 1
  113703. +Test "Imaginary part of: casin (0.5 - 0x1.fp-129 i)":
  113704. +double: 1
  113705. +idouble: 1
  113706. +Test "Imaginary part of: casin (0.5 - 0x1p-105 i)":
  113707. +double: 1
  113708. +idouble: 1
  113709. +ildouble: 1
  113710. +ldouble: 1
  113711. +Test "Real part of: casin (0.5 - 0x1p-112 i)":
  113712. +ildouble: 1
  113713. +ldouble: 1
  113714. +Test "Imaginary part of: casin (0.5 - 0x1p-112 i)":
  113715. +double: 1
  113716. +idouble: 1
  113717. +ildouble: 1
  113718. +ldouble: 1
  113719. +Test "Real part of: casin (0.5 - 0x1p-23 i)":
  113720. +ildouble: 1
  113721. +ldouble: 1
  113722. +Test "Imaginary part of: casin (0.5 - 0x1p-23 i)":
  113723. +double: 1
  113724. +idouble: 1
  113725. +ildouble: 1
  113726. +ldouble: 1
  113727. +Test "Imaginary part of: casin (0.5 - 0x1p-63 i)":
  113728. +ildouble: 1
  113729. +ldouble: 1
  113730. +Test "Real part of: casin (0.5 - 1.0 i)":
  113731. +ildouble: 1
  113732. +ldouble: 1
  113733. +Test "Imaginary part of: casin (0.5 - 1.0 i)":
  113734. +double: 1
  113735. +idouble: 1
  113736. +ildouble: 1
  113737. +ldouble: 1
  113738. +Test "Real part of: casin (0.75 + 1.25 i)":
  113739. +double: 1
  113740. +float: 1
  113741. +idouble: 1
  113742. +ifloat: 1
  113743. +Test "Real part of: casin (0x0.fffffffffffff8p0 + 0.0 i)":
  113744. +ildouble: 1
  113745. +ldouble: 1
  113746. +Test "Real part of: casin (0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
  113747. +ildouble: 1
  113748. +ldouble: 1
  113749. +Test "Imaginary part of: casin (0x0.fffffffffffff8p0 + 0x1p-52 i)":
  113750. +double: 1
  113751. +idouble: 1
  113752. +Test "Real part of: casin (0x0.fffffffffffff8p0 - 0.0 i)":
  113753. +ildouble: 1
  113754. +ldouble: 1
  113755. +Test "Real part of: casin (0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
  113756. +ildouble: 1
  113757. +ldouble: 1
  113758. +Test "Imaginary part of: casin (0x0.fffffffffffff8p0 - 0x1p-52 i)":
  113759. +double: 1
  113760. +idouble: 1
  113761. +Test "Real part of: casin (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
  113762. +ildouble: 1
  113763. +ldouble: 1
  113764. +Test "Imaginary part of: casin (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
  113765. +ildouble: 1
  113766. +ldouble: 1
  113767. +Test "Real part of: casin (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
  113768. +ildouble: 1
  113769. +ldouble: 1
  113770. +Test "Imaginary part of: casin (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
  113771. +ildouble: 1
  113772. +ldouble: 1
  113773. +Test "Real part of: casin (0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-112 i)":
  113774. +ildouble: 1
  113775. +ldouble: 1
  113776. +Test "Real part of: casin (0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-112 i)":
  113777. +ildouble: 1
  113778. +ldouble: 1
  113779. +Test "Real part of: casin (0x0.ffffffffffffffffp0 + 0.0 i)":
  113780. +ildouble: 1
  113781. +ldouble: 1
  113782. +Test "Real part of: casin (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
  113783. +ildouble: 1
  113784. +ldouble: 1
  113785. +Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
  113786. +ildouble: 1
  113787. +ldouble: 1
  113788. +Test "Real part of: casin (0x0.ffffffffffffffffp0 - 0.0 i)":
  113789. +ildouble: 1
  113790. +ldouble: 1
  113791. +Test "Real part of: casin (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
  113792. +ildouble: 1
  113793. +ldouble: 1
  113794. +Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
  113795. +ildouble: 1
  113796. +ldouble: 1
  113797. +Test "Real part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
  113798. +ildouble: 1
  113799. +ldouble: 1
  113800. +Test "Imaginary part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
  113801. +float: 2
  113802. +ifloat: 2
  113803. +Test "Real part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
  113804. +ildouble: 1
  113805. +ldouble: 1
  113806. +Test "Imaginary part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
  113807. +float: 2
  113808. +ifloat: 2
  113809. +Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 + 0.0 i)":
  113810. +ildouble: 1
  113811. +ldouble: 1
  113812. +Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
  113813. +ildouble: 1
  113814. +ldouble: 1
  113815. +Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
  113816. +ildouble: 1
  113817. +ldouble: 1
  113818. +Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 - 0.0 i)":
  113819. +ildouble: 1
  113820. +ldouble: 1
  113821. +Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
  113822. +ildouble: 1
  113823. +ldouble: 1
  113824. +Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
  113825. +ildouble: 1
  113826. +ldouble: 1
  113827. +Test "Imaginary part of: casin (0x1.000002p0 + 0x1p-23 i)":
  113828. +float: 1
  113829. +ifloat: 1
  113830. +ildouble: 1
  113831. +ldouble: 1
  113832. +Test "Imaginary part of: casin (0x1.000002p0 - 0x1p-23 i)":
  113833. +float: 1
  113834. +ifloat: 1
  113835. +ildouble: 1
  113836. +ldouble: 1
  113837. +Test "Real part of: casin (0x1.fp-10 + 1.0 i)":
  113838. +float: 1
  113839. +ifloat: 1
  113840. +ildouble: 1
  113841. +ldouble: 1
  113842. +Test "Imaginary part of: casin (0x1.fp-10 + 1.0 i)":
  113843. +double: 1
  113844. +idouble: 1
  113845. +Test "Real part of: casin (0x1.fp-10 - 1.0 i)":
  113846. +float: 1
  113847. +ifloat: 1
  113848. +ildouble: 1
  113849. +ldouble: 1
  113850. +Test "Imaginary part of: casin (0x1.fp-10 - 1.0 i)":
  113851. +double: 1
  113852. +idouble: 1
  113853. +Test "Imaginary part of: casin (0x1.fp-100 + 1.0 i)":
  113854. +double: 1
  113855. +float: 1
  113856. +idouble: 1
  113857. +ifloat: 1
  113858. +ildouble: 1
  113859. +ldouble: 1
  113860. +Test "Imaginary part of: casin (0x1.fp-100 - 1.0 i)":
  113861. +double: 1
  113862. +float: 1
  113863. +idouble: 1
  113864. +ifloat: 1
  113865. +ildouble: 1
  113866. +ldouble: 1
  113867. +Test "Imaginary part of: casin (0x1.fp-1000 + 1.0 i)":
  113868. +double: 1
  113869. +idouble: 1
  113870. +ildouble: 1
  113871. +ldouble: 1
  113872. +Test "Imaginary part of: casin (0x1.fp-1000 - 1.0 i)":
  113873. +double: 1
  113874. +idouble: 1
  113875. +ildouble: 1
  113876. +ldouble: 1
  113877. +Test "Imaginary part of: casin (0x1.fp-10000 + 1.0 i)":
  113878. +ildouble: 1
  113879. +ldouble: 1
  113880. +Test "Imaginary part of: casin (0x1.fp-10000 - 1.0 i)":
  113881. +ildouble: 1
  113882. +ldouble: 1
  113883. +Test "Imaginary part of: casin (0x1.fp-1025 + 0.5 i)":
  113884. +ildouble: 1
  113885. +ldouble: 1
  113886. +Test "Real part of: casin (0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
  113887. +ildouble: 1
  113888. +ldouble: 1
  113889. +Test "Imaginary part of: casin (0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  113890. +ildouble: 1
  113891. +ldouble: 1
  113892. +Test "Imaginary part of: casin (0x1.fp-1025 + 0x1.0000000000001p0 i)":
  113893. +ildouble: 1
  113894. +ldouble: 1
  113895. +Test "Imaginary part of: casin (0x1.fp-1025 + 1.0 i)":
  113896. +double: 1
  113897. +idouble: 1
  113898. +ildouble: 1
  113899. +ldouble: 1
  113900. +Test "Imaginary part of: casin (0x1.fp-1025 + 1.5 i)":
  113901. +double: 1
  113902. +idouble: 1
  113903. +ildouble: 1
  113904. +ldouble: 1
  113905. +Test "Imaginary part of: casin (0x1.fp-1025 - 0.5 i)":
  113906. +ildouble: 1
  113907. +ldouble: 1
  113908. +Test "Real part of: casin (0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
  113909. +ildouble: 1
  113910. +ldouble: 1
  113911. +Test "Imaginary part of: casin (0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  113912. +ildouble: 1
  113913. +ldouble: 1
  113914. +Test "Imaginary part of: casin (0x1.fp-1025 - 0x1.0000000000001p0 i)":
  113915. +ildouble: 1
  113916. +ldouble: 1
  113917. +Test "Imaginary part of: casin (0x1.fp-1025 - 1.0 i)":
  113918. +double: 1
  113919. +idouble: 1
  113920. +ildouble: 1
  113921. +ldouble: 1
  113922. +Test "Imaginary part of: casin (0x1.fp-1025 - 1.5 i)":
  113923. +double: 1
  113924. +idouble: 1
  113925. +ildouble: 1
  113926. +ldouble: 1
  113927. +Test "Imaginary part of: casin (0x1.fp-129 + 0.5 i)":
  113928. +float: 1
  113929. +ifloat: 1
  113930. +ildouble: 1
  113931. +ldouble: 1
  113932. +Test "Imaginary part of: casin (0x1.fp-129 + 1.0 i)":
  113933. +double: 1
  113934. +float: 1
  113935. +idouble: 1
  113936. +ifloat: 1
  113937. +ildouble: 1
  113938. +ldouble: 1
  113939. +Test "Imaginary part of: casin (0x1.fp-129 + 1.5 i)":
  113940. +double: 1
  113941. +idouble: 1
  113942. +ildouble: 1
  113943. +ldouble: 1
  113944. +Test "Imaginary part of: casin (0x1.fp-129 - 0.5 i)":
  113945. +float: 1
  113946. +ifloat: 1
  113947. +ildouble: 1
  113948. +ldouble: 1
  113949. +Test "Imaginary part of: casin (0x1.fp-129 - 1.0 i)":
  113950. +double: 1
  113951. +float: 1
  113952. +idouble: 1
  113953. +ifloat: 1
  113954. +ildouble: 1
  113955. +ldouble: 1
  113956. +Test "Imaginary part of: casin (0x1.fp-129 - 1.5 i)":
  113957. +double: 1
  113958. +idouble: 1
  113959. +ildouble: 1
  113960. +ldouble: 1
  113961. +Test "Imaginary part of: casin (0x1.fp-16385 + 0.5 i)":
  113962. +ildouble: 1
  113963. +ldouble: 1
  113964. +Test "Imaginary part of: casin (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
  113965. +ildouble: 1
  113966. +ldouble: 1
  113967. +Test "Imaginary part of: casin (0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
  113968. +ildouble: 1
  113969. +ldouble: 1
  113970. +Test "Imaginary part of: casin (0x1.fp-16385 + 0x1.0000000000000002p0 i)":
  113971. +ildouble: 1
  113972. +ldouble: 1
  113973. +Test "Imaginary part of: casin (0x1.fp-16385 + 1.0 i)":
  113974. +ildouble: 1
  113975. +ldouble: 1
  113976. +Test "Imaginary part of: casin (0x1.fp-16385 + 1.5 i)":
  113977. +ildouble: 1
  113978. +ldouble: 1
  113979. +Test "Imaginary part of: casin (0x1.fp-16385 - 0.5 i)":
  113980. +ildouble: 1
  113981. +ldouble: 1
  113982. +Test "Imaginary part of: casin (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
  113983. +ildouble: 1
  113984. +ldouble: 1
  113985. +Test "Imaginary part of: casin (0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
  113986. +ildouble: 1
  113987. +ldouble: 1
  113988. +Test "Imaginary part of: casin (0x1.fp-16385 - 0x1.0000000000000002p0 i)":
  113989. +ildouble: 1
  113990. +ldouble: 1
  113991. +Test "Imaginary part of: casin (0x1.fp-16385 - 1.0 i)":
  113992. +ildouble: 1
  113993. +ldouble: 1
  113994. +Test "Imaginary part of: casin (0x1.fp-16385 - 1.5 i)":
  113995. +ildouble: 1
  113996. +ldouble: 1
  113997. +Test "Real part of: casin (0x1.fp-30 + 1.0 i)":
  113998. +ildouble: 1
  113999. +ldouble: 1
  114000. +Test "Imaginary part of: casin (0x1.fp-30 + 1.0 i)":
  114001. +double: 1
  114002. +float: 1
  114003. +idouble: 1
  114004. +ifloat: 1
  114005. +ildouble: 1
  114006. +ldouble: 1
  114007. +Test "Real part of: casin (0x1.fp-30 - 1.0 i)":
  114008. +ildouble: 1
  114009. +ldouble: 1
  114010. +Test "Imaginary part of: casin (0x1.fp-30 - 1.0 i)":
  114011. +double: 1
  114012. +float: 1
  114013. +idouble: 1
  114014. +ifloat: 1
  114015. +ildouble: 1
  114016. +ldouble: 1
  114017. +Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i)":
  114018. +double: 1
  114019. +idouble: 1
  114020. +Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i)":
  114021. +double: 1
  114022. +idouble: 1
  114023. +Test "Imaginary part of: casin (0x1.fp16383 + 0x1.fp16383 i)":
  114024. +ildouble: 1
  114025. +ldouble: 1
  114026. +Test "Imaginary part of: casin (0x1p-105 + 0.5 i)":
  114027. +float: 1
  114028. +ifloat: 1
  114029. +Test "Imaginary part of: casin (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  114030. +ildouble: 1
  114031. +ldouble: 1
  114032. +Test "Imaginary part of: casin (0x1p-105 - 0.5 i)":
  114033. +float: 1
  114034. +ifloat: 1
  114035. +Test "Imaginary part of: casin (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  114036. +ildouble: 1
  114037. +ldouble: 1
  114038. +Test "Imaginary part of: casin (0x1p-112 + 0.5 i)":
  114039. +float: 1
  114040. +ifloat: 1
  114041. +Test "Imaginary part of: casin (0x1p-112 - 0.5 i)":
  114042. +float: 1
  114043. +ifloat: 1
  114044. +Test "Real part of: casin (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  114045. +ildouble: 1
  114046. +ldouble: 1
  114047. +Test "Imaginary part of: casin (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  114048. +ildouble: 1
  114049. +ldouble: 1
  114050. +Test "Real part of: casin (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  114051. +ildouble: 1
  114052. +ldouble: 1
  114053. +Test "Imaginary part of: casin (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  114054. +ildouble: 1
  114055. +ldouble: 1
  114056. +Test "Real part of: casin (0x1p-23 + 0.5 i)":
  114057. +double: 1
  114058. +float: 1
  114059. +idouble: 1
  114060. +ifloat: 1
  114061. +ildouble: 2
  114062. +ldouble: 2
  114063. +Test "Imaginary part of: casin (0x1p-23 + 0.5 i)":
  114064. +float: 1
  114065. +ifloat: 1
  114066. +ildouble: 2
  114067. +ldouble: 2
  114068. +Test "Imaginary part of: casin (0x1p-23 + 0x0.ffffffp0 i)":
  114069. +double: 1
  114070. +idouble: 1
  114071. +Test "Real part of: casin (0x1p-23 + 0x1.000002p0 i)":
  114072. +double: 1
  114073. +float: 1
  114074. +idouble: 1
  114075. +ifloat: 1
  114076. +ildouble: 1
  114077. +ldouble: 1
  114078. +Test "Real part of: casin (0x1p-23 - 0.5 i)":
  114079. +double: 1
  114080. +float: 1
  114081. +idouble: 1
  114082. +ifloat: 1
  114083. +ildouble: 2
  114084. +ldouble: 2
  114085. +Test "Imaginary part of: casin (0x1p-23 - 0.5 i)":
  114086. +float: 1
  114087. +ifloat: 1
  114088. +ildouble: 2
  114089. +ldouble: 2
  114090. +Test "Imaginary part of: casin (0x1p-23 - 0x0.ffffffp0 i)":
  114091. +double: 1
  114092. +idouble: 1
  114093. +Test "Real part of: casin (0x1p-23 - 0x1.000002p0 i)":
  114094. +double: 1
  114095. +float: 1
  114096. +idouble: 1
  114097. +ifloat: 1
  114098. +ildouble: 1
  114099. +ldouble: 1
  114100. +Test "Real part of: casin (0x1p-52 + 0.5 i)":
  114101. +ildouble: 1
  114102. +ldouble: 1
  114103. +Test "Imaginary part of: casin (0x1p-52 + 0.5 i)":
  114104. +float: 1
  114105. +ifloat: 1
  114106. +ildouble: 1
  114107. +ldouble: 1
  114108. +Test "Real part of: casin (0x1p-52 + 0x1.0000000000001p0 i)":
  114109. +ildouble: 1
  114110. +ldouble: 1
  114111. +Test "Real part of: casin (0x1p-52 - 0.5 i)":
  114112. +ildouble: 1
  114113. +ldouble: 1
  114114. +Test "Imaginary part of: casin (0x1p-52 - 0.5 i)":
  114115. +float: 1
  114116. +ifloat: 1
  114117. +ildouble: 1
  114118. +ldouble: 1
  114119. +Test "Real part of: casin (0x1p-52 - 0x1.0000000000001p0 i)":
  114120. +ildouble: 1
  114121. +ldouble: 1
  114122. +Test "Imaginary part of: casin (0x1p-63 + 0.5 i)":
  114123. +float: 1
  114124. +ifloat: 1
  114125. +Test "Imaginary part of: casin (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
  114126. +ildouble: 1
  114127. +ldouble: 1
  114128. +Test "Real part of: casin (0x1p-63 + 0x1.0000000000000002p0 i)":
  114129. +ildouble: 1
  114130. +ldouble: 1
  114131. +Test "Imaginary part of: casin (0x1p-63 + 0x1.0000000000000002p0 i)":
  114132. +ildouble: 1
  114133. +ldouble: 1
  114134. +Test "Imaginary part of: casin (0x1p-63 - 0.5 i)":
  114135. +float: 1
  114136. +ifloat: 1
  114137. +Test "Imaginary part of: casin (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
  114138. +ildouble: 1
  114139. +ldouble: 1
  114140. +Test "Real part of: casin (0x1p-63 - 0x1.0000000000000002p0 i)":
  114141. +ildouble: 1
  114142. +ldouble: 1
  114143. +Test "Imaginary part of: casin (0x1p-63 - 0x1.0000000000000002p0 i)":
  114144. +ildouble: 1
  114145. +ldouble: 1
  114146. +Test "Imaginary part of: casin (0x1p500 + 1.0 i)":
  114147. +ildouble: 1
  114148. +ldouble: 1
  114149. +Test "Imaginary part of: casin (0x1p500 - 1.0 i)":
  114150. +ildouble: 1
  114151. +ldouble: 1
  114152. +Test "Imaginary part of: casin (0x1p5000 + 1.0 i)":
  114153. +ildouble: 1
  114154. +ldouble: 1
  114155. +Test "Imaginary part of: casin (0x1p5000 - 1.0 i)":
  114156. +ildouble: 1
  114157. +ldouble: 1
  114158. +Test "Real part of: casin (1.0 + 0.25 i)":
  114159. +double: 1
  114160. +idouble: 1
  114161. +ildouble: 1
  114162. +ldouble: 1
  114163. +Test "Real part of: casin (1.0 + 0.5 i)":
  114164. +float: 1
  114165. +ifloat: 1
  114166. +Test "Imaginary part of: casin (1.0 + 0.5 i)":
  114167. +float: 1
  114168. +ifloat: 1
  114169. +Test "Imaginary part of: casin (1.0 + 0x1.fp-10 i)":
  114170. +float: 1
  114171. +ifloat: 1
  114172. +ildouble: 1
  114173. +ldouble: 1
  114174. +Test "Real part of: casin (1.0 + 0x1.fp-129 i)":
  114175. +ildouble: 1
  114176. +ldouble: 1
  114177. +Test "Imaginary part of: casin (1.0 + 0x1.fp-30 i)":
  114178. +ildouble: 1
  114179. +ldouble: 1
  114180. +Test "Imaginary part of: casin (1.0 + 0x1p500 i)":
  114181. +ildouble: 1
  114182. +ldouble: 1
  114183. +Test "Imaginary part of: casin (1.0 + 0x1p5000 i)":
  114184. +ildouble: 1
  114185. +ldouble: 1
  114186. +Test "Real part of: casin (1.0 - 0.25 i)":
  114187. +double: 1
  114188. +idouble: 1
  114189. +ildouble: 1
  114190. +ldouble: 1
  114191. +Test "Real part of: casin (1.0 - 0.5 i)":
  114192. +float: 1
  114193. +ifloat: 1
  114194. +Test "Imaginary part of: casin (1.0 - 0.5 i)":
  114195. +float: 1
  114196. +ifloat: 1
  114197. +Test "Imaginary part of: casin (1.0 - 0x1.fp-10 i)":
  114198. +float: 1
  114199. +ifloat: 1
  114200. +ildouble: 1
  114201. +ldouble: 1
  114202. +Test "Real part of: casin (1.0 - 0x1.fp-129 i)":
  114203. +ildouble: 1
  114204. +ldouble: 1
  114205. +Test "Imaginary part of: casin (1.0 - 0x1.fp-30 i)":
  114206. +ildouble: 1
  114207. +ldouble: 1
  114208. +Test "Imaginary part of: casin (1.0 - 0x1p500 i)":
  114209. +ildouble: 1
  114210. +ldouble: 1
  114211. +Test "Imaginary part of: casin (1.0 - 0x1p5000 i)":
  114212. +ildouble: 1
  114213. +ldouble: 1
  114214. +
  114215. +# casinh
  114216. +Test "Imaginary part of: casinh (-0.0 + 0x0.fffffffffffff8p0 i)":
  114217. +ildouble: 1
  114218. +ldouble: 1
  114219. +Test "Imaginary part of: casinh (-0.0 + 0x0.ffffffffffffffffp0 i)":
  114220. +ildouble: 1
  114221. +ldouble: 1
  114222. +Test "Real part of: casinh (-0.0 + 0x1.0000000000000000000000000001p0 i)":
  114223. +ildouble: 1
  114224. +ldouble: 1
  114225. +Test "Imaginary part of: casinh (-0.0 - 0x0.fffffffffffff8p0 i)":
  114226. +ildouble: 1
  114227. +ldouble: 1
  114228. +Test "Imaginary part of: casinh (-0.0 - 0x0.ffffffffffffffffp0 i)":
  114229. +ildouble: 1
  114230. +ldouble: 1
  114231. +Test "Real part of: casinh (-0.0 - 0x1.0000000000000000000000000001p0 i)":
  114232. +ildouble: 1
  114233. +ldouble: 1
  114234. +Test "Imaginary part of: casinh (-0.25 + 1.0 i)":
  114235. +double: 1
  114236. +idouble: 1
  114237. +ildouble: 1
  114238. +ldouble: 1
  114239. +Test "Imaginary part of: casinh (-0.25 - 1.0 i)":
  114240. +double: 1
  114241. +idouble: 1
  114242. +ildouble: 1
  114243. +ldouble: 1
  114244. +Test "Real part of: casinh (-0.5 + +0 i)":
  114245. +float: 1
  114246. +ifloat: 1
  114247. +ildouble: 1
  114248. +ldouble: 1
  114249. +Test "Real part of: casinh (-0.5 + 0x1.fp-1025 i)":
  114250. +ildouble: 1
  114251. +ldouble: 1
  114252. +Test "Real part of: casinh (-0.5 + 0x1.fp-129 i)":
  114253. +float: 1
  114254. +ifloat: 1
  114255. +ildouble: 1
  114256. +ldouble: 1
  114257. +Test "Real part of: casinh (-0.5 + 0x1.fp-16385 i)":
  114258. +ildouble: 1
  114259. +ldouble: 1
  114260. +Test "Real part of: casinh (-0.5 + 0x1p-105 i)":
  114261. +float: 1
  114262. +ifloat: 1
  114263. +Test "Real part of: casinh (-0.5 + 0x1p-112 i)":
  114264. +float: 1
  114265. +ifloat: 1
  114266. +Test "Real part of: casinh (-0.5 + 0x1p-23 i)":
  114267. +float: 1
  114268. +ifloat: 1
  114269. +ildouble: 2
  114270. +ldouble: 2
  114271. +Test "Imaginary part of: casinh (-0.5 + 0x1p-23 i)":
  114272. +double: 1
  114273. +float: 1
  114274. +idouble: 1
  114275. +ifloat: 1
  114276. +ildouble: 2
  114277. +ldouble: 2
  114278. +Test "Real part of: casinh (-0.5 + 0x1p-52 i)":
  114279. +float: 1
  114280. +ifloat: 1
  114281. +ildouble: 1
  114282. +ldouble: 1
  114283. +Test "Imaginary part of: casinh (-0.5 + 0x1p-52 i)":
  114284. +ildouble: 1
  114285. +ldouble: 1
  114286. +Test "Real part of: casinh (-0.5 + 0x1p-63 i)":
  114287. +float: 1
  114288. +ifloat: 1
  114289. +Test "Real part of: casinh (-0.5 + 1.0 i)":
  114290. +float: 1
  114291. +ifloat: 1
  114292. +Test "Imaginary part of: casinh (-0.5 + 1.0 i)":
  114293. +float: 1
  114294. +ifloat: 1
  114295. +Test "Real part of: casinh (-0.5 - 0 i)":
  114296. +float: 1
  114297. +ifloat: 1
  114298. +ildouble: 1
  114299. +ldouble: 1
  114300. +Test "Real part of: casinh (-0.5 - 0x1.fp-1025 i)":
  114301. +ildouble: 1
  114302. +ldouble: 1
  114303. +Test "Real part of: casinh (-0.5 - 0x1.fp-129 i)":
  114304. +float: 1
  114305. +ifloat: 1
  114306. +ildouble: 1
  114307. +ldouble: 1
  114308. +Test "Real part of: casinh (-0.5 - 0x1.fp-16385 i)":
  114309. +ildouble: 1
  114310. +ldouble: 1
  114311. +Test "Real part of: casinh (-0.5 - 0x1p-105 i)":
  114312. +float: 1
  114313. +ifloat: 1
  114314. +Test "Real part of: casinh (-0.5 - 0x1p-112 i)":
  114315. +float: 1
  114316. +ifloat: 1
  114317. +Test "Real part of: casinh (-0.5 - 0x1p-23 i)":
  114318. +float: 1
  114319. +ifloat: 1
  114320. +ildouble: 2
  114321. +ldouble: 2
  114322. +Test "Imaginary part of: casinh (-0.5 - 0x1p-23 i)":
  114323. +double: 1
  114324. +float: 1
  114325. +idouble: 1
  114326. +ifloat: 1
  114327. +ildouble: 2
  114328. +ldouble: 2
  114329. +Test "Real part of: casinh (-0.5 - 0x1p-52 i)":
  114330. +float: 1
  114331. +ifloat: 1
  114332. +ildouble: 1
  114333. +ldouble: 1
  114334. +Test "Imaginary part of: casinh (-0.5 - 0x1p-52 i)":
  114335. +ildouble: 1
  114336. +ldouble: 1
  114337. +Test "Real part of: casinh (-0.5 - 0x1p-63 i)":
  114338. +float: 1
  114339. +ifloat: 1
  114340. +Test "Real part of: casinh (-0.5 - 1.0 i)":
  114341. +float: 1
  114342. +ifloat: 1
  114343. +Test "Imaginary part of: casinh (-0.5 - 1.0 i)":
  114344. +float: 1
  114345. +ifloat: 1
  114346. +Test "Imaginary part of: casinh (-0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
  114347. +ildouble: 1
  114348. +ldouble: 1
  114349. +Test "Imaginary part of: casinh (-0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
  114350. +ildouble: 1
  114351. +ldouble: 1
  114352. +Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 + 0.0 i)":
  114353. +ildouble: 1
  114354. +ldouble: 1
  114355. +Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025 i)":
  114356. +ildouble: 1
  114357. +ldouble: 1
  114358. +Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
  114359. +ildouble: 1
  114360. +ldouble: 1
  114361. +Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
  114362. +ildouble: 1
  114363. +ldouble: 1
  114364. +Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025 i)":
  114365. +ildouble: 1
  114366. +ldouble: 1
  114367. +Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
  114368. +ildouble: 1
  114369. +ldouble: 1
  114370. +Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0.0 i)":
  114371. +ildouble: 1
  114372. +ldouble: 1
  114373. +Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
  114374. +ildouble: 1
  114375. +ldouble: 1
  114376. +Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
  114377. +ildouble: 1
  114378. +ldouble: 1
  114379. +Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0.0 i)":
  114380. +ildouble: 1
  114381. +ldouble: 1
  114382. +Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
  114383. +ildouble: 1
  114384. +ldouble: 1
  114385. +Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
  114386. +ildouble: 1
  114387. +ldouble: 1
  114388. +Test "Real part of: casinh (-0x0.ffffffp0 + 0x1p-23 i)":
  114389. +double: 1
  114390. +idouble: 1
  114391. +Test "Real part of: casinh (-0x0.ffffffp0 - 0x1p-23 i)":
  114392. +double: 1
  114393. +idouble: 1
  114394. +Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 + 0.0 i)":
  114395. +ildouble: 1
  114396. +ldouble: 1
  114397. +Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
  114398. +ildouble: 1
  114399. +ldouble: 1
  114400. +Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
  114401. +ildouble: 1
  114402. +ldouble: 1
  114403. +Test "Imaginary part of: casinh (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
  114404. +ildouble: 1
  114405. +ldouble: 1
  114406. +Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 - 0.0 i)":
  114407. +ildouble: 1
  114408. +ldouble: 1
  114409. +Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
  114410. +ildouble: 1
  114411. +ldouble: 1
  114412. +Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
  114413. +ildouble: 1
  114414. +ldouble: 1
  114415. +Test "Imaginary part of: casinh (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
  114416. +ildouble: 1
  114417. +ldouble: 1
  114418. +Test "Real part of: casinh (-0x1.0000000000000002p0 + 0.0 i)":
  114419. +ildouble: 1
  114420. +ldouble: 1
  114421. +Test "Real part of: casinh (-0x1.0000000000000002p0 + 0x1.fp-16385 i)":
  114422. +ildouble: 1
  114423. +ldouble: 1
  114424. +Test "Real part of: casinh (-0x1.0000000000000002p0 + 0x1p-63 i)":
  114425. +ildouble: 1
  114426. +ldouble: 1
  114427. +Test "Imaginary part of: casinh (-0x1.0000000000000002p0 + 0x1p-63 i)":
  114428. +ildouble: 1
  114429. +ldouble: 1
  114430. +Test "Real part of: casinh (-0x1.0000000000000002p0 - 0.0 i)":
  114431. +ildouble: 1
  114432. +ldouble: 1
  114433. +Test "Real part of: casinh (-0x1.0000000000000002p0 - 0x1.fp-16385 i)":
  114434. +ildouble: 1
  114435. +ldouble: 1
  114436. +Test "Real part of: casinh (-0x1.0000000000000002p0 - 0x1p-63 i)":
  114437. +ildouble: 1
  114438. +ldouble: 1
  114439. +Test "Imaginary part of: casinh (-0x1.0000000000000002p0 - 0x1p-63 i)":
  114440. +ildouble: 1
  114441. +ldouble: 1
  114442. +Test "Real part of: casinh (-0x1.0000000000001p0 + 0.0 i)":
  114443. +ildouble: 1
  114444. +ldouble: 1
  114445. +Test "Real part of: casinh (-0x1.0000000000001p0 + 0x1.fp-1025 i)":
  114446. +ildouble: 1
  114447. +ldouble: 1
  114448. +Test "Imaginary part of: casinh (-0x1.0000000000001p0 + 0x1p-52 i)":
  114449. +ildouble: 1
  114450. +ldouble: 1
  114451. +Test "Real part of: casinh (-0x1.0000000000001p0 - 0.0 i)":
  114452. +ildouble: 1
  114453. +ldouble: 1
  114454. +Test "Real part of: casinh (-0x1.0000000000001p0 - 0x1.fp-1025 i)":
  114455. +ildouble: 1
  114456. +ldouble: 1
  114457. +Test "Imaginary part of: casinh (-0x1.0000000000001p0 - 0x1p-52 i)":
  114458. +ildouble: 1
  114459. +ldouble: 1
  114460. +Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1p-23 i)":
  114461. +double: 1
  114462. +float: 1
  114463. +idouble: 1
  114464. +ifloat: 1
  114465. +ildouble: 1
  114466. +ldouble: 1
  114467. +Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1p-23 i)":
  114468. +double: 1
  114469. +float: 1
  114470. +idouble: 1
  114471. +ifloat: 1
  114472. +ildouble: 1
  114473. +ldouble: 1
  114474. +Test "Real part of: casinh (-0x1.fp-10 + 1.0 i)":
  114475. +float: 1
  114476. +ifloat: 1
  114477. +ildouble: 1
  114478. +ldouble: 1
  114479. +Test "Real part of: casinh (-0x1.fp-10 - 1.0 i)":
  114480. +float: 1
  114481. +ifloat: 1
  114482. +ildouble: 1
  114483. +ldouble: 1
  114484. +Test "Imaginary part of: casinh (-0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
  114485. +ildouble: 1
  114486. +ldouble: 1
  114487. +Test "Imaginary part of: casinh (-0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
  114488. +ildouble: 1
  114489. +ldouble: 1
  114490. +Test "Real part of: casinh (-0x1.fp-129 + 0.5 i)":
  114491. +double: 1
  114492. +idouble: 1
  114493. +Test "Imaginary part of: casinh (-0x1.fp-129 + 1.0 i)":
  114494. +ildouble: 1
  114495. +ldouble: 1
  114496. +Test "Real part of: casinh (-0x1.fp-129 - 0.5 i)":
  114497. +double: 1
  114498. +idouble: 1
  114499. +Test "Imaginary part of: casinh (-0x1.fp-129 - 1.0 i)":
  114500. +ildouble: 1
  114501. +ldouble: 1
  114502. +Test "Imaginary part of: casinh (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
  114503. +ildouble: 1
  114504. +ldouble: 1
  114505. +Test "Real part of: casinh (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
  114506. +ildouble: 1
  114507. +ldouble: 1
  114508. +Test "Imaginary part of: casinh (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
  114509. +ildouble: 1
  114510. +ldouble: 1
  114511. +Test "Real part of: casinh (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
  114512. +ildouble: 1
  114513. +ldouble: 1
  114514. +Test "Real part of: casinh (-0x1.fp-30 + 1.0 i)":
  114515. +ildouble: 1
  114516. +ldouble: 1
  114517. +Test "Real part of: casinh (-0x1.fp-30 - 1.0 i)":
  114518. +ildouble: 1
  114519. +ldouble: 1
  114520. +Test "Real part of: casinh (-0x1p-105 + 0.5 i)":
  114521. +double: 1
  114522. +idouble: 1
  114523. +ildouble: 1
  114524. +ldouble: 1
  114525. +Test "Real part of: casinh (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  114526. +ildouble: 1
  114527. +ldouble: 1
  114528. +Test "Imaginary part of: casinh (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  114529. +ildouble: 1
  114530. +ldouble: 1
  114531. +Test "Real part of: casinh (-0x1p-105 - 0.5 i)":
  114532. +double: 1
  114533. +idouble: 1
  114534. +ildouble: 1
  114535. +ldouble: 1
  114536. +Test "Real part of: casinh (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  114537. +ildouble: 1
  114538. +ldouble: 1
  114539. +Test "Imaginary part of: casinh (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  114540. +ildouble: 1
  114541. +ldouble: 1
  114542. +Test "Real part of: casinh (-0x1p-112 + 0.5 i)":
  114543. +double: 1
  114544. +idouble: 1
  114545. +ildouble: 1
  114546. +ldouble: 1
  114547. +Test "Imaginary part of: casinh (-0x1p-112 + 0.5 i)":
  114548. +ildouble: 1
  114549. +ldouble: 1
  114550. +Test "Imaginary part of: casinh (-0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
  114551. +ildouble: 1
  114552. +ldouble: 1
  114553. +Test "Real part of: casinh (-0x1p-112 - 0.5 i)":
  114554. +double: 1
  114555. +idouble: 1
  114556. +ildouble: 1
  114557. +ldouble: 1
  114558. +Test "Imaginary part of: casinh (-0x1p-112 - 0.5 i)":
  114559. +ildouble: 1
  114560. +ldouble: 1
  114561. +Test "Imaginary part of: casinh (-0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
  114562. +ildouble: 1
  114563. +ldouble: 1
  114564. +Test "Real part of: casinh (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  114565. +ildouble: 1
  114566. +ldouble: 1
  114567. +Test "Real part of: casinh (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  114568. +ildouble: 1
  114569. +ldouble: 1
  114570. +Test "Real part of: casinh (-0x1p-23 + 0.5 i)":
  114571. +double: 1
  114572. +idouble: 1
  114573. +ildouble: 1
  114574. +ldouble: 1
  114575. +Test "Imaginary part of: casinh (-0x1p-23 + 0.5 i)":
  114576. +ildouble: 1
  114577. +ldouble: 1
  114578. +Test "Real part of: casinh (-0x1p-23 + 0x0.ffffffp0 i)":
  114579. +float: 2
  114580. +ifloat: 2
  114581. +Test "Imaginary part of: casinh (-0x1p-23 + 0x0.ffffffp0 i)":
  114582. +ildouble: 1
  114583. +ldouble: 1
  114584. +Test "Real part of: casinh (-0x1p-23 + 0x1.000002p0 i)":
  114585. +float: 1
  114586. +ifloat: 1
  114587. +ildouble: 1
  114588. +ldouble: 1
  114589. +Test "Real part of: casinh (-0x1p-23 - 0.5 i)":
  114590. +double: 1
  114591. +idouble: 1
  114592. +ildouble: 1
  114593. +ldouble: 1
  114594. +Test "Imaginary part of: casinh (-0x1p-23 - 0.5 i)":
  114595. +ildouble: 1
  114596. +ldouble: 1
  114597. +Test "Real part of: casinh (-0x1p-23 - 0x0.ffffffp0 i)":
  114598. +float: 2
  114599. +ifloat: 2
  114600. +Test "Imaginary part of: casinh (-0x1p-23 - 0x0.ffffffp0 i)":
  114601. +ildouble: 1
  114602. +ldouble: 1
  114603. +Test "Real part of: casinh (-0x1p-23 - 0x1.000002p0 i)":
  114604. +float: 1
  114605. +ifloat: 1
  114606. +ildouble: 1
  114607. +ldouble: 1
  114608. +Test "Real part of: casinh (-0x1p-52 + 0x0.fffffffffffff8p0 i)":
  114609. +double: 1
  114610. +idouble: 1
  114611. +Test "Real part of: casinh (-0x1p-52 - 0x0.fffffffffffff8p0 i)":
  114612. +double: 1
  114613. +idouble: 1
  114614. +Test "Real part of: casinh (-0x1p-63 + 0.5 i)":
  114615. +ildouble: 1
  114616. +ldouble: 1
  114617. +Test "Real part of: casinh (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
  114618. +ildouble: 1
  114619. +ldouble: 1
  114620. +Test "Real part of: casinh (-0x1p-63 - 0.5 i)":
  114621. +ildouble: 1
  114622. +ldouble: 1
  114623. +Test "Real part of: casinh (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
  114624. +ildouble: 1
  114625. +ldouble: 1
  114626. +Test "Real part of: casinh (-0x1p500 + 1.0 i)":
  114627. +ildouble: 1
  114628. +ldouble: 1
  114629. +Test "Real part of: casinh (-0x1p500 - 1.0 i)":
  114630. +ildouble: 1
  114631. +ldouble: 1
  114632. +Test "Real part of: casinh (-0x1p5000 + 1.0 i)":
  114633. +ildouble: 1
  114634. +ldouble: 1
  114635. +Test "Real part of: casinh (-0x1p5000 - 1.0 i)":
  114636. +ildouble: 1
  114637. +ldouble: 1
  114638. +Test "Real part of: casinh (-1.0 + +0 i)":
  114639. +double: 1
  114640. +float: 1
  114641. +idouble: 1
  114642. +ifloat: 1
  114643. +ildouble: 1
  114644. +ldouble: 1
  114645. +Test "Real part of: casinh (-1.0 + 0.25 i)":
  114646. +float: 1
  114647. +ifloat: 1
  114648. +ildouble: 1
  114649. +ldouble: 1
  114650. +Test "Real part of: casinh (-1.0 + 0.5 i)":
  114651. +double: 1
  114652. +idouble: 1
  114653. +ildouble: 1
  114654. +ldouble: 1
  114655. +Test "Imaginary part of: casinh (-1.0 + 0.5 i)":
  114656. +ildouble: 1
  114657. +ldouble: 1
  114658. +Test "Real part of: casinh (-1.0 + 0x1.fp-10 i)":
  114659. +double: 1
  114660. +idouble: 1
  114661. +Test "Imaginary part of: casinh (-1.0 + 0x1.fp-10 i)":
  114662. +float: 1
  114663. +ifloat: 1
  114664. +ildouble: 1
  114665. +ldouble: 1
  114666. +Test "Real part of: casinh (-1.0 + 0x1.fp-100 i)":
  114667. +double: 1
  114668. +float: 1
  114669. +idouble: 1
  114670. +ifloat: 1
  114671. +ildouble: 1
  114672. +ldouble: 1
  114673. +Test "Real part of: casinh (-1.0 + 0x1.fp-1000 i)":
  114674. +double: 1
  114675. +idouble: 1
  114676. +ildouble: 1
  114677. +ldouble: 1
  114678. +Test "Real part of: casinh (-1.0 + 0x1.fp-10000 i)":
  114679. +ildouble: 1
  114680. +ldouble: 1
  114681. +Test "Real part of: casinh (-1.0 + 0x1.fp-1025 i)":
  114682. +double: 1
  114683. +idouble: 1
  114684. +ildouble: 1
  114685. +ldouble: 1
  114686. +Test "Real part of: casinh (-1.0 + 0x1.fp-129 i)":
  114687. +double: 1
  114688. +float: 1
  114689. +idouble: 1
  114690. +ifloat: 1
  114691. +ildouble: 1
  114692. +ldouble: 1
  114693. +Test "Real part of: casinh (-1.0 + 0x1.fp-16385 i)":
  114694. +ildouble: 1
  114695. +ldouble: 1
  114696. +Test "Real part of: casinh (-1.0 + 0x1.fp-30 i)":
  114697. +double: 1
  114698. +float: 1
  114699. +idouble: 1
  114700. +ifloat: 1
  114701. +ildouble: 1
  114702. +ldouble: 1
  114703. +Test "Imaginary part of: casinh (-1.0 + 0x1.fp-30 i)":
  114704. +ildouble: 1
  114705. +ldouble: 1
  114706. +Test "Real part of: casinh (-1.0 + 0x1p500 i)":
  114707. +ildouble: 1
  114708. +ldouble: 1
  114709. +Test "Real part of: casinh (-1.0 + 0x1p5000 i)":
  114710. +ildouble: 1
  114711. +ldouble: 1
  114712. +Test "Real part of: casinh (-1.0 - 0 i)":
  114713. +double: 1
  114714. +float: 1
  114715. +idouble: 1
  114716. +ifloat: 1
  114717. +ildouble: 1
  114718. +ldouble: 1
  114719. +Test "Real part of: casinh (-1.0 - 0.25 i)":
  114720. +float: 1
  114721. +ifloat: 1
  114722. +ildouble: 1
  114723. +ldouble: 1
  114724. +Test "Real part of: casinh (-1.0 - 0.5 i)":
  114725. +double: 1
  114726. +idouble: 1
  114727. +ildouble: 1
  114728. +ldouble: 1
  114729. +Test "Imaginary part of: casinh (-1.0 - 0.5 i)":
  114730. +ildouble: 1
  114731. +ldouble: 1
  114732. +Test "Real part of: casinh (-1.0 - 0x1.fp-10 i)":
  114733. +double: 1
  114734. +idouble: 1
  114735. +Test "Imaginary part of: casinh (-1.0 - 0x1.fp-10 i)":
  114736. +float: 1
  114737. +ifloat: 1
  114738. +ildouble: 1
  114739. +ldouble: 1
  114740. +Test "Real part of: casinh (-1.0 - 0x1.fp-100 i)":
  114741. +double: 1
  114742. +float: 1
  114743. +idouble: 1
  114744. +ifloat: 1
  114745. +ildouble: 1
  114746. +ldouble: 1
  114747. +Test "Real part of: casinh (-1.0 - 0x1.fp-1000 i)":
  114748. +double: 1
  114749. +idouble: 1
  114750. +ildouble: 1
  114751. +ldouble: 1
  114752. +Test "Real part of: casinh (-1.0 - 0x1.fp-10000 i)":
  114753. +ildouble: 1
  114754. +ldouble: 1
  114755. +Test "Real part of: casinh (-1.0 - 0x1.fp-1025 i)":
  114756. +double: 1
  114757. +idouble: 1
  114758. +ildouble: 1
  114759. +ldouble: 1
  114760. +Test "Real part of: casinh (-1.0 - 0x1.fp-129 i)":
  114761. +double: 1
  114762. +float: 1
  114763. +idouble: 1
  114764. +ifloat: 1
  114765. +ildouble: 1
  114766. +ldouble: 1
  114767. +Test "Real part of: casinh (-1.0 - 0x1.fp-16385 i)":
  114768. +ildouble: 1
  114769. +ldouble: 1
  114770. +Test "Real part of: casinh (-1.0 - 0x1.fp-30 i)":
  114771. +double: 1
  114772. +float: 1
  114773. +idouble: 1
  114774. +ifloat: 1
  114775. +ildouble: 1
  114776. +ldouble: 1
  114777. +Test "Imaginary part of: casinh (-1.0 - 0x1.fp-30 i)":
  114778. +ildouble: 1
  114779. +ldouble: 1
  114780. +Test "Real part of: casinh (-1.0 - 0x1p500 i)":
  114781. +ildouble: 1
  114782. +ldouble: 1
  114783. +Test "Real part of: casinh (-1.0 - 0x1p5000 i)":
  114784. +ildouble: 1
  114785. +ldouble: 1
  114786. +Test "Real part of: casinh (-1.5 + +0 i)":
  114787. +double: 1
  114788. +idouble: 1
  114789. +ildouble: 1
  114790. +ldouble: 1
  114791. +Test "Real part of: casinh (-1.5 + 0x1.fp-1025 i)":
  114792. +double: 1
  114793. +idouble: 1
  114794. +ildouble: 1
  114795. +ldouble: 1
  114796. +Test "Real part of: casinh (-1.5 + 0x1.fp-129 i)":
  114797. +double: 1
  114798. +idouble: 1
  114799. +ildouble: 1
  114800. +ldouble: 1
  114801. +Test "Real part of: casinh (-1.5 + 0x1.fp-16385 i)":
  114802. +ildouble: 1
  114803. +ldouble: 1
  114804. +Test "Real part of: casinh (-1.5 - 0 i)":
  114805. +double: 1
  114806. +idouble: 1
  114807. +ildouble: 1
  114808. +ldouble: 1
  114809. +Test "Real part of: casinh (-1.5 - 0x1.fp-1025 i)":
  114810. +double: 1
  114811. +idouble: 1
  114812. +ildouble: 1
  114813. +ldouble: 1
  114814. +Test "Real part of: casinh (-1.5 - 0x1.fp-129 i)":
  114815. +double: 1
  114816. +idouble: 1
  114817. +ildouble: 1
  114818. +ldouble: 1
  114819. +Test "Real part of: casinh (-1.5 - 0x1.fp-16385 i)":
  114820. +ildouble: 1
  114821. +ldouble: 1
  114822. +Test "Imaginary part of: casinh (0.0 + 0x0.fffffffffffff8p0 i)":
  114823. +ildouble: 1
  114824. +ldouble: 1
  114825. +Test "Imaginary part of: casinh (0.0 + 0x0.ffffffffffffffffp0 i)":
  114826. +ildouble: 1
  114827. +ldouble: 1
  114828. +Test "Real part of: casinh (0.0 + 0x1.0000000000000000000000000001p0 i)":
  114829. +ildouble: 1
  114830. +ldouble: 1
  114831. +Test "Imaginary part of: casinh (0.0 - 0x0.fffffffffffff8p0 i)":
  114832. +ildouble: 1
  114833. +ldouble: 1
  114834. +Test "Imaginary part of: casinh (0.0 - 0x0.ffffffffffffffffp0 i)":
  114835. +ildouble: 1
  114836. +ldouble: 1
  114837. +Test "Real part of: casinh (0.0 - 0x1.0000000000000000000000000001p0 i)":
  114838. +ildouble: 1
  114839. +ldouble: 1
  114840. +Test "Imaginary part of: casinh (0.25 + 1.0 i)":
  114841. +double: 1
  114842. +idouble: 1
  114843. +ildouble: 1
  114844. +ldouble: 1
  114845. +Test "Imaginary part of: casinh (0.25 - 1.0 i)":
  114846. +double: 1
  114847. +idouble: 1
  114848. +ildouble: 1
  114849. +ldouble: 1
  114850. +Test "Real part of: casinh (0.5 + +0 i)":
  114851. +float: 1
  114852. +ifloat: 1
  114853. +ildouble: 1
  114854. +ldouble: 1
  114855. +Test "Real part of: casinh (0.5 + 0x1.fp-1025 i)":
  114856. +ildouble: 1
  114857. +ldouble: 1
  114858. +Test "Real part of: casinh (0.5 + 0x1.fp-129 i)":
  114859. +float: 1
  114860. +ifloat: 1
  114861. +ildouble: 1
  114862. +ldouble: 1
  114863. +Test "Real part of: casinh (0.5 + 0x1.fp-16385 i)":
  114864. +ildouble: 1
  114865. +ldouble: 1
  114866. +Test "Real part of: casinh (0.5 + 0x1p-105 i)":
  114867. +float: 1
  114868. +ifloat: 1
  114869. +Test "Real part of: casinh (0.5 + 0x1p-112 i)":
  114870. +float: 1
  114871. +ifloat: 1
  114872. +Test "Real part of: casinh (0.5 + 0x1p-23 i)":
  114873. +float: 1
  114874. +ifloat: 1
  114875. +ildouble: 2
  114876. +ldouble: 2
  114877. +Test "Imaginary part of: casinh (0.5 + 0x1p-23 i)":
  114878. +double: 1
  114879. +float: 1
  114880. +idouble: 1
  114881. +ifloat: 1
  114882. +ildouble: 2
  114883. +ldouble: 2
  114884. +Test "Real part of: casinh (0.5 + 0x1p-52 i)":
  114885. +float: 1
  114886. +ifloat: 1
  114887. +ildouble: 1
  114888. +ldouble: 1
  114889. +Test "Imaginary part of: casinh (0.5 + 0x1p-52 i)":
  114890. +ildouble: 1
  114891. +ldouble: 1
  114892. +Test "Real part of: casinh (0.5 + 0x1p-63 i)":
  114893. +float: 1
  114894. +ifloat: 1
  114895. +Test "Real part of: casinh (0.5 + 1.0 i)":
  114896. +float: 1
  114897. +ifloat: 1
  114898. +Test "Imaginary part of: casinh (0.5 + 1.0 i)":
  114899. +float: 1
  114900. +ifloat: 1
  114901. +Test "Real part of: casinh (0.5 - 0 i)":
  114902. +float: 1
  114903. +ifloat: 1
  114904. +ildouble: 1
  114905. +ldouble: 1
  114906. +Test "Real part of: casinh (0.5 - 0x1.fp-1025 i)":
  114907. +ildouble: 1
  114908. +ldouble: 1
  114909. +Test "Real part of: casinh (0.5 - 0x1.fp-129 i)":
  114910. +float: 1
  114911. +ifloat: 1
  114912. +ildouble: 1
  114913. +ldouble: 1
  114914. +Test "Real part of: casinh (0.5 - 0x1.fp-16385 i)":
  114915. +ildouble: 1
  114916. +ldouble: 1
  114917. +Test "Real part of: casinh (0.5 - 0x1p-105 i)":
  114918. +float: 1
  114919. +ifloat: 1
  114920. +Test "Real part of: casinh (0.5 - 0x1p-112 i)":
  114921. +float: 1
  114922. +ifloat: 1
  114923. +Test "Real part of: casinh (0.5 - 0x1p-23 i)":
  114924. +float: 1
  114925. +ifloat: 1
  114926. +ildouble: 2
  114927. +ldouble: 2
  114928. +Test "Imaginary part of: casinh (0.5 - 0x1p-23 i)":
  114929. +double: 1
  114930. +float: 1
  114931. +idouble: 1
  114932. +ifloat: 1
  114933. +ildouble: 2
  114934. +ldouble: 2
  114935. +Test "Real part of: casinh (0.5 - 0x1p-52 i)":
  114936. +float: 1
  114937. +ifloat: 1
  114938. +ildouble: 1
  114939. +ldouble: 1
  114940. +Test "Imaginary part of: casinh (0.5 - 0x1p-52 i)":
  114941. +ildouble: 1
  114942. +ldouble: 1
  114943. +Test "Real part of: casinh (0.5 - 0x1p-63 i)":
  114944. +float: 1
  114945. +ifloat: 1
  114946. +Test "Real part of: casinh (0.5 - 1.0 i)":
  114947. +float: 1
  114948. +ifloat: 1
  114949. +Test "Imaginary part of: casinh (0.5 - 1.0 i)":
  114950. +float: 1
  114951. +ifloat: 1
  114952. +Test "Real part of: casinh (0.75 + 1.25 i)":
  114953. +float: 1
  114954. +ifloat: 1
  114955. +ildouble: 1
  114956. +ldouble: 1
  114957. +Test "Imaginary part of: casinh (0.75 + 1.25 i)":
  114958. +double: 1
  114959. +float: 1
  114960. +idouble: 1
  114961. +ifloat: 1
  114962. +ildouble: 1
  114963. +ldouble: 1
  114964. +Test "Imaginary part of: casinh (0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
  114965. +ildouble: 1
  114966. +ldouble: 1
  114967. +Test "Imaginary part of: casinh (0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
  114968. +ildouble: 1
  114969. +ldouble: 1
  114970. +Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 + 0.0 i)":
  114971. +ildouble: 1
  114972. +ldouble: 1
  114973. +Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025 i)":
  114974. +ildouble: 1
  114975. +ldouble: 1
  114976. +Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
  114977. +ildouble: 1
  114978. +ldouble: 1
  114979. +Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
  114980. +ildouble: 1
  114981. +ldouble: 1
  114982. +Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025 i)":
  114983. +ildouble: 1
  114984. +ldouble: 1
  114985. +Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
  114986. +ildouble: 1
  114987. +ldouble: 1
  114988. +Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0.0 i)":
  114989. +ildouble: 1
  114990. +ldouble: 1
  114991. +Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
  114992. +ildouble: 1
  114993. +ldouble: 1
  114994. +Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
  114995. +ildouble: 1
  114996. +ldouble: 1
  114997. +Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0.0 i)":
  114998. +ildouble: 1
  114999. +ldouble: 1
  115000. +Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
  115001. +ildouble: 1
  115002. +ldouble: 1
  115003. +Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
  115004. +ildouble: 1
  115005. +ldouble: 1
  115006. +Test "Real part of: casinh (0x0.ffffffp0 + 0x1p-23 i)":
  115007. +double: 1
  115008. +idouble: 1
  115009. +Test "Real part of: casinh (0x0.ffffffp0 - 0x1p-23 i)":
  115010. +double: 1
  115011. +idouble: 1
  115012. +Test "Real part of: casinh (0x1.0000000000000000000000000001p0 + 0.0 i)":
  115013. +ildouble: 1
  115014. +ldouble: 1
  115015. +Test "Real part of: casinh (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
  115016. +ildouble: 1
  115017. +ldouble: 1
  115018. +Test "Real part of: casinh (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
  115019. +ildouble: 1
  115020. +ldouble: 1
  115021. +Test "Imaginary part of: casinh (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
  115022. +ildouble: 1
  115023. +ldouble: 1
  115024. +Test "Real part of: casinh (0x1.0000000000000000000000000001p0 - 0.0 i)":
  115025. +ildouble: 1
  115026. +ldouble: 1
  115027. +Test "Real part of: casinh (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
  115028. +ildouble: 1
  115029. +ldouble: 1
  115030. +Test "Real part of: casinh (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
  115031. +ildouble: 1
  115032. +ldouble: 1
  115033. +Test "Imaginary part of: casinh (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
  115034. +ildouble: 1
  115035. +ldouble: 1
  115036. +Test "Real part of: casinh (0x1.0000000000000002p0 + 0.0 i)":
  115037. +ildouble: 1
  115038. +ldouble: 1
  115039. +Test "Real part of: casinh (0x1.0000000000000002p0 + 0x1.fp-16385 i)":
  115040. +ildouble: 1
  115041. +ldouble: 1
  115042. +Test "Real part of: casinh (0x1.0000000000000002p0 + 0x1p-63 i)":
  115043. +ildouble: 1
  115044. +ldouble: 1
  115045. +Test "Imaginary part of: casinh (0x1.0000000000000002p0 + 0x1p-63 i)":
  115046. +ildouble: 1
  115047. +ldouble: 1
  115048. +Test "Real part of: casinh (0x1.0000000000000002p0 - 0.0 i)":
  115049. +ildouble: 1
  115050. +ldouble: 1
  115051. +Test "Real part of: casinh (0x1.0000000000000002p0 - 0x1.fp-16385 i)":
  115052. +ildouble: 1
  115053. +ldouble: 1
  115054. +Test "Real part of: casinh (0x1.0000000000000002p0 - 0x1p-63 i)":
  115055. +ildouble: 1
  115056. +ldouble: 1
  115057. +Test "Imaginary part of: casinh (0x1.0000000000000002p0 - 0x1p-63 i)":
  115058. +ildouble: 1
  115059. +ldouble: 1
  115060. +Test "Real part of: casinh (0x1.0000000000001p0 + 0.0 i)":
  115061. +ildouble: 1
  115062. +ldouble: 1
  115063. +Test "Real part of: casinh (0x1.0000000000001p0 + 0x1.fp-1025 i)":
  115064. +ildouble: 1
  115065. +ldouble: 1
  115066. +Test "Imaginary part of: casinh (0x1.0000000000001p0 + 0x1p-52 i)":
  115067. +ildouble: 1
  115068. +ldouble: 1
  115069. +Test "Real part of: casinh (0x1.0000000000001p0 - 0.0 i)":
  115070. +ildouble: 1
  115071. +ldouble: 1
  115072. +Test "Real part of: casinh (0x1.0000000000001p0 - 0x1.fp-1025 i)":
  115073. +ildouble: 1
  115074. +ldouble: 1
  115075. +Test "Imaginary part of: casinh (0x1.0000000000001p0 - 0x1p-52 i)":
  115076. +ildouble: 1
  115077. +ldouble: 1
  115078. +Test "Imaginary part of: casinh (0x1.000002p0 + 0x1p-23 i)":
  115079. +double: 1
  115080. +float: 1
  115081. +idouble: 1
  115082. +ifloat: 1
  115083. +ildouble: 1
  115084. +ldouble: 1
  115085. +Test "Imaginary part of: casinh (0x1.000002p0 - 0x1p-23 i)":
  115086. +double: 1
  115087. +float: 1
  115088. +idouble: 1
  115089. +ifloat: 1
  115090. +ildouble: 1
  115091. +ldouble: 1
  115092. +Test "Real part of: casinh (0x1.fp-10 + 1.0 i)":
  115093. +float: 1
  115094. +ifloat: 1
  115095. +ildouble: 1
  115096. +ldouble: 1
  115097. +Test "Real part of: casinh (0x1.fp-10 - 1.0 i)":
  115098. +float: 1
  115099. +ifloat: 1
  115100. +ildouble: 1
  115101. +ldouble: 1
  115102. +Test "Imaginary part of: casinh (0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
  115103. +ildouble: 1
  115104. +ldouble: 1
  115105. +Test "Imaginary part of: casinh (0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
  115106. +ildouble: 1
  115107. +ldouble: 1
  115108. +Test "Real part of: casinh (0x1.fp-129 + 0.5 i)":
  115109. +double: 1
  115110. +idouble: 1
  115111. +Test "Imaginary part of: casinh (0x1.fp-129 + 1.0 i)":
  115112. +ildouble: 1
  115113. +ldouble: 1
  115114. +Test "Real part of: casinh (0x1.fp-129 - 0.5 i)":
  115115. +double: 1
  115116. +idouble: 1
  115117. +Test "Imaginary part of: casinh (0x1.fp-129 - 1.0 i)":
  115118. +ildouble: 1
  115119. +ldouble: 1
  115120. +Test "Imaginary part of: casinh (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
  115121. +ildouble: 1
  115122. +ldouble: 1
  115123. +Test "Real part of: casinh (0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
  115124. +ildouble: 1
  115125. +ldouble: 1
  115126. +Test "Imaginary part of: casinh (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
  115127. +ildouble: 1
  115128. +ldouble: 1
  115129. +Test "Real part of: casinh (0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
  115130. +ildouble: 1
  115131. +ldouble: 1
  115132. +Test "Real part of: casinh (0x1.fp-30 + 1.0 i)":
  115133. +ildouble: 1
  115134. +ldouble: 1
  115135. +Test "Real part of: casinh (0x1.fp-30 - 1.0 i)":
  115136. +ildouble: 1
  115137. +ldouble: 1
  115138. +Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i)":
  115139. +double: 1
  115140. +idouble: 1
  115141. +Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i)":
  115142. +double: 1
  115143. +idouble: 1
  115144. +Test "Real part of: casinh (0x1.fp16383 + 0x1.fp16383 i)":
  115145. +ildouble: 1
  115146. +ldouble: 1
  115147. +Test "Real part of: casinh (0x1p-105 + 0.5 i)":
  115148. +double: 1
  115149. +idouble: 1
  115150. +ildouble: 1
  115151. +ldouble: 1
  115152. +Test "Real part of: casinh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  115153. +ildouble: 1
  115154. +ldouble: 1
  115155. +Test "Imaginary part of: casinh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  115156. +ildouble: 1
  115157. +ldouble: 1
  115158. +Test "Real part of: casinh (0x1p-105 - 0.5 i)":
  115159. +double: 1
  115160. +idouble: 1
  115161. +ildouble: 1
  115162. +ldouble: 1
  115163. +Test "Real part of: casinh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  115164. +ildouble: 1
  115165. +ldouble: 1
  115166. +Test "Imaginary part of: casinh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  115167. +ildouble: 1
  115168. +ldouble: 1
  115169. +Test "Real part of: casinh (0x1p-112 + 0.5 i)":
  115170. +double: 1
  115171. +idouble: 1
  115172. +ildouble: 1
  115173. +ldouble: 1
  115174. +Test "Imaginary part of: casinh (0x1p-112 + 0.5 i)":
  115175. +ildouble: 1
  115176. +ldouble: 1
  115177. +Test "Imaginary part of: casinh (0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
  115178. +ildouble: 1
  115179. +ldouble: 1
  115180. +Test "Real part of: casinh (0x1p-112 - 0.5 i)":
  115181. +double: 1
  115182. +idouble: 1
  115183. +ildouble: 1
  115184. +ldouble: 1
  115185. +Test "Imaginary part of: casinh (0x1p-112 - 0.5 i)":
  115186. +ildouble: 1
  115187. +ldouble: 1
  115188. +Test "Imaginary part of: casinh (0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
  115189. +ildouble: 1
  115190. +ldouble: 1
  115191. +Test "Real part of: casinh (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  115192. +ildouble: 1
  115193. +ldouble: 1
  115194. +Test "Real part of: casinh (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  115195. +ildouble: 1
  115196. +ldouble: 1
  115197. +Test "Real part of: casinh (0x1p-23 + 0.5 i)":
  115198. +double: 1
  115199. +idouble: 1
  115200. +ildouble: 1
  115201. +ldouble: 1
  115202. +Test "Imaginary part of: casinh (0x1p-23 + 0.5 i)":
  115203. +ildouble: 1
  115204. +ldouble: 1
  115205. +Test "Real part of: casinh (0x1p-23 + 0x0.ffffffp0 i)":
  115206. +float: 2
  115207. +ifloat: 2
  115208. +Test "Imaginary part of: casinh (0x1p-23 + 0x0.ffffffp0 i)":
  115209. +ildouble: 1
  115210. +ldouble: 1
  115211. +Test "Real part of: casinh (0x1p-23 + 0x1.000002p0 i)":
  115212. +float: 1
  115213. +ifloat: 1
  115214. +ildouble: 1
  115215. +ldouble: 1
  115216. +Test "Real part of: casinh (0x1p-23 - 0.5 i)":
  115217. +double: 1
  115218. +idouble: 1
  115219. +ildouble: 1
  115220. +ldouble: 1
  115221. +Test "Imaginary part of: casinh (0x1p-23 - 0.5 i)":
  115222. +ildouble: 1
  115223. +ldouble: 1
  115224. +Test "Real part of: casinh (0x1p-23 - 0x0.ffffffp0 i)":
  115225. +float: 2
  115226. +ifloat: 2
  115227. +Test "Imaginary part of: casinh (0x1p-23 - 0x0.ffffffp0 i)":
  115228. +ildouble: 1
  115229. +ldouble: 1
  115230. +Test "Real part of: casinh (0x1p-23 - 0x1.000002p0 i)":
  115231. +float: 1
  115232. +ifloat: 1
  115233. +ildouble: 1
  115234. +ldouble: 1
  115235. +Test "Real part of: casinh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
  115236. +double: 1
  115237. +idouble: 1
  115238. +Test "Real part of: casinh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
  115239. +double: 1
  115240. +idouble: 1
  115241. +Test "Real part of: casinh (0x1p-63 + 0.5 i)":
  115242. +ildouble: 1
  115243. +ldouble: 1
  115244. +Test "Real part of: casinh (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
  115245. +ildouble: 1
  115246. +ldouble: 1
  115247. +Test "Real part of: casinh (0x1p-63 - 0.5 i)":
  115248. +ildouble: 1
  115249. +ldouble: 1
  115250. +Test "Real part of: casinh (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
  115251. +ildouble: 1
  115252. +ldouble: 1
  115253. +Test "Real part of: casinh (0x1p500 + 1.0 i)":
  115254. +ildouble: 1
  115255. +ldouble: 1
  115256. +Test "Real part of: casinh (0x1p500 - 1.0 i)":
  115257. +ildouble: 1
  115258. +ldouble: 1
  115259. +Test "Real part of: casinh (0x1p5000 + 1.0 i)":
  115260. +ildouble: 1
  115261. +ldouble: 1
  115262. +Test "Real part of: casinh (0x1p5000 - 1.0 i)":
  115263. +ildouble: 1
  115264. +ldouble: 1
  115265. +Test "Real part of: casinh (1.0 + +0 i)":
  115266. +double: 1
  115267. +float: 1
  115268. +idouble: 1
  115269. +ifloat: 1
  115270. +ildouble: 1
  115271. +ldouble: 1
  115272. +Test "Real part of: casinh (1.0 + 0.25 i)":
  115273. +float: 1
  115274. +ifloat: 1
  115275. +ildouble: 1
  115276. +ldouble: 1
  115277. +Test "Real part of: casinh (1.0 + 0.5 i)":
  115278. +double: 1
  115279. +idouble: 1
  115280. +ildouble: 1
  115281. +ldouble: 1
  115282. +Test "Imaginary part of: casinh (1.0 + 0.5 i)":
  115283. +ildouble: 1
  115284. +ldouble: 1
  115285. +Test "Real part of: casinh (1.0 + 0x1.fp-10 i)":
  115286. +double: 1
  115287. +idouble: 1
  115288. +Test "Imaginary part of: casinh (1.0 + 0x1.fp-10 i)":
  115289. +float: 1
  115290. +ifloat: 1
  115291. +ildouble: 1
  115292. +ldouble: 1
  115293. +Test "Real part of: casinh (1.0 + 0x1.fp-100 i)":
  115294. +double: 1
  115295. +float: 1
  115296. +idouble: 1
  115297. +ifloat: 1
  115298. +ildouble: 1
  115299. +ldouble: 1
  115300. +Test "Real part of: casinh (1.0 + 0x1.fp-1000 i)":
  115301. +double: 1
  115302. +idouble: 1
  115303. +ildouble: 1
  115304. +ldouble: 1
  115305. +Test "Real part of: casinh (1.0 + 0x1.fp-10000 i)":
  115306. +ildouble: 1
  115307. +ldouble: 1
  115308. +Test "Real part of: casinh (1.0 + 0x1.fp-1025 i)":
  115309. +double: 1
  115310. +idouble: 1
  115311. +ildouble: 1
  115312. +ldouble: 1
  115313. +Test "Real part of: casinh (1.0 + 0x1.fp-129 i)":
  115314. +double: 1
  115315. +float: 1
  115316. +idouble: 1
  115317. +ifloat: 1
  115318. +ildouble: 1
  115319. +ldouble: 1
  115320. +Test "Real part of: casinh (1.0 + 0x1.fp-16385 i)":
  115321. +ildouble: 1
  115322. +ldouble: 1
  115323. +Test "Real part of: casinh (1.0 + 0x1.fp-30 i)":
  115324. +double: 1
  115325. +float: 1
  115326. +idouble: 1
  115327. +ifloat: 1
  115328. +ildouble: 1
  115329. +ldouble: 1
  115330. +Test "Imaginary part of: casinh (1.0 + 0x1.fp-30 i)":
  115331. +ildouble: 1
  115332. +ldouble: 1
  115333. +Test "Real part of: casinh (1.0 + 0x1p500 i)":
  115334. +ildouble: 1
  115335. +ldouble: 1
  115336. +Test "Real part of: casinh (1.0 + 0x1p5000 i)":
  115337. +ildouble: 1
  115338. +ldouble: 1
  115339. +Test "Real part of: casinh (1.0 - 0 i)":
  115340. +double: 1
  115341. +float: 1
  115342. +idouble: 1
  115343. +ifloat: 1
  115344. +ildouble: 1
  115345. +ldouble: 1
  115346. +Test "Real part of: casinh (1.0 - 0.25 i)":
  115347. +float: 1
  115348. +ifloat: 1
  115349. +ildouble: 1
  115350. +ldouble: 1
  115351. +Test "Real part of: casinh (1.0 - 0.5 i)":
  115352. +double: 1
  115353. +idouble: 1
  115354. +ildouble: 1
  115355. +ldouble: 1
  115356. +Test "Imaginary part of: casinh (1.0 - 0.5 i)":
  115357. +ildouble: 1
  115358. +ldouble: 1
  115359. +Test "Real part of: casinh (1.0 - 0x1.fp-10 i)":
  115360. +double: 1
  115361. +idouble: 1
  115362. +Test "Imaginary part of: casinh (1.0 - 0x1.fp-10 i)":
  115363. +float: 1
  115364. +ifloat: 1
  115365. +ildouble: 1
  115366. +ldouble: 1
  115367. +Test "Real part of: casinh (1.0 - 0x1.fp-100 i)":
  115368. +double: 1
  115369. +float: 1
  115370. +idouble: 1
  115371. +ifloat: 1
  115372. +ildouble: 1
  115373. +ldouble: 1
  115374. +Test "Real part of: casinh (1.0 - 0x1.fp-1000 i)":
  115375. +double: 1
  115376. +idouble: 1
  115377. +ildouble: 1
  115378. +ldouble: 1
  115379. +Test "Real part of: casinh (1.0 - 0x1.fp-10000 i)":
  115380. +ildouble: 1
  115381. +ldouble: 1
  115382. +Test "Real part of: casinh (1.0 - 0x1.fp-1025 i)":
  115383. +double: 1
  115384. +idouble: 1
  115385. +ildouble: 1
  115386. +ldouble: 1
  115387. +Test "Real part of: casinh (1.0 - 0x1.fp-129 i)":
  115388. +double: 1
  115389. +float: 1
  115390. +idouble: 1
  115391. +ifloat: 1
  115392. +ildouble: 1
  115393. +ldouble: 1
  115394. +Test "Real part of: casinh (1.0 - 0x1.fp-16385 i)":
  115395. +ildouble: 1
  115396. +ldouble: 1
  115397. +Test "Real part of: casinh (1.0 - 0x1.fp-30 i)":
  115398. +double: 1
  115399. +float: 1
  115400. +idouble: 1
  115401. +ifloat: 1
  115402. +ildouble: 1
  115403. +ldouble: 1
  115404. +Test "Imaginary part of: casinh (1.0 - 0x1.fp-30 i)":
  115405. +ildouble: 1
  115406. +ldouble: 1
  115407. +Test "Real part of: casinh (1.0 - 0x1p500 i)":
  115408. +ildouble: 1
  115409. +ldouble: 1
  115410. +Test "Real part of: casinh (1.0 - 0x1p5000 i)":
  115411. +ildouble: 1
  115412. +ldouble: 1
  115413. +Test "Real part of: casinh (1.5 + +0 i)":
  115414. +double: 1
  115415. +idouble: 1
  115416. +ildouble: 1
  115417. +ldouble: 1
  115418. +Test "Real part of: casinh (1.5 + 0x1.fp-1025 i)":
  115419. +double: 1
  115420. +idouble: 1
  115421. +ildouble: 1
  115422. +ldouble: 1
  115423. +Test "Real part of: casinh (1.5 + 0x1.fp-129 i)":
  115424. +double: 1
  115425. +idouble: 1
  115426. +ildouble: 1
  115427. +ldouble: 1
  115428. +Test "Real part of: casinh (1.5 + 0x1.fp-16385 i)":
  115429. +ildouble: 1
  115430. +ldouble: 1
  115431. +Test "Real part of: casinh (1.5 - 0 i)":
  115432. +double: 1
  115433. +idouble: 1
  115434. +ildouble: 1
  115435. +ldouble: 1
  115436. +Test "Real part of: casinh (1.5 - 0x1.fp-1025 i)":
  115437. +double: 1
  115438. +idouble: 1
  115439. +ildouble: 1
  115440. +ldouble: 1
  115441. +Test "Real part of: casinh (1.5 - 0x1.fp-129 i)":
  115442. +double: 1
  115443. +idouble: 1
  115444. +ildouble: 1
  115445. +ldouble: 1
  115446. +Test "Real part of: casinh (1.5 - 0x1.fp-16385 i)":
  115447. +ildouble: 1
  115448. +ldouble: 1
  115449. +
  115450. +# catan
  115451. +Test "Imaginary part of: catan (-0x0.fffffffffffff8p0 + 0x1p-27 i)":
  115452. +double: 1
  115453. +idouble: 1
  115454. +Test "Real part of: catan (-0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-16382 i)":
  115455. +ildouble: 1
  115456. +ldouble: 1
  115457. +Test "Imaginary part of: catan (-0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-57 i)":
  115458. +ildouble: 1
  115459. +ldouble: 1
  115460. +Test "Real part of: catan (-0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-16382 i)":
  115461. +ildouble: 1
  115462. +ldouble: 1
  115463. +Test "Real part of: catan (-0x0.ffffffp0 + 0x1p-126 i)":
  115464. +ildouble: 1
  115465. +ldouble: 1
  115466. +Test "Imaginary part of: catan (-0x0.ffffffp0 + 0x1p-13 i)":
  115467. +double: 1
  115468. +float: 1
  115469. +idouble: 1
  115470. +ifloat: 1
  115471. +ildouble: 1
  115472. +ldouble: 1
  115473. +Test "Real part of: catan (-0x0.ffffffp0 - 0x1p-126 i)":
  115474. +ildouble: 1
  115475. +ldouble: 1
  115476. +Test "Imaginary part of: catan (-0x1.0000000000000000000000000001p0 + 0x1p-16382 i)":
  115477. +ildouble: 1
  115478. +ldouble: 1
  115479. +Test "Imaginary part of: catan (-0x1.0000000000000000000000000001p0 - 0x1p-16382 i)":
  115480. +ildouble: 1
  115481. +ldouble: 1
  115482. +Test "Imaginary part of: catan (-0x1.0000000000000000000000000001p0 - 0x1p-57 i)":
  115483. +ildouble: 1
  115484. +ldouble: 1
  115485. +Test "Imaginary part of: catan (-0x1.0000000000001p0 - 0x1p-27 i)":
  115486. +double: 1
  115487. +idouble: 1
  115488. +Test "Real part of: catan (-0x1.000002p0 + 0x1p-126 i)":
  115489. +float: 1
  115490. +ifloat: 1
  115491. +ildouble: 1
  115492. +ldouble: 1
  115493. +Test "Real part of: catan (-0x1.000002p0 + 0x1p-13 i)":
  115494. +float: 1
  115495. +ifloat: 1
  115496. +Test "Real part of: catan (-0x1.000002p0 - 0x1p-126 i)":
  115497. +float: 1
  115498. +ifloat: 1
  115499. +ildouble: 1
  115500. +ldouble: 1
  115501. +Test "Real part of: catan (-0x1.000002p0 - 0x1p-13 i)":
  115502. +float: 1
  115503. +ifloat: 1
  115504. +Test "Imaginary part of: catan (-0x1.000002p0 - 0x1p-13 i)":
  115505. +double: 1
  115506. +idouble: 1
  115507. +Test "Imaginary part of: catan (-0x1.fp1023 + 0x1.fp1023 i)":
  115508. +double: 1
  115509. +idouble: 1
  115510. +Test "Imaginary part of: catan (-0x1.fp1023 - 0x1.fp1023 i)":
  115511. +double: 1
  115512. +idouble: 1
  115513. +Test "Imaginary part of: catan (-0x1.fp127 + 0x1.fp127 i)":
  115514. +double: 1
  115515. +idouble: 1
  115516. +Test "Imaginary part of: catan (-0x1.fp127 - 0x1.fp127 i)":
  115517. +double: 1
  115518. +idouble: 1
  115519. +Test "Imaginary part of: catan (-0x1.fp16383 + 0x1.fp16383 i)":
  115520. +ildouble: 1
  115521. +ldouble: 1
  115522. +Test "Imaginary part of: catan (-0x1.fp16383 - 0x1.fp16383 i)":
  115523. +ildouble: 1
  115524. +ldouble: 1
  115525. +Test "Imaginary part of: catan (-0x1p-1020 + 1.0 i)":
  115526. +double: 1
  115527. +idouble: 1
  115528. +Test "Imaginary part of: catan (-0x1p-1020 - 1.0 i)":
  115529. +double: 1
  115530. +idouble: 1
  115531. +Test "Real part of: catan (-0x1p-13 + 0x1.000002p0 i)":
  115532. +float: 1
  115533. +ifloat: 1
  115534. +Test "Real part of: catan (-0x1p-13 + 1.0 i)":
  115535. +float: 1
  115536. +ifloat: 1
  115537. +Test "Real part of: catan (-0x1p-13 - 0x1.000002p0 i)":
  115538. +float: 1
  115539. +ifloat: 1
  115540. +Test "Imaginary part of: catan (-0x1p-13 - 0x1.000002p0 i)":
  115541. +float: 1
  115542. +ifloat: 1
  115543. +Test "Real part of: catan (-0x1p-13 - 1.0 i)":
  115544. +float: 1
  115545. +ifloat: 1
  115546. +Test "Imaginary part of: catan (-0x1p-16380 + 1.0 i)":
  115547. +ildouble: 1
  115548. +ldouble: 1
  115549. +Test "Imaginary part of: catan (-0x1p-16380 - 1.0 i)":
  115550. +ildouble: 1
  115551. +ldouble: 1
  115552. +Test "Real part of: catan (-0x1p-33 + 0x0.ffffffffffffffffp0 i)":
  115553. +ildouble: 1
  115554. +ldouble: 1
  115555. +Test "Real part of: catan (-0x1p-33 + 0x1.0000000000000002p0 i)":
  115556. +ildouble: 1
  115557. +ldouble: 1
  115558. +Test "Real part of: catan (-0x1p-33 - 0x0.ffffffffffffffffp0 i)":
  115559. +ildouble: 1
  115560. +ldouble: 1
  115561. +Test "Real part of: catan (-0x1p-33 - 0x1.0000000000000002p0 i)":
  115562. +ildouble: 1
  115563. +ldouble: 1
  115564. +Test "Imaginary part of: catan (-0x1p-54 + 1.0 i)":
  115565. +float: 1
  115566. +ifloat: 1
  115567. +Test "Imaginary part of: catan (-0x1p-54 - 1.0 i)":
  115568. +float: 1
  115569. +ifloat: 1
  115570. +Test "Imaginary part of: catan (-0x1p-57 + 1.0 i)":
  115571. +float: 1
  115572. +ifloat: 1
  115573. +Test "Imaginary part of: catan (-0x1p-57 - 1.0 i)":
  115574. +float: 1
  115575. +ifloat: 1
  115576. +Test "Real part of: catan (-1.0 + 0x1p-13 i)":
  115577. +float: 1
  115578. +ifloat: 1
  115579. +ildouble: 1
  115580. +ldouble: 1
  115581. +Test "Real part of: catan (-1.0 - 0x1p-13 i)":
  115582. +float: 1
  115583. +ifloat: 1
  115584. +ildouble: 1
  115585. +ldouble: 1
  115586. +Test "Imaginary part of: catan (-2 - 3 i)":
  115587. +double: 1
  115588. +float: 1
  115589. +idouble: 1
  115590. +ifloat: 1
  115591. +Test "Imaginary part of: catan (0.75 + 1.25 i)":
  115592. +ildouble: 1
  115593. +ldouble: 1
  115594. +Test "Imaginary part of: catan (0x0.fffffffffffff8p0 + 0x1p-27 i)":
  115595. +double: 1
  115596. +idouble: 1
  115597. +Test "Real part of: catan (0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-16382 i)":
  115598. +ildouble: 1
  115599. +ldouble: 1
  115600. +Test "Imaginary part of: catan (0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-57 i)":
  115601. +ildouble: 1
  115602. +ldouble: 1
  115603. +Test "Real part of: catan (0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-16382 i)":
  115604. +ildouble: 1
  115605. +ldouble: 1
  115606. +Test "Real part of: catan (0x0.ffffffp0 + 0x1p-126 i)":
  115607. +ildouble: 1
  115608. +ldouble: 1
  115609. +Test "Imaginary part of: catan (0x0.ffffffp0 + 0x1p-13 i)":
  115610. +double: 1
  115611. +float: 1
  115612. +idouble: 1
  115613. +ifloat: 1
  115614. +ildouble: 1
  115615. +ldouble: 1
  115616. +Test "Real part of: catan (0x0.ffffffp0 - 0x1p-126 i)":
  115617. +ildouble: 1
  115618. +ldouble: 1
  115619. +Test "Imaginary part of: catan (0x1.0000000000000000000000000001p0 + 0x1p-16382 i)":
  115620. +ildouble: 1
  115621. +ldouble: 1
  115622. +Test "Imaginary part of: catan (0x1.0000000000000000000000000001p0 - 0x1p-16382 i)":
  115623. +ildouble: 1
  115624. +ldouble: 1
  115625. +Test "Imaginary part of: catan (0x1.0000000000000000000000000001p0 - 0x1p-57 i)":
  115626. +ildouble: 1
  115627. +ldouble: 1
  115628. +Test "Imaginary part of: catan (0x1.0000000000001p0 - 0x1p-27 i)":
  115629. +double: 1
  115630. +idouble: 1
  115631. +Test "Real part of: catan (0x1.000002p0 + 0x1p-126 i)":
  115632. +float: 1
  115633. +ifloat: 1
  115634. +ildouble: 1
  115635. +ldouble: 1
  115636. +Test "Real part of: catan (0x1.000002p0 + 0x1p-13 i)":
  115637. +float: 1
  115638. +ifloat: 1
  115639. +Test "Real part of: catan (0x1.000002p0 - 0x1p-126 i)":
  115640. +float: 1
  115641. +ifloat: 1
  115642. +ildouble: 1
  115643. +ldouble: 1
  115644. +Test "Real part of: catan (0x1.000002p0 - 0x1p-13 i)":
  115645. +float: 1
  115646. +ifloat: 1
  115647. +Test "Imaginary part of: catan (0x1.000002p0 - 0x1p-13 i)":
  115648. +double: 1
  115649. +idouble: 1
  115650. +Test "Imaginary part of: catan (0x1.fp1023 + 0x1.fp1023 i)":
  115651. +double: 1
  115652. +idouble: 1
  115653. +Test "Imaginary part of: catan (0x1.fp1023 - 0x1.fp1023 i)":
  115654. +double: 1
  115655. +idouble: 1
  115656. +Test "Imaginary part of: catan (0x1.fp127 + 0x1.fp127 i)":
  115657. +double: 1
  115658. +idouble: 1
  115659. +Test "Imaginary part of: catan (0x1.fp127 - 0x1.fp127 i)":
  115660. +double: 1
  115661. +idouble: 1
  115662. +Test "Imaginary part of: catan (0x1.fp16383 + 0x1.fp16383 i)":
  115663. +ildouble: 1
  115664. +ldouble: 1
  115665. +Test "Imaginary part of: catan (0x1.fp16383 - 0x1.fp16383 i)":
  115666. +ildouble: 1
  115667. +ldouble: 1
  115668. +Test "Imaginary part of: catan (0x1p-1020 + 1.0 i)":
  115669. +double: 1
  115670. +idouble: 1
  115671. +Test "Imaginary part of: catan (0x1p-1020 - 1.0 i)":
  115672. +double: 1
  115673. +idouble: 1
  115674. +Test "Real part of: catan (0x1p-13 + 0x1.000002p0 i)":
  115675. +float: 1
  115676. +ifloat: 1
  115677. +Test "Real part of: catan (0x1p-13 + 1.0 i)":
  115678. +float: 1
  115679. +ifloat: 1
  115680. +Test "Real part of: catan (0x1p-13 - 0x1.000002p0 i)":
  115681. +float: 1
  115682. +ifloat: 1
  115683. +Test "Imaginary part of: catan (0x1p-13 - 0x1.000002p0 i)":
  115684. +float: 1
  115685. +ifloat: 1
  115686. +Test "Real part of: catan (0x1p-13 - 1.0 i)":
  115687. +float: 1
  115688. +ifloat: 1
  115689. +Test "Imaginary part of: catan (0x1p-16380 + 1.0 i)":
  115690. +ildouble: 1
  115691. +ldouble: 1
  115692. +Test "Imaginary part of: catan (0x1p-16380 - 1.0 i)":
  115693. +ildouble: 1
  115694. +ldouble: 1
  115695. +Test "Real part of: catan (0x1p-33 + 0x0.ffffffffffffffffp0 i)":
  115696. +ildouble: 1
  115697. +ldouble: 1
  115698. +Test "Real part of: catan (0x1p-33 + 0x1.0000000000000002p0 i)":
  115699. +ildouble: 1
  115700. +ldouble: 1
  115701. +Test "Real part of: catan (0x1p-33 - 0x0.ffffffffffffffffp0 i)":
  115702. +ildouble: 1
  115703. +ldouble: 1
  115704. +Test "Real part of: catan (0x1p-33 - 0x1.0000000000000002p0 i)":
  115705. +ildouble: 1
  115706. +ldouble: 1
  115707. +Test "Imaginary part of: catan (0x1p-54 + 1.0 i)":
  115708. +float: 1
  115709. +ifloat: 1
  115710. +Test "Imaginary part of: catan (0x1p-54 - 1.0 i)":
  115711. +float: 1
  115712. +ifloat: 1
  115713. +Test "Imaginary part of: catan (0x1p-57 + 1.0 i)":
  115714. +float: 1
  115715. +ifloat: 1
  115716. +Test "Imaginary part of: catan (0x1p-57 - 1.0 i)":
  115717. +float: 1
  115718. +ifloat: 1
  115719. +Test "Real part of: catan (1.0 + 0x1p-13 i)":
  115720. +float: 1
  115721. +ifloat: 1
  115722. +ildouble: 1
  115723. +ldouble: 1
  115724. +Test "Real part of: catan (1.0 - 0x1p-13 i)":
  115725. +float: 1
  115726. +ifloat: 1
  115727. +ildouble: 1
  115728. +ldouble: 1
  115729. +
  115730. +# catanh
  115731. +Test "Imaginary part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-33 i)":
  115732. +ildouble: 1
  115733. +ldouble: 1
  115734. +Test "Imaginary part of: catanh (-0x0.ffffffffffffffffp0 - 0x1p-33 i)":
  115735. +ildouble: 1
  115736. +ldouble: 1
  115737. +Test "Imaginary part of: catanh (-0x1.0000000000000002p0 + 0x1p-33 i)":
  115738. +ildouble: 1
  115739. +ldouble: 1
  115740. +Test "Imaginary part of: catanh (-0x1.0000000000000002p0 - 0x1p-33 i)":
  115741. +ildouble: 1
  115742. +ldouble: 1
  115743. +Test "Real part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
  115744. +float: 1
  115745. +ifloat: 1
  115746. +Test "Imaginary part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
  115747. +float: 1
  115748. +ifloat: 1
  115749. +Test "Real part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
  115750. +float: 1
  115751. +ifloat: 1
  115752. +Test "Imaginary part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
  115753. +float: 1
  115754. +ifloat: 1
  115755. +Test "Real part of: catanh (-0x1.fp1023 + 0x1.fp1023 i)":
  115756. +double: 1
  115757. +idouble: 1
  115758. +Test "Real part of: catanh (-0x1.fp1023 - 0x1.fp1023 i)":
  115759. +double: 1
  115760. +idouble: 1
  115761. +Test "Real part of: catanh (-0x1.fp127 + 0x1.fp127 i)":
  115762. +double: 1
  115763. +idouble: 1
  115764. +Test "Real part of: catanh (-0x1.fp127 - 0x1.fp127 i)":
  115765. +double: 1
  115766. +idouble: 1
  115767. +Test "Real part of: catanh (-0x1.fp16383 + 0x1.fp16383 i)":
  115768. +ildouble: 1
  115769. +ldouble: 1
  115770. +Test "Real part of: catanh (-0x1.fp16383 - 0x1.fp16383 i)":
  115771. +ildouble: 1
  115772. +ldouble: 1
  115773. +Test "Imaginary part of: catanh (-0x1p-126 + 0x0.ffffffp0 i)":
  115774. +ildouble: 1
  115775. +ldouble: 1
  115776. +Test "Imaginary part of: catanh (-0x1p-126 + 0x1.000002p0 i)":
  115777. +float: 1
  115778. +ifloat: 1
  115779. +ildouble: 1
  115780. +ldouble: 1
  115781. +Test "Imaginary part of: catanh (-0x1p-126 - 0x0.ffffffp0 i)":
  115782. +ildouble: 1
  115783. +ldouble: 1
  115784. +Test "Imaginary part of: catanh (-0x1p-126 - 0x1.000002p0 i)":
  115785. +float: 1
  115786. +ifloat: 1
  115787. +ildouble: 1
  115788. +ldouble: 1
  115789. +Test "Real part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
  115790. +double: 1
  115791. +idouble: 1
  115792. +Test "Imaginary part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
  115793. +float: 1
  115794. +ifloat: 1
  115795. +Test "Imaginary part of: catanh (-0x1p-13 + 1.0 i)":
  115796. +float: 1
  115797. +ifloat: 1
  115798. +ildouble: 1
  115799. +ldouble: 1
  115800. +Test "Real part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
  115801. +double: 1
  115802. +idouble: 1
  115803. +Test "Imaginary part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
  115804. +float: 1
  115805. +ifloat: 1
  115806. +Test "Imaginary part of: catanh (-0x1p-13 - 1.0 i)":
  115807. +float: 1
  115808. +ifloat: 1
  115809. +ildouble: 1
  115810. +ldouble: 1
  115811. +Test "Imaginary part of: catanh (-0x1p-16382 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
  115812. +ildouble: 1
  115813. +ldouble: 1
  115814. +Test "Real part of: catanh (-0x1p-16382 + 0x1.0000000000000000000000000001p0 i)":
  115815. +ildouble: 1
  115816. +ldouble: 1
  115817. +Test "Imaginary part of: catanh (-0x1p-16382 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
  115818. +ildouble: 1
  115819. +ldouble: 1
  115820. +Test "Real part of: catanh (-0x1p-16382 - 0x1.0000000000000000000000000001p0 i)":
  115821. +ildouble: 1
  115822. +ldouble: 1
  115823. +Test "Real part of: catanh (-0x1p-27 + 0x1.0000000000001p0 i)":
  115824. +double: 1
  115825. +idouble: 1
  115826. +Test "Real part of: catanh (-0x1p-27 - 0x1.0000000000001p0 i)":
  115827. +double: 1
  115828. +idouble: 1
  115829. +Test "Real part of: catanh (-0x1p-57 + 0x1.0000000000000000000000000001p0 i)":
  115830. +ildouble: 1
  115831. +ldouble: 1
  115832. +Test "Real part of: catanh (-0x1p-57 - 0x1.0000000000000000000000000001p0 i)":
  115833. +ildouble: 1
  115834. +ldouble: 1
  115835. +Test "Real part of: catanh (-1.0 + 0x1p-1020 i)":
  115836. +double: 1
  115837. +idouble: 1
  115838. +Test "Imaginary part of: catanh (-1.0 + 0x1p-13 i)":
  115839. +float: 1
  115840. +ifloat: 1
  115841. +Test "Real part of: catanh (-1.0 + 0x1p-16380 i)":
  115842. +ildouble: 1
  115843. +ldouble: 1
  115844. +Test "Real part of: catanh (-1.0 + 0x1p-54 i)":
  115845. +float: 1
  115846. +ifloat: 1
  115847. +Test "Real part of: catanh (-1.0 + 0x1p-57 i)":
  115848. +float: 1
  115849. +ifloat: 1
  115850. +Test "Real part of: catanh (-1.0 - 0x1p-1020 i)":
  115851. +double: 1
  115852. +idouble: 1
  115853. +Test "Imaginary part of: catanh (-1.0 - 0x1p-13 i)":
  115854. +float: 1
  115855. +ifloat: 1
  115856. +Test "Real part of: catanh (-1.0 - 0x1p-16380 i)":
  115857. +ildouble: 1
  115858. +ldouble: 1
  115859. +Test "Real part of: catanh (-1.0 - 0x1p-54 i)":
  115860. +float: 1
  115861. +ifloat: 1
  115862. +Test "Real part of: catanh (-1.0 - 0x1p-57 i)":
  115863. +float: 1
  115864. +ifloat: 1
  115865. +Test "Real part of: catanh (-2 - 3 i)":
  115866. +double: 1
  115867. +idouble: 1
  115868. +ildouble: 1
  115869. +ldouble: 1
  115870. +Test "Real part of: catanh (0.75 + 1.25 i)":
  115871. +ildouble: 1
  115872. +ldouble: 1
  115873. +Test "Imaginary part of: catanh (0.75 + 1.25 i)":
  115874. +ildouble: 1
  115875. +ldouble: 1
  115876. +Test "Imaginary part of: catanh (0x0.ffffffffffffffffp0 + 0x1p-33 i)":
  115877. +ildouble: 1
  115878. +ldouble: 1
  115879. +Test "Imaginary part of: catanh (0x0.ffffffffffffffffp0 - 0x1p-33 i)":
  115880. +ildouble: 1
  115881. +ldouble: 1
  115882. +Test "Imaginary part of: catanh (0x1.0000000000000002p0 + 0x1p-33 i)":
  115883. +ildouble: 1
  115884. +ldouble: 1
  115885. +Test "Imaginary part of: catanh (0x1.0000000000000002p0 - 0x1p-33 i)":
  115886. +ildouble: 1
  115887. +ldouble: 1
  115888. +Test "Imaginary part of: catanh (0x1.000002p0 + 0x1p-13 i)":
  115889. +float: 1
  115890. +ifloat: 1
  115891. +Test "Imaginary part of: catanh (0x1.000002p0 - 0x1p-13 i)":
  115892. +float: 1
  115893. +ifloat: 1
  115894. +Test "Real part of: catanh (0x1.fp1023 + 0x1.fp1023 i)":
  115895. +double: 1
  115896. +idouble: 1
  115897. +Test "Real part of: catanh (0x1.fp1023 - 0x1.fp1023 i)":
  115898. +double: 1
  115899. +idouble: 1
  115900. +Test "Real part of: catanh (0x1.fp127 + 0x1.fp127 i)":
  115901. +double: 1
  115902. +idouble: 1
  115903. +Test "Real part of: catanh (0x1.fp127 - 0x1.fp127 i)":
  115904. +double: 1
  115905. +idouble: 1
  115906. +Test "Real part of: catanh (0x1.fp16383 + 0x1.fp16383 i)":
  115907. +ildouble: 1
  115908. +ldouble: 1
  115909. +Test "Real part of: catanh (0x1.fp16383 - 0x1.fp16383 i)":
  115910. +ildouble: 1
  115911. +ldouble: 1
  115912. +Test "Imaginary part of: catanh (0x1p-126 + 0x0.ffffffp0 i)":
  115913. +ildouble: 1
  115914. +ldouble: 1
  115915. +Test "Imaginary part of: catanh (0x1p-126 + 0x1.000002p0 i)":
  115916. +float: 1
  115917. +ifloat: 1
  115918. +ildouble: 1
  115919. +ldouble: 1
  115920. +Test "Imaginary part of: catanh (0x1p-126 - 0x0.ffffffp0 i)":
  115921. +ildouble: 1
  115922. +ldouble: 1
  115923. +Test "Imaginary part of: catanh (0x1p-126 - 0x1.000002p0 i)":
  115924. +float: 1
  115925. +ifloat: 1
  115926. +ildouble: 1
  115927. +ldouble: 1
  115928. +Test "Real part of: catanh (0x1p-13 + 0x0.ffffffp0 i)":
  115929. +double: 1
  115930. +float: 1
  115931. +idouble: 1
  115932. +ifloat: 1
  115933. +ildouble: 1
  115934. +ldouble: 1
  115935. +Test "Imaginary part of: catanh (0x1p-13 + 0x1.000002p0 i)":
  115936. +float: 1
  115937. +ifloat: 1
  115938. +Test "Imaginary part of: catanh (0x1p-13 + 1.0 i)":
  115939. +float: 1
  115940. +ifloat: 1
  115941. +ildouble: 1
  115942. +ldouble: 1
  115943. +Test "Real part of: catanh (0x1p-13 - 0x0.ffffffp0 i)":
  115944. +double: 1
  115945. +float: 1
  115946. +idouble: 1
  115947. +ifloat: 1
  115948. +ildouble: 1
  115949. +ldouble: 1
  115950. +Test "Imaginary part of: catanh (0x1p-13 - 0x1.000002p0 i)":
  115951. +float: 1
  115952. +ifloat: 1
  115953. +Test "Imaginary part of: catanh (0x1p-13 - 1.0 i)":
  115954. +float: 1
  115955. +ifloat: 1
  115956. +ildouble: 1
  115957. +ldouble: 1
  115958. +Test "Imaginary part of: catanh (0x1p-16382 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
  115959. +ildouble: 1
  115960. +ldouble: 1
  115961. +Test "Real part of: catanh (0x1p-16382 + 0x1.0000000000000000000000000001p0 i)":
  115962. +ildouble: 1
  115963. +ldouble: 1
  115964. +Test "Imaginary part of: catanh (0x1p-16382 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
  115965. +ildouble: 1
  115966. +ldouble: 1
  115967. +Test "Real part of: catanh (0x1p-16382 - 0x1.0000000000000000000000000001p0 i)":
  115968. +ildouble: 1
  115969. +ldouble: 1
  115970. +Test "Real part of: catanh (0x1p-27 + 0x0.fffffffffffff8p0 i)":
  115971. +double: 1
  115972. +idouble: 1
  115973. +Test "Real part of: catanh (0x1p-27 - 0x0.fffffffffffff8p0 i)":
  115974. +double: 1
  115975. +idouble: 1
  115976. +Test "Real part of: catanh (0x1p-57 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
  115977. +ildouble: 1
  115978. +ldouble: 1
  115979. +Test "Real part of: catanh (0x1p-57 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
  115980. +ildouble: 1
  115981. +ldouble: 1
  115982. +Test "Real part of: catanh (1.0 + 0x1p-1020 i)":
  115983. +double: 1
  115984. +idouble: 1
  115985. +Test "Imaginary part of: catanh (1.0 + 0x1p-13 i)":
  115986. +float: 1
  115987. +ifloat: 1
  115988. +Test "Real part of: catanh (1.0 + 0x1p-16380 i)":
  115989. +ildouble: 1
  115990. +ldouble: 1
  115991. +Test "Real part of: catanh (1.0 + 0x1p-54 i)":
  115992. +float: 1
  115993. +ifloat: 1
  115994. +Test "Real part of: catanh (1.0 + 0x1p-57 i)":
  115995. +float: 1
  115996. +ifloat: 1
  115997. +Test "Real part of: catanh (1.0 - 0x1p-1020 i)":
  115998. +double: 1
  115999. +idouble: 1
  116000. +Test "Imaginary part of: catanh (1.0 - 0x1p-13 i)":
  116001. +float: 1
  116002. +ifloat: 1
  116003. +Test "Real part of: catanh (1.0 - 0x1p-16380 i)":
  116004. +ildouble: 1
  116005. +ldouble: 1
  116006. +Test "Real part of: catanh (1.0 - 0x1p-54 i)":
  116007. +float: 1
  116008. +ifloat: 1
  116009. +Test "Real part of: catanh (1.0 - 0x1p-57 i)":
  116010. +float: 1
  116011. +ifloat: 1
  116012. +
  116013. +# cbrt
  116014. +Test "cbrt (-0.001)":
  116015. +ildouble: 1
  116016. +ldouble: 1
  116017. +Test "cbrt (-27.0)":
  116018. +double: 1
  116019. +idouble: 1
  116020. +Test "cbrt (0.75)":
  116021. +double: 1
  116022. +idouble: 1
  116023. +Test "cbrt (0.9921875)":
  116024. +double: 1
  116025. +idouble: 1
  116026. +
  116027. +# ccos
  116028. +Test "Imaginary part of: ccos (-0.75 + 11357.25 i)":
  116029. +ildouble: 1
  116030. +ldouble: 1
  116031. +Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
  116032. +double: 1
  116033. +idouble: 1
  116034. +ildouble: 1
  116035. +ldouble: 1
  116036. +Test "Real part of: ccos (-0.75 + 89.5 i)":
  116037. +ildouble: 1
  116038. +ldouble: 1
  116039. +Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
  116040. +float: 1
  116041. +ifloat: 1
  116042. +ildouble: 1
  116043. +ldouble: 1
  116044. +Test "Imaginary part of: ccos (-0.75 - 11357.25 i)":
  116045. +ildouble: 1
  116046. +ldouble: 1
  116047. +Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
  116048. +double: 1
  116049. +idouble: 1
  116050. +ildouble: 1
  116051. +ldouble: 1
  116052. +Test "Real part of: ccos (-0.75 - 89.5 i)":
  116053. +ildouble: 1
  116054. +ldouble: 1
  116055. +Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
  116056. +float: 1
  116057. +ifloat: 1
  116058. +ildouble: 1
  116059. +ldouble: 1
  116060. +Test "Real part of: ccos (-2 - 3 i)":
  116061. +ildouble: 1
  116062. +ldouble: 1
  116063. +Test "Imaginary part of: ccos (-2 - 3 i)":
  116064. +float: 1
  116065. +ifloat: 1
  116066. +ildouble: 1
  116067. +ldouble: 1
  116068. +Test "Real part of: ccos (0.75 + 1.25 i)":
  116069. +double: 1
  116070. +float: 1
  116071. +idouble: 1
  116072. +ifloat: 1
  116073. +Test "Imaginary part of: ccos (0.75 + 1.25 i)":
  116074. +float: 1
  116075. +ifloat: 1
  116076. +Test "Imaginary part of: ccos (0.75 + 11357.25 i)":
  116077. +ildouble: 1
  116078. +ldouble: 1
  116079. +Test "Imaginary part of: ccos (0.75 + 710.5 i)":
  116080. +double: 1
  116081. +idouble: 1
  116082. +ildouble: 1
  116083. +ldouble: 1
  116084. +Test "Real part of: ccos (0.75 + 89.5 i)":
  116085. +ildouble: 1
  116086. +ldouble: 1
  116087. +Test "Imaginary part of: ccos (0.75 + 89.5 i)":
  116088. +float: 1
  116089. +ifloat: 1
  116090. +ildouble: 1
  116091. +ldouble: 1
  116092. +Test "Imaginary part of: ccos (0.75 - 11357.25 i)":
  116093. +ildouble: 1
  116094. +ldouble: 1
  116095. +Test "Imaginary part of: ccos (0.75 - 710.5 i)":
  116096. +double: 1
  116097. +idouble: 1
  116098. +ildouble: 1
  116099. +ldouble: 1
  116100. +Test "Real part of: ccos (0.75 - 89.5 i)":
  116101. +ildouble: 1
  116102. +ldouble: 1
  116103. +Test "Imaginary part of: ccos (0.75 - 89.5 i)":
  116104. +float: 1
  116105. +ifloat: 1
  116106. +ildouble: 1
  116107. +ldouble: 1
  116108. +Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
  116109. +double: 1
  116110. +idouble: 1
  116111. +Test "Imaginary part of: ccos (0x1p-16434 + 22730 i)":
  116112. +ildouble: 1
  116113. +ldouble: 1
  116114. +
  116115. +# ccosh
  116116. +Test "Imaginary part of: ccosh (-11357.25 + 0.75 i)":
  116117. +ildouble: 1
  116118. +ldouble: 1
  116119. +Test "Imaginary part of: ccosh (-11357.25 - 0.75 i)":
  116120. +ildouble: 1
  116121. +ldouble: 1
  116122. +Test "Real part of: ccosh (-2 - 3 i)":
  116123. +float: 1
  116124. +ifloat: 1
  116125. +ildouble: 1
  116126. +ldouble: 1
  116127. +Test "Imaginary part of: ccosh (-2 - 3 i)":
  116128. +float: 1
  116129. +ifloat: 1
  116130. +ildouble: 1
  116131. +ldouble: 1
  116132. +Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
  116133. +double: 1
  116134. +idouble: 1
  116135. +ildouble: 1
  116136. +ldouble: 1
  116137. +Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
  116138. +double: 1
  116139. +idouble: 1
  116140. +ildouble: 1
  116141. +ldouble: 1
  116142. +Test "Real part of: ccosh (-89.5 + 0.75 i)":
  116143. +ildouble: 1
  116144. +ldouble: 1
  116145. +Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
  116146. +float: 1
  116147. +ifloat: 1
  116148. +ildouble: 1
  116149. +ldouble: 1
  116150. +Test "Real part of: ccosh (-89.5 - 0.75 i)":
  116151. +ildouble: 1
  116152. +ldouble: 1
  116153. +Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
  116154. +float: 1
  116155. +ifloat: 1
  116156. +ildouble: 1
  116157. +ldouble: 1
  116158. +Test "Real part of: ccosh (0.75 + 1.25 i)":
  116159. +double: 1
  116160. +float: 1
  116161. +idouble: 1
  116162. +ifloat: 1
  116163. +Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
  116164. +float: 1
  116165. +ifloat: 1
  116166. +Test "Imaginary part of: ccosh (11357.25 + 0.75 i)":
  116167. +ildouble: 1
  116168. +ldouble: 1
  116169. +Test "Imaginary part of: ccosh (11357.25 - 0.75 i)":
  116170. +ildouble: 1
  116171. +ldouble: 1
  116172. +Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
  116173. +double: 1
  116174. +idouble: 1
  116175. +Test "Imaginary part of: ccosh (22730 + 0x1p-16434 i)":
  116176. +ildouble: 1
  116177. +ldouble: 1
  116178. +Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
  116179. +double: 1
  116180. +idouble: 1
  116181. +ildouble: 1
  116182. +ldouble: 1
  116183. +Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
  116184. +double: 1
  116185. +idouble: 1
  116186. +ildouble: 1
  116187. +ldouble: 1
  116188. +Test "Real part of: ccosh (89.5 + 0.75 i)":
  116189. +ildouble: 1
  116190. +ldouble: 1
  116191. +Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
  116192. +float: 1
  116193. +ifloat: 1
  116194. +ildouble: 1
  116195. +ldouble: 1
  116196. +Test "Real part of: ccosh (89.5 - 0.75 i)":
  116197. +ildouble: 1
  116198. +ldouble: 1
  116199. +Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
  116200. +float: 1
  116201. +ifloat: 1
  116202. +ildouble: 1
  116203. +ldouble: 1
  116204. +
  116205. +# cexp
  116206. +Test "Imaginary part of: cexp (-10000 + 0x1p16383 i)":
  116207. +ildouble: 1
  116208. +ldouble: 1
  116209. +Test "Real part of: cexp (-2.0 - 3.0 i)":
  116210. +ildouble: 1
  116211. +ldouble: 1
  116212. +Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
  116213. +float: 1
  116214. +ifloat: 1
  116215. +ildouble: 1
  116216. +ldouble: 1
  116217. +Test "Imaginary part of: cexp (-720 + 0.75 i)":
  116218. +ildouble: 1
  116219. +ldouble: 1
  116220. +Test "Imaginary part of: cexp (-95 + 0.75 i)":
  116221. +double: 1
  116222. +idouble: 1
  116223. +Test "Real part of: cexp (0.75 + 1.25 i)":
  116224. +float: 1
  116225. +ifloat: 1
  116226. +Test "Imaginary part of: cexp (0.75 + 1.25 i)":
  116227. +ildouble: 1
  116228. +ldouble: 1
  116229. +Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
  116230. +double: 1
  116231. +idouble: 1
  116232. +Test "Imaginary part of: cexp (22730 + 0x1p-16434 i)":
  116233. +ildouble: 1
  116234. +ldouble: 1
  116235. +Test "Real part of: cexp (50 + 0x1p127 i)":
  116236. +double: 2
  116237. +float: 1
  116238. +idouble: 2
  116239. +ifloat: 1
  116240. +ildouble: 1
  116241. +ldouble: 1
  116242. +Test "Imaginary part of: cexp (50 + 0x1p127 i)":
  116243. +double: 1
  116244. +idouble: 1
  116245. +Test "Real part of: cexp (500 + 0x1p1023 i)":
  116246. +double: 1
  116247. +idouble: 1
  116248. +Test "Real part of: cexp (709.8125 + 0.75 i)":
  116249. +double: 1
  116250. +idouble: 1
  116251. +Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
  116252. +double: 1
  116253. +idouble: 1
  116254. +ildouble: 1
  116255. +ldouble: 1
  116256. +Test "Real part of: cexp (88.75 + 0.75 i)":
  116257. +float: 1
  116258. +ifloat: 1
  116259. +ildouble: 1
  116260. +ldouble: 1
  116261. +Test "Imaginary part of: cexp (88.75 + 0.75 i)":
  116262. +float: 2
  116263. +ifloat: 2
  116264. +ildouble: 1
  116265. +ldouble: 1
  116266. +
  116267. +# clog
  116268. +Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
  116269. +double: 1
  116270. +idouble: 1
  116271. +Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
  116272. +double: 1
  116273. +idouble: 1
  116274. +Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
  116275. +float: 1
  116276. +ifloat: 1
  116277. +Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
  116278. +float: 1
  116279. +ifloat: 1
  116280. +Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
  116281. +float: 1
  116282. +ifloat: 1
  116283. +Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16445 i)":
  116284. +ildouble: 1
  116285. +ldouble: 1
  116286. +Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16494 i)":
  116287. +ildouble: 1
  116288. +ldouble: 1
  116289. +Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16445 i)":
  116290. +ildouble: 1
  116291. +ldouble: 1
  116292. +Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16494 i)":
  116293. +ildouble: 1
  116294. +ldouble: 1
  116295. +Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
  116296. +float: 1
  116297. +ifloat: 1
  116298. +Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
  116299. +float: 1
  116300. +ifloat: 1
  116301. +Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
  116302. +float: 1
  116303. +ifloat: 1
  116304. +Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i)":
  116305. +float: 1
  116306. +ifloat: 1
  116307. +Test "Real part of: clog (-0x1p-16445 + 0x1.fp+16383 i)":
  116308. +ildouble: 1
  116309. +ldouble: 1
  116310. +Test "Real part of: clog (-0x1p-16445 - 0x1.fp+16383 i)":
  116311. +ildouble: 1
  116312. +ldouble: 1
  116313. +Test "Real part of: clog (-0x1p-16494 + 0x1.fp+16383 i)":
  116314. +ildouble: 1
  116315. +ldouble: 1
  116316. +Test "Real part of: clog (-0x1p-16494 - 0x1.fp+16383 i)":
  116317. +ildouble: 1
  116318. +ldouble: 1
  116319. +Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
  116320. +float: 1
  116321. +ifloat: 1
  116322. +Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
  116323. +float: 1
  116324. +ifloat: 1
  116325. +Test "Imaginary part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
  116326. +ildouble: 1
  116327. +ldouble: 1
  116328. +Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
  116329. +float: 1
  116330. +ifloat: 1
  116331. +Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
  116332. +float: 1
  116333. +ifloat: 1
  116334. +Test "Real part of: clog (0x1.fp+16383 + 0x1.fp+16383 i)":
  116335. +ildouble: 1
  116336. +ldouble: 1
  116337. +Test "Real part of: clog (0x1.fp+16383 + 0x1p-16445 i)":
  116338. +ildouble: 1
  116339. +ldouble: 1
  116340. +Test "Real part of: clog (0x1.fp+16383 + 0x1p-16494 i)":
  116341. +ildouble: 1
  116342. +ldouble: 1
  116343. +Test "Real part of: clog (0x1.fp+16383 - 0x1p-16445 i)":
  116344. +ildouble: 1
  116345. +ldouble: 1
  116346. +Test "Real part of: clog (0x1.fp+16383 - 0x1p-16494 i)":
  116347. +ildouble: 1
  116348. +ldouble: 1
  116349. +Test "Imaginary part of: clog (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
  116350. +ildouble: 1
  116351. +ldouble: 1
  116352. +Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
  116353. +double: 1
  116354. +idouble: 1
  116355. +Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
  116356. +float: 1
  116357. +ifloat: 1
  116358. +Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
  116359. +float: 1
  116360. +ifloat: 1
  116361. +Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
  116362. +float: 1
  116363. +ifloat: 1
  116364. +Test "Real part of: clog (0x1p-16445 + 0x1.fp+16383 i)":
  116365. +ildouble: 1
  116366. +ldouble: 1
  116367. +Test "Real part of: clog (0x1p-16445 - 0x1.fp+16383 i)":
  116368. +ildouble: 1
  116369. +ldouble: 1
  116370. +Test "Real part of: clog (0x1p-16494 + 0x1.fp+16383 i)":
  116371. +ildouble: 1
  116372. +ldouble: 1
  116373. +Test "Real part of: clog (0x1p-16494 - 0x1.fp+16383 i)":
  116374. +ildouble: 1
  116375. +ldouble: 1
  116376. +Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
  116377. +float: 1
  116378. +ifloat: 1
  116379. +ildouble: 1
  116380. +ldouble: 1
  116381. +Test "Imaginary part of: clog (0x298c62cb546588a7p-63 + 0x7911b1dfcc4ecdaep-63 i)":
  116382. +ildouble: 1
  116383. +ldouble: 1
  116384. +Test "Imaginary part of: clog (0x2ede88p-23 + 0x771c3fp-23 i)":
  116385. +ildouble: 1
  116386. +ldouble: 1
  116387. +Test "Imaginary part of: clog (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i)":
  116388. +ildouble: 1
  116389. +ldouble: 1
  116390. +Test "Imaginary part of: clog (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i)":
  116391. +ildouble: 1
  116392. +ldouble: 1
  116393. +Test "Imaginary part of: clog (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
  116394. +ildouble: 1
  116395. +ldouble: 1
  116396. +Test "Imaginary part of: clog (0x659feap-24 + 0xeaf6f9p-24 i)":
  116397. +ildouble: 1
  116398. +ldouble: 1
  116399. +Test "Imaginary part of: clog (0x6771f22c64ed551b857c128b4cp-105 + 0x1f570e7a13cc3cf2f44fd793ea1p-105 i)":
  116400. +ildouble: 1
  116401. +ldouble: 1
  116402. +Test "Imaginary part of: clog (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i)":
  116403. +ildouble: 1
  116404. +ldouble: 1
  116405. +Test "Real part of: clog (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i)":
  116406. +ildouble: 1
  116407. +ldouble: 1
  116408. +Test "Imaginary part of: clog (0x9b57bp-20 + 0xcb7b4p-20 i)":
  116409. +ildouble: 1
  116410. +ldouble: 1
  116411. +Test "Imaginary part of: clog (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i)":
  116412. +ildouble: 1
  116413. +ldouble: 1
  116414. +Test "Imaginary part of: clog (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i)":
  116415. +ildouble: 1
  116416. +ldouble: 1
  116417. +Test "Imaginary part of: clog (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
  116418. +ildouble: 1
  116419. +ldouble: 1
  116420. +Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
  116421. +float: 1
  116422. +ifloat: 1
  116423. +
  116424. +# clog10
  116425. +Test "Imaginary part of: clog10 (-0 + inf i)":
  116426. +double: 1
  116427. +float: 1
  116428. +idouble: 1
  116429. +ifloat: 1
  116430. +Test "Imaginary part of: clog10 (-0 - inf i)":
  116431. +double: 1
  116432. +float: 1
  116433. +idouble: 1
  116434. +ifloat: 1
  116435. +Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
  116436. +double: 2
  116437. +idouble: 2
  116438. +ildouble: 1
  116439. +ldouble: 1
  116440. +Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
  116441. +double: 1
  116442. +idouble: 1
  116443. +Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
  116444. +double: 2
  116445. +idouble: 2
  116446. +ildouble: 1
  116447. +ldouble: 1
  116448. +Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
  116449. +double: 1
  116450. +idouble: 1
  116451. +Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
  116452. +double: 1
  116453. +idouble: 1
  116454. +Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
  116455. +double: 1
  116456. +idouble: 1
  116457. +Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
  116458. +double: 1
  116459. +float: 1
  116460. +idouble: 1
  116461. +ifloat: 1
  116462. +Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
  116463. +double: 1
  116464. +float: 1
  116465. +idouble: 1
  116466. +ifloat: 1
  116467. +Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i)":
  116468. +double: 1
  116469. +idouble: 1
  116470. +Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i)":
  116471. +double: 1
  116472. +idouble: 1
  116473. +Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
  116474. +double: 1
  116475. +idouble: 1
  116476. +Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
  116477. +double: 1
  116478. +idouble: 1
  116479. +Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
  116480. +double: 1
  116481. +idouble: 1
  116482. +Test "Real part of: clog10 (-2 - 3 i)":
  116483. +ildouble: 1
  116484. +ldouble: 1
  116485. +Test "Imaginary part of: clog10 (-2 - 3 i)":
  116486. +double: 1
  116487. +idouble: 1
  116488. +ildouble: 1
  116489. +ldouble: 1
  116490. +Test "Imaginary part of: clog10 (-3 + inf i)":
  116491. +double: 1
  116492. +float: 1
  116493. +idouble: 1
  116494. +ifloat: 1
  116495. +Test "Imaginary part of: clog10 (-3 - inf i)":
  116496. +double: 1
  116497. +float: 1
  116498. +idouble: 1
  116499. +ifloat: 1
  116500. +Test "Imaginary part of: clog10 (-inf + 0 i)":
  116501. +double: 1
  116502. +float: 1
  116503. +idouble: 1
  116504. +ifloat: 1
  116505. +Test "Imaginary part of: clog10 (-inf + 1 i)":
  116506. +double: 1
  116507. +float: 1
  116508. +idouble: 1
  116509. +ifloat: 1
  116510. +Test "Imaginary part of: clog10 (-inf + inf i)":
  116511. +double: 1
  116512. +idouble: 1
  116513. +Test "Imaginary part of: clog10 (-inf - 0 i)":
  116514. +double: 1
  116515. +float: 1
  116516. +idouble: 1
  116517. +ifloat: 1
  116518. +Test "Imaginary part of: clog10 (-inf - 1 i)":
  116519. +double: 1
  116520. +float: 1
  116521. +idouble: 1
  116522. +ifloat: 1
  116523. +Test "Imaginary part of: clog10 (0 + inf i)":
  116524. +double: 1
  116525. +float: 1
  116526. +idouble: 1
  116527. +ifloat: 1
  116528. +Test "Imaginary part of: clog10 (0 - inf i)":
  116529. +double: 1
  116530. +float: 1
  116531. +idouble: 1
  116532. +ifloat: 1
  116533. +Test "Imaginary part of: clog10 (0.75 + 1.25 i)":
  116534. +ildouble: 1
  116535. +ldouble: 1
  116536. +Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
  116537. +double: 1
  116538. +idouble: 1
  116539. +Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
  116540. +double: 1
  116541. +float: 2
  116542. +idouble: 1
  116543. +ifloat: 2
  116544. +ildouble: 1
  116545. +ldouble: 1
  116546. +Test "Real part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i)":
  116547. +ildouble: 1
  116548. +ldouble: 1
  116549. +Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i)":
  116550. +ildouble: 1
  116551. +ldouble: 1
  116552. +Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-60 i)":
  116553. +ildouble: 1
  116554. +ldouble: 1
  116555. +Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
  116556. +float: 1
  116557. +ifloat: 1
  116558. +Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
  116559. +double: 1
  116560. +idouble: 1
  116561. +ildouble: 2
  116562. +ldouble: 2
  116563. +Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
  116564. +float: 1
  116565. +ifloat: 1
  116566. +Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
  116567. +ildouble: 1
  116568. +ldouble: 1
  116569. +Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
  116570. +float: 1
  116571. +ifloat: 1
  116572. +Test "Real part of: clog10 (0x1.234566p-50 + 1.0 i)":
  116573. +ildouble: 1
  116574. +ldouble: 1
  116575. +Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
  116576. +float: 1
  116577. +ifloat: 1
  116578. +Test "Real part of: clog10 (0x1.234566p-60 + 1.0 i)":
  116579. +ildouble: 1
  116580. +ldouble: 1
  116581. +Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
  116582. +double: 1
  116583. +float: 1
  116584. +idouble: 1
  116585. +ifloat: 1
  116586. +Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i)":
  116587. +double: 1
  116588. +float: 1
  116589. +idouble: 1
  116590. +ifloat: 1
  116591. +Test "Real part of: clog10 (0x1.fffffep+127 + 1.0 i)":
  116592. +float: 1
  116593. +ifloat: 1
  116594. +Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
  116595. +double: 1
  116596. +idouble: 1
  116597. +Test "Real part of: clog10 (0x1.fp+16383 + 0x1.fp+16383 i)":
  116598. +ildouble: 1
  116599. +ldouble: 1
  116600. +Test "Real part of: clog10 (0x1.fp+16383 + 0x1p+16383 i)":
  116601. +ildouble: 1
  116602. +ldouble: 1
  116603. +Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
  116604. +double: 1
  116605. +idouble: 1
  116606. +ildouble: 1
  116607. +ldouble: 1
  116608. +Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
  116609. +double: 1
  116610. +idouble: 1
  116611. +ildouble: 1
  116612. +ldouble: 1
  116613. +Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
  116614. +double: 1
  116615. +idouble: 1
  116616. +Test "Real part of: clog10 (0x1415bcaf2105940d49a636e98ae59p-115 + 0x7e6a150adfcd1b0921d44b31f40f4p-115 i)":
  116617. +ildouble: 1
  116618. +ldouble: 1
  116619. +Test "Imaginary part of: clog10 (0x15cfbd1990d1ffp-53 + 0x176a3973e09a9ap-53 i)":
  116620. +ildouble: 1
  116621. +ldouble: 1
  116622. +Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
  116623. +double: 1
  116624. +idouble: 1
  116625. +Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
  116626. +double: 1
  116627. +idouble: 1
  116628. +Test "Real part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i)":
  116629. +ildouble: 1
  116630. +ldouble: 1
  116631. +Test "Imaginary part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i)":
  116632. +ildouble: 1
  116633. +ldouble: 1
  116634. +Test "Imaginary part of: clog10 (0x1p-1073 + 0x1p-1073 i)":
  116635. +double: 1
  116636. +idouble: 1
  116637. +Test "Imaginary part of: clog10 (0x1p-1074 + 0x1.fp+1023 i)":
  116638. +double: 1
  116639. +idouble: 1
  116640. +Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
  116641. +double: 1
  116642. +idouble: 1
  116643. +Test "Imaginary part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
  116644. +double: 1
  116645. +idouble: 1
  116646. +Test "Imaginary part of: clog10 (0x1p-1074 - 0x1.fp+1023 i)":
  116647. +double: 1
  116648. +idouble: 1
  116649. +Test "Imaginary part of: clog10 (0x1p-147 + 0x1p-147 i)":
  116650. +double: 1
  116651. +float: 1
  116652. +idouble: 1
  116653. +ifloat: 1
  116654. +Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
  116655. +double: 1
  116656. +float: 1
  116657. +idouble: 1
  116658. +ifloat: 1
  116659. +Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i)":
  116660. +double: 1
  116661. +float: 1
  116662. +idouble: 1
  116663. +ifloat: 1
  116664. +Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
  116665. +double: 1
  116666. +float: 1
  116667. +idouble: 1
  116668. +ifloat: 1
  116669. +Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
  116670. +double: 1
  116671. +idouble: 1
  116672. +Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
  116673. +double: 1
  116674. +idouble: 1
  116675. +Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
  116676. +double: 1
  116677. +idouble: 1
  116678. +Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
  116679. +double: 1
  116680. +float: 1
  116681. +idouble: 1
  116682. +ifloat: 1
  116683. +Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
  116684. +double: 1
  116685. +float: 1
  116686. +idouble: 1
  116687. +ifloat: 1
  116688. +Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
  116689. +double: 1
  116690. +float: 1
  116691. +idouble: 1
  116692. +ifloat: 1
  116693. +Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
  116694. +double: 1
  116695. +float: 1
  116696. +idouble: 1
  116697. +ifloat: 1
  116698. +ildouble: 1
  116699. +ldouble: 1
  116700. +Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
  116701. +float: 1
  116702. +ifloat: 1
  116703. +ildouble: 1
  116704. +ldouble: 1
  116705. +Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
  116706. +double: 1
  116707. +idouble: 1
  116708. +ildouble: 1
  116709. +ldouble: 1
  116710. +Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
  116711. +float: 1
  116712. +ifloat: 1
  116713. +Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
  116714. +double: 1
  116715. +idouble: 1
  116716. +ildouble: 1
  116717. +ldouble: 1
  116718. +Test "Imaginary part of: clog10 (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i)":
  116719. +ildouble: 1
  116720. +ldouble: 1
  116721. +Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
  116722. +double: 1
  116723. +idouble: 1
  116724. +Test "Real part of: clog10 (0x4d4ep-15 + 0x6605p-15 i)":
  116725. +ildouble: 1
  116726. +ldouble: 1
  116727. +Test "Real part of: clog10 (0x4d9c37e2b5cb4533p-63 + 0x65c98be2385a042ep-63 i)":
  116728. +ildouble: 1
  116729. +ldouble: 1
  116730. +Test "Real part of: clog10 (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i)":
  116731. +ildouble: 1
  116732. +ldouble: 1
  116733. +Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
  116734. +double: 1
  116735. +idouble: 1
  116736. +ildouble: 1
  116737. +ldouble: 1
  116738. +Test "Real part of: clog10 (0x602fd5037c4792efp-64 + 0xed3e2086dcca80b8p-64 i)":
  116739. +ildouble: 1
  116740. +ldouble: 1
  116741. +Test "Real part of: clog10 (0x6241ef0da53f539f02fad67dabp-106 + 0x3fb46641182f7efd9caa769dac0p-106 i)":
  116742. +ildouble: 1
  116743. +ldouble: 1
  116744. +Test "Real part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i)":
  116745. +ildouble: 1
  116746. +ldouble: 1
  116747. +Test "Imaginary part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i)":
  116748. +ildouble: 1
  116749. +ldouble: 1
  116750. +Test "Imaginary part of: clog10 (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i)":
  116751. +ildouble: 1
  116752. +ldouble: 1
  116753. +Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
  116754. +double: 1
  116755. +idouble: 1
  116756. +ildouble: 1
  116757. +ldouble: 1
  116758. +Test "Real part of: clog10 (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i)":
  116759. +ildouble: 1
  116760. +ldouble: 1
  116761. +Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
  116762. +double: 1
  116763. +idouble: 1
  116764. +Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
  116765. +double: 1
  116766. +idouble: 1
  116767. +Test "Imaginary part of: clog10 (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i)":
  116768. +ildouble: 2
  116769. +ldouble: 2
  116770. +Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
  116771. +double: 1
  116772. +idouble: 1
  116773. +ildouble: 1
  116774. +ldouble: 1
  116775. +Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
  116776. +double: 1
  116777. +idouble: 1
  116778. +Test "Imaginary part of: clog10 (3 + inf i)":
  116779. +double: 1
  116780. +float: 1
  116781. +idouble: 1
  116782. +ifloat: 1
  116783. +Test "Imaginary part of: clog10 (3 - inf i)":
  116784. +double: 1
  116785. +float: 1
  116786. +idouble: 1
  116787. +ifloat: 1
  116788. +Test "Imaginary part of: clog10 (inf + inf i)":
  116789. +double: 1
  116790. +float: 1
  116791. +idouble: 1
  116792. +ifloat: 1
  116793. +Test "Imaginary part of: clog10 (inf - inf i)":
  116794. +double: 1
  116795. +float: 1
  116796. +idouble: 1
  116797. +ifloat: 1
  116798. +
  116799. +# cos
  116800. +Test "cos (0x1p+120)":
  116801. +float: 1
  116802. +ifloat: 1
  116803. +Test "cos (0x1p+127)":
  116804. +float: 1
  116805. +ifloat: 1
  116806. +Test "cos (M_PI_6l * 2.0)":
  116807. +double: 1
  116808. +idouble: 1
  116809. +Test "cos (M_PI_6l * 4.0)":
  116810. +double: 2
  116811. +float: 1
  116812. +idouble: 2
  116813. +ifloat: 1
  116814. +ildouble: 1
  116815. +ldouble: 1
  116816. +
  116817. +# cos_downward
  116818. +Test "cos_downward (1)":
  116819. +float: 1
  116820. +ifloat: 1
  116821. +Test "cos_downward (2)":
  116822. +float: 1
  116823. +ifloat: 1
  116824. +Test "cos_downward (3)":
  116825. +float: 1
  116826. +ifloat: 1
  116827. +Test "cos_downward (4)":
  116828. +float: 1
  116829. +ifloat: 1
  116830. +Test "cos_downward (5)":
  116831. +float: 1
  116832. +ifloat: 1
  116833. +Test "cos_downward (7)":
  116834. +float: 1
  116835. +ifloat: 1
  116836. +Test "cos_downward (8)":
  116837. +float: 1
  116838. +ifloat: 1
  116839. +
  116840. +# cos_tonearest
  116841. +Test "cos_tonearest (7)":
  116842. +float: 1
  116843. +ifloat: 1
  116844. +
  116845. +# cos_towardzero
  116846. +Test "cos_towardzero (2)":
  116847. +float: 1
  116848. +ifloat: 1
  116849. +Test "cos_towardzero (3)":
  116850. +float: 1
  116851. +ifloat: 1
  116852. +Test "cos_towardzero (5)":
  116853. +float: 1
  116854. +ifloat: 1
  116855. +Test "cos_towardzero (7)":
  116856. +float: 1
  116857. +ifloat: 1
  116858. +Test "cos_towardzero (8)":
  116859. +float: 1
  116860. +ifloat: 1
  116861. +
  116862. +# cos_upward
  116863. +Test "cos_upward (10)":
  116864. +float: 1
  116865. +ifloat: 1
  116866. +Test "cos_upward (6)":
  116867. +float: 1
  116868. +ifloat: 1
  116869. +Test "cos_upward (7)":
  116870. +float: 1
  116871. +ifloat: 1
  116872. +Test "cos_upward (9)":
  116873. +float: 2
  116874. +ifloat: 2
  116875. +
  116876. +# cosh_downward
  116877. +Test "cosh_downward (22)":
  116878. +float: 1
  116879. +ifloat: 1
  116880. +Test "cosh_downward (23)":
  116881. +float: 1
  116882. +ifloat: 1
  116883. +Test "cosh_downward (24)":
  116884. +float: 1
  116885. +ifloat: 1
  116886. +
  116887. +# cosh_tonearest
  116888. +Test "cosh_tonearest (22)":
  116889. +ildouble: 1
  116890. +ldouble: 1
  116891. +
  116892. +# cosh_towardzero
  116893. +Test "cosh_towardzero (22)":
  116894. +float: 1
  116895. +ifloat: 1
  116896. +Test "cosh_towardzero (23)":
  116897. +float: 1
  116898. +ifloat: 1
  116899. +Test "cosh_towardzero (24)":
  116900. +float: 1
  116901. +ifloat: 1
  116902. +
  116903. +# cpow
  116904. +Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
  116905. +float: 1
  116906. +ifloat: 1
  116907. +Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
  116908. +ildouble: 1
  116909. +ldouble: 1
  116910. +Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
  116911. +double: 1
  116912. +float: 4
  116913. +idouble: 1
  116914. +ifloat: 4
  116915. +ildouble: 4
  116916. +ldouble: 4
  116917. +Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i)":
  116918. +ildouble: 1
  116919. +ldouble: 1
  116920. +Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
  116921. +double: 2
  116922. +float: 3
  116923. +idouble: 2
  116924. +ifloat: 3
  116925. +ildouble: 2
  116926. +ldouble: 2
  116927. +Test "Real part of: cpow (2 + 0 i, 10 + 0 i)":
  116928. +ildouble: 2
  116929. +ldouble: 2
  116930. +Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
  116931. +double: 1
  116932. +float: 4
  116933. +idouble: 1
  116934. +ifloat: 4
  116935. +ildouble: 2
  116936. +ldouble: 2
  116937. +Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i)":
  116938. +float: 2
  116939. +ifloat: 2
  116940. +
  116941. +# csin
  116942. +Test "Real part of: csin (-0.75 + 11357.25 i)":
  116943. +ildouble: 1
  116944. +ldouble: 1
  116945. +Test "Real part of: csin (-0.75 + 710.5 i)":
  116946. +double: 1
  116947. +idouble: 1
  116948. +ildouble: 1
  116949. +ldouble: 1
  116950. +Test "Real part of: csin (-0.75 + 89.5 i)":
  116951. +float: 1
  116952. +ifloat: 1
  116953. +ildouble: 1
  116954. +ldouble: 1
  116955. +Test "Imaginary part of: csin (-0.75 + 89.5 i)":
  116956. +ildouble: 1
  116957. +ldouble: 1
  116958. +Test "Real part of: csin (-0.75 - 11357.25 i)":
  116959. +ildouble: 1
  116960. +ldouble: 1
  116961. +Test "Real part of: csin (-0.75 - 710.5 i)":
  116962. +double: 1
  116963. +idouble: 1
  116964. +ildouble: 1
  116965. +ldouble: 1
  116966. +Test "Real part of: csin (-0.75 - 89.5 i)":
  116967. +float: 1
  116968. +ifloat: 1
  116969. +ildouble: 1
  116970. +ldouble: 1
  116971. +Test "Imaginary part of: csin (-0.75 - 89.5 i)":
  116972. +ildouble: 1
  116973. +ldouble: 1
  116974. +Test "Imaginary part of: csin (-2 - 3 i)":
  116975. +ildouble: 1
  116976. +ldouble: 1
  116977. +Test "Real part of: csin (0.75 + 1.25 i)":
  116978. +ildouble: 1
  116979. +ldouble: 1
  116980. +Test "Real part of: csin (0.75 + 11357.25 i)":
  116981. +ildouble: 1
  116982. +ldouble: 1
  116983. +Test "Real part of: csin (0.75 + 710.5 i)":
  116984. +double: 1
  116985. +idouble: 1
  116986. +ildouble: 1
  116987. +ldouble: 1
  116988. +Test "Real part of: csin (0.75 + 89.5 i)":
  116989. +float: 1
  116990. +ifloat: 1
  116991. +ildouble: 1
  116992. +ldouble: 1
  116993. +Test "Imaginary part of: csin (0.75 + 89.5 i)":
  116994. +ildouble: 1
  116995. +ldouble: 1
  116996. +Test "Real part of: csin (0.75 - 11357.25 i)":
  116997. +ildouble: 1
  116998. +ldouble: 1
  116999. +Test "Real part of: csin (0.75 - 710.5 i)":
  117000. +double: 1
  117001. +idouble: 1
  117002. +ildouble: 1
  117003. +ldouble: 1
  117004. +Test "Real part of: csin (0.75 - 89.5 i)":
  117005. +float: 1
  117006. +ifloat: 1
  117007. +ildouble: 1
  117008. +ldouble: 1
  117009. +Test "Imaginary part of: csin (0.75 - 89.5 i)":
  117010. +ildouble: 1
  117011. +ldouble: 1
  117012. +Test "Real part of: csin (0x1p-1074 + 1440 i)":
  117013. +double: 1
  117014. +idouble: 1
  117015. +Test "Real part of: csin (0x1p-16434 + 22730 i)":
  117016. +ildouble: 1
  117017. +ldouble: 1
  117018. +
  117019. +# csinh
  117020. +Test "Imaginary part of: csinh (-11357.25 + 0.75 i)":
  117021. +ildouble: 1
  117022. +ldouble: 1
  117023. +Test "Imaginary part of: csinh (-11357.25 - 0.75 i)":
  117024. +ildouble: 1
  117025. +ldouble: 1
  117026. +Test "Real part of: csinh (-2 - 3 i)":
  117027. +ildouble: 1
  117028. +ldouble: 1
  117029. +Test "Imaginary part of: csinh (-2 - 3 i)":
  117030. +double: 1
  117031. +idouble: 1
  117032. +Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
  117033. +double: 1
  117034. +idouble: 1
  117035. +ildouble: 1
  117036. +ldouble: 1
  117037. +Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
  117038. +double: 1
  117039. +idouble: 1
  117040. +ildouble: 1
  117041. +ldouble: 1
  117042. +Test "Real part of: csinh (-89.5 + 0.75 i)":
  117043. +ildouble: 1
  117044. +ldouble: 1
  117045. +Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
  117046. +float: 1
  117047. +ifloat: 1
  117048. +ildouble: 1
  117049. +ldouble: 1
  117050. +Test "Real part of: csinh (-89.5 - 0.75 i)":
  117051. +ildouble: 1
  117052. +ldouble: 1
  117053. +Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
  117054. +float: 1
  117055. +ifloat: 1
  117056. +ildouble: 1
  117057. +ldouble: 1
  117058. +Test "Real part of: csinh (0.75 + 1.25 i)":
  117059. +float: 1
  117060. +ifloat: 1
  117061. +Test "Imaginary part of: csinh (0.75 + 1.25 i)":
  117062. +float: 1
  117063. +ifloat: 1
  117064. +Test "Imaginary part of: csinh (11357.25 + 0.75 i)":
  117065. +ildouble: 1
  117066. +ldouble: 1
  117067. +Test "Imaginary part of: csinh (11357.25 - 0.75 i)":
  117068. +ildouble: 1
  117069. +ldouble: 1
  117070. +Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
  117071. +double: 1
  117072. +idouble: 1
  117073. +Test "Imaginary part of: csinh (22730 + 0x1p-16434 i)":
  117074. +ildouble: 1
  117075. +ldouble: 1
  117076. +Test "Imaginary part of: csinh (710.5 + 0.75 i)":
  117077. +double: 1
  117078. +idouble: 1
  117079. +ildouble: 1
  117080. +ldouble: 1
  117081. +Test "Imaginary part of: csinh (710.5 - 0.75 i)":
  117082. +double: 1
  117083. +idouble: 1
  117084. +ildouble: 1
  117085. +ldouble: 1
  117086. +Test "Real part of: csinh (89.5 + 0.75 i)":
  117087. +ildouble: 1
  117088. +ldouble: 1
  117089. +Test "Imaginary part of: csinh (89.5 + 0.75 i)":
  117090. +float: 1
  117091. +ifloat: 1
  117092. +ildouble: 1
  117093. +ldouble: 1
  117094. +Test "Real part of: csinh (89.5 - 0.75 i)":
  117095. +ildouble: 1
  117096. +ldouble: 1
  117097. +Test "Imaginary part of: csinh (89.5 - 0.75 i)":
  117098. +float: 1
  117099. +ifloat: 1
  117100. +ildouble: 1
  117101. +ldouble: 1
  117102. +
  117103. +# csqrt
  117104. +Test "Real part of: csqrt (-0x1.0000000000000000000000000001p-16382 - 0x1.0000000000000000000000000001p-16382 i)":
  117105. +ildouble: 1
  117106. +ldouble: 1
  117107. +Test "Real part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i)":
  117108. +ildouble: 1
  117109. +ldouble: 1
  117110. +Test "Imaginary part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i)":
  117111. +ildouble: 1
  117112. +ldouble: 1
  117113. +Test "Real part of: csqrt (-0x1.0000000000001p-1022 - 0x1.0000000000001p-1022 i)":
  117114. +ildouble: 1
  117115. +ldouble: 1
  117116. +Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
  117117. +double: 1
  117118. +idouble: 1
  117119. +Test "Real part of: csqrt (-2 + 3 i)":
  117120. +float: 1
  117121. +ifloat: 1
  117122. +ildouble: 1
  117123. +ldouble: 1
  117124. +Test "Real part of: csqrt (-2 - 3 i)":
  117125. +float: 1
  117126. +ifloat: 1
  117127. +ildouble: 1
  117128. +ldouble: 1
  117129. +Test "Imaginary part of: csqrt (0.75 + 1.25 i)":
  117130. +ildouble: 1
  117131. +ldouble: 1
  117132. +Test "Imaginary part of: csqrt (0x1.0000000000000000000000000001p-16382 + 0x1.0000000000000000000000000001p-16382 i)":
  117133. +ildouble: 1
  117134. +ldouble: 1
  117135. +Test "Real part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i)":
  117136. +ildouble: 1
  117137. +ldouble: 1
  117138. +Test "Imaginary part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i)":
  117139. +ildouble: 1
  117140. +ldouble: 1
  117141. +Test "Imaginary part of: csqrt (0x1.0000000000001p-1022 + 0x1.0000000000001p-1022 i)":
  117142. +ildouble: 1
  117143. +ldouble: 1
  117144. +Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
  117145. +double: 1
  117146. +idouble: 1
  117147. +Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
  117148. +float: 1
  117149. +ifloat: 1
  117150. +Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
  117151. +double: 1
  117152. +idouble: 1
  117153. +Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
  117154. +double: 1
  117155. +idouble: 1
  117156. +ildouble: 1
  117157. +ldouble: 1
  117158. +Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
  117159. +double: 1
  117160. +idouble: 1
  117161. +ildouble: 1
  117162. +ldouble: 1
  117163. +Test "Real part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i)":
  117164. +ildouble: 1
  117165. +ldouble: 1
  117166. +Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i)":
  117167. +ildouble: 1
  117168. +ldouble: 1
  117169. +Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1p+16383 i)":
  117170. +ildouble: 1
  117171. +ldouble: 1
  117172. +Test "Imaginary part of: csqrt (0x1p-16440 + 0x1p-16441 i)":
  117173. +ildouble: 1
  117174. +ldouble: 1
  117175. +
  117176. +# ctan
  117177. +Test "Real part of: ctan (-2 - 3 i)":
  117178. +float: 1
  117179. +ifloat: 1
  117180. +Test "Imaginary part of: ctan (-2 - 3 i)":
  117181. +double: 1
  117182. +idouble: 1
  117183. +ildouble: 1
  117184. +ldouble: 1
  117185. +Test "Real part of: ctan (0.75 + 1.25 i)":
  117186. +ildouble: 1
  117187. +ldouble: 1
  117188. +Test "Imaginary part of: ctan (0.75 + 1.25 i)":
  117189. +double: 1
  117190. +idouble: 1
  117191. +ildouble: 2
  117192. +ldouble: 2
  117193. +Test "Real part of: ctan (0x1p1023 + 1 i)":
  117194. +double: 1
  117195. +idouble: 1
  117196. +Test "Imaginary part of: ctan (0x1p1023 + 1 i)":
  117197. +ildouble: 2
  117198. +ldouble: 2
  117199. +Test "Real part of: ctan (0x1p127 + 1 i)":
  117200. +ildouble: 2
  117201. +ldouble: 2
  117202. +Test "Imaginary part of: ctan (0x1p127 + 1 i)":
  117203. +double: 1
  117204. +idouble: 1
  117205. +ildouble: 1
  117206. +ldouble: 1
  117207. +Test "Real part of: ctan (0x1p16383 + 1 i)":
  117208. +ildouble: 1
  117209. +ldouble: 1
  117210. +Test "Imaginary part of: ctan (0x1p16383 + 1 i)":
  117211. +ildouble: 2
  117212. +ldouble: 2
  117213. +Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
  117214. +float: 1
  117215. +ifloat: 1
  117216. +ildouble: 1
  117217. +ldouble: 1
  117218. +Test "Real part of: ctan (1 + 355 i)":
  117219. +ildouble: 2
  117220. +ldouble: 2
  117221. +Test "Real part of: ctan (1 + 365 i)":
  117222. +ildouble: 1
  117223. +ldouble: 1
  117224. +Test "Real part of: ctan (1 + 45 i)":
  117225. +ildouble: 2
  117226. +ldouble: 2
  117227. +Test "Real part of: ctan (1 + 47 i)":
  117228. +ildouble: 1
  117229. +ldouble: 1
  117230. +
  117231. +# ctan_downward
  117232. +Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
  117233. +double: 2
  117234. +float: 1
  117235. +idouble: 2
  117236. +ifloat: 1
  117237. +Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
  117238. +float: 1
  117239. +ifloat: 1
  117240. +
  117241. +# ctan_tonearest
  117242. +Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
  117243. +ildouble: 1
  117244. +ldouble: 1
  117245. +Test "Real part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
  117246. +ildouble: 3
  117247. +ldouble: 3
  117248. +Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
  117249. +ildouble: 3
  117250. +ldouble: 3
  117251. +Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
  117252. +float: 1
  117253. +ifloat: 1
  117254. +ildouble: 1
  117255. +ldouble: 1
  117256. +Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
  117257. +float: 1
  117258. +ifloat: 1
  117259. +ildouble: 2
  117260. +ldouble: 2
  117261. +
  117262. +# ctan_towardzero
  117263. +Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
  117264. +float: 1
  117265. +ifloat: 1
  117266. +Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
  117267. +float: 1
  117268. +ifloat: 1
  117269. +
  117270. +# ctan_upward
  117271. +Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
  117272. +double: 1
  117273. +idouble: 1
  117274. +Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
  117275. +double: 2
  117276. +float: 1
  117277. +idouble: 2
  117278. +ifloat: 1
  117279. +Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
  117280. +double: 1
  117281. +float: 2
  117282. +idouble: 1
  117283. +ifloat: 2
  117284. +
  117285. +# ctanh
  117286. +Test "Real part of: ctanh (-2 - 3 i)":
  117287. +double: 1
  117288. +float: 1
  117289. +idouble: 1
  117290. +ifloat: 1
  117291. +Test "Imaginary part of: ctanh (-2 - 3 i)":
  117292. +double: 1
  117293. +float: 1
  117294. +idouble: 1
  117295. +ifloat: 1
  117296. +Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
  117297. +float: 1
  117298. +ifloat: 1
  117299. +ildouble: 1
  117300. +ldouble: 1
  117301. +Test "Imaginary part of: ctanh (0 + pi/4 i)":
  117302. +double: 1
  117303. +float: 1
  117304. +idouble: 1
  117305. +ifloat: 1
  117306. +ildouble: 1
  117307. +ldouble: 1
  117308. +Test "Real part of: ctanh (0.75 + 1.25 i)":
  117309. +double: 1
  117310. +float: 1
  117311. +idouble: 1
  117312. +ifloat: 1
  117313. +Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
  117314. +float: 2
  117315. +ifloat: 2
  117316. +Test "Real part of: ctanh (1 + 0x1p1023 i)":
  117317. +ildouble: 2
  117318. +ldouble: 2
  117319. +Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
  117320. +double: 1
  117321. +idouble: 1
  117322. +Test "Real part of: ctanh (1 + 0x1p127 i)":
  117323. +double: 1
  117324. +idouble: 1
  117325. +ildouble: 1
  117326. +ldouble: 1
  117327. +Test "Imaginary part of: ctanh (1 + 0x1p127 i)":
  117328. +ildouble: 2
  117329. +ldouble: 2
  117330. +Test "Real part of: ctanh (1 + 0x1p16383 i)":
  117331. +ildouble: 2
  117332. +ldouble: 2
  117333. +Test "Imaginary part of: ctanh (1 + 0x1p16383 i)":
  117334. +ildouble: 1
  117335. +ldouble: 1
  117336. +Test "Imaginary part of: ctanh (355 + 1 i)":
  117337. +ildouble: 2
  117338. +ldouble: 2
  117339. +Test "Imaginary part of: ctanh (365 + 1 i)":
  117340. +ildouble: 1
  117341. +ldouble: 1
  117342. +Test "Imaginary part of: ctanh (45 + 1 i)":
  117343. +ildouble: 2
  117344. +ldouble: 2
  117345. +Test "Imaginary part of: ctanh (47 + 1 i)":
  117346. +ildouble: 1
  117347. +ldouble: 1
  117348. +
  117349. +# ctanh_downward
  117350. +Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
  117351. +float: 1
  117352. +ifloat: 1
  117353. +Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
  117354. +double: 2
  117355. +float: 1
  117356. +idouble: 2
  117357. +ifloat: 1
  117358. +
  117359. +# ctanh_tonearest
  117360. +Test "Real part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
  117361. +ildouble: 3
  117362. +ldouble: 3
  117363. +Test "Imaginary part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
  117364. +ildouble: 3
  117365. +ldouble: 3
  117366. +Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
  117367. +float: 1
  117368. +ifloat: 1
  117369. +ildouble: 2
  117370. +ldouble: 2
  117371. +Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
  117372. +float: 1
  117373. +ifloat: 1
  117374. +ildouble: 1
  117375. +ldouble: 1
  117376. +Test "Real part of: ctanh_tonearest (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
  117377. +ildouble: 1
  117378. +ldouble: 1
  117379. +
  117380. +# ctanh_towardzero
  117381. +Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
  117382. +float: 1
  117383. +ifloat: 1
  117384. +Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
  117385. +float: 1
  117386. +ifloat: 1
  117387. +
  117388. +# ctanh_upward
  117389. +Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
  117390. +double: 1
  117391. +idouble: 1
  117392. +Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
  117393. +double: 1
  117394. +float: 2
  117395. +idouble: 1
  117396. +ifloat: 2
  117397. +Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
  117398. +double: 2
  117399. +float: 1
  117400. +idouble: 2
  117401. +ifloat: 1
  117402. +
  117403. +# erf
  117404. +Test "erf (1.25)":
  117405. +double: 1
  117406. +idouble: 1
  117407. +
  117408. +# erfc
  117409. +Test "erfc (0x1.f7303cp+1)":
  117410. +double: 1
  117411. +idouble: 1
  117412. +Test "erfc (0x1.ffa002p+2)":
  117413. +float: 1
  117414. +ifloat: 1
  117415. +ildouble: 1
  117416. +ldouble: 1
  117417. +Test "erfc (0x1.ffffc8p+2)":
  117418. +ildouble: 1
  117419. +ldouble: 1
  117420. +Test "erfc (2.0)":
  117421. +double: 1
  117422. +idouble: 1
  117423. +Test "erfc (27.0)":
  117424. +ildouble: 1
  117425. +ldouble: 1
  117426. +Test "erfc (4.125)":
  117427. +double: 1
  117428. +idouble: 1
  117429. +
  117430. +# exp10
  117431. +Test "exp10 (-1)":
  117432. +double: 1
  117433. +idouble: 1
  117434. +Test "exp10 (-305)":
  117435. +double: 1
  117436. +idouble: 1
  117437. +Test "exp10 (-36)":
  117438. +double: 1
  117439. +idouble: 1
  117440. +ildouble: 1
  117441. +ldouble: 1
  117442. +Test "exp10 (3)":
  117443. +double: 1
  117444. +idouble: 1
  117445. +Test "exp10 (36)":
  117446. +double: 1
  117447. +idouble: 1
  117448. +Test "exp10 (4932)":
  117449. +ildouble: 1
  117450. +ldouble: 1
  117451. +
  117452. +# exp2
  117453. +Test "exp2 (100.5)":
  117454. +ildouble: 1
  117455. +ldouble: 1
  117456. +
  117457. +# exp_downward
  117458. +Test "exp_downward (2)":
  117459. +float: 1
  117460. +ifloat: 1
  117461. +Test "exp_downward (3)":
  117462. +float: 1
  117463. +ifloat: 1
  117464. +
  117465. +# exp_towardzero
  117466. +Test "exp_towardzero (2)":
  117467. +float: 1
  117468. +ifloat: 1
  117469. +Test "exp_towardzero (3)":
  117470. +float: 1
  117471. +ifloat: 1
  117472. +
  117473. +# exp_upward
  117474. +Test "exp_upward (1)":
  117475. +float: 1
  117476. +ifloat: 1
  117477. +
  117478. +# expm1
  117479. +Test "expm1 (-79.0)":
  117480. +ildouble: 1
  117481. +ldouble: 1
  117482. +Test "expm1 (0.75)":
  117483. +double: 1
  117484. +idouble: 1
  117485. +Test "expm1 (1)":
  117486. +double: 1
  117487. +float: 1
  117488. +idouble: 1
  117489. +ifloat: 1
  117490. +ildouble: 1
  117491. +ldouble: 1
  117492. +Test "expm1 (500.0)":
  117493. +double: 1
  117494. +idouble: 1
  117495. +
  117496. +# gamma
  117497. +Test "gamma (-0.5)":
  117498. +ildouble: 1
  117499. +ldouble: 1
  117500. +Test "gamma (0.7)":
  117501. +double: 1
  117502. +float: 1
  117503. +idouble: 1
  117504. +ifloat: 1
  117505. +ildouble: 1
  117506. +ldouble: 1
  117507. +Test "gamma (1.2)":
  117508. +double: 1
  117509. +float: 2
  117510. +idouble: 1
  117511. +ifloat: 2
  117512. +ildouble: 1
  117513. +ldouble: 1
  117514. +
  117515. +# hypot
  117516. +Test "hypot (-0.7, -12.4)":
  117517. +float: 1
  117518. +ifloat: 1
  117519. +Test "hypot (-0.7, 12.4)":
  117520. +float: 1
  117521. +ifloat: 1
  117522. +Test "hypot (-12.4, -0.7)":
  117523. +float: 1
  117524. +ifloat: 1
  117525. +Test "hypot (-12.4, 0.7)":
  117526. +float: 1
  117527. +ifloat: 1
  117528. +Test "hypot (0.7, -12.4)":
  117529. +float: 1
  117530. +ifloat: 1
  117531. +Test "hypot (0.7, 12.4)":
  117532. +float: 1
  117533. +ifloat: 1
  117534. +Test "hypot (12.4, -0.7)":
  117535. +float: 1
  117536. +ifloat: 1
  117537. +Test "hypot (12.4, 0.7)":
  117538. +float: 1
  117539. +ifloat: 1
  117540. +
  117541. +# j0
  117542. +Test "j0 (-0x1.001000001p+593)":
  117543. +ildouble: 1
  117544. +ldouble: 1
  117545. +Test "j0 (-4.0)":
  117546. +double: 1
  117547. +float: 1
  117548. +idouble: 1
  117549. +ifloat: 1
  117550. +Test "j0 (0.75)":
  117551. +float: 1
  117552. +ifloat: 1
  117553. +Test "j0 (0x1.d7ce3ap+107)":
  117554. +float: 2
  117555. +ifloat: 2
  117556. +ildouble: 1
  117557. +ldouble: 1
  117558. +Test "j0 (0x1p1023)":
  117559. +ildouble: 1
  117560. +ldouble: 1
  117561. +Test "j0 (0x1p16383)":
  117562. +ildouble: 2
  117563. +ldouble: 2
  117564. +Test "j0 (10.0)":
  117565. +double: 2
  117566. +float: 1
  117567. +idouble: 2
  117568. +ifloat: 1
  117569. +ildouble: 2
  117570. +ldouble: 2
  117571. +Test "j0 (2.0)":
  117572. +float: 2
  117573. +ifloat: 2
  117574. +ildouble: 2
  117575. +ldouble: 2
  117576. +Test "j0 (4.0)":
  117577. +double: 1
  117578. +float: 1
  117579. +idouble: 1
  117580. +ifloat: 1
  117581. +Test "j0 (8.0)":
  117582. +float: 1
  117583. +ifloat: 1
  117584. +ildouble: 1
  117585. +ldouble: 1
  117586. +
  117587. +# j1
  117588. +Test "j1 (-1.0)":
  117589. +ildouble: 1
  117590. +ldouble: 1
  117591. +Test "j1 (0.75)":
  117592. +ildouble: 1
  117593. +ldouble: 1
  117594. +Test "j1 (0x1.3ffp+74)":
  117595. +double: 1
  117596. +idouble: 1
  117597. +ildouble: 1
  117598. +ldouble: 1
  117599. +Test "j1 (0x1.ff00000000002p+840)":
  117600. +double: 1
  117601. +idouble: 1
  117602. +ildouble: 1
  117603. +ldouble: 1
  117604. +Test "j1 (0x1p1023)":
  117605. +ildouble: 1
  117606. +ldouble: 1
  117607. +Test "j1 (0x1p16382)":
  117608. +ildouble: 1
  117609. +ldouble: 1
  117610. +Test "j1 (0x1p16383)":
  117611. +ildouble: 2
  117612. +ldouble: 2
  117613. +Test "j1 (1.0)":
  117614. +ildouble: 1
  117615. +ldouble: 1
  117616. +Test "j1 (10.0)":
  117617. +float: 2
  117618. +ifloat: 2
  117619. +ildouble: 2
  117620. +ldouble: 2
  117621. +Test "j1 (2.0)":
  117622. +double: 1
  117623. +idouble: 1
  117624. +Test "j1 (8.0)":
  117625. +double: 1
  117626. +idouble: 1
  117627. +ildouble: 4
  117628. +ldouble: 4
  117629. +
  117630. +# jn
  117631. +Test "jn (0, -4.0)":
  117632. +double: 1
  117633. +float: 1
  117634. +idouble: 1
  117635. +ifloat: 1
  117636. +Test "jn (0, 0.75)":
  117637. +float: 1
  117638. +ifloat: 1
  117639. +Test "jn (0, 10.0)":
  117640. +double: 2
  117641. +float: 1
  117642. +idouble: 2
  117643. +ifloat: 1
  117644. +ildouble: 2
  117645. +ldouble: 2
  117646. +Test "jn (0, 2.0)":
  117647. +float: 2
  117648. +ifloat: 2
  117649. +ildouble: 2
  117650. +ldouble: 2
  117651. +Test "jn (0, 4.0)":
  117652. +double: 1
  117653. +float: 1
  117654. +idouble: 1
  117655. +ifloat: 1
  117656. +Test "jn (0, 8.0)":
  117657. +float: 1
  117658. +ifloat: 1
  117659. +ildouble: 1
  117660. +ldouble: 1
  117661. +Test "jn (1, -1.0)":
  117662. +ildouble: 1
  117663. +ldouble: 1
  117664. +Test "jn (1, 0.75)":
  117665. +ildouble: 1
  117666. +ldouble: 1
  117667. +Test "jn (1, 1.0)":
  117668. +ildouble: 1
  117669. +ldouble: 1
  117670. +Test "jn (1, 10.0)":
  117671. +float: 2
  117672. +ifloat: 2
  117673. +ildouble: 2
  117674. +ldouble: 2
  117675. +Test "jn (1, 2.0)":
  117676. +double: 1
  117677. +idouble: 1
  117678. +Test "jn (1, 8.0)":
  117679. +double: 1
  117680. +idouble: 1
  117681. +ildouble: 4
  117682. +ldouble: 4
  117683. +Test "jn (10, -1.0)":
  117684. +ildouble: 1
  117685. +ldouble: 1
  117686. +Test "jn (10, 0.125)":
  117687. +double: 1
  117688. +float: 1
  117689. +idouble: 1
  117690. +ifloat: 1
  117691. +ildouble: 1
  117692. +ldouble: 1
  117693. +Test "jn (10, 0.75)":
  117694. +double: 1
  117695. +float: 1
  117696. +idouble: 1
  117697. +ifloat: 1
  117698. +ildouble: 1
  117699. +ldouble: 1
  117700. +Test "jn (10, 1.0)":
  117701. +ildouble: 1
  117702. +ldouble: 1
  117703. +Test "jn (10, 10.0)":
  117704. +double: 4
  117705. +float: 3
  117706. +idouble: 4
  117707. +ifloat: 3
  117708. +ildouble: 2
  117709. +ldouble: 2
  117710. +Test "jn (10, 2.0)":
  117711. +double: 1
  117712. +float: 2
  117713. +idouble: 1
  117714. +ifloat: 2
  117715. +Test "jn (2, 0x1.ffff62p+99)":
  117716. +double: 2
  117717. +float: 2
  117718. +idouble: 2
  117719. +ifloat: 2
  117720. +Test "jn (2, 2.4048255576957729)":
  117721. +double: 2
  117722. +float: 1
  117723. +idouble: 2
  117724. +ifloat: 1
  117725. +ildouble: 1
  117726. +ldouble: 1
  117727. +Test "jn (3, 0.125)":
  117728. +double: 1
  117729. +float: 1
  117730. +idouble: 1
  117731. +ifloat: 1
  117732. +Test "jn (3, 0.75)":
  117733. +double: 1
  117734. +float: 1
  117735. +idouble: 1
  117736. +ifloat: 1
  117737. +Test "jn (3, 10.0)":
  117738. +double: 3
  117739. +float: 1
  117740. +idouble: 3
  117741. +ifloat: 1
  117742. +ildouble: 2
  117743. +ldouble: 2
  117744. +Test "jn (3, 2.0)":
  117745. +float: 1
  117746. +ifloat: 1
  117747. +Test "jn (3, 2.4048255576957729)":
  117748. +double: 3
  117749. +idouble: 3
  117750. +ildouble: 1
  117751. +ldouble: 1
  117752. +Test "jn (4, 2.4048255576957729)":
  117753. +double: 1
  117754. +idouble: 1
  117755. +ildouble: 1
  117756. +ldouble: 1
  117757. +Test "jn (5, 2.4048255576957729)":
  117758. +double: 3
  117759. +float: 1
  117760. +idouble: 3
  117761. +ifloat: 1
  117762. +ildouble: 2
  117763. +ldouble: 2
  117764. +Test "jn (6, 2.4048255576957729)":
  117765. +double: 4
  117766. +float: 3
  117767. +idouble: 4
  117768. +ifloat: 3
  117769. +ildouble: 5
  117770. +ldouble: 5
  117771. +Test "jn (7, 2.4048255576957729)":
  117772. +double: 3
  117773. +float: 5
  117774. +idouble: 3
  117775. +ifloat: 5
  117776. +ildouble: 3
  117777. +ldouble: 3
  117778. +Test "jn (8, 2.4048255576957729)":
  117779. +double: 3
  117780. +float: 2
  117781. +idouble: 3
  117782. +ifloat: 2
  117783. +ildouble: 8
  117784. +ldouble: 8
  117785. +Test "jn (9, 2.4048255576957729)":
  117786. +double: 1
  117787. +float: 2
  117788. +idouble: 1
  117789. +ifloat: 2
  117790. +ildouble: 3
  117791. +ldouble: 3
  117792. +
  117793. +# lgamma
  117794. +Test "lgamma (-0.5)":
  117795. +ildouble: 1
  117796. +ldouble: 1
  117797. +Test "lgamma (0.7)":
  117798. +double: 1
  117799. +float: 1
  117800. +idouble: 1
  117801. +ifloat: 1
  117802. +ildouble: 1
  117803. +ldouble: 1
  117804. +Test "lgamma (1.2)":
  117805. +double: 1
  117806. +float: 2
  117807. +idouble: 1
  117808. +ifloat: 2
  117809. +ildouble: 1
  117810. +ldouble: 1
  117811. +
  117812. +# log10
  117813. +Test "log10 (0.75)":
  117814. +double: 1
  117815. +float: 2
  117816. +idouble: 1
  117817. +ifloat: 2
  117818. +Test "log10 (e)":
  117819. +float: 1
  117820. +ifloat: 1
  117821. +ildouble: 1
  117822. +ldouble: 1
  117823. +
  117824. +# log1p
  117825. +Test "log1p (-0.25)":
  117826. +float: 1
  117827. +ifloat: 1
  117828. +
  117829. +# log2
  117830. +Test "log2 (0.75)":
  117831. +ildouble: 1
  117832. +ldouble: 1
  117833. +
  117834. +# pow
  117835. +Test "pow (0x0.fffffffffffff8p0, -0x1.23456789abcdfp62)":
  117836. +ildouble: 1
  117837. +ldouble: 1
  117838. +Test "pow (0x0.ffffffp0, -0x1p24)":
  117839. +float: 1
  117840. +ifloat: 1
  117841. +ildouble: 1
  117842. +ldouble: 1
  117843. +Test "pow (0x0.ffffffp0, 0x1p24)":
  117844. +float: 1
  117845. +ifloat: 1
  117846. +Test "pow (0x1.000002p0, 0x1p24)":
  117847. +float: 1
  117848. +ifloat: 1
  117849. +Test "pow (10.0, -4930.0)":
  117850. +ildouble: 1
  117851. +ldouble: 1
  117852. +Test "pow (10.0, 4929.0)":
  117853. +ildouble: 1
  117854. +ldouble: 1
  117855. +Test "pow (10.0, 4930.0)":
  117856. +ildouble: 1
  117857. +ldouble: 1
  117858. +Test "pow (10.0, 4931.0)":
  117859. +ildouble: 1
  117860. +ldouble: 1
  117861. +Test "pow (10.0, 4932.0)":
  117862. +ildouble: 1
  117863. +ldouble: 1
  117864. +Test "pow (1e4932, 0.75)":
  117865. +ildouble: 1
  117866. +ldouble: 1
  117867. +
  117868. +# pow10
  117869. +Test "pow10 (-1)":
  117870. +double: 1
  117871. +idouble: 1
  117872. +Test "pow10 (-305)":
  117873. +double: 1
  117874. +idouble: 1
  117875. +Test "pow10 (-36)":
  117876. +double: 1
  117877. +idouble: 1
  117878. +ildouble: 1
  117879. +ldouble: 1
  117880. +Test "pow10 (3)":
  117881. +double: 1
  117882. +idouble: 1
  117883. +Test "pow10 (36)":
  117884. +double: 1
  117885. +idouble: 1
  117886. +Test "pow10 (4932)":
  117887. +ildouble: 1
  117888. +ldouble: 1
  117889. +
  117890. +# pow_downward
  117891. +Test "pow_downward (1.5, 1.03125)":
  117892. +float: 1
  117893. +ifloat: 1
  117894. +
  117895. +# pow_towardzero
  117896. +Test "pow_towardzero (1.5, 1.03125)":
  117897. +float: 1
  117898. +ifloat: 1
  117899. +
  117900. +# pow_upward
  117901. +Test "pow_upward (1.0625, 1.125)":
  117902. +float: 1
  117903. +ifloat: 1
  117904. +
  117905. +# sin_downward
  117906. +Test "sin_downward (10)":
  117907. +float: 1
  117908. +ifloat: 1
  117909. +Test "sin_downward (3)":
  117910. +float: 1
  117911. +ifloat: 1
  117912. +Test "sin_downward (5)":
  117913. +float: 1
  117914. +ifloat: 1
  117915. +Test "sin_downward (6)":
  117916. +float: 1
  117917. +ifloat: 1
  117918. +
  117919. +# sin_tonearest
  117920. +Test "sin_tonearest (1)":
  117921. +float: 1
  117922. +ifloat: 1
  117923. +Test "sin_tonearest (3)":
  117924. +ildouble: 1
  117925. +ldouble: 1
  117926. +
  117927. +# sin_towardzero
  117928. +Test "sin_towardzero (1)":
  117929. +float: 1
  117930. +ifloat: 1
  117931. +Test "sin_towardzero (10)":
  117932. +float: 1
  117933. +ifloat: 1
  117934. +Test "sin_towardzero (4)":
  117935. +float: 1
  117936. +ifloat: 1
  117937. +Test "sin_towardzero (5)":
  117938. +float: 1
  117939. +ifloat: 1
  117940. +Test "sin_towardzero (9)":
  117941. +float: 1
  117942. +ifloat: 1
  117943. +
  117944. +# sin_upward
  117945. +Test "sin_upward (1)":
  117946. +float: 1
  117947. +ifloat: 1
  117948. +Test "sin_upward (2)":
  117949. +float: 2
  117950. +ifloat: 2
  117951. +Test "sin_upward (4)":
  117952. +float: 1
  117953. +ifloat: 1
  117954. +Test "sin_upward (9)":
  117955. +float: 1
  117956. +ifloat: 1
  117957. +
  117958. +# sincos
  117959. +Test "sincos (0x1p+120) extra output 2":
  117960. +float: 1
  117961. +ifloat: 1
  117962. +Test "sincos (0x1p+127) extra output 2":
  117963. +float: 1
  117964. +ifloat: 1
  117965. +Test "sincos (M_PI_6l*2.0) extra output 1":
  117966. +double: 1
  117967. +float: 1
  117968. +idouble: 1
  117969. +ifloat: 1
  117970. +Test "sincos (M_PI_6l*2.0) extra output 2":
  117971. +double: 1
  117972. +idouble: 1
  117973. +Test "sincos (pi/6) extra output 2":
  117974. +float: 1
  117975. +ifloat: 1
  117976. +
  117977. +# sinh_downward
  117978. +Test "sinh_downward (22)":
  117979. +float: 1
  117980. +ifloat: 1
  117981. +Test "sinh_downward (23)":
  117982. +float: 1
  117983. +ifloat: 1
  117984. +Test "sinh_downward (24)":
  117985. +float: 1
  117986. +ifloat: 1
  117987. +
  117988. +# sinh_towardzero
  117989. +Test "sinh_towardzero (22)":
  117990. +float: 1
  117991. +ifloat: 1
  117992. +Test "sinh_towardzero (23)":
  117993. +float: 1
  117994. +ifloat: 1
  117995. +Test "sinh_towardzero (24)":
  117996. +float: 1
  117997. +ifloat: 1
  117998. +
  117999. +# tan_downward
  118000. +Test "tan_downward (1)":
  118001. +float: 1
  118002. +ifloat: 1
  118003. +Test "tan_downward (10)":
  118004. +float: 1
  118005. +ifloat: 1
  118006. +Test "tan_downward (2)":
  118007. +float: 1
  118008. +ifloat: 1
  118009. +Test "tan_downward (6)":
  118010. +float: 1
  118011. +ifloat: 1
  118012. +Test "tan_downward (8)":
  118013. +float: 1
  118014. +ifloat: 1
  118015. +Test "tan_downward (9)":
  118016. +float: 1
  118017. +ifloat: 1
  118018. +
  118019. +# tan_towardzero
  118020. +Test "tan_towardzero (10)":
  118021. +float: 1
  118022. +ifloat: 1
  118023. +Test "tan_towardzero (3)":
  118024. +float: 1
  118025. +ifloat: 1
  118026. +Test "tan_towardzero (4)":
  118027. +float: 1
  118028. +ifloat: 1
  118029. +Test "tan_towardzero (5)":
  118030. +float: 1
  118031. +ifloat: 1
  118032. +Test "tan_towardzero (9)":
  118033. +float: 1
  118034. +ifloat: 1
  118035. +
  118036. +# tan_upward
  118037. +Test "tan_upward (1)":
  118038. +float: 1
  118039. +ifloat: 1
  118040. +Test "tan_upward (10)":
  118041. +float: 1
  118042. +ifloat: 1
  118043. +Test "tan_upward (3)":
  118044. +float: 1
  118045. +ifloat: 1
  118046. +Test "tan_upward (5)":
  118047. +float: 1
  118048. +ifloat: 1
  118049. +
  118050. +# tanh
  118051. +Test "tanh (-0.75)":
  118052. +ildouble: 1
  118053. +ldouble: 1
  118054. +Test "tanh (-1.0)":
  118055. +ildouble: 1
  118056. +ldouble: 1
  118057. +Test "tanh (0.75)":
  118058. +ildouble: 1
  118059. +ldouble: 1
  118060. +Test "tanh (1.0)":
  118061. +ildouble: 1
  118062. +ldouble: 1
  118063. +
  118064. +# tgamma
  118065. +Test "tgamma (-0.5)":
  118066. +double: 1
  118067. +float: 1
  118068. +idouble: 1
  118069. +ifloat: 1
  118070. +Test "tgamma (-0x0.fffffffffffff8p0)":
  118071. +double: 1
  118072. +idouble: 1
  118073. +Test "tgamma (-0x0.ffffffffffffffffffffffffffff8p0)":
  118074. +ildouble: 1
  118075. +ldouble: 1
  118076. +Test "tgamma (-0x0.ffffffp0)":
  118077. +float: 1
  118078. +ifloat: 1
  118079. +ildouble: 1
  118080. +ldouble: 1
  118081. +Test "tgamma (-0x1.0000000000000002p0)":
  118082. +ildouble: 1
  118083. +ldouble: 1
  118084. +Test "tgamma (-0x1.0000000000001p0)":
  118085. +ildouble: 1
  118086. +ldouble: 1
  118087. +Test "tgamma (-0x1.000002p0)":
  118088. +double: 2
  118089. +idouble: 2
  118090. +Test "tgamma (-0x1.0a32a2p+5)":
  118091. +float: 2
  118092. +ifloat: 2
  118093. +ildouble: 2
  118094. +ldouble: 2
  118095. +Test "tgamma (-0x1.5800000080001p+7)":
  118096. +ildouble: 1
  118097. +ldouble: 1
  118098. +Test "tgamma (-0x1.fffffffffffffffep0)":
  118099. +ildouble: 1
  118100. +ldouble: 1
  118101. +Test "tgamma (-0x1.fffffffffffffp0)":
  118102. +ildouble: 1
  118103. +ldouble: 1
  118104. +Test "tgamma (-0x13.ffffep0)":
  118105. +float: 2
  118106. +ifloat: 2
  118107. +ildouble: 1
  118108. +ldouble: 1
  118109. +Test "tgamma (-0x13.ffffffffffffffep0)":
  118110. +ildouble: 1
  118111. +ldouble: 1
  118112. +Test "tgamma (-0x13.fffffffffffffffffffffffff8p0)":
  118113. +ildouble: 1
  118114. +ldouble: 1
  118115. +Test "tgamma (-0x13.ffffffffffffp0)":
  118116. +ildouble: 2
  118117. +ldouble: 2
  118118. +Test "tgamma (-0x14.000000000000000000000000001p0)":
  118119. +ildouble: 1
  118120. +ldouble: 1
  118121. +Test "tgamma (-0x14.000000000001p0)":
  118122. +double: 1
  118123. +idouble: 1
  118124. +ildouble: 1
  118125. +ldouble: 1
  118126. +Test "tgamma (-0x14.00002p0)":
  118127. +float: 1
  118128. +ifloat: 1
  118129. +ildouble: 4
  118130. +ldouble: 4
  118131. +Test "tgamma (-0x1d.ffffep0)":
  118132. +double: 1
  118133. +float: 1
  118134. +idouble: 1
  118135. +ifloat: 1
  118136. +ildouble: 1
  118137. +ldouble: 1
  118138. +Test "tgamma (-0x1d.fffffffffffffffffffffffff8p0)":
  118139. +ildouble: 1
  118140. +ldouble: 1
  118141. +Test "tgamma (-0x1d.ffffffffffffp0)":
  118142. +ildouble: 1
  118143. +ldouble: 1
  118144. +Test "tgamma (-0x1e.000000000000000000000000001p0)":
  118145. +ildouble: 2
  118146. +ldouble: 2
  118147. +Test "tgamma (-0x1e.00000000000000000000000008p0)":
  118148. +ildouble: 1
  118149. +ldouble: 1
  118150. +Test "tgamma (-0x1e.000000000000002p0)":
  118151. +ildouble: 1
  118152. +ldouble: 1
  118153. +Test "tgamma (-0x1e.000000000001p0)":
  118154. +double: 3
  118155. +idouble: 3
  118156. +Test "tgamma (-0x1e.00002p0)":
  118157. +double: 1
  118158. +float: 1
  118159. +idouble: 1
  118160. +ifloat: 1
  118161. +ildouble: 1
  118162. +ldouble: 1
  118163. +Test "tgamma (-0x1f3.ffffffffffffffffffffffffffp0)":
  118164. +ildouble: 1
  118165. +ldouble: 1
  118166. +Test "tgamma (-0x1p-24)":
  118167. +ildouble: 1
  118168. +ldouble: 1
  118169. +Test "tgamma (-0x2.0000000000000000000000000002p0)":
  118170. +ildouble: 1
  118171. +ldouble: 1
  118172. +Test "tgamma (-0x2.0000000000002p0)":
  118173. +double: 1
  118174. +idouble: 1
  118175. +ildouble: 1
  118176. +ldouble: 1
  118177. +Test "tgamma (-0x2.000004p0)":
  118178. +double: 2
  118179. +float: 1
  118180. +idouble: 2
  118181. +ifloat: 1
  118182. +ildouble: 1
  118183. +ldouble: 1
  118184. +Test "tgamma (-0x2.fffffcp0)":
  118185. +double: 1
  118186. +float: 1
  118187. +idouble: 1
  118188. +ifloat: 1
  118189. +Test "tgamma (-0x2.ffffffffffffep0)":
  118190. +ildouble: 1
  118191. +ldouble: 1
  118192. +Test "tgamma (-0x27.fffffffffffep0)":
  118193. +double: 1
  118194. +idouble: 1
  118195. +ildouble: 1
  118196. +ldouble: 1
  118197. +Test "tgamma (-0x27.ffffffffffffffcp0)":
  118198. +ildouble: 1
  118199. +ldouble: 1
  118200. +Test "tgamma (-0x27.ffffffffffffffffffffffffffep0)":
  118201. +ildouble: 2
  118202. +ldouble: 2
  118203. +Test "tgamma (-0x27.fffffffffffffffffffffffffp0)":
  118204. +ildouble: 1
  118205. +ldouble: 1
  118206. +Test "tgamma (-0x28.0000000000000000000000001p0)":
  118207. +ildouble: 1
  118208. +ldouble: 1
  118209. +Test "tgamma (-0x28.000000000002p0)":
  118210. +double: 1
  118211. +idouble: 1
  118212. +ildouble: 1
  118213. +ldouble: 1
  118214. +Test "tgamma (-0x28.00004p0)":
  118215. +double: 2
  118216. +idouble: 2
  118217. +ildouble: 2
  118218. +ldouble: 2
  118219. +Test "tgamma (-0x28.ffffffffffffffcp0)":
  118220. +ildouble: 1
  118221. +ldouble: 1
  118222. +Test "tgamma (-0x28.ffffffffffffffffffffffffffep0)":
  118223. +ildouble: 1
  118224. +ldouble: 1
  118225. +Test "tgamma (-0x28.fffffffffffffffffffffffffp0)":
  118226. +ildouble: 1
  118227. +ldouble: 1
  118228. +Test "tgamma (-0x29.000000000000000000000000002p0)":
  118229. +ildouble: 1
  118230. +ldouble: 1
  118231. +Test "tgamma (-0x29.0000000000000000000000001p0)":
  118232. +ildouble: 2
  118233. +ldouble: 2
  118234. +Test "tgamma (-0x29.00004p0)":
  118235. +double: 1
  118236. +idouble: 1
  118237. +Test "tgamma (-0x29.ffffcp0)":
  118238. +double: 1
  118239. +idouble: 1
  118240. +Test "tgamma (-0x29.fffffffffffep0)":
  118241. +ildouble: 1
  118242. +ldouble: 1
  118243. +Test "tgamma (-0x29.ffffffffffffffcp0)":
  118244. +ildouble: 1
  118245. +ldouble: 1
  118246. +Test "tgamma (-0x29.ffffffffffffffffffffffffffep0)":
  118247. +ildouble: 1
  118248. +ldouble: 1
  118249. +Test "tgamma (-0x29.fffffffffffffffffffffffffp0)":
  118250. +ildouble: 1
  118251. +ldouble: 1
  118252. +Test "tgamma (-0x2a.000000000000000000000000002p0)":
  118253. +ildouble: 1
  118254. +ldouble: 1
  118255. +Test "tgamma (-0x2a.0000000000000000000000001p0)":
  118256. +ildouble: 1
  118257. +ldouble: 1
  118258. +Test "tgamma (-0x2a.000000000000004p0)":
  118259. +ildouble: 1
  118260. +ldouble: 1
  118261. +Test "tgamma (-0x2a.000000000002p0)":
  118262. +ildouble: 1
  118263. +ldouble: 1
  118264. +Test "tgamma (-0x2ed.fffffffffffffffffffffffffep0)":
  118265. +ildouble: 1
  118266. +ldouble: 1
  118267. +Test "tgamma (-0x2ee.00000000000004p0)":
  118268. +ildouble: 1
  118269. +ldouble: 1
  118270. +Test "tgamma (-0x3.00000000000000000000000001p0)":
  118271. +ildouble: 1
  118272. +ldouble: 1
  118273. +Test "tgamma (-0x3.000004p0)":
  118274. +double: 2
  118275. +float: 1
  118276. +idouble: 2
  118277. +ifloat: 1
  118278. +Test "tgamma (-0x3.fffffcp0)":
  118279. +double: 1
  118280. +float: 1
  118281. +idouble: 1
  118282. +ifloat: 1
  118283. +Test "tgamma (-0x3.ffffffffffffep0)":
  118284. +double: 2
  118285. +idouble: 2
  118286. +Test "tgamma (-0x3.fffffffffffffffcp0)":
  118287. +ildouble: 1
  118288. +ldouble: 1
  118289. +Test "tgamma (-0x3.fffffffffffffffffffffffffffep0)":
  118290. +ildouble: 2
  118291. +ldouble: 2
  118292. +Test "tgamma (-0x31.fffffffffffep0)":
  118293. +double: 3
  118294. +idouble: 3
  118295. +ildouble: 2
  118296. +ldouble: 2
  118297. +Test "tgamma (-0x31.ffffffffffffffcp0)":
  118298. +ildouble: 1
  118299. +ldouble: 1
  118300. +Test "tgamma (-0x31.ffffffffffffffffffffffffffep0)":
  118301. +ildouble: 1
  118302. +ldouble: 1
  118303. +Test "tgamma (-0x31.fffffffffffffffffffffffffp0)":
  118304. +ildouble: 2
  118305. +ldouble: 2
  118306. +Test "tgamma (-0x32.000000000000000000000000002p0)":
  118307. +ildouble: 1
  118308. +ldouble: 1
  118309. +Test "tgamma (-0x32.0000000000000000000000001p0)":
  118310. +ildouble: 1
  118311. +ldouble: 1
  118312. +Test "tgamma (-0x32.000000000000004p0)":
  118313. +ildouble: 1
  118314. +ldouble: 1
  118315. +Test "tgamma (-0x3e7.fffffffffffffcp0)":
  118316. +ildouble: 1
  118317. +ldouble: 1
  118318. +Test "tgamma (-0x3e7.fffffffffffffffffffffffffep0)":
  118319. +ildouble: 1
  118320. +ldouble: 1
  118321. +Test "tgamma (-0x3e8.00000000000000000000000002p0)":
  118322. +ildouble: 2
  118323. +ldouble: 2
  118324. +Test "tgamma (-0x3e8.00000000000004p0)":
  118325. +ildouble: 1
  118326. +ldouble: 1
  118327. +Test "tgamma (-0x4.0000000000004p0)":
  118328. +ildouble: 1
  118329. +ldouble: 1
  118330. +Test "tgamma (-0x4.000008p0)":
  118331. +float: 1
  118332. +ifloat: 1
  118333. +ildouble: 1
  118334. +ldouble: 1
  118335. +Test "tgamma (-0x4.fffff8p0)":
  118336. +double: 1
  118337. +idouble: 1
  118338. +Test "tgamma (-0x4.ffffffffffffcp0)":
  118339. +double: 1
  118340. +idouble: 1
  118341. +ildouble: 1
  118342. +ldouble: 1
  118343. +Test "tgamma (-0x4.fffffffffffffffffffffffffep0)":
  118344. +ildouble: 1
  118345. +ldouble: 1
  118346. +Test "tgamma (-0x4.fffffffffffffffffffffffffffcp0)":
  118347. +ildouble: 1
  118348. +ldouble: 1
  118349. +Test "tgamma (-0x5.0000000000000008p0)":
  118350. +ildouble: 1
  118351. +ldouble: 1
  118352. +Test "tgamma (-0x5.0000000000004p0)":
  118353. +ildouble: 1
  118354. +ldouble: 1
  118355. +Test "tgamma (-0x5.000008p0)":
  118356. +double: 1
  118357. +float: 1
  118358. +idouble: 1
  118359. +ifloat: 1
  118360. +Test "tgamma (-0x5.fffff8p0)":
  118361. +ildouble: 1
  118362. +ldouble: 1
  118363. +Test "tgamma (-0x5.ffffffffffffcp0)":
  118364. +double: 1
  118365. +idouble: 1
  118366. +ildouble: 1
  118367. +ldouble: 1
  118368. +Test "tgamma (-0x5.fffffffffffffff8p0)":
  118369. +ildouble: 2
  118370. +ldouble: 2
  118371. +Test "tgamma (-0x5.fffffffffffffffffffffffffep0)":
  118372. +ildouble: 1
  118373. +ldouble: 1
  118374. +Test "tgamma (-0x5.fffffffffffffffffffffffffffcp0)":
  118375. +ildouble: 1
  118376. +ldouble: 1
  118377. +Test "tgamma (-0x5db.fffffffffffff8p0)":
  118378. +ildouble: 1
  118379. +ldouble: 1
  118380. +Test "tgamma (-0x5db.fffffffffffffffffffffffffcp0)":
  118381. +ildouble: 1
  118382. +ldouble: 1
  118383. +Test "tgamma (-0x5dc.00000000000000000000000004p0)":
  118384. +ildouble: 2
  118385. +ldouble: 2
  118386. +Test "tgamma (-0x6.0000000000000000000000000004p0)":
  118387. +ildouble: 1
  118388. +ldouble: 1
  118389. +Test "tgamma (-0x6.00000000000000000000000002p0)":
  118390. +ildouble: 1
  118391. +ldouble: 1
  118392. +Test "tgamma (-0x6.0000000000004p0)":
  118393. +ildouble: 1
  118394. +ldouble: 1
  118395. +Test "tgamma (-0x6.000008p0)":
  118396. +float: 2
  118397. +ifloat: 2
  118398. +ildouble: 2
  118399. +ldouble: 2
  118400. +Test "tgamma (-0x6.fffff8p0)":
  118401. +double: 2
  118402. +float: 1
  118403. +idouble: 2
  118404. +ifloat: 1
  118405. +ildouble: 1
  118406. +ldouble: 1
  118407. +Test "tgamma (-0x6.ffffffffffffcp0)":
  118408. +double: 4
  118409. +idouble: 4
  118410. +ildouble: 1
  118411. +ldouble: 1
  118412. +Test "tgamma (-0x6.fffffffffffffff8p0)":
  118413. +ildouble: 1
  118414. +ldouble: 1
  118415. +Test "tgamma (-0x6.fffffffffffffffffffffffffffcp0)":
  118416. +ildouble: 1
  118417. +ldouble: 1
  118418. +Test "tgamma (-0x63.fffffffffffcp0)":
  118419. +double: 2
  118420. +idouble: 2
  118421. +Test "tgamma (-0x63.ffffffffffffff8p0)":
  118422. +ildouble: 2
  118423. +ldouble: 2
  118424. +Test "tgamma (-0x63.ffffffffffffffffffffffffep0)":
  118425. +ildouble: 2
  118426. +ldouble: 2
  118427. +Test "tgamma (-0x64.000000000000000000000000004p0)":
  118428. +ildouble: 2
  118429. +ldouble: 2
  118430. +Test "tgamma (-0x64.0000000000000000000000002p0)":
  118431. +ildouble: 1
  118432. +ldouble: 1
  118433. +Test "tgamma (-0x64.000000000004p0)":
  118434. +double: 1
  118435. +idouble: 1
  118436. +ildouble: 1
  118437. +ldouble: 1
  118438. +Test "tgamma (-0x6d5.fffffffffffff8p0)":
  118439. +ildouble: 1
  118440. +ldouble: 1
  118441. +Test "tgamma (-0x6d6.00000000000000000000000004p0)":
  118442. +ildouble: 1
  118443. +ldouble: 1
  118444. +Test "tgamma (-0x6e3.00000000000000000000000004p0)":
  118445. +ildouble: 2
  118446. +ldouble: 2
  118447. +Test "tgamma (-0x7.0000000000000008p0)":
  118448. +ildouble: 1
  118449. +ldouble: 1
  118450. +Test "tgamma (-0x7.0000000000004p0)":
  118451. +double: 3
  118452. +idouble: 3
  118453. +Test "tgamma (-0x7.000008p0)":
  118454. +double: 1
  118455. +float: 1
  118456. +idouble: 1
  118457. +ifloat: 1
  118458. +Test "tgamma (-0x7.fffff8p0)":
  118459. +double: 3
  118460. +float: 1
  118461. +idouble: 3
  118462. +ifloat: 1
  118463. +Test "tgamma (-0x7.ffffffffffffcp0)":
  118464. +double: 3
  118465. +idouble: 3
  118466. +Test "tgamma (-0x7.fffffffffffffff8p0)":
  118467. +ildouble: 1
  118468. +ldouble: 1
  118469. +Test "tgamma (-0x7.fffffffffffffffffffffffffep0)":
  118470. +ildouble: 1
  118471. +ldouble: 1
  118472. +Test "tgamma (-0x7.fffffffffffffffffffffffffffcp0)":
  118473. +ildouble: 1
  118474. +ldouble: 1
  118475. +Test "tgamma (-0x8.0000000000000000000000000008p0)":
  118476. +ildouble: 1
  118477. +ldouble: 1
  118478. +Test "tgamma (-0x8.00000000000000000000000004p0)":
  118479. +ildouble: 1
  118480. +ldouble: 1
  118481. +Test "tgamma (-0x8.0000000000008p0)":
  118482. +ildouble: 1
  118483. +ldouble: 1
  118484. +Test "tgamma (-0x8.00001p0)":
  118485. +double: 2
  118486. +idouble: 2
  118487. +ildouble: 1
  118488. +ldouble: 1
  118489. +Test "tgamma (-0x9.ffffffffffff8p0)":
  118490. +double: 1
  118491. +idouble: 1
  118492. +Test "tgamma (-0x9.fffffffffffffffffffffffffff8p0)":
  118493. +ildouble: 1
  118494. +ldouble: 1
  118495. +Test "tgamma (-0x9.fffffp0)":
  118496. +float: 1
  118497. +ifloat: 1
  118498. +Test "tgamma (-0x95.ffffffffffffffp0)":
  118499. +ildouble: 1
  118500. +ldouble: 1
  118501. +Test "tgamma (-0x96.000000000000000000000000008p0)":
  118502. +ildouble: 1
  118503. +ldouble: 1
  118504. +Test "tgamma (-0x96.0000000000000000000000004p0)":
  118505. +ildouble: 1
  118506. +ldouble: 1
  118507. +Test "tgamma (-0x96.00000000000001p0)":
  118508. +ildouble: 2
  118509. +ldouble: 2
  118510. +Test "tgamma (-0x96.000000000008p0)":
  118511. +double: 1
  118512. +idouble: 1
  118513. +Test "tgamma (-0xa.0000000000008p0)":
  118514. +ildouble: 1
  118515. +ldouble: 1
  118516. +Test "tgamma (-0xa.00001p0)":
  118517. +double: 1
  118518. +idouble: 1
  118519. +ildouble: 1
  118520. +ldouble: 1
  118521. +Test "tgamma (-0xb4.ffffffffffffffffffffffffcp0)":
  118522. +ildouble: 1
  118523. +ldouble: 1
  118524. +Test "tgamma (-0xb4.ffffffffffffffp0)":
  118525. +ildouble: 1
  118526. +ldouble: 1
  118527. +Test "tgamma (-0xb5.0000000000000000000000004p0)":
  118528. +ildouble: 1
  118529. +ldouble: 1
  118530. +Test "tgamma (-0xb5.00000000000001p0)":
  118531. +ildouble: 2
  118532. +ldouble: 2
  118533. +Test "tgamma (-0xb5.000000000008p0)":
  118534. +ildouble: 1
  118535. +ldouble: 1
  118536. +Test "tgamma (-0xb5.ffffffffffffffffffffffffff8p0)":
  118537. +ildouble: 1
  118538. +ldouble: 1
  118539. +Test "tgamma (-0xb6.00000000000001p0)":
  118540. +ildouble: 1
  118541. +ldouble: 1
  118542. +Test "tgamma (-0xb6.000000000008p0)":
  118543. +ildouble: 1
  118544. +ldouble: 1
  118545. +Test "tgamma (-0xb6.fffffffffff8p0)":
  118546. +ildouble: 1
  118547. +ldouble: 1
  118548. +Test "tgamma (-0xb6.ffffffffffffffffffffffffff8p0)":
  118549. +ildouble: 3
  118550. +ldouble: 3
  118551. +Test "tgamma (-0xb7.000000000000000000000000008p0)":
  118552. +ildouble: 1
  118553. +ldouble: 1
  118554. +Test "tgamma (-0xb7.00000000000001p0)":
  118555. +ildouble: 2
  118556. +ldouble: 2
  118557. +Test "tgamma (-0xb7.000000000008p0)":
  118558. +ildouble: 1
  118559. +ldouble: 1
  118560. +Test "tgamma (-0xb7.ffffffffffffffffffffffffcp0)":
  118561. +ildouble: 1
  118562. +ldouble: 1
  118563. +Test "tgamma (-0xb7.ffffffffffffffffffffffffff8p0)":
  118564. +ildouble: 1
  118565. +ldouble: 1
  118566. +Test "tgamma (-0xb8.00000000000001p0)":
  118567. +ildouble: 1
  118568. +ldouble: 1
  118569. +Test "tgamma (-0xbb.ffffffffffffffffffffffffcp0)":
  118570. +ildouble: 3
  118571. +ldouble: 3
  118572. +Test "tgamma (-0xbb.ffffffffffffffffffffffffff8p0)":
  118573. +ildouble: 4
  118574. +ldouble: 4
  118575. +Test "tgamma (-0xbc.000000000000000000000000008p0)":
  118576. +ildouble: 1
  118577. +ldouble: 1
  118578. +Test "tgamma (-0xbc.0000000000000000000000004p0)":
  118579. +ildouble: 2
  118580. +ldouble: 2
  118581. +Test "tgamma (-0xbc.00000000000001p0)":
  118582. +ildouble: 2
  118583. +ldouble: 2
  118584. +Test "tgamma (-0xbc.ffffffffffffffp0)":
  118585. +ildouble: 1
  118586. +ldouble: 1
  118587. +Test "tgamma (-0xbd.000000000000000000000000008p0)":
  118588. +ildouble: 1
  118589. +ldouble: 1
  118590. +Test "tgamma (-0xbd.00000000000001p0)":
  118591. +ildouble: 2
  118592. +ldouble: 2
  118593. +Test "tgamma (-0xbd.ffffffffffffffp0)":
  118594. +ildouble: 2
  118595. +ldouble: 2
  118596. +Test "tgamma (-0xbe.000000000000000000000000008p0)":
  118597. +ildouble: 1
  118598. +ldouble: 1
  118599. +Test "tgamma (-0xbe.0000000000000000000000004p0)":
  118600. +ildouble: 1
  118601. +ldouble: 1
  118602. +Test "tgamma (-0xbe.ffffffffffffffffffffffffcp0)":
  118603. +ildouble: 1
  118604. +ldouble: 1
  118605. +Test "tgamma (-0xbe.ffffffffffffffp0)":
  118606. +ildouble: 1
  118607. +ldouble: 1
  118608. +Test "tgamma (-0xbf.000000000000000000000000008p0)":
  118609. +ildouble: 1
  118610. +ldouble: 1
  118611. +Test "tgamma (-0xbf.0000000000000000000000004p0)":
  118612. +ildouble: 1
  118613. +ldouble: 1
  118614. +Test "tgamma (-0xbf.00000000000001p0)":
  118615. +ildouble: 1
  118616. +ldouble: 1
  118617. +Test "tgamma (-0xf9.ffffffffffffffp0)":
  118618. +ildouble: 1
  118619. +ldouble: 1
  118620. +Test "tgamma (-0xfa.000000000000000000000000008p0)":
  118621. +ildouble: 1
  118622. +ldouble: 1
  118623. +Test "tgamma (-2.5)":
  118624. +double: 1
  118625. +float: 2
  118626. +idouble: 1
  118627. +ifloat: 2
  118628. +ildouble: 1
  118629. +ldouble: 1
  118630. +Test "tgamma (-3.5)":
  118631. +double: 1
  118632. +float: 1
  118633. +idouble: 1
  118634. +ifloat: 1
  118635. +ildouble: 1
  118636. +ldouble: 1
  118637. +Test "tgamma (-4.5)":
  118638. +double: 1
  118639. +float: 1
  118640. +idouble: 1
  118641. +ifloat: 1
  118642. +Test "tgamma (-5.5)":
  118643. +double: 1
  118644. +idouble: 1
  118645. +Test "tgamma (-6.5)":
  118646. +float: 1
  118647. +ifloat: 1
  118648. +ildouble: 1
  118649. +ldouble: 1
  118650. +Test "tgamma (-7.5)":
  118651. +double: 2
  118652. +float: 1
  118653. +idouble: 2
  118654. +ifloat: 1
  118655. +Test "tgamma (-8.5)":
  118656. +double: 1
  118657. +float: 1
  118658. +idouble: 1
  118659. +ifloat: 1
  118660. +Test "tgamma (-9.5)":
  118661. +double: 1
  118662. +float: 1
  118663. +idouble: 1
  118664. +ifloat: 1
  118665. +Test "tgamma (0.5)":
  118666. +float: 1
  118667. +ifloat: 1
  118668. +Test "tgamma (0.7)":
  118669. +double: 1
  118670. +float: 1
  118671. +idouble: 1
  118672. +ifloat: 1
  118673. +Test "tgamma (0x1.fffffep0)":
  118674. +float: 1
  118675. +ifloat: 1
  118676. +Test "tgamma (0x1.fffffffffffffffep0)":
  118677. +ildouble: 1
  118678. +ldouble: 1
  118679. +Test "tgamma (0x1.ffffffffffffffffffffffffffffp0)":
  118680. +ildouble: 1
  118681. +ldouble: 1
  118682. +Test "tgamma (0x1.fffffffffffffp0)":
  118683. +double: 1
  118684. +idouble: 1
  118685. +ildouble: 1
  118686. +ldouble: 1
  118687. +Test "tgamma (0x1p-113)":
  118688. +ildouble: 1
  118689. +ldouble: 1
  118690. +Test "tgamma (0x1p-24)":
  118691. +float: 1
  118692. +ifloat: 1
  118693. +Test "tgamma (0x1p-53)":
  118694. +double: 1
  118695. +idouble: 1
  118696. +Test "tgamma (0x2.30a43cp+4)":
  118697. +double: 1
  118698. +float: 2
  118699. +idouble: 1
  118700. +ifloat: 2
  118701. +ildouble: 2
  118702. +ldouble: 2
  118703. +Test "tgamma (0x2.fffffcp0)":
  118704. +float: 3
  118705. +ifloat: 3
  118706. +Test "tgamma (0x2.ffffffffffffep0)":
  118707. +ildouble: 1
  118708. +ldouble: 1
  118709. +Test "tgamma (0x3.0000000000002p0)":
  118710. +ildouble: 1
  118711. +ldouble: 1
  118712. +Test "tgamma (0x3.fffffcp0)":
  118713. +float: 1
  118714. +ifloat: 1
  118715. +Test "tgamma (0x3.ffffffffffffep0)":
  118716. +double: 1
  118717. +idouble: 1
  118718. +ildouble: 1
  118719. +ldouble: 1
  118720. +Test "tgamma (0x3.fffffffffffffffcp0)":
  118721. +ildouble: 1
  118722. +ldouble: 1
  118723. +Test "tgamma (0x3.fffffffffffffffffffffffffffep0)":
  118724. +ildouble: 1
  118725. +ldouble: 1
  118726. +Test "tgamma (0x4.0000000000000000000000000004p0)":
  118727. +ildouble: 1
  118728. +ldouble: 1
  118729. +Test "tgamma (0x4.0000000000004p0)":
  118730. +double: 1
  118731. +idouble: 1
  118732. +Test "tgamma (0x4.000008p0)":
  118733. +ildouble: 1
  118734. +ldouble: 1
  118735. +Test "tgamma (0x4.ffffffffffffcp0)":
  118736. +double: 1
  118737. +idouble: 1
  118738. +Test "tgamma (0x4.fffffffffffffffffffffffffep0)":
  118739. +ildouble: 1
  118740. +ldouble: 1
  118741. +Test "tgamma (0x4.fffffffffffffffffffffffffffcp0)":
  118742. +ildouble: 1
  118743. +ldouble: 1
  118744. +Test "tgamma (0x5.0000000000000000000000000004p0)":
  118745. +ildouble: 1
  118746. +ldouble: 1
  118747. +Test "tgamma (0x5.0000000000004p0)":
  118748. +double: 1
  118749. +idouble: 1
  118750. +Test "tgamma (0x5.000008p0)":
  118751. +float: 2
  118752. +ifloat: 2
  118753. +Test "tgamma (0x5.fffff8p0)":
  118754. +double: 1
  118755. +float: 1
  118756. +idouble: 1
  118757. +ifloat: 1
  118758. +Test "tgamma (0x5.ffffffffffffcp0)":
  118759. +ildouble: 1
  118760. +ldouble: 1
  118761. +Test "tgamma (0x5.fffffffffffffff8p0)":
  118762. +ildouble: 1
  118763. +ldouble: 1
  118764. +Test "tgamma (0x5.fffffffffffffffffffffffffep0)":
  118765. +ildouble: 1
  118766. +ldouble: 1
  118767. +Test "tgamma (0x6.0000000000000000000000000004p0)":
  118768. +ildouble: 1
  118769. +ldouble: 1
  118770. +Test "tgamma (0x6.0000000000000008p0)":
  118771. +ildouble: 1
  118772. +ldouble: 1
  118773. +Test "tgamma (0x6.0000000000004p0)":
  118774. +double: 1
  118775. +idouble: 1
  118776. +Test "tgamma (0x6.000008p0)":
  118777. +float: 2
  118778. +ifloat: 2
  118779. +ildouble: 1
  118780. +ldouble: 1
  118781. +Test "tgamma (0x6.fffff8p0)":
  118782. +double: 1
  118783. +idouble: 1
  118784. +ildouble: 1
  118785. +ldouble: 1
  118786. +Test "tgamma (0x6.ffffffffffffcp0)":
  118787. +double: 4
  118788. +idouble: 4
  118789. +Test "tgamma (0x6.fffffffffffffff8p0)":
  118790. +ildouble: 1
  118791. +ldouble: 1
  118792. +Test "tgamma (0x7.0000000000000000000000000004p0)":
  118793. +ildouble: 1
  118794. +ldouble: 1
  118795. +Test "tgamma (0x7.0000000000000008p0)":
  118796. +ildouble: 1
  118797. +ldouble: 1
  118798. +Test "tgamma (0x7.0000000000004p0)":
  118799. +double: 4
  118800. +idouble: 4
  118801. +Test "tgamma (0x7.000008p0)":
  118802. +double: 1
  118803. +float: 1
  118804. +idouble: 1
  118805. +ifloat: 1
  118806. +Test "tgamma (0x7.fffff8p0)":
  118807. +double: 2
  118808. +float: 1
  118809. +idouble: 2
  118810. +ifloat: 1
  118811. +Test "tgamma (0x7.ffffffffffffcp0)":
  118812. +double: 2
  118813. +idouble: 2
  118814. +ildouble: 1
  118815. +ldouble: 1
  118816. +Test "tgamma (0x7.fffffffffffffffffffffffffffcp0)":
  118817. +ildouble: 1
  118818. +ldouble: 1
  118819. +Test "tgamma (0x8.0000000000000000000000000008p0)":
  118820. +ildouble: 1
  118821. +ldouble: 1
  118822. +Test "tgamma (0x8.0000000000008p0)":
  118823. +ildouble: 1
  118824. +ldouble: 1
  118825. +Test "tgamma (0x8.00001p0)":
  118826. +double: 2
  118827. +idouble: 2
  118828. +Test "tgamma (0xa.b9fd72b0fb238p+4)":
  118829. +double: 1
  118830. +idouble: 1
  118831. +ildouble: 1
  118832. +ldouble: 1
  118833. +Test "tgamma (0xa.b9fd72b0fb23a9ddbf0d3804f8p+4)":
  118834. +ildouble: 2
  118835. +ldouble: 2
  118836. +Test "tgamma (10)":
  118837. +double: 1
  118838. +float: 1
  118839. +idouble: 1
  118840. +ifloat: 1
  118841. +Test "tgamma (18.5)":
  118842. +double: 1
  118843. +float: 1
  118844. +idouble: 1
  118845. +ifloat: 1
  118846. +Test "tgamma (19.5)":
  118847. +double: 2
  118848. +idouble: 2
  118849. +ildouble: 1
  118850. +ldouble: 1
  118851. +Test "tgamma (2.5)":
  118852. +float: 2
  118853. +ifloat: 2
  118854. +Test "tgamma (23.5)":
  118855. +double: 1
  118856. +float: 1
  118857. +idouble: 1
  118858. +ifloat: 1
  118859. +Test "tgamma (29.5)":
  118860. +double: 1
  118861. +float: 1
  118862. +idouble: 1
  118863. +ifloat: 1
  118864. +Test "tgamma (3)":
  118865. +float: 1
  118866. +ifloat: 1
  118867. +Test "tgamma (3.5)":
  118868. +float: 2
  118869. +ifloat: 2
  118870. +ildouble: 1
  118871. +ldouble: 1
  118872. +Test "tgamma (30.5)":
  118873. +float: 1
  118874. +ifloat: 1
  118875. +Test "tgamma (32.5)":
  118876. +ildouble: 1
  118877. +ldouble: 1
  118878. +Test "tgamma (33.5)":
  118879. +float: 1
  118880. +ifloat: 1
  118881. +ildouble: 1
  118882. +ldouble: 1
  118883. +Test "tgamma (34.5)":
  118884. +double: 1
  118885. +float: 2
  118886. +idouble: 1
  118887. +ifloat: 2
  118888. +Test "tgamma (4)":
  118889. +float: 1
  118890. +ifloat: 1
  118891. +Test "tgamma (4.5)":
  118892. +double: 1
  118893. +float: 1
  118894. +idouble: 1
  118895. +ifloat: 1
  118896. +Test "tgamma (6)":
  118897. +float: 1
  118898. +ifloat: 1
  118899. +Test "tgamma (6.5)":
  118900. +float: 1
  118901. +ifloat: 1
  118902. +Test "tgamma (7)":
  118903. +double: 1
  118904. +idouble: 1
  118905. +Test "tgamma (7.5)":
  118906. +double: 2
  118907. +float: 1
  118908. +idouble: 2
  118909. +ifloat: 1
  118910. +Test "tgamma (8)":
  118911. +double: 1
  118912. +idouble: 1
  118913. +Test "tgamma (8.5)":
  118914. +double: 1
  118915. +float: 1
  118916. +idouble: 1
  118917. +ifloat: 1
  118918. +Test "tgamma (9)":
  118919. +double: 1
  118920. +idouble: 1
  118921. +Test "tgamma (9.5)":
  118922. +double: 1
  118923. +idouble: 1
  118924. +ildouble: 1
  118925. +ldouble: 1
  118926. +
  118927. +# y0
  118928. +Test "y0 (0x1.3ffp+74)":
  118929. +double: 1
  118930. +idouble: 1
  118931. +ildouble: 1
  118932. +ldouble: 1
  118933. +Test "y0 (0x1.ff00000000002p+840)":
  118934. +double: 1
  118935. +idouble: 1
  118936. +ildouble: 1
  118937. +ldouble: 1
  118938. +Test "y0 (0x1p-10)":
  118939. +double: 1
  118940. +idouble: 1
  118941. +ildouble: 1
  118942. +ldouble: 1
  118943. +Test "y0 (0x1p-110)":
  118944. +double: 1
  118945. +idouble: 1
  118946. +ildouble: 1
  118947. +ldouble: 1
  118948. +Test "y0 (0x1p-20)":
  118949. +float: 1
  118950. +ifloat: 1
  118951. +Test "y0 (0x1p-30)":
  118952. +float: 1
  118953. +ifloat: 1
  118954. +ildouble: 2
  118955. +ldouble: 2
  118956. +Test "y0 (0x1p-40)":
  118957. +double: 1
  118958. +float: 1
  118959. +idouble: 1
  118960. +ifloat: 1
  118961. +Test "y0 (0x1p-50)":
  118962. +float: 1
  118963. +ifloat: 1
  118964. +Test "y0 (0x1p-60)":
  118965. +ildouble: 1
  118966. +ldouble: 1
  118967. +Test "y0 (0x1p-70)":
  118968. +double: 1
  118969. +idouble: 1
  118970. +Test "y0 (0x1p-80)":
  118971. +double: 1
  118972. +float: 1
  118973. +idouble: 1
  118974. +ifloat: 1
  118975. +Test "y0 (0x1p1023)":
  118976. +ildouble: 1
  118977. +ldouble: 1
  118978. +Test "y0 (0x1p16382)":
  118979. +ildouble: 1
  118980. +ldouble: 1
  118981. +Test "y0 (0x1p16383)":
  118982. +ildouble: 2
  118983. +ldouble: 2
  118984. +Test "y0 (1.0)":
  118985. +double: 2
  118986. +float: 1
  118987. +idouble: 2
  118988. +ifloat: 1
  118989. +Test "y0 (1.5)":
  118990. +double: 2
  118991. +float: 1
  118992. +idouble: 2
  118993. +ifloat: 1
  118994. +Test "y0 (10.0)":
  118995. +float: 1
  118996. +ifloat: 1
  118997. +ildouble: 3
  118998. +ldouble: 3
  118999. +Test "y0 (8.0)":
  119000. +double: 1
  119001. +float: 1
  119002. +idouble: 1
  119003. +ifloat: 1
  119004. +ildouble: 3
  119005. +ldouble: 3
  119006. +
  119007. +# y1
  119008. +Test "y1 (0.125)":
  119009. +double: 1
  119010. +idouble: 1
  119011. +Test "y1 (0.75)":
  119012. +ildouble: 1
  119013. +ldouble: 1
  119014. +Test "y1 (0x1.001000001p+593)":
  119015. +ildouble: 1
  119016. +ldouble: 1
  119017. +Test "y1 (0x1.27e204p+99)":
  119018. +double: 1
  119019. +idouble: 1
  119020. +Test "y1 (0x1p-10)":
  119021. +double: 1
  119022. +idouble: 1
  119023. +ildouble: 1
  119024. +ldouble: 1
  119025. +Test "y1 (0x1p-30)":
  119026. +ildouble: 1
  119027. +ldouble: 1
  119028. +Test "y1 (0x1p1023)":
  119029. +ildouble: 1
  119030. +ldouble: 1
  119031. +Test "y1 (0x1p16383)":
  119032. +ildouble: 2
  119033. +ldouble: 2
  119034. +Test "y1 (1.5)":
  119035. +float: 1
  119036. +ifloat: 1
  119037. +ildouble: 1
  119038. +ldouble: 1
  119039. +Test "y1 (10.0)":
  119040. +double: 3
  119041. +float: 1
  119042. +idouble: 3
  119043. +ifloat: 1
  119044. +Test "y1 (2.0)":
  119045. +double: 1
  119046. +float: 1
  119047. +idouble: 1
  119048. +ifloat: 1
  119049. +ildouble: 1
  119050. +ldouble: 1
  119051. +Test "y1 (8.0)":
  119052. +double: 1
  119053. +float: 2
  119054. +idouble: 1
  119055. +ifloat: 2
  119056. +ildouble: 1
  119057. +ldouble: 1
  119058. +
  119059. +# yn
  119060. +Test "yn (0, 1.0)":
  119061. +double: 2
  119062. +float: 1
  119063. +idouble: 2
  119064. +ifloat: 1
  119065. +Test "yn (0, 1.5)":
  119066. +double: 2
  119067. +float: 1
  119068. +idouble: 2
  119069. +ifloat: 1
  119070. +Test "yn (0, 10.0)":
  119071. +float: 1
  119072. +ifloat: 1
  119073. +ildouble: 3
  119074. +ldouble: 3
  119075. +Test "yn (0, 8.0)":
  119076. +double: 1
  119077. +float: 1
  119078. +idouble: 1
  119079. +ifloat: 1
  119080. +ildouble: 3
  119081. +ldouble: 3
  119082. +Test "yn (1, 0.125)":
  119083. +double: 1
  119084. +idouble: 1
  119085. +Test "yn (1, 0.75)":
  119086. +ildouble: 1
  119087. +ldouble: 1
  119088. +Test "yn (1, 1.5)":
  119089. +float: 1
  119090. +ifloat: 1
  119091. +ildouble: 1
  119092. +ldouble: 1
  119093. +Test "yn (1, 10.0)":
  119094. +double: 3
  119095. +float: 1
  119096. +idouble: 3
  119097. +ifloat: 1
  119098. +Test "yn (1, 2.0)":
  119099. +double: 1
  119100. +float: 1
  119101. +idouble: 1
  119102. +ifloat: 1
  119103. +ildouble: 1
  119104. +ldouble: 1
  119105. +Test "yn (1, 8.0)":
  119106. +double: 1
  119107. +float: 2
  119108. +idouble: 1
  119109. +ifloat: 2
  119110. +ildouble: 1
  119111. +ldouble: 1
  119112. +Test "yn (10, 0.125)":
  119113. +double: 1
  119114. +idouble: 1
  119115. +ildouble: 2
  119116. +ldouble: 2
  119117. +Test "yn (10, 0.75)":
  119118. +double: 1
  119119. +float: 1
  119120. +idouble: 1
  119121. +ifloat: 1
  119122. +ildouble: 5
  119123. +ldouble: 5
  119124. +Test "yn (10, 1.0)":
  119125. +double: 1
  119126. +idouble: 1
  119127. +ildouble: 1
  119128. +ldouble: 1
  119129. +Test "yn (10, 10.0)":
  119130. +double: 1
  119131. +float: 1
  119132. +idouble: 1
  119133. +ifloat: 1
  119134. +ildouble: 2
  119135. +ldouble: 2
  119136. +Test "yn (10, 2.0)":
  119137. +double: 2
  119138. +idouble: 2
  119139. +ildouble: 2
  119140. +ldouble: 2
  119141. +Test "yn (3, 0.125)":
  119142. +double: 1
  119143. +idouble: 1
  119144. +Test "yn (3, 0.75)":
  119145. +double: 1
  119146. +float: 1
  119147. +idouble: 1
  119148. +ifloat: 1
  119149. +ildouble: 2
  119150. +ldouble: 2
  119151. +Test "yn (3, 10.0)":
  119152. +double: 1
  119153. +float: 1
  119154. +idouble: 1
  119155. +ifloat: 1
  119156. +ildouble: 1
  119157. +ldouble: 1
  119158. +Test "yn (3, 2.0)":
  119159. +double: 1
  119160. +idouble: 1
  119161. +
  119162. +# Maximal error of functions:
  119163. +Function: "acos_downward":
  119164. +double: 1
  119165. +float: 1
  119166. +idouble: 1
  119167. +ifloat: 1
  119168. +
  119169. +Function: "acos_towardzero":
  119170. +double: 1
  119171. +float: 1
  119172. +idouble: 1
  119173. +ifloat: 1
  119174. +
  119175. +Function: "asin_downward":
  119176. +double: 1
  119177. +float: 1
  119178. +idouble: 1
  119179. +ifloat: 1
  119180. +
  119181. +Function: "asin_towardzero":
  119182. +double: 1
  119183. +float: 1
  119184. +idouble: 1
  119185. +ifloat: 1
  119186. +
  119187. +Function: "asin_upward":
  119188. +float: 1
  119189. +ifloat: 1
  119190. +
  119191. +Function: "atan2":
  119192. +float: 1
  119193. +ifloat: 1
  119194. +ildouble: 1
  119195. +ldouble: 1
  119196. +
  119197. +Function: "atanh":
  119198. +float: 1
  119199. +ifloat: 1
  119200. +
  119201. +Function: Real part of "cacos":
  119202. +double: 1
  119203. +float: 2
  119204. +idouble: 1
  119205. +ifloat: 2
  119206. +ildouble: 2
  119207. +ldouble: 2
  119208. +
  119209. +Function: Imaginary part of "cacos":
  119210. +double: 1
  119211. +float: 2
  119212. +idouble: 1
  119213. +ifloat: 2
  119214. +ildouble: 2
  119215. +ldouble: 2
  119216. +
  119217. +Function: Real part of "cacosh":
  119218. +double: 1
  119219. +float: 2
  119220. +idouble: 1
  119221. +ifloat: 2
  119222. +ildouble: 2
  119223. +ldouble: 2
  119224. +
  119225. +Function: Imaginary part of "cacosh":
  119226. +double: 1
  119227. +float: 2
  119228. +idouble: 1
  119229. +ifloat: 2
  119230. +ildouble: 2
  119231. +ldouble: 2
  119232. +
  119233. +Function: Real part of "casin":
  119234. +double: 1
  119235. +float: 1
  119236. +idouble: 1
  119237. +ifloat: 1
  119238. +ildouble: 2
  119239. +ldouble: 2
  119240. +
  119241. +Function: Imaginary part of "casin":
  119242. +double: 1
  119243. +float: 2
  119244. +idouble: 1
  119245. +ifloat: 2
  119246. +ildouble: 2
  119247. +ldouble: 2
  119248. +
  119249. +Function: Real part of "casinh":
  119250. +double: 1
  119251. +float: 2
  119252. +idouble: 1
  119253. +ifloat: 2
  119254. +ildouble: 2
  119255. +ldouble: 2
  119256. +
  119257. +Function: Imaginary part of "casinh":
  119258. +double: 1
  119259. +float: 1
  119260. +idouble: 1
  119261. +ifloat: 1
  119262. +ildouble: 2
  119263. +ldouble: 2
  119264. +
  119265. +Function: Real part of "catan":
  119266. +float: 1
  119267. +ifloat: 1
  119268. +ildouble: 1
  119269. +ldouble: 1
  119270. +
  119271. +Function: Imaginary part of "catan":
  119272. +double: 1
  119273. +float: 1
  119274. +idouble: 1
  119275. +ifloat: 1
  119276. +ildouble: 1
  119277. +ldouble: 1
  119278. +
  119279. +Function: Real part of "catanh":
  119280. +double: 1
  119281. +float: 1
  119282. +idouble: 1
  119283. +ifloat: 1
  119284. +ildouble: 1
  119285. +ldouble: 1
  119286. +
  119287. +Function: Imaginary part of "catanh":
  119288. +float: 1
  119289. +ifloat: 1
  119290. +ildouble: 1
  119291. +ldouble: 1
  119292. +
  119293. +Function: "cbrt":
  119294. +double: 1
  119295. +idouble: 1
  119296. +ildouble: 1
  119297. +ldouble: 1
  119298. +
  119299. +Function: Real part of "ccos":
  119300. +double: 1
  119301. +float: 1
  119302. +idouble: 1
  119303. +ifloat: 1
  119304. +ildouble: 1
  119305. +ldouble: 1
  119306. +
  119307. +Function: Imaginary part of "ccos":
  119308. +double: 1
  119309. +float: 1
  119310. +idouble: 1
  119311. +ifloat: 1
  119312. +ildouble: 1
  119313. +ldouble: 1
  119314. +
  119315. +Function: Real part of "ccosh":
  119316. +double: 1
  119317. +float: 1
  119318. +idouble: 1
  119319. +ifloat: 1
  119320. +ildouble: 1
  119321. +ldouble: 1
  119322. +
  119323. +Function: Imaginary part of "ccosh":
  119324. +double: 1
  119325. +float: 1
  119326. +idouble: 1
  119327. +ifloat: 1
  119328. +ildouble: 1
  119329. +ldouble: 1
  119330. +
  119331. +Function: Real part of "cexp":
  119332. +double: 2
  119333. +float: 1
  119334. +idouble: 2
  119335. +ifloat: 1
  119336. +ildouble: 1
  119337. +ldouble: 1
  119338. +
  119339. +Function: Imaginary part of "cexp":
  119340. +double: 1
  119341. +float: 2
  119342. +idouble: 1
  119343. +ifloat: 2
  119344. +ildouble: 1
  119345. +ldouble: 1
  119346. +
  119347. +Function: Real part of "clog":
  119348. +double: 1
  119349. +float: 1
  119350. +idouble: 1
  119351. +ifloat: 1
  119352. +ildouble: 1
  119353. +ldouble: 1
  119354. +
  119355. +Function: Imaginary part of "clog":
  119356. +float: 1
  119357. +ifloat: 1
  119358. +ildouble: 1
  119359. +ldouble: 1
  119360. +
  119361. +Function: Real part of "clog10":
  119362. +double: 2
  119363. +float: 2
  119364. +idouble: 2
  119365. +ifloat: 2
  119366. +ildouble: 1
  119367. +ldouble: 1
  119368. +
  119369. +Function: Imaginary part of "clog10":
  119370. +double: 1
  119371. +float: 1
  119372. +idouble: 1
  119373. +ifloat: 1
  119374. +ildouble: 2
  119375. +ldouble: 2
  119376. +
  119377. +Function: "cos":
  119378. +double: 2
  119379. +float: 1
  119380. +idouble: 2
  119381. +ifloat: 1
  119382. +ildouble: 1
  119383. +ldouble: 1
  119384. +
  119385. +Function: "cos_downward":
  119386. +float: 1
  119387. +ifloat: 1
  119388. +
  119389. +Function: "cos_tonearest":
  119390. +float: 1
  119391. +ifloat: 1
  119392. +
  119393. +Function: "cos_towardzero":
  119394. +float: 1
  119395. +ifloat: 1
  119396. +
  119397. +Function: "cos_upward":
  119398. +float: 2
  119399. +ifloat: 2
  119400. +
  119401. +Function: "cosh_downward":
  119402. +float: 1
  119403. +ifloat: 1
  119404. +
  119405. +Function: "cosh_tonearest":
  119406. +ildouble: 1
  119407. +ldouble: 1
  119408. +
  119409. +Function: "cosh_towardzero":
  119410. +float: 1
  119411. +ifloat: 1
  119412. +
  119413. +Function: Real part of "cpow":
  119414. +double: 2
  119415. +float: 4
  119416. +idouble: 2
  119417. +ifloat: 4
  119418. +ildouble: 4
  119419. +ldouble: 4
  119420. +
  119421. +Function: Imaginary part of "cpow":
  119422. +float: 2
  119423. +ifloat: 2
  119424. +ildouble: 1
  119425. +ldouble: 1
  119426. +
  119427. +Function: Real part of "csin":
  119428. +double: 1
  119429. +float: 1
  119430. +idouble: 1
  119431. +ifloat: 1
  119432. +ildouble: 1
  119433. +ldouble: 1
  119434. +
  119435. +Function: Imaginary part of "csin":
  119436. +ildouble: 1
  119437. +ldouble: 1
  119438. +
  119439. +Function: Real part of "csinh":
  119440. +float: 1
  119441. +ifloat: 1
  119442. +ildouble: 1
  119443. +ldouble: 1
  119444. +
  119445. +Function: Imaginary part of "csinh":
  119446. +double: 1
  119447. +float: 1
  119448. +idouble: 1
  119449. +ifloat: 1
  119450. +ildouble: 1
  119451. +ldouble: 1
  119452. +
  119453. +Function: Real part of "csqrt":
  119454. +double: 1
  119455. +float: 1
  119456. +idouble: 1
  119457. +ifloat: 1
  119458. +ildouble: 1
  119459. +ldouble: 1
  119460. +
  119461. +Function: Imaginary part of "csqrt":
  119462. +double: 1
  119463. +float: 1
  119464. +idouble: 1
  119465. +ifloat: 1
  119466. +ildouble: 1
  119467. +ldouble: 1
  119468. +
  119469. +Function: Real part of "ctan":
  119470. +double: 1
  119471. +float: 1
  119472. +idouble: 1
  119473. +ifloat: 1
  119474. +ildouble: 2
  119475. +ldouble: 2
  119476. +
  119477. +Function: Imaginary part of "ctan":
  119478. +double: 1
  119479. +idouble: 1
  119480. +ildouble: 2
  119481. +ldouble: 2
  119482. +
  119483. +Function: Real part of "ctan_downward":
  119484. +double: 2
  119485. +float: 1
  119486. +idouble: 2
  119487. +ifloat: 1
  119488. +
  119489. +Function: Imaginary part of "ctan_downward":
  119490. +float: 1
  119491. +ifloat: 1
  119492. +
  119493. +Function: Real part of "ctan_tonearest":
  119494. +float: 1
  119495. +ifloat: 1
  119496. +ildouble: 3
  119497. +ldouble: 3
  119498. +
  119499. +Function: Imaginary part of "ctan_tonearest":
  119500. +float: 1
  119501. +ifloat: 1
  119502. +ildouble: 3
  119503. +ldouble: 3
  119504. +
  119505. +Function: Real part of "ctan_towardzero":
  119506. +float: 1
  119507. +ifloat: 1
  119508. +
  119509. +Function: Imaginary part of "ctan_towardzero":
  119510. +float: 1
  119511. +ifloat: 1
  119512. +
  119513. +Function: Real part of "ctan_upward":
  119514. +double: 2
  119515. +float: 1
  119516. +idouble: 2
  119517. +ifloat: 1
  119518. +
  119519. +Function: Imaginary part of "ctan_upward":
  119520. +double: 1
  119521. +float: 2
  119522. +idouble: 1
  119523. +ifloat: 2
  119524. +
  119525. +Function: Real part of "ctanh":
  119526. +double: 1
  119527. +float: 1
  119528. +idouble: 1
  119529. +ifloat: 1
  119530. +ildouble: 2
  119531. +ldouble: 2
  119532. +
  119533. +Function: Imaginary part of "ctanh":
  119534. +double: 1
  119535. +float: 2
  119536. +idouble: 1
  119537. +ifloat: 2
  119538. +ildouble: 2
  119539. +ldouble: 2
  119540. +
  119541. +Function: Real part of "ctanh_downward":
  119542. +float: 1
  119543. +ifloat: 1
  119544. +
  119545. +Function: Imaginary part of "ctanh_downward":
  119546. +double: 2
  119547. +float: 1
  119548. +idouble: 2
  119549. +ifloat: 1
  119550. +
  119551. +Function: Real part of "ctanh_tonearest":
  119552. +float: 1
  119553. +ifloat: 1
  119554. +ildouble: 3
  119555. +ldouble: 3
  119556. +
  119557. +Function: Imaginary part of "ctanh_tonearest":
  119558. +float: 1
  119559. +ifloat: 1
  119560. +ildouble: 3
  119561. +ldouble: 3
  119562. +
  119563. +Function: Real part of "ctanh_towardzero":
  119564. +float: 1
  119565. +ifloat: 1
  119566. +
  119567. +Function: Imaginary part of "ctanh_towardzero":
  119568. +float: 1
  119569. +ifloat: 1
  119570. +
  119571. +Function: Real part of "ctanh_upward":
  119572. +double: 1
  119573. +float: 2
  119574. +idouble: 1
  119575. +ifloat: 2
  119576. +
  119577. +Function: Imaginary part of "ctanh_upward":
  119578. +double: 2
  119579. +float: 1
  119580. +idouble: 2
  119581. +ifloat: 1
  119582. +
  119583. +Function: "erf":
  119584. +double: 1
  119585. +idouble: 1
  119586. +
  119587. +Function: "erfc":
  119588. +double: 1
  119589. +float: 1
  119590. +idouble: 1
  119591. +ifloat: 1
  119592. +ildouble: 1
  119593. +ldouble: 1
  119594. +
  119595. +Function: "exp10":
  119596. +double: 1
  119597. +idouble: 1
  119598. +ildouble: 1
  119599. +ldouble: 1
  119600. +
  119601. +Function: "exp2":
  119602. +ildouble: 1
  119603. +ldouble: 1
  119604. +
  119605. +Function: "exp_downward":
  119606. +float: 1
  119607. +ifloat: 1
  119608. +
  119609. +Function: "exp_towardzero":
  119610. +float: 1
  119611. +ifloat: 1
  119612. +
  119613. +Function: "exp_upward":
  119614. +float: 1
  119615. +ifloat: 1
  119616. +
  119617. +Function: "expm1":
  119618. +double: 1
  119619. +float: 1
  119620. +idouble: 1
  119621. +ifloat: 1
  119622. +ildouble: 1
  119623. +ldouble: 1
  119624. +
  119625. +Function: "gamma":
  119626. +double: 1
  119627. +float: 2
  119628. +idouble: 1
  119629. +ifloat: 2
  119630. +ildouble: 1
  119631. +ldouble: 1
  119632. +
  119633. +Function: "hypot":
  119634. +float: 1
  119635. +ifloat: 1
  119636. +
  119637. +Function: "j0":
  119638. +double: 2
  119639. +float: 2
  119640. +idouble: 2
  119641. +ifloat: 2
  119642. +ildouble: 2
  119643. +ldouble: 2
  119644. +
  119645. +Function: "j1":
  119646. +double: 1
  119647. +float: 2
  119648. +idouble: 1
  119649. +ifloat: 2
  119650. +ildouble: 4
  119651. +ldouble: 4
  119652. +
  119653. +Function: "jn":
  119654. +double: 4
  119655. +float: 5
  119656. +idouble: 4
  119657. +ifloat: 5
  119658. +ildouble: 8
  119659. +ldouble: 8
  119660. +
  119661. +Function: "lgamma":
  119662. +double: 1
  119663. +float: 2
  119664. +idouble: 1
  119665. +ifloat: 2
  119666. +ildouble: 1
  119667. +ldouble: 1
  119668. +
  119669. +Function: "log10":
  119670. +double: 1
  119671. +float: 2
  119672. +idouble: 1
  119673. +ifloat: 2
  119674. +ildouble: 1
  119675. +ldouble: 1
  119676. +
  119677. +Function: "log1p":
  119678. +float: 1
  119679. +ifloat: 1
  119680. +ildouble: 1
  119681. +ldouble: 1
  119682. +
  119683. +Function: "log2":
  119684. +ildouble: 1
  119685. +ldouble: 1
  119686. +
  119687. +Function: "pow":
  119688. +float: 1
  119689. +ifloat: 1
  119690. +ildouble: 1
  119691. +ldouble: 1
  119692. +
  119693. +Function: "pow10":
  119694. +double: 1
  119695. +idouble: 1
  119696. +ildouble: 1
  119697. +ldouble: 1
  119698. +
  119699. +Function: "pow_downward":
  119700. +float: 1
  119701. +ifloat: 1
  119702. +
  119703. +Function: "pow_towardzero":
  119704. +float: 1
  119705. +ifloat: 1
  119706. +
  119707. +Function: "pow_upward":
  119708. +float: 1
  119709. +ifloat: 1
  119710. +
  119711. +Function: "sin_downward":
  119712. +float: 1
  119713. +ifloat: 1
  119714. +
  119715. +Function: "sin_tonearest":
  119716. +float: 1
  119717. +ifloat: 1
  119718. +ildouble: 1
  119719. +ldouble: 1
  119720. +
  119721. +Function: "sin_towardzero":
  119722. +float: 1
  119723. +ifloat: 1
  119724. +
  119725. +Function: "sin_upward":
  119726. +float: 2
  119727. +ifloat: 2
  119728. +
  119729. +Function: "sincos":
  119730. +double: 1
  119731. +float: 1
  119732. +idouble: 1
  119733. +ifloat: 1
  119734. +ildouble: 1
  119735. +ldouble: 1
  119736. +
  119737. +Function: "sinh_downward":
  119738. +float: 1
  119739. +ifloat: 1
  119740. +
  119741. +Function: "sinh_towardzero":
  119742. +float: 1
  119743. +ifloat: 1
  119744. +
  119745. +Function: "tan":
  119746. +double: 1
  119747. +idouble: 1
  119748. +
  119749. +Function: "tan_downward":
  119750. +float: 1
  119751. +ifloat: 1
  119752. +
  119753. +Function: "tan_towardzero":
  119754. +float: 1
  119755. +ifloat: 1
  119756. +
  119757. +Function: "tan_upward":
  119758. +float: 1
  119759. +ifloat: 1
  119760. +
  119761. +Function: "tanh":
  119762. +ildouble: 1
  119763. +ldouble: 1
  119764. +
  119765. +Function: "tgamma":
  119766. +double: 4
  119767. +float: 3
  119768. +idouble: 4
  119769. +ifloat: 3
  119770. +ildouble: 4
  119771. +ldouble: 4
  119772. +
  119773. +Function: "y0":
  119774. +double: 2
  119775. +float: 1
  119776. +idouble: 2
  119777. +ifloat: 1
  119778. +ildouble: 3
  119779. +ldouble: 3
  119780. +
  119781. +Function: "y1":
  119782. +double: 3
  119783. +float: 2
  119784. +idouble: 3
  119785. +ifloat: 2
  119786. +ildouble: 2
  119787. +ldouble: 2
  119788. +
  119789. +Function: "yn":
  119790. +double: 3
  119791. +float: 2
  119792. +idouble: 3
  119793. +ifloat: 2
  119794. +ildouble: 5
  119795. +ldouble: 5
  119796. +
  119797. +# end of automatic generation
  119798. diff -Nur uClibc-0.9.33.2/test/math/libm-test-ulps-sh uClibc-git/test/math/libm-test-ulps-sh
  119799. --- uClibc-0.9.33.2/test/math/libm-test-ulps-sh 1970-01-01 01:00:00.000000000 +0100
  119800. +++ uClibc-git/test/math/libm-test-ulps-sh 2014-06-02 17:40:35.270718936 +0200
  119801. @@ -0,0 +1,1094 @@
  119802. +# Begin of automatic generation
  119803. +
  119804. +# asin
  119805. +Test "asin (-0.5) == -pi/6":
  119806. +float: 2
  119807. +ifloat: 2
  119808. +Test "asin (0.5) == pi/6":
  119809. +float: 2
  119810. +ifloat: 2
  119811. +Test "asin (0.7) == 0.7753974966107530637":
  119812. +double: 1
  119813. +float: 2
  119814. +idouble: 1
  119815. +ifloat: 2
  119816. +
  119817. +# atan2
  119818. +Test "atan2 (0.7, -1.0) == 2.530866689200584621918884506789267":
  119819. +float: 3
  119820. +ifloat: 3
  119821. +Test "atan2 (-0.7, -1.0) == -2.530866689200584621918884506789267":
  119822. +float: 3
  119823. +ifloat: 3
  119824. +Test "atan2 (1.4, -0.93) == 2.1571487668237843754887415992772736":
  119825. +float: 4
  119826. +ifloat: 4
  119827. +
  119828. +# atanh
  119829. +Test "atanh (0.7) == 0.8673005276940531944":
  119830. +double: 1
  119831. +idouble: 1
  119832. +
  119833. +# cabs
  119834. +Test "cabs (-0.7 + 12.4 i) == 12.419742348374220601176836866763271":
  119835. +float: 1
  119836. +ifloat: 1
  119837. +Test "cabs (-0.7 - 12.4 i) == 12.419742348374220601176836866763271":
  119838. +float: 1
  119839. +ifloat: 1
  119840. +Test "cabs (-12.4 + 0.7 i) == 12.419742348374220601176836866763271":
  119841. +float: 1
  119842. +ifloat: 1
  119843. +Test "cabs (-12.4 - 0.7 i) == 12.419742348374220601176836866763271":
  119844. +float: 1
  119845. +ifloat: 1
  119846. +Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508432547041028554":
  119847. +double: 1
  119848. +idouble: 1
  119849. +Test "cabs (0.7 + 12.4 i) == 12.419742348374220601176836866763271":
  119850. +float: 1
  119851. +ifloat: 1
  119852. +
  119853. +# cacos
  119854. +Test "Real part of: cacos (0.7 + 1.2 i) == 1.1351827477151551088992008271819053 - 1.0927647857577371459105272080819308 i":
  119855. +double: 1
  119856. +float: 1
  119857. +idouble: 1
  119858. +ifloat: 1
  119859. +Test "Imaginary part of: cacos (0.7 + 1.2 i) == 1.1351827477151551088992008271819053 - 1.0927647857577371459105272080819308 i":
  119860. +float: 1
  119861. +ifloat: 1
  119862. +
  119863. +# cacosh
  119864. +Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
  119865. +double: 1
  119866. +float: 7
  119867. +idouble: 1
  119868. +ifloat: 7
  119869. +Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
  119870. +double: 1
  119871. +float: 3
  119872. +idouble: 1
  119873. +ifloat: 3
  119874. +Test "Real part of: cacosh (0.7 + 1.2 i) == 1.0927647857577371459105272080819308 + 1.1351827477151551088992008271819053 i":
  119875. +double: 1
  119876. +float: 1
  119877. +idouble: 1
  119878. +ifloat: 1
  119879. +
  119880. +# casin
  119881. +Test "Real part of: casin (0.7 + 1.2 i) == 0.4356135790797415103321208644578462 + 1.0927647857577371459105272080819308 i":
  119882. +double: 3
  119883. +float: 2
  119884. +idouble: 3
  119885. +ifloat: 2
  119886. +Test "Imaginary part of: casin (0.7 + 1.2 i) == 0.4356135790797415103321208644578462 + 1.0927647857577371459105272080819308 i":
  119887. +float: 1
  119888. +ifloat: 1
  119889. +
  119890. +# casinh
  119891. +Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
  119892. +double: 5
  119893. +float: 1
  119894. +idouble: 5
  119895. +ifloat: 1
  119896. +Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
  119897. +double: 3
  119898. +float: 6
  119899. +idouble: 3
  119900. +ifloat: 6
  119901. +Test "Real part of: casinh (0.7 + 1.2 i) == 0.97865459559367387689317593222160964 + 0.91135418953156011567903546856170941 i":
  119902. +double: 1
  119903. +idouble: 1
  119904. +Test "Imaginary part of: casinh (0.7 + 1.2 i) == 0.97865459559367387689317593222160964 + 0.91135418953156011567903546856170941 i":
  119905. +float: 1
  119906. +ifloat: 1
  119907. +
  119908. +# catan
  119909. +Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
  119910. +float: 3
  119911. +ifloat: 3
  119912. +Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
  119913. +double: 1
  119914. +float: 1
  119915. +idouble: 1
  119916. +ifloat: 1
  119917. +Test "Real part of: catan (0.7 + 1.2 i) == 1.0785743834118921877443707996386368 + 0.57705737765343067644394541889341712 i":
  119918. +float: 4
  119919. +ifloat: 4
  119920. +Test "Imaginary part of: catan (0.7 + 1.2 i) == 1.0785743834118921877443707996386368 + 0.57705737765343067644394541889341712 i":
  119921. +double: 1
  119922. +idouble: 1
  119923. +
  119924. +# catanh
  119925. +Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
  119926. +double: 4
  119927. +idouble: 4
  119928. +Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
  119929. +float: 4
  119930. +ifloat: 4
  119931. +Test "Real part of: catanh (0.7 + 1.2 i) == 0.2600749516525135959200648705635915 + 0.97024030779509898497385130162655963 i":
  119932. +float: 1
  119933. +ifloat: 1
  119934. +Test "Imaginary part of: catanh (0.7 + 1.2 i) == 0.2600749516525135959200648705635915 + 0.97024030779509898497385130162655963 i":
  119935. +double: 1
  119936. +float: 6
  119937. +idouble: 1
  119938. +ifloat: 6
  119939. +
  119940. +# cbrt
  119941. +Test "cbrt (-27.0) == -3.0":
  119942. +double: 1
  119943. +idouble: 1
  119944. +Test "cbrt (0.970299) == 0.99":
  119945. +double: 1
  119946. +idouble: 1
  119947. +
  119948. +# ccos
  119949. +Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
  119950. +float: 1
  119951. +ifloat: 1
  119952. +Test "Real part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 - 0.97242170335830028619 i":
  119953. +double: 1
  119954. +idouble: 1
  119955. +Test "Imaginary part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 - 0.97242170335830028619 i":
  119956. +double: 1
  119957. +idouble: 1
  119958. +
  119959. +# ccosh
  119960. +Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
  119961. +float: 1
  119962. +ifloat: 1
  119963. +Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
  119964. +float: 1
  119965. +ifloat: 1
  119966. +Test "Real part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 + 0.7070296600921537682 i":
  119967. +double: 1
  119968. +float: 1
  119969. +idouble: 1
  119970. +ifloat: 1
  119971. +Test "Imaginary part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 + 0.7070296600921537682 i":
  119972. +double: 1
  119973. +idouble: 1
  119974. +
  119975. +# cexp
  119976. +Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
  119977. +float: 1
  119978. +ifloat: 1
  119979. +Test "Real part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 + 1.8768962328348102821 i":
  119980. +double: 1
  119981. +float: 1
  119982. +idouble: 1
  119983. +ifloat: 1
  119984. +Test "Imaginary part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 + 1.8768962328348102821 i":
  119985. +float: 1
  119986. +ifloat: 1
  119987. +
  119988. +# clog
  119989. +Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i":
  119990. +double: 1
  119991. +float: 3
  119992. +idouble: 1
  119993. +ifloat: 3
  119994. +
  119995. +# clog10
  119996. +Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
  119997. +float: 1
  119998. +ifloat: 1
  119999. +Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
  120000. +float: 1
  120001. +ifloat: 1
  120002. +Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
  120003. +double: 1
  120004. +float: 5
  120005. +idouble: 1
  120006. +ifloat: 5
  120007. +Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
  120008. +float: 1
  120009. +ifloat: 1
  120010. +Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
  120011. +float: 1
  120012. +ifloat: 1
  120013. +Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
  120014. +float: 1
  120015. +ifloat: 1
  120016. +Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
  120017. +float: 1
  120018. +ifloat: 1
  120019. +Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
  120020. +float: 1
  120021. +ifloat: 1
  120022. +Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
  120023. +float: 1
  120024. +ifloat: 1
  120025. +Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
  120026. +float: 1
  120027. +ifloat: 1
  120028. +Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
  120029. +float: 1
  120030. +ifloat: 1
  120031. +Test "Real part of: clog10 (0.7 + 1.2 i) == 0.1427786545038868803 + 0.4528483579352493248 i":
  120032. +double: 1
  120033. +float: 1
  120034. +idouble: 1
  120035. +ifloat: 1
  120036. +Test "Imaginary part of: clog10 (0.7 + 1.2 i) == 0.1427786545038868803 + 0.4528483579352493248 i":
  120037. +double: 1
  120038. +idouble: 1
  120039. +Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
  120040. +float: 1
  120041. +ifloat: 1
  120042. +Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
  120043. +float: 1
  120044. +ifloat: 1
  120045. +Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
  120046. +float: 1
  120047. +ifloat: 1
  120048. +Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
  120049. +float: 1
  120050. +ifloat: 1
  120051. +
  120052. +# cos
  120053. +Test "cos (0.7) == 0.7648421872844884262":
  120054. +double: 1
  120055. +float: 1
  120056. +idouble: 1
  120057. +ifloat: 1
  120058. +Test "cos (M_PI_6l * 2.0) == 0.5":
  120059. +double: 1
  120060. +float: 0.5
  120061. +idouble: 1
  120062. +ifloat: 0.5
  120063. +Test "cos (M_PI_6l * 4.0) == -0.5":
  120064. +double: 2
  120065. +float: 1
  120066. +idouble: 2
  120067. +ifloat: 1
  120068. +Test "cos (pi/2) == 0":
  120069. +double: 0.2758
  120070. +float: 0.3667
  120071. +idouble: 0.2758
  120072. +ifloat: 0.3667
  120073. +
  120074. +# cpow
  120075. +Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
  120076. +double: 1
  120077. +float: 4
  120078. +idouble: 1
  120079. +ifloat: 4
  120080. +Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
  120081. +float: 2
  120082. +ifloat: 2
  120083. +Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i":
  120084. +double: 1.1031
  120085. +float: 1.5
  120086. +idouble: 1.1031
  120087. +ifloat: 1.5
  120088. +
  120089. +# csin
  120090. +Test "Imaginary part of: csin (0.7 + 1.2 i) == 1.1664563419657581376 + 1.1544997246948547371 i":
  120091. +float: 1
  120092. +ifloat: 1
  120093. +
  120094. +# csinh
  120095. +Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
  120096. +double: 1
  120097. +idouble: 1
  120098. +Test "Real part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i":
  120099. +float: 1
  120100. +ifloat: 1
  120101. +Test "Imaginary part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i":
  120102. +float: 1
  120103. +ifloat: 1
  120104. +
  120105. +# csqrt
  120106. +Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
  120107. +float: 1
  120108. +ifloat: 1
  120109. +Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
  120110. +float: 1
  120111. +ifloat: 1
  120112. +Test "Real part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
  120113. +double: 1
  120114. +float: 1
  120115. +idouble: 1
  120116. +ifloat: 1
  120117. +Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
  120118. +float: 1
  120119. +ifloat: 1
  120120. +
  120121. +# ctan
  120122. +Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
  120123. +double: 1
  120124. +idouble: 1
  120125. +Test "Real part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 + 0.9544807059989405538 i":
  120126. +float: 1
  120127. +ifloat: 1
  120128. +Test "Imaginary part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 + 0.9544807059989405538 i":
  120129. +double: 1
  120130. +float: 1
  120131. +idouble: 1
  120132. +ifloat: 1
  120133. +
  120134. +# ctanh
  120135. +Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
  120136. +double: 1
  120137. +float: 2
  120138. +idouble: 1
  120139. +ifloat: 2
  120140. +Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
  120141. +float: 1
  120142. +ifloat: 1
  120143. +Test "Real part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 + 0.4778641038326365540 i":
  120144. +double: 2
  120145. +float: 1
  120146. +idouble: 2
  120147. +ifloat: 1
  120148. +Test "Imaginary part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 + 0.4778641038326365540 i":
  120149. +double: 2
  120150. +float: 1
  120151. +idouble: 2
  120152. +ifloat: 1
  120153. +
  120154. +# erfc
  120155. +Test "erfc (0.7) == 0.32219880616258152702":
  120156. +double: 1
  120157. +idouble: 1
  120158. +Test "erfc (1.2) == 0.089686021770364619762":
  120159. +double: 2
  120160. +float: 2
  120161. +idouble: 2
  120162. +ifloat: 2
  120163. +Test "erfc (2.0) == 0.0046777349810472658379":
  120164. +double: 1
  120165. +idouble: 1
  120166. +Test "erfc (4.1) == 0.67000276540848983727e-8":
  120167. +double: 24
  120168. +float: 12
  120169. +idouble: 24
  120170. +ifloat: 12
  120171. +
  120172. +# exp10
  120173. +Test "exp10 (-1) == 0.1":
  120174. +double: 2
  120175. +float: 1
  120176. +idouble: 2
  120177. +ifloat: 1
  120178. +Test "exp10 (0.7) == 5.0118723362727228500":
  120179. +float: 1
  120180. +ifloat: 1
  120181. +Test "exp10 (3) == 1000":
  120182. +double: 6
  120183. +float: 2
  120184. +idouble: 6
  120185. +ifloat: 2
  120186. +
  120187. +# expm1
  120188. +Test "expm1 (1) == M_El - 1.0":
  120189. +float: 1
  120190. +ifloat: 1
  120191. +
  120192. +# fmod
  120193. +Test "fmod (-6.5, -2.3) == -1.9":
  120194. +double: 2
  120195. +float: 1
  120196. +idouble: 2
  120197. +ifloat: 1
  120198. +Test "fmod (-6.5, 2.3) == -1.9":
  120199. +double: 2
  120200. +float: 1
  120201. +idouble: 2
  120202. +ifloat: 1
  120203. +Test "fmod (6.5, -2.3) == 1.9":
  120204. +double: 2
  120205. +float: 1
  120206. +idouble: 2
  120207. +ifloat: 1
  120208. +Test "fmod (6.5, 2.3) == 1.9":
  120209. +double: 2
  120210. +float: 1
  120211. +idouble: 2
  120212. +ifloat: 1
  120213. +
  120214. +# hypot
  120215. +Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
  120216. +float: 1
  120217. +ifloat: 1
  120218. +Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
  120219. +float: 1
  120220. +ifloat: 1
  120221. +Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
  120222. +float: 1
  120223. +ifloat: 1
  120224. +Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
  120225. +float: 1
  120226. +ifloat: 1
  120227. +Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
  120228. +float: 1
  120229. +ifloat: 1
  120230. +Test "hypot (0.7, 1.2) == 1.3892443989449804508432547041028554":
  120231. +double: 1
  120232. +idouble: 1
  120233. +Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
  120234. +float: 1
  120235. +ifloat: 1
  120236. +Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
  120237. +float: 1
  120238. +ifloat: 1
  120239. +Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
  120240. +float: 1
  120241. +ifloat: 1
  120242. +
  120243. +# j0
  120244. +Test "j0 (10.0) == -0.24593576445134833520":
  120245. +double: 2
  120246. +float: 1
  120247. +idouble: 2
  120248. +ifloat: 1
  120249. +Test "j0 (2.0) == 0.22389077914123566805":
  120250. +float: 2
  120251. +ifloat: 2
  120252. +Test "j0 (8.0) == 0.17165080713755390609":
  120253. +float: 1
  120254. +ifloat: 1
  120255. +
  120256. +# j1
  120257. +Test "j1 (10.0) == 0.043472746168861436670":
  120258. +float: 2
  120259. +ifloat: 2
  120260. +Test "j1 (2.0) == 0.57672480775687338720":
  120261. +double: 1
  120262. +idouble: 1
  120263. +Test "j1 (8.0) == 0.23463634685391462438":
  120264. +double: 1
  120265. +idouble: 1
  120266. +
  120267. +# jn
  120268. +Test "jn (0, 10.0) == -0.24593576445134833520":
  120269. +double: 2
  120270. +float: 1
  120271. +idouble: 2
  120272. +ifloat: 1
  120273. +Test "jn (0, 2.0) == 0.22389077914123566805":
  120274. +float: 2
  120275. +ifloat: 2
  120276. +Test "jn (0, 8.0) == 0.17165080713755390609":
  120277. +float: 1
  120278. +ifloat: 1
  120279. +Test "jn (1, 10.0) == 0.043472746168861436670":
  120280. +float: 2
  120281. +ifloat: 2
  120282. +Test "jn (1, 2.0) == 0.57672480775687338720":
  120283. +double: 1
  120284. +idouble: 1
  120285. +Test "jn (1, 8.0) == 0.23463634685391462438":
  120286. +double: 1
  120287. +idouble: 1
  120288. +Test "jn (10, 0.1) == 0.26905328954342155795e-19":
  120289. +double: 6
  120290. +float: 4
  120291. +idouble: 6
  120292. +ifloat: 4
  120293. +Test "jn (10, 0.7) == 0.75175911502153953928e-11":
  120294. +double: 3
  120295. +float: 1
  120296. +idouble: 3
  120297. +ifloat: 1
  120298. +Test "jn (10, 10.0) == 0.20748610663335885770":
  120299. +double: 4
  120300. +float: 3
  120301. +idouble: 4
  120302. +ifloat: 3
  120303. +Test "jn (10, 2.0) == 0.25153862827167367096e-6":
  120304. +float: 4
  120305. +ifloat: 4
  120306. +Test "jn (3, 0.1) == 0.000020820315754756261429":
  120307. +double: 1
  120308. +idouble: 1
  120309. +Test "jn (3, 0.7) == 0.0069296548267508408077":
  120310. +float: 1
  120311. +ifloat: 1
  120312. +Test "jn (3, 10.0) == 0.058379379305186812343":
  120313. +double: 3
  120314. +float: 1
  120315. +idouble: 3
  120316. +ifloat: 1
  120317. +Test "jn (3, 2.0) == 0.12894324947440205110":
  120318. +double: 1
  120319. +float: 2
  120320. +idouble: 1
  120321. +ifloat: 2
  120322. +
  120323. +# lgamma
  120324. +Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
  120325. +double: 1
  120326. +float: 1
  120327. +idouble: 1
  120328. +ifloat: 1
  120329. +Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
  120330. +double: 1
  120331. +float: 2
  120332. +idouble: 1
  120333. +ifloat: 2
  120334. +
  120335. +# log
  120336. +Test "log (0.7) == -0.35667494393873237891263871124118447":
  120337. +double: 1
  120338. +float: 1
  120339. +idouble: 1
  120340. +ifloat: 1
  120341. +
  120342. +# log10
  120343. +Test "log10 (0.7) == -0.15490195998574316929":
  120344. +double: 1
  120345. +float: 1
  120346. +idouble: 1
  120347. +ifloat: 1
  120348. +Test "log10 (e) == log10(e)":
  120349. +float: 1
  120350. +ifloat: 1
  120351. +
  120352. +# log1p
  120353. +Test "log1p (-0.3) == -0.35667494393873237891263871124118447":
  120354. +double: 1
  120355. +float: 1
  120356. +idouble: 1
  120357. +ifloat: 1
  120358. +
  120359. +# log2
  120360. +Test "log2 (0.7) == -0.51457317282975824043":
  120361. +double: 1
  120362. +float: 1
  120363. +idouble: 1
  120364. +ifloat: 1
  120365. +
  120366. +# sincos
  120367. +Test "sincos (0.7, &sin_res, &cos_res) puts 0.76484218728448842626 in cos_res":
  120368. +double: 1
  120369. +float: 1
  120370. +idouble: 1
  120371. +ifloat: 1
  120372. +Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
  120373. +double: 1
  120374. +float: 0.5
  120375. +idouble: 1
  120376. +ifloat: 0.5
  120377. +Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.866025403784438646764 in sin_res":
  120378. +double: 1
  120379. +float: 1
  120380. +idouble: 1
  120381. +ifloat: 1
  120382. +Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
  120383. +double: 0.2758
  120384. +float: 0.3667
  120385. +idouble: 0.2758
  120386. +ifloat: 0.3667
  120387. +Test "sincos (pi/6, &sin_res, &cos_res) puts 0.866025403784438646764 in cos_res":
  120388. +float: 1
  120389. +ifloat: 1
  120390. +
  120391. +# sinh
  120392. +Test "sinh (0.7) == 0.75858370183953350346":
  120393. +double: 1
  120394. +float: 1
  120395. +idouble: 1
  120396. +ifloat: 1
  120397. +
  120398. +# tan
  120399. +Test "tan (pi/4) == 1":
  120400. +double: 0.5
  120401. +idouble: 0.5
  120402. +
  120403. +# tanh
  120404. +Test "tanh (0.7) == 0.60436777711716349631":
  120405. +double: 1
  120406. +float: 1
  120407. +idouble: 1
  120408. +ifloat: 1
  120409. +
  120410. +# tgamma
  120411. +Test "tgamma (-0.5) == -2 sqrt (pi)":
  120412. +double: 1
  120413. +float: 1
  120414. +idouble: 1
  120415. +ifloat: 1
  120416. +Test "tgamma (0.5) == sqrt (pi)":
  120417. +float: 1
  120418. +ifloat: 1
  120419. +Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
  120420. +double: 1
  120421. +float: 1
  120422. +idouble: 1
  120423. +ifloat: 1
  120424. +
  120425. +# y0
  120426. +Test "y0 (0.7) == -0.19066492933739506743":
  120427. +double: 2
  120428. +float: 1
  120429. +idouble: 2
  120430. +ifloat: 1
  120431. +Test "y0 (1.0) == 0.088256964215676957983":
  120432. +double: 2
  120433. +float: 1
  120434. +idouble: 2
  120435. +ifloat: 1
  120436. +Test "y0 (1.5) == 0.38244892379775884396":
  120437. +double: 2
  120438. +float: 1
  120439. +idouble: 2
  120440. +ifloat: 1
  120441. +Test "y0 (10.0) == 0.055671167283599391424":
  120442. +float: 1
  120443. +ifloat: 1
  120444. +Test "y0 (8.0) == 0.22352148938756622053":
  120445. +double: 1
  120446. +float: 1
  120447. +idouble: 1
  120448. +ifloat: 1
  120449. +
  120450. +# y1
  120451. +Test "y1 (0.1) == -6.4589510947020269877":
  120452. +double: 1
  120453. +idouble: 1
  120454. +Test "y1 (0.7) == -1.1032498719076333697":
  120455. +double: 1
  120456. +float: 1
  120457. +idouble: 1
  120458. +ifloat: 1
  120459. +Test "y1 (1.5) == -0.41230862697391129595":
  120460. +float: 1
  120461. +ifloat: 1
  120462. +Test "y1 (10.0) == 0.24901542420695388392":
  120463. +double: 3
  120464. +float: 1
  120465. +idouble: 3
  120466. +ifloat: 1
  120467. +Test "y1 (2.0) == -0.10703243154093754689":
  120468. +double: 1
  120469. +float: 1
  120470. +idouble: 1
  120471. +ifloat: 1
  120472. +Test "y1 (8.0) == -0.15806046173124749426":
  120473. +double: 1
  120474. +float: 2
  120475. +idouble: 1
  120476. +ifloat: 2
  120477. +
  120478. +# yn
  120479. +Test "yn (0, 0.7) == -0.19066492933739506743":
  120480. +double: 2
  120481. +float: 1
  120482. +idouble: 2
  120483. +ifloat: 1
  120484. +Test "yn (0, 1.0) == 0.088256964215676957983":
  120485. +double: 2
  120486. +float: 1
  120487. +idouble: 2
  120488. +ifloat: 1
  120489. +Test "yn (0, 1.5) == 0.38244892379775884396":
  120490. +double: 2
  120491. +float: 1
  120492. +idouble: 2
  120493. +ifloat: 1
  120494. +Test "yn (0, 10.0) == 0.055671167283599391424":
  120495. +float: 1
  120496. +ifloat: 1
  120497. +Test "yn (0, 8.0) == 0.22352148938756622053":
  120498. +double: 1
  120499. +float: 1
  120500. +idouble: 1
  120501. +ifloat: 1
  120502. +Test "yn (1, 0.1) == -6.4589510947020269877":
  120503. +double: 1
  120504. +idouble: 1
  120505. +Test "yn (1, 0.7) == -1.1032498719076333697":
  120506. +double: 1
  120507. +float: 1
  120508. +idouble: 1
  120509. +ifloat: 1
  120510. +Test "yn (1, 1.5) == -0.41230862697391129595":
  120511. +float: 1
  120512. +ifloat: 1
  120513. +Test "yn (1, 10.0) == 0.24901542420695388392":
  120514. +double: 3
  120515. +float: 1
  120516. +idouble: 3
  120517. +ifloat: 1
  120518. +Test "yn (1, 2.0) == -0.10703243154093754689":
  120519. +double: 1
  120520. +float: 1
  120521. +idouble: 1
  120522. +ifloat: 1
  120523. +Test "yn (1, 8.0) == -0.15806046173124749426":
  120524. +double: 1
  120525. +float: 2
  120526. +idouble: 1
  120527. +ifloat: 2
  120528. +Test "yn (10, 0.1) == -0.11831335132045197885e19":
  120529. +double: 2
  120530. +float: 2
  120531. +idouble: 2
  120532. +ifloat: 2
  120533. +Test "yn (10, 0.7) == -0.42447194260703866924e10":
  120534. +double: 3
  120535. +idouble: 3
  120536. +Test "yn (10, 1.0) == -0.12161801427868918929e9":
  120537. +double: 1
  120538. +idouble: 1
  120539. +Test "yn (10, 10.0) == -0.35981415218340272205":
  120540. +double: 1
  120541. +float: 1
  120542. +idouble: 1
  120543. +ifloat: 1
  120544. +Test "yn (10, 2.0) == -129184.54220803928264":
  120545. +double: 2
  120546. +idouble: 2
  120547. +Test "yn (3, 0.1) == -5099.3323786129048894":
  120548. +double: 1
  120549. +float: 1
  120550. +idouble: 1
  120551. +ifloat: 1
  120552. +Test "yn (3, 0.7) == -15.819479052819633505":
  120553. +double: 3
  120554. +float: 1
  120555. +idouble: 3
  120556. +ifloat: 1
  120557. +Test "yn (3, 10.0) == -0.25136265718383732978":
  120558. +double: 1
  120559. +float: 1
  120560. +idouble: 1
  120561. +ifloat: 1
  120562. +Test "yn (3, 2.0) == -1.1277837768404277861":
  120563. +double: 1
  120564. +idouble: 1
  120565. +
  120566. +# Maximal error of functions:
  120567. +Function: "asin":
  120568. +double: 1
  120569. +float: 2
  120570. +idouble: 1
  120571. +ifloat: 2
  120572. +
  120573. +Function: "atan2":
  120574. +float: 4
  120575. +ifloat: 4
  120576. +
  120577. +Function: "atanh":
  120578. +double: 1
  120579. +idouble: 1
  120580. +
  120581. +Function: "cabs":
  120582. +double: 1
  120583. +float: 1
  120584. +idouble: 1
  120585. +ifloat: 1
  120586. +
  120587. +Function: Real part of "cacos":
  120588. +double: 1
  120589. +float: 1
  120590. +idouble: 1
  120591. +ifloat: 1
  120592. +
  120593. +Function: Imaginary part of "cacos":
  120594. +float: 1
  120595. +ifloat: 1
  120596. +
  120597. +Function: Real part of "cacosh":
  120598. +double: 1
  120599. +float: 7
  120600. +idouble: 1
  120601. +ifloat: 7
  120602. +
  120603. +Function: Imaginary part of "cacosh":
  120604. +double: 1
  120605. +float: 3
  120606. +idouble: 1
  120607. +ifloat: 3
  120608. +
  120609. +Function: Real part of "casin":
  120610. +double: 3
  120611. +float: 2
  120612. +idouble: 3
  120613. +ifloat: 2
  120614. +
  120615. +Function: Imaginary part of "casin":
  120616. +float: 1
  120617. +ifloat: 1
  120618. +
  120619. +Function: Real part of "casinh":
  120620. +double: 5
  120621. +float: 1
  120622. +idouble: 5
  120623. +ifloat: 1
  120624. +
  120625. +Function: Imaginary part of "casinh":
  120626. +double: 3
  120627. +float: 6
  120628. +idouble: 3
  120629. +ifloat: 6
  120630. +
  120631. +Function: Real part of "catan":
  120632. +float: 4
  120633. +ifloat: 4
  120634. +
  120635. +Function: Imaginary part of "catan":
  120636. +double: 1
  120637. +float: 1
  120638. +idouble: 1
  120639. +ifloat: 1
  120640. +
  120641. +Function: Real part of "catanh":
  120642. +double: 4
  120643. +float: 1
  120644. +idouble: 4
  120645. +ifloat: 1
  120646. +
  120647. +Function: Imaginary part of "catanh":
  120648. +double: 1
  120649. +float: 6
  120650. +idouble: 1
  120651. +ifloat: 6
  120652. +
  120653. +Function: "cbrt":
  120654. +double: 1
  120655. +idouble: 1
  120656. +
  120657. +Function: Real part of "ccos":
  120658. +double: 1
  120659. +idouble: 1
  120660. +
  120661. +Function: Imaginary part of "ccos":
  120662. +double: 1
  120663. +float: 1
  120664. +idouble: 1
  120665. +ifloat: 1
  120666. +
  120667. +Function: Real part of "ccosh":
  120668. +double: 1
  120669. +float: 1
  120670. +idouble: 1
  120671. +ifloat: 1
  120672. +
  120673. +Function: Imaginary part of "ccosh":
  120674. +double: 1
  120675. +float: 1
  120676. +idouble: 1
  120677. +ifloat: 1
  120678. +
  120679. +Function: Real part of "cexp":
  120680. +double: 1
  120681. +float: 1
  120682. +idouble: 1
  120683. +ifloat: 1
  120684. +
  120685. +Function: Imaginary part of "cexp":
  120686. +float: 1
  120687. +ifloat: 1
  120688. +
  120689. +Function: Imaginary part of "clog":
  120690. +double: 1
  120691. +float: 3
  120692. +idouble: 1
  120693. +ifloat: 3
  120694. +
  120695. +Function: Real part of "clog10":
  120696. +double: 1
  120697. +float: 1
  120698. +idouble: 1
  120699. +ifloat: 1
  120700. +
  120701. +Function: Imaginary part of "clog10":
  120702. +double: 1
  120703. +float: 5
  120704. +idouble: 1
  120705. +ifloat: 5
  120706. +
  120707. +Function: "cos":
  120708. +double: 2
  120709. +float: 1
  120710. +idouble: 2
  120711. +ifloat: 1
  120712. +
  120713. +Function: Real part of "cpow":
  120714. +double: 1
  120715. +float: 4
  120716. +idouble: 1
  120717. +ifloat: 4
  120718. +
  120719. +Function: Imaginary part of "cpow":
  120720. +double: 1.1031
  120721. +float: 2
  120722. +idouble: 1.1031
  120723. +ifloat: 2
  120724. +
  120725. +Function: Imaginary part of "csin":
  120726. +float: 1
  120727. +ifloat: 1
  120728. +
  120729. +Function: Real part of "csinh":
  120730. +float: 1
  120731. +ifloat: 1
  120732. +
  120733. +Function: Imaginary part of "csinh":
  120734. +double: 1
  120735. +float: 1
  120736. +idouble: 1
  120737. +ifloat: 1
  120738. +
  120739. +Function: Real part of "csqrt":
  120740. +double: 1
  120741. +float: 1
  120742. +idouble: 1
  120743. +ifloat: 1
  120744. +
  120745. +Function: Imaginary part of "csqrt":
  120746. +float: 1
  120747. +ifloat: 1
  120748. +
  120749. +Function: Real part of "ctan":
  120750. +double: 1
  120751. +float: 1
  120752. +idouble: 1
  120753. +ifloat: 1
  120754. +
  120755. +Function: Imaginary part of "ctan":
  120756. +double: 1
  120757. +float: 1
  120758. +idouble: 1
  120759. +ifloat: 1
  120760. +
  120761. +Function: Real part of "ctanh":
  120762. +double: 2
  120763. +float: 2
  120764. +idouble: 2
  120765. +ifloat: 2
  120766. +
  120767. +Function: Imaginary part of "ctanh":
  120768. +double: 2
  120769. +float: 1
  120770. +idouble: 2
  120771. +ifloat: 1
  120772. +
  120773. +Function: "erfc":
  120774. +double: 24
  120775. +float: 12
  120776. +idouble: 24
  120777. +ifloat: 12
  120778. +
  120779. +Function: "exp10":
  120780. +double: 6
  120781. +float: 2
  120782. +idouble: 6
  120783. +ifloat: 2
  120784. +
  120785. +Function: "expm1":
  120786. +float: 1
  120787. +ifloat: 1
  120788. +
  120789. +Function: "fmod":
  120790. +double: 2
  120791. +float: 1
  120792. +idouble: 2
  120793. +ifloat: 1
  120794. +
  120795. +Function: "hypot":
  120796. +double: 1
  120797. +float: 1
  120798. +idouble: 1
  120799. +ifloat: 1
  120800. +
  120801. +Function: "j0":
  120802. +double: 2
  120803. +float: 2
  120804. +idouble: 2
  120805. +ifloat: 2
  120806. +
  120807. +Function: "j1":
  120808. +double: 1
  120809. +float: 2
  120810. +idouble: 1
  120811. +ifloat: 2
  120812. +
  120813. +Function: "jn":
  120814. +double: 6
  120815. +float: 4
  120816. +idouble: 6
  120817. +ifloat: 4
  120818. +
  120819. +Function: "lgamma":
  120820. +double: 1
  120821. +float: 2
  120822. +idouble: 1
  120823. +ifloat: 2
  120824. +
  120825. +Function: "log":
  120826. +double: 1
  120827. +float: 1
  120828. +idouble: 1
  120829. +ifloat: 1
  120830. +
  120831. +Function: "log10":
  120832. +double: 1
  120833. +float: 1
  120834. +idouble: 1
  120835. +ifloat: 1
  120836. +
  120837. +Function: "log1p":
  120838. +double: 1
  120839. +float: 1
  120840. +idouble: 1
  120841. +ifloat: 1
  120842. +
  120843. +Function: "log2":
  120844. +double: 1
  120845. +float: 1
  120846. +idouble: 1
  120847. +ifloat: 1
  120848. +
  120849. +Function: "sincos":
  120850. +double: 1
  120851. +float: 1
  120852. +idouble: 1
  120853. +ifloat: 1
  120854. +
  120855. +Function: "sinh":
  120856. +double: 1
  120857. +float: 1
  120858. +idouble: 1
  120859. +ifloat: 1
  120860. +
  120861. +Function: "tan":
  120862. +double: 0.5
  120863. +idouble: 0.5
  120864. +
  120865. +Function: "tanh":
  120866. +double: 1
  120867. +float: 1
  120868. +idouble: 1
  120869. +ifloat: 1
  120870. +
  120871. +Function: "tgamma":
  120872. +double: 1
  120873. +float: 1
  120874. +idouble: 1
  120875. +ifloat: 1
  120876. +
  120877. +Function: "y0":
  120878. +double: 2
  120879. +float: 1
  120880. +idouble: 2
  120881. +ifloat: 1
  120882. +
  120883. +Function: "y1":
  120884. +double: 3
  120885. +float: 2
  120886. +idouble: 3
  120887. +ifloat: 2
  120888. +
  120889. +Function: "yn":
  120890. +double: 3
  120891. +float: 2
  120892. +idouble: 3
  120893. +ifloat: 2
  120894. +
  120895. +# end of automatic generation
  120896. diff -Nur uClibc-0.9.33.2/test/math/libm-test-ulps-sh4 uClibc-git/test/math/libm-test-ulps-sh4
  120897. --- uClibc-0.9.33.2/test/math/libm-test-ulps-sh4 2012-05-15 09:20:09.000000000 +0200
  120898. +++ uClibc-git/test/math/libm-test-ulps-sh4 1970-01-01 01:00:00.000000000 +0100
  120899. @@ -1,1094 +0,0 @@
  120900. -# Begin of automatic generation
  120901. -
  120902. -# asin
  120903. -Test "asin (-0.5) == -pi/6":
  120904. -float: 2
  120905. -ifloat: 2
  120906. -Test "asin (0.5) == pi/6":
  120907. -float: 2
  120908. -ifloat: 2
  120909. -Test "asin (0.7) == 0.7753974966107530637":
  120910. -double: 1
  120911. -float: 2
  120912. -idouble: 1
  120913. -ifloat: 2
  120914. -
  120915. -# atan2
  120916. -Test "atan2 (0.7, -1.0) == 2.530866689200584621918884506789267":
  120917. -float: 3
  120918. -ifloat: 3
  120919. -Test "atan2 (-0.7, -1.0) == -2.530866689200584621918884506789267":
  120920. -float: 3
  120921. -ifloat: 3
  120922. -Test "atan2 (1.4, -0.93) == 2.1571487668237843754887415992772736":
  120923. -float: 4
  120924. -ifloat: 4
  120925. -
  120926. -# atanh
  120927. -Test "atanh (0.7) == 0.8673005276940531944":
  120928. -double: 1
  120929. -idouble: 1
  120930. -
  120931. -# cabs
  120932. -Test "cabs (-0.7 + 12.4 i) == 12.419742348374220601176836866763271":
  120933. -float: 1
  120934. -ifloat: 1
  120935. -Test "cabs (-0.7 - 12.4 i) == 12.419742348374220601176836866763271":
  120936. -float: 1
  120937. -ifloat: 1
  120938. -Test "cabs (-12.4 + 0.7 i) == 12.419742348374220601176836866763271":
  120939. -float: 1
  120940. -ifloat: 1
  120941. -Test "cabs (-12.4 - 0.7 i) == 12.419742348374220601176836866763271":
  120942. -float: 1
  120943. -ifloat: 1
  120944. -Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508432547041028554":
  120945. -double: 1
  120946. -idouble: 1
  120947. -Test "cabs (0.7 + 12.4 i) == 12.419742348374220601176836866763271":
  120948. -float: 1
  120949. -ifloat: 1
  120950. -
  120951. -# cacos
  120952. -Test "Real part of: cacos (0.7 + 1.2 i) == 1.1351827477151551088992008271819053 - 1.0927647857577371459105272080819308 i":
  120953. -double: 1
  120954. -float: 1
  120955. -idouble: 1
  120956. -ifloat: 1
  120957. -Test "Imaginary part of: cacos (0.7 + 1.2 i) == 1.1351827477151551088992008271819053 - 1.0927647857577371459105272080819308 i":
  120958. -float: 1
  120959. -ifloat: 1
  120960. -
  120961. -# cacosh
  120962. -Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
  120963. -double: 1
  120964. -float: 7
  120965. -idouble: 1
  120966. -ifloat: 7
  120967. -Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
  120968. -double: 1
  120969. -float: 3
  120970. -idouble: 1
  120971. -ifloat: 3
  120972. -Test "Real part of: cacosh (0.7 + 1.2 i) == 1.0927647857577371459105272080819308 + 1.1351827477151551088992008271819053 i":
  120973. -double: 1
  120974. -float: 1
  120975. -idouble: 1
  120976. -ifloat: 1
  120977. -
  120978. -# casin
  120979. -Test "Real part of: casin (0.7 + 1.2 i) == 0.4356135790797415103321208644578462 + 1.0927647857577371459105272080819308 i":
  120980. -double: 3
  120981. -float: 2
  120982. -idouble: 3
  120983. -ifloat: 2
  120984. -Test "Imaginary part of: casin (0.7 + 1.2 i) == 0.4356135790797415103321208644578462 + 1.0927647857577371459105272080819308 i":
  120985. -float: 1
  120986. -ifloat: 1
  120987. -
  120988. -# casinh
  120989. -Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
  120990. -double: 5
  120991. -float: 1
  120992. -idouble: 5
  120993. -ifloat: 1
  120994. -Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
  120995. -double: 3
  120996. -float: 6
  120997. -idouble: 3
  120998. -ifloat: 6
  120999. -Test "Real part of: casinh (0.7 + 1.2 i) == 0.97865459559367387689317593222160964 + 0.91135418953156011567903546856170941 i":
  121000. -double: 1
  121001. -idouble: 1
  121002. -Test "Imaginary part of: casinh (0.7 + 1.2 i) == 0.97865459559367387689317593222160964 + 0.91135418953156011567903546856170941 i":
  121003. -float: 1
  121004. -ifloat: 1
  121005. -
  121006. -# catan
  121007. -Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
  121008. -float: 3
  121009. -ifloat: 3
  121010. -Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
  121011. -double: 1
  121012. -float: 1
  121013. -idouble: 1
  121014. -ifloat: 1
  121015. -Test "Real part of: catan (0.7 + 1.2 i) == 1.0785743834118921877443707996386368 + 0.57705737765343067644394541889341712 i":
  121016. -float: 4
  121017. -ifloat: 4
  121018. -Test "Imaginary part of: catan (0.7 + 1.2 i) == 1.0785743834118921877443707996386368 + 0.57705737765343067644394541889341712 i":
  121019. -double: 1
  121020. -idouble: 1
  121021. -
  121022. -# catanh
  121023. -Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
  121024. -double: 4
  121025. -idouble: 4
  121026. -Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
  121027. -float: 4
  121028. -ifloat: 4
  121029. -Test "Real part of: catanh (0.7 + 1.2 i) == 0.2600749516525135959200648705635915 + 0.97024030779509898497385130162655963 i":
  121030. -float: 1
  121031. -ifloat: 1
  121032. -Test "Imaginary part of: catanh (0.7 + 1.2 i) == 0.2600749516525135959200648705635915 + 0.97024030779509898497385130162655963 i":
  121033. -double: 1
  121034. -float: 6
  121035. -idouble: 1
  121036. -ifloat: 6
  121037. -
  121038. -# cbrt
  121039. -Test "cbrt (-27.0) == -3.0":
  121040. -double: 1
  121041. -idouble: 1
  121042. -Test "cbrt (0.970299) == 0.99":
  121043. -double: 1
  121044. -idouble: 1
  121045. -
  121046. -# ccos
  121047. -Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
  121048. -float: 1
  121049. -ifloat: 1
  121050. -Test "Real part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 - 0.97242170335830028619 i":
  121051. -double: 1
  121052. -idouble: 1
  121053. -Test "Imaginary part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 - 0.97242170335830028619 i":
  121054. -double: 1
  121055. -idouble: 1
  121056. -
  121057. -# ccosh
  121058. -Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
  121059. -float: 1
  121060. -ifloat: 1
  121061. -Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
  121062. -float: 1
  121063. -ifloat: 1
  121064. -Test "Real part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 + 0.7070296600921537682 i":
  121065. -double: 1
  121066. -float: 1
  121067. -idouble: 1
  121068. -ifloat: 1
  121069. -Test "Imaginary part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 + 0.7070296600921537682 i":
  121070. -double: 1
  121071. -idouble: 1
  121072. -
  121073. -# cexp
  121074. -Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
  121075. -float: 1
  121076. -ifloat: 1
  121077. -Test "Real part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 + 1.8768962328348102821 i":
  121078. -double: 1
  121079. -float: 1
  121080. -idouble: 1
  121081. -ifloat: 1
  121082. -Test "Imaginary part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 + 1.8768962328348102821 i":
  121083. -float: 1
  121084. -ifloat: 1
  121085. -
  121086. -# clog
  121087. -Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i":
  121088. -double: 1
  121089. -float: 3
  121090. -idouble: 1
  121091. -ifloat: 3
  121092. -
  121093. -# clog10
  121094. -Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
  121095. -float: 1
  121096. -ifloat: 1
  121097. -Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
  121098. -float: 1
  121099. -ifloat: 1
  121100. -Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
  121101. -double: 1
  121102. -float: 5
  121103. -idouble: 1
  121104. -ifloat: 5
  121105. -Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
  121106. -float: 1
  121107. -ifloat: 1
  121108. -Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
  121109. -float: 1
  121110. -ifloat: 1
  121111. -Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
  121112. -float: 1
  121113. -ifloat: 1
  121114. -Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
  121115. -float: 1
  121116. -ifloat: 1
  121117. -Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
  121118. -float: 1
  121119. -ifloat: 1
  121120. -Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
  121121. -float: 1
  121122. -ifloat: 1
  121123. -Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
  121124. -float: 1
  121125. -ifloat: 1
  121126. -Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
  121127. -float: 1
  121128. -ifloat: 1
  121129. -Test "Real part of: clog10 (0.7 + 1.2 i) == 0.1427786545038868803 + 0.4528483579352493248 i":
  121130. -double: 1
  121131. -float: 1
  121132. -idouble: 1
  121133. -ifloat: 1
  121134. -Test "Imaginary part of: clog10 (0.7 + 1.2 i) == 0.1427786545038868803 + 0.4528483579352493248 i":
  121135. -double: 1
  121136. -idouble: 1
  121137. -Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
  121138. -float: 1
  121139. -ifloat: 1
  121140. -Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
  121141. -float: 1
  121142. -ifloat: 1
  121143. -Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
  121144. -float: 1
  121145. -ifloat: 1
  121146. -Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
  121147. -float: 1
  121148. -ifloat: 1
  121149. -
  121150. -# cos
  121151. -Test "cos (0.7) == 0.7648421872844884262":
  121152. -double: 1
  121153. -float: 1
  121154. -idouble: 1
  121155. -ifloat: 1
  121156. -Test "cos (M_PI_6l * 2.0) == 0.5":
  121157. -double: 1
  121158. -float: 0.5
  121159. -idouble: 1
  121160. -ifloat: 0.5
  121161. -Test "cos (M_PI_6l * 4.0) == -0.5":
  121162. -double: 2
  121163. -float: 1
  121164. -idouble: 2
  121165. -ifloat: 1
  121166. -Test "cos (pi/2) == 0":
  121167. -double: 0.2758
  121168. -float: 0.3667
  121169. -idouble: 0.2758
  121170. -ifloat: 0.3667
  121171. -
  121172. -# cpow
  121173. -Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
  121174. -double: 1
  121175. -float: 4
  121176. -idouble: 1
  121177. -ifloat: 4
  121178. -Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
  121179. -float: 2
  121180. -ifloat: 2
  121181. -Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i":
  121182. -double: 1.1031
  121183. -float: 1.5
  121184. -idouble: 1.1031
  121185. -ifloat: 1.5
  121186. -
  121187. -# csin
  121188. -Test "Imaginary part of: csin (0.7 + 1.2 i) == 1.1664563419657581376 + 1.1544997246948547371 i":
  121189. -float: 1
  121190. -ifloat: 1
  121191. -
  121192. -# csinh
  121193. -Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
  121194. -double: 1
  121195. -idouble: 1
  121196. -Test "Real part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i":
  121197. -float: 1
  121198. -ifloat: 1
  121199. -Test "Imaginary part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i":
  121200. -float: 1
  121201. -ifloat: 1
  121202. -
  121203. -# csqrt
  121204. -Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
  121205. -float: 1
  121206. -ifloat: 1
  121207. -Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
  121208. -float: 1
  121209. -ifloat: 1
  121210. -Test "Real part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
  121211. -double: 1
  121212. -float: 1
  121213. -idouble: 1
  121214. -ifloat: 1
  121215. -Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
  121216. -float: 1
  121217. -ifloat: 1
  121218. -
  121219. -# ctan
  121220. -Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
  121221. -double: 1
  121222. -idouble: 1
  121223. -Test "Real part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 + 0.9544807059989405538 i":
  121224. -float: 1
  121225. -ifloat: 1
  121226. -Test "Imaginary part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 + 0.9544807059989405538 i":
  121227. -double: 1
  121228. -float: 1
  121229. -idouble: 1
  121230. -ifloat: 1
  121231. -
  121232. -# ctanh
  121233. -Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
  121234. -double: 1
  121235. -float: 2
  121236. -idouble: 1
  121237. -ifloat: 2
  121238. -Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
  121239. -float: 1
  121240. -ifloat: 1
  121241. -Test "Real part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 + 0.4778641038326365540 i":
  121242. -double: 2
  121243. -float: 1
  121244. -idouble: 2
  121245. -ifloat: 1
  121246. -Test "Imaginary part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 + 0.4778641038326365540 i":
  121247. -double: 2
  121248. -float: 1
  121249. -idouble: 2
  121250. -ifloat: 1
  121251. -
  121252. -# erfc
  121253. -Test "erfc (0.7) == 0.32219880616258152702":
  121254. -double: 1
  121255. -idouble: 1
  121256. -Test "erfc (1.2) == 0.089686021770364619762":
  121257. -double: 2
  121258. -float: 2
  121259. -idouble: 2
  121260. -ifloat: 2
  121261. -Test "erfc (2.0) == 0.0046777349810472658379":
  121262. -double: 1
  121263. -idouble: 1
  121264. -Test "erfc (4.1) == 0.67000276540848983727e-8":
  121265. -double: 24
  121266. -float: 12
  121267. -idouble: 24
  121268. -ifloat: 12
  121269. -
  121270. -# exp10
  121271. -Test "exp10 (-1) == 0.1":
  121272. -double: 2
  121273. -float: 1
  121274. -idouble: 2
  121275. -ifloat: 1
  121276. -Test "exp10 (0.7) == 5.0118723362727228500":
  121277. -float: 1
  121278. -ifloat: 1
  121279. -Test "exp10 (3) == 1000":
  121280. -double: 6
  121281. -float: 2
  121282. -idouble: 6
  121283. -ifloat: 2
  121284. -
  121285. -# expm1
  121286. -Test "expm1 (1) == M_El - 1.0":
  121287. -float: 1
  121288. -ifloat: 1
  121289. -
  121290. -# fmod
  121291. -Test "fmod (-6.5, -2.3) == -1.9":
  121292. -double: 2
  121293. -float: 1
  121294. -idouble: 2
  121295. -ifloat: 1
  121296. -Test "fmod (-6.5, 2.3) == -1.9":
  121297. -double: 2
  121298. -float: 1
  121299. -idouble: 2
  121300. -ifloat: 1
  121301. -Test "fmod (6.5, -2.3) == 1.9":
  121302. -double: 2
  121303. -float: 1
  121304. -idouble: 2
  121305. -ifloat: 1
  121306. -Test "fmod (6.5, 2.3) == 1.9":
  121307. -double: 2
  121308. -float: 1
  121309. -idouble: 2
  121310. -ifloat: 1
  121311. -
  121312. -# hypot
  121313. -Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
  121314. -float: 1
  121315. -ifloat: 1
  121316. -Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
  121317. -float: 1
  121318. -ifloat: 1
  121319. -Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
  121320. -float: 1
  121321. -ifloat: 1
  121322. -Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
  121323. -float: 1
  121324. -ifloat: 1
  121325. -Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
  121326. -float: 1
  121327. -ifloat: 1
  121328. -Test "hypot (0.7, 1.2) == 1.3892443989449804508432547041028554":
  121329. -double: 1
  121330. -idouble: 1
  121331. -Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
  121332. -float: 1
  121333. -ifloat: 1
  121334. -Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
  121335. -float: 1
  121336. -ifloat: 1
  121337. -Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
  121338. -float: 1
  121339. -ifloat: 1
  121340. -
  121341. -# j0
  121342. -Test "j0 (10.0) == -0.24593576445134833520":
  121343. -double: 2
  121344. -float: 1
  121345. -idouble: 2
  121346. -ifloat: 1
  121347. -Test "j0 (2.0) == 0.22389077914123566805":
  121348. -float: 2
  121349. -ifloat: 2
  121350. -Test "j0 (8.0) == 0.17165080713755390609":
  121351. -float: 1
  121352. -ifloat: 1
  121353. -
  121354. -# j1
  121355. -Test "j1 (10.0) == 0.043472746168861436670":
  121356. -float: 2
  121357. -ifloat: 2
  121358. -Test "j1 (2.0) == 0.57672480775687338720":
  121359. -double: 1
  121360. -idouble: 1
  121361. -Test "j1 (8.0) == 0.23463634685391462438":
  121362. -double: 1
  121363. -idouble: 1
  121364. -
  121365. -# jn
  121366. -Test "jn (0, 10.0) == -0.24593576445134833520":
  121367. -double: 2
  121368. -float: 1
  121369. -idouble: 2
  121370. -ifloat: 1
  121371. -Test "jn (0, 2.0) == 0.22389077914123566805":
  121372. -float: 2
  121373. -ifloat: 2
  121374. -Test "jn (0, 8.0) == 0.17165080713755390609":
  121375. -float: 1
  121376. -ifloat: 1
  121377. -Test "jn (1, 10.0) == 0.043472746168861436670":
  121378. -float: 2
  121379. -ifloat: 2
  121380. -Test "jn (1, 2.0) == 0.57672480775687338720":
  121381. -double: 1
  121382. -idouble: 1
  121383. -Test "jn (1, 8.0) == 0.23463634685391462438":
  121384. -double: 1
  121385. -idouble: 1
  121386. -Test "jn (10, 0.1) == 0.26905328954342155795e-19":
  121387. -double: 6
  121388. -float: 4
  121389. -idouble: 6
  121390. -ifloat: 4
  121391. -Test "jn (10, 0.7) == 0.75175911502153953928e-11":
  121392. -double: 3
  121393. -float: 1
  121394. -idouble: 3
  121395. -ifloat: 1
  121396. -Test "jn (10, 10.0) == 0.20748610663335885770":
  121397. -double: 4
  121398. -float: 3
  121399. -idouble: 4
  121400. -ifloat: 3
  121401. -Test "jn (10, 2.0) == 0.25153862827167367096e-6":
  121402. -float: 4
  121403. -ifloat: 4
  121404. -Test "jn (3, 0.1) == 0.000020820315754756261429":
  121405. -double: 1
  121406. -idouble: 1
  121407. -Test "jn (3, 0.7) == 0.0069296548267508408077":
  121408. -float: 1
  121409. -ifloat: 1
  121410. -Test "jn (3, 10.0) == 0.058379379305186812343":
  121411. -double: 3
  121412. -float: 1
  121413. -idouble: 3
  121414. -ifloat: 1
  121415. -Test "jn (3, 2.0) == 0.12894324947440205110":
  121416. -double: 1
  121417. -float: 2
  121418. -idouble: 1
  121419. -ifloat: 2
  121420. -
  121421. -# lgamma
  121422. -Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
  121423. -double: 1
  121424. -float: 1
  121425. -idouble: 1
  121426. -ifloat: 1
  121427. -Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
  121428. -double: 1
  121429. -float: 2
  121430. -idouble: 1
  121431. -ifloat: 2
  121432. -
  121433. -# log
  121434. -Test "log (0.7) == -0.35667494393873237891263871124118447":
  121435. -double: 1
  121436. -float: 1
  121437. -idouble: 1
  121438. -ifloat: 1
  121439. -
  121440. -# log10
  121441. -Test "log10 (0.7) == -0.15490195998574316929":
  121442. -double: 1
  121443. -float: 1
  121444. -idouble: 1
  121445. -ifloat: 1
  121446. -Test "log10 (e) == log10(e)":
  121447. -float: 1
  121448. -ifloat: 1
  121449. -
  121450. -# log1p
  121451. -Test "log1p (-0.3) == -0.35667494393873237891263871124118447":
  121452. -double: 1
  121453. -float: 1
  121454. -idouble: 1
  121455. -ifloat: 1
  121456. -
  121457. -# log2
  121458. -Test "log2 (0.7) == -0.51457317282975824043":
  121459. -double: 1
  121460. -float: 1
  121461. -idouble: 1
  121462. -ifloat: 1
  121463. -
  121464. -# sincos
  121465. -Test "sincos (0.7, &sin_res, &cos_res) puts 0.76484218728448842626 in cos_res":
  121466. -double: 1
  121467. -float: 1
  121468. -idouble: 1
  121469. -ifloat: 1
  121470. -Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
  121471. -double: 1
  121472. -float: 0.5
  121473. -idouble: 1
  121474. -ifloat: 0.5
  121475. -Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.866025403784438646764 in sin_res":
  121476. -double: 1
  121477. -float: 1
  121478. -idouble: 1
  121479. -ifloat: 1
  121480. -Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
  121481. -double: 0.2758
  121482. -float: 0.3667
  121483. -idouble: 0.2758
  121484. -ifloat: 0.3667
  121485. -Test "sincos (pi/6, &sin_res, &cos_res) puts 0.866025403784438646764 in cos_res":
  121486. -float: 1
  121487. -ifloat: 1
  121488. -
  121489. -# sinh
  121490. -Test "sinh (0.7) == 0.75858370183953350346":
  121491. -double: 1
  121492. -float: 1
  121493. -idouble: 1
  121494. -ifloat: 1
  121495. -
  121496. -# tan
  121497. -Test "tan (pi/4) == 1":
  121498. -double: 0.5
  121499. -idouble: 0.5
  121500. -
  121501. -# tanh
  121502. -Test "tanh (0.7) == 0.60436777711716349631":
  121503. -double: 1
  121504. -float: 1
  121505. -idouble: 1
  121506. -ifloat: 1
  121507. -
  121508. -# tgamma
  121509. -Test "tgamma (-0.5) == -2 sqrt (pi)":
  121510. -double: 1
  121511. -float: 1
  121512. -idouble: 1
  121513. -ifloat: 1
  121514. -Test "tgamma (0.5) == sqrt (pi)":
  121515. -float: 1
  121516. -ifloat: 1
  121517. -Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
  121518. -double: 1
  121519. -float: 1
  121520. -idouble: 1
  121521. -ifloat: 1
  121522. -
  121523. -# y0
  121524. -Test "y0 (0.7) == -0.19066492933739506743":
  121525. -double: 2
  121526. -float: 1
  121527. -idouble: 2
  121528. -ifloat: 1
  121529. -Test "y0 (1.0) == 0.088256964215676957983":
  121530. -double: 2
  121531. -float: 1
  121532. -idouble: 2
  121533. -ifloat: 1
  121534. -Test "y0 (1.5) == 0.38244892379775884396":
  121535. -double: 2
  121536. -float: 1
  121537. -idouble: 2
  121538. -ifloat: 1
  121539. -Test "y0 (10.0) == 0.055671167283599391424":
  121540. -float: 1
  121541. -ifloat: 1
  121542. -Test "y0 (8.0) == 0.22352148938756622053":
  121543. -double: 1
  121544. -float: 1
  121545. -idouble: 1
  121546. -ifloat: 1
  121547. -
  121548. -# y1
  121549. -Test "y1 (0.1) == -6.4589510947020269877":
  121550. -double: 1
  121551. -idouble: 1
  121552. -Test "y1 (0.7) == -1.1032498719076333697":
  121553. -double: 1
  121554. -float: 1
  121555. -idouble: 1
  121556. -ifloat: 1
  121557. -Test "y1 (1.5) == -0.41230862697391129595":
  121558. -float: 1
  121559. -ifloat: 1
  121560. -Test "y1 (10.0) == 0.24901542420695388392":
  121561. -double: 3
  121562. -float: 1
  121563. -idouble: 3
  121564. -ifloat: 1
  121565. -Test "y1 (2.0) == -0.10703243154093754689":
  121566. -double: 1
  121567. -float: 1
  121568. -idouble: 1
  121569. -ifloat: 1
  121570. -Test "y1 (8.0) == -0.15806046173124749426":
  121571. -double: 1
  121572. -float: 2
  121573. -idouble: 1
  121574. -ifloat: 2
  121575. -
  121576. -# yn
  121577. -Test "yn (0, 0.7) == -0.19066492933739506743":
  121578. -double: 2
  121579. -float: 1
  121580. -idouble: 2
  121581. -ifloat: 1
  121582. -Test "yn (0, 1.0) == 0.088256964215676957983":
  121583. -double: 2
  121584. -float: 1
  121585. -idouble: 2
  121586. -ifloat: 1
  121587. -Test "yn (0, 1.5) == 0.38244892379775884396":
  121588. -double: 2
  121589. -float: 1
  121590. -idouble: 2
  121591. -ifloat: 1
  121592. -Test "yn (0, 10.0) == 0.055671167283599391424":
  121593. -float: 1
  121594. -ifloat: 1
  121595. -Test "yn (0, 8.0) == 0.22352148938756622053":
  121596. -double: 1
  121597. -float: 1
  121598. -idouble: 1
  121599. -ifloat: 1
  121600. -Test "yn (1, 0.1) == -6.4589510947020269877":
  121601. -double: 1
  121602. -idouble: 1
  121603. -Test "yn (1, 0.7) == -1.1032498719076333697":
  121604. -double: 1
  121605. -float: 1
  121606. -idouble: 1
  121607. -ifloat: 1
  121608. -Test "yn (1, 1.5) == -0.41230862697391129595":
  121609. -float: 1
  121610. -ifloat: 1
  121611. -Test "yn (1, 10.0) == 0.24901542420695388392":
  121612. -double: 3
  121613. -float: 1
  121614. -idouble: 3
  121615. -ifloat: 1
  121616. -Test "yn (1, 2.0) == -0.10703243154093754689":
  121617. -double: 1
  121618. -float: 1
  121619. -idouble: 1
  121620. -ifloat: 1
  121621. -Test "yn (1, 8.0) == -0.15806046173124749426":
  121622. -double: 1
  121623. -float: 2
  121624. -idouble: 1
  121625. -ifloat: 2
  121626. -Test "yn (10, 0.1) == -0.11831335132045197885e19":
  121627. -double: 2
  121628. -float: 2
  121629. -idouble: 2
  121630. -ifloat: 2
  121631. -Test "yn (10, 0.7) == -0.42447194260703866924e10":
  121632. -double: 3
  121633. -idouble: 3
  121634. -Test "yn (10, 1.0) == -0.12161801427868918929e9":
  121635. -double: 1
  121636. -idouble: 1
  121637. -Test "yn (10, 10.0) == -0.35981415218340272205":
  121638. -double: 1
  121639. -float: 1
  121640. -idouble: 1
  121641. -ifloat: 1
  121642. -Test "yn (10, 2.0) == -129184.54220803928264":
  121643. -double: 2
  121644. -idouble: 2
  121645. -Test "yn (3, 0.1) == -5099.3323786129048894":
  121646. -double: 1
  121647. -float: 1
  121648. -idouble: 1
  121649. -ifloat: 1
  121650. -Test "yn (3, 0.7) == -15.819479052819633505":
  121651. -double: 3
  121652. -float: 1
  121653. -idouble: 3
  121654. -ifloat: 1
  121655. -Test "yn (3, 10.0) == -0.25136265718383732978":
  121656. -double: 1
  121657. -float: 1
  121658. -idouble: 1
  121659. -ifloat: 1
  121660. -Test "yn (3, 2.0) == -1.1277837768404277861":
  121661. -double: 1
  121662. -idouble: 1
  121663. -
  121664. -# Maximal error of functions:
  121665. -Function: "asin":
  121666. -double: 1
  121667. -float: 2
  121668. -idouble: 1
  121669. -ifloat: 2
  121670. -
  121671. -Function: "atan2":
  121672. -float: 4
  121673. -ifloat: 4
  121674. -
  121675. -Function: "atanh":
  121676. -double: 1
  121677. -idouble: 1
  121678. -
  121679. -Function: "cabs":
  121680. -double: 1
  121681. -float: 1
  121682. -idouble: 1
  121683. -ifloat: 1
  121684. -
  121685. -Function: Real part of "cacos":
  121686. -double: 1
  121687. -float: 1
  121688. -idouble: 1
  121689. -ifloat: 1
  121690. -
  121691. -Function: Imaginary part of "cacos":
  121692. -float: 1
  121693. -ifloat: 1
  121694. -
  121695. -Function: Real part of "cacosh":
  121696. -double: 1
  121697. -float: 7
  121698. -idouble: 1
  121699. -ifloat: 7
  121700. -
  121701. -Function: Imaginary part of "cacosh":
  121702. -double: 1
  121703. -float: 3
  121704. -idouble: 1
  121705. -ifloat: 3
  121706. -
  121707. -Function: Real part of "casin":
  121708. -double: 3
  121709. -float: 2
  121710. -idouble: 3
  121711. -ifloat: 2
  121712. -
  121713. -Function: Imaginary part of "casin":
  121714. -float: 1
  121715. -ifloat: 1
  121716. -
  121717. -Function: Real part of "casinh":
  121718. -double: 5
  121719. -float: 1
  121720. -idouble: 5
  121721. -ifloat: 1
  121722. -
  121723. -Function: Imaginary part of "casinh":
  121724. -double: 3
  121725. -float: 6
  121726. -idouble: 3
  121727. -ifloat: 6
  121728. -
  121729. -Function: Real part of "catan":
  121730. -float: 4
  121731. -ifloat: 4
  121732. -
  121733. -Function: Imaginary part of "catan":
  121734. -double: 1
  121735. -float: 1
  121736. -idouble: 1
  121737. -ifloat: 1
  121738. -
  121739. -Function: Real part of "catanh":
  121740. -double: 4
  121741. -float: 1
  121742. -idouble: 4
  121743. -ifloat: 1
  121744. -
  121745. -Function: Imaginary part of "catanh":
  121746. -double: 1
  121747. -float: 6
  121748. -idouble: 1
  121749. -ifloat: 6
  121750. -
  121751. -Function: "cbrt":
  121752. -double: 1
  121753. -idouble: 1
  121754. -
  121755. -Function: Real part of "ccos":
  121756. -double: 1
  121757. -idouble: 1
  121758. -
  121759. -Function: Imaginary part of "ccos":
  121760. -double: 1
  121761. -float: 1
  121762. -idouble: 1
  121763. -ifloat: 1
  121764. -
  121765. -Function: Real part of "ccosh":
  121766. -double: 1
  121767. -float: 1
  121768. -idouble: 1
  121769. -ifloat: 1
  121770. -
  121771. -Function: Imaginary part of "ccosh":
  121772. -double: 1
  121773. -float: 1
  121774. -idouble: 1
  121775. -ifloat: 1
  121776. -
  121777. -Function: Real part of "cexp":
  121778. -double: 1
  121779. -float: 1
  121780. -idouble: 1
  121781. -ifloat: 1
  121782. -
  121783. -Function: Imaginary part of "cexp":
  121784. -float: 1
  121785. -ifloat: 1
  121786. -
  121787. -Function: Imaginary part of "clog":
  121788. -double: 1
  121789. -float: 3
  121790. -idouble: 1
  121791. -ifloat: 3
  121792. -
  121793. -Function: Real part of "clog10":
  121794. -double: 1
  121795. -float: 1
  121796. -idouble: 1
  121797. -ifloat: 1
  121798. -
  121799. -Function: Imaginary part of "clog10":
  121800. -double: 1
  121801. -float: 5
  121802. -idouble: 1
  121803. -ifloat: 5
  121804. -
  121805. -Function: "cos":
  121806. -double: 2
  121807. -float: 1
  121808. -idouble: 2
  121809. -ifloat: 1
  121810. -
  121811. -Function: Real part of "cpow":
  121812. -double: 1
  121813. -float: 4
  121814. -idouble: 1
  121815. -ifloat: 4
  121816. -
  121817. -Function: Imaginary part of "cpow":
  121818. -double: 1.1031
  121819. -float: 2
  121820. -idouble: 1.1031
  121821. -ifloat: 2
  121822. -
  121823. -Function: Imaginary part of "csin":
  121824. -float: 1
  121825. -ifloat: 1
  121826. -
  121827. -Function: Real part of "csinh":
  121828. -float: 1
  121829. -ifloat: 1
  121830. -
  121831. -Function: Imaginary part of "csinh":
  121832. -double: 1
  121833. -float: 1
  121834. -idouble: 1
  121835. -ifloat: 1
  121836. -
  121837. -Function: Real part of "csqrt":
  121838. -double: 1
  121839. -float: 1
  121840. -idouble: 1
  121841. -ifloat: 1
  121842. -
  121843. -Function: Imaginary part of "csqrt":
  121844. -float: 1
  121845. -ifloat: 1
  121846. -
  121847. -Function: Real part of "ctan":
  121848. -double: 1
  121849. -float: 1
  121850. -idouble: 1
  121851. -ifloat: 1
  121852. -
  121853. -Function: Imaginary part of "ctan":
  121854. -double: 1
  121855. -float: 1
  121856. -idouble: 1
  121857. -ifloat: 1
  121858. -
  121859. -Function: Real part of "ctanh":
  121860. -double: 2
  121861. -float: 2
  121862. -idouble: 2
  121863. -ifloat: 2
  121864. -
  121865. -Function: Imaginary part of "ctanh":
  121866. -double: 2
  121867. -float: 1
  121868. -idouble: 2
  121869. -ifloat: 1
  121870. -
  121871. -Function: "erfc":
  121872. -double: 24
  121873. -float: 12
  121874. -idouble: 24
  121875. -ifloat: 12
  121876. -
  121877. -Function: "exp10":
  121878. -double: 6
  121879. -float: 2
  121880. -idouble: 6
  121881. -ifloat: 2
  121882. -
  121883. -Function: "expm1":
  121884. -float: 1
  121885. -ifloat: 1
  121886. -
  121887. -Function: "fmod":
  121888. -double: 2
  121889. -float: 1
  121890. -idouble: 2
  121891. -ifloat: 1
  121892. -
  121893. -Function: "hypot":
  121894. -double: 1
  121895. -float: 1
  121896. -idouble: 1
  121897. -ifloat: 1
  121898. -
  121899. -Function: "j0":
  121900. -double: 2
  121901. -float: 2
  121902. -idouble: 2
  121903. -ifloat: 2
  121904. -
  121905. -Function: "j1":
  121906. -double: 1
  121907. -float: 2
  121908. -idouble: 1
  121909. -ifloat: 2
  121910. -
  121911. -Function: "jn":
  121912. -double: 6
  121913. -float: 4
  121914. -idouble: 6
  121915. -ifloat: 4
  121916. -
  121917. -Function: "lgamma":
  121918. -double: 1
  121919. -float: 2
  121920. -idouble: 1
  121921. -ifloat: 2
  121922. -
  121923. -Function: "log":
  121924. -double: 1
  121925. -float: 1
  121926. -idouble: 1
  121927. -ifloat: 1
  121928. -
  121929. -Function: "log10":
  121930. -double: 1
  121931. -float: 1
  121932. -idouble: 1
  121933. -ifloat: 1
  121934. -
  121935. -Function: "log1p":
  121936. -double: 1
  121937. -float: 1
  121938. -idouble: 1
  121939. -ifloat: 1
  121940. -
  121941. -Function: "log2":
  121942. -double: 1
  121943. -float: 1
  121944. -idouble: 1
  121945. -ifloat: 1
  121946. -
  121947. -Function: "sincos":
  121948. -double: 1
  121949. -float: 1
  121950. -idouble: 1
  121951. -ifloat: 1
  121952. -
  121953. -Function: "sinh":
  121954. -double: 1
  121955. -float: 1
  121956. -idouble: 1
  121957. -ifloat: 1
  121958. -
  121959. -Function: "tan":
  121960. -double: 0.5
  121961. -idouble: 0.5
  121962. -
  121963. -Function: "tanh":
  121964. -double: 1
  121965. -float: 1
  121966. -idouble: 1
  121967. -ifloat: 1
  121968. -
  121969. -Function: "tgamma":
  121970. -double: 1
  121971. -float: 1
  121972. -idouble: 1
  121973. -ifloat: 1
  121974. -
  121975. -Function: "y0":
  121976. -double: 2
  121977. -float: 1
  121978. -idouble: 2
  121979. -ifloat: 1
  121980. -
  121981. -Function: "y1":
  121982. -double: 3
  121983. -float: 2
  121984. -idouble: 3
  121985. -ifloat: 2
  121986. -
  121987. -Function: "yn":
  121988. -double: 3
  121989. -float: 2
  121990. -idouble: 3
  121991. -ifloat: 2
  121992. -
  121993. -# end of automatic generation
  121994. diff -Nur uClibc-0.9.33.2/test/math/libm-test-ulps-xtensa uClibc-git/test/math/libm-test-ulps-xtensa
  121995. --- uClibc-0.9.33.2/test/math/libm-test-ulps-xtensa 1970-01-01 01:00:00.000000000 +0100
  121996. +++ uClibc-git/test/math/libm-test-ulps-xtensa 2014-06-02 17:40:35.270718936 +0200
  121997. @@ -0,0 +1,129 @@
  121998. +# Begin of automatic generation
  121999. +
  122000. +# cos
  122001. +Test "cos (M_PI_6l * 2.0) == 0.5":
  122002. +double: 1
  122003. +idouble: 1
  122004. +Test "cos (M_PI_6l * 4.0) == -0.5":
  122005. +double: 2
  122006. +float: 1
  122007. +idouble: 2
  122008. +ifloat: 1
  122009. +
  122010. +# erf
  122011. +Test "erf (0.75) == 0.711155633653515131598937834591410777":
  122012. +double: 1
  122013. +idouble: 1
  122014. +Test "erf (1.25) == 0.922900128256458230136523481197281140":
  122015. +double: 1
  122016. +idouble: 1
  122017. +
  122018. +# erfc
  122019. +Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
  122020. +double: 1
  122021. +idouble: 1
  122022. +
  122023. +# exp
  122024. +Test "exp (1) == e":
  122025. +double: 1
  122026. +idouble: 1
  122027. +
  122028. +# expm1
  122029. +Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
  122030. +double: 1
  122031. +idouble: 1
  122032. +
  122033. +# hypot
  122034. +Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
  122035. +float: 1
  122036. +ifloat: 1
  122037. +Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
  122038. +float: 1
  122039. +ifloat: 1
  122040. +Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
  122041. +float: 1
  122042. +ifloat: 1
  122043. +Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
  122044. +float: 1
  122045. +ifloat: 1
  122046. +Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
  122047. +float: 1
  122048. +ifloat: 1
  122049. +Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
  122050. +float: 1
  122051. +ifloat: 1
  122052. +Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
  122053. +float: 1
  122054. +ifloat: 1
  122055. +Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
  122056. +float: 1
  122057. +ifloat: 1
  122058. +
  122059. +# lgamma
  122060. +Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
  122061. +double: 1
  122062. +float: 1
  122063. +idouble: 1
  122064. +ifloat: 1
  122065. +Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
  122066. +double: 1
  122067. +float: 2
  122068. +idouble: 1
  122069. +ifloat: 2
  122070. +
  122071. +# log10
  122072. +Test "log10 (0.75) == -0.124938736608299953132449886193870744":
  122073. +double: 1
  122074. +idouble: 1
  122075. +Test "log10 (e) == log10(e)":
  122076. +float: 1
  122077. +ifloat: 1
  122078. +
  122079. +# Maximal error of functions:
  122080. +Function: "cos":
  122081. +double: 2
  122082. +float: 1
  122083. +idouble: 2
  122084. +ifloat: 1
  122085. +
  122086. +Function: "erf":
  122087. +double: 1
  122088. +idouble: 1
  122089. +
  122090. +Function: "erfc":
  122091. +double: 1
  122092. +idouble: 1
  122093. +
  122094. +Function: "exp":
  122095. +double: 1
  122096. +idouble: 1
  122097. +
  122098. +Function: "expm1":
  122099. +double: 1
  122100. +idouble: 1
  122101. +
  122102. +Function: "hypot":
  122103. +float: 1
  122104. +ifloat: 1
  122105. +
  122106. +Function: "lgamma":
  122107. +double: 1
  122108. +float: 2
  122109. +idouble: 1
  122110. +ifloat: 2
  122111. +
  122112. +Function: "log":
  122113. +float: 1
  122114. +ifloat: 1
  122115. +
  122116. +Function: "log10":
  122117. +double: 1
  122118. +float: 1
  122119. +idouble: 1
  122120. +ifloat: 1
  122121. +
  122122. +Function: "tan":
  122123. +double: 1
  122124. +idouble: 1
  122125. +
  122126. +# end of automatic generation
  122127. diff -Nur uClibc-0.9.33.2/test/math/Makefile uClibc-git/test/math/Makefile
  122128. --- uClibc-0.9.33.2/test/math/Makefile 2012-05-15 09:20:09.000000000 +0200
  122129. +++ uClibc-git/test/math/Makefile 2014-06-02 17:40:35.266718914 +0200
  122130. @@ -2,6 +2,7 @@
  122131. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  122132. top_builddir=../../
  122133. +top_srcdir=../../
  122134. include ../Rules.mak
  122135. -include Makefile.in
  122136. include ../Test.mak
  122137. diff -Nur uClibc-0.9.33.2/test/math/Makefile.in uClibc-git/test/math/Makefile.in
  122138. --- uClibc-0.9.33.2/test/math/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  122139. +++ uClibc-git/test/math/Makefile.in 2014-06-02 17:40:35.266718914 +0200
  122140. @@ -1,14 +1,19 @@
  122141. # uClibc math tests
  122142. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  122143. -TESTS := basic-test tst-definitions test-fpucw test-float test-ifloat test-double test-idouble \
  122144. - rint signgam ilogb
  122145. +# libm-test.c is a generated file used by the tests internally so skip it
  122146. +TESTS_DISABLED := libm-test
  122147. +
  122148. # gamma (removed from TESTS, need to add "small errors are ok" machinery there)
  122149. -ifeq ($(UCLIBC_HAS_LONG_DOUBLE_MATH),y)
  122150. -TESTS += test-ldouble test-ildoubl compile_test c99_test
  122151. +TESTS_DISABLED += gamma
  122152. +ifeq ($(UCLIBC_HAS_LONG_DOUBLE_MATH),)
  122153. +TESTS_DISABLED += test-ldouble test-ildoubl compile_test c99_test
  122154. else
  122155. CFLAGS_basic-test := -DNO_LONG_DOUBLE
  122156. endif
  122157. +ifeq ($(DO_C99_MATH),)
  122158. +TESTS_DISABLED += test-float test-ifloat test-double test-idouble rint signgam ilogb
  122159. +endif
  122160. DODIFF_rint := 1
  122161. DODIFF_signgam := 1
  122162. @@ -23,9 +28,17 @@
  122163. PERL := /usr/bin/perl
  122164. -$(TESTS): libm-test.c
  122165. +MDEPS := $(wildcard test-*.c)
  122166. +$(MDEPS): libm-test.c
  122167. +
  122168. +TARGET_ULP := $(TARGET_ARCH)
  122169. +ULP_SUFFIX :=
  122170. +ifeq ($(TARGET_ARCH),mips)
  122171. +ULP_SUFFIX:=$(if $(CONFIG_MIPS_ISA_MIPS64R1)$(CONFIG_MIPS_ISA_MIPS64R2),64,32)
  122172. +endif
  122173. +TARGET_ULP:=$(TARGET_ULP)$(ULP_SUFFIX)
  122174. -libm-test.c: libm-test-ulps-$(TARGET_ARCH) libm-test.inc gen-libm-test.pl
  122175. - $(Q)$(PERL) ./gen-libm-test.pl -u libm-test-ulps-$(TARGET_ARCH) ./libm-test.inc -o "." 2>&1 > /dev/null
  122176. +libm-test.c: libm-test-ulps-$(TARGET_ULP) libm-test.inc gen-libm-test.pl
  122177. + $(Q)$(PERL) ./gen-libm-test.pl -u libm-test-ulps-$(TARGET_ULP) ./libm-test.inc -o "." 2>&1 > /dev/null
  122178. EXTRA_CLEAN := libm-test.c libm-test-ulps.h
  122179. diff -Nur uClibc-0.9.33.2/test/math/test-double.c uClibc-git/test/math/test-double.c
  122180. --- uClibc-0.9.33.2/test/math/test-double.c 2012-05-15 09:20:09.000000000 +0200
  122181. +++ uClibc-git/test/math/test-double.c 2014-06-02 17:40:35.270718936 +0200
  122182. @@ -13,9 +13,8 @@
  122183. Lesser General Public License for more details.
  122184. You should have received a copy of the GNU Lesser General Public
  122185. - License along with the GNU C Library; if not, write to the Free
  122186. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122187. - 02111-1307 USA. */
  122188. + License along with the GNU C Library; if not, see
  122189. + <http://www.gnu.org/licenses/>. */
  122190. #define FUNC(function) function
  122191. #define FLOAT double
  122192. diff -Nur uClibc-0.9.33.2/test/math/test-float.c uClibc-git/test/math/test-float.c
  122193. --- uClibc-0.9.33.2/test/math/test-float.c 2012-05-15 09:20:09.000000000 +0200
  122194. +++ uClibc-git/test/math/test-float.c 2014-06-02 17:40:35.270718936 +0200
  122195. @@ -13,9 +13,8 @@
  122196. Lesser General Public License for more details.
  122197. You should have received a copy of the GNU Lesser General Public
  122198. - License along with the GNU C Library; if not, write to the Free
  122199. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122200. - 02111-1307 USA. */
  122201. + License along with the GNU C Library; if not, see
  122202. + <http://www.gnu.org/licenses/>. */
  122203. #define FUNC(function) function ## f
  122204. #define FLOAT float
  122205. diff -Nur uClibc-0.9.33.2/test/math/test-fpucw.c uClibc-git/test/math/test-fpucw.c
  122206. --- uClibc-0.9.33.2/test/math/test-fpucw.c 2012-05-15 09:20:09.000000000 +0200
  122207. +++ uClibc-git/test/math/test-fpucw.c 2014-06-02 17:40:35.270718936 +0200
  122208. @@ -13,9 +13,8 @@
  122209. Lesser General Public License for more details.
  122210. You should have received a copy of the GNU Lesser General Public
  122211. - License along with the GNU C Library; if not, write to the Free
  122212. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122213. - 02111-1307 USA. */
  122214. + License along with the GNU C Library; if not, see
  122215. + <http://www.gnu.org/licenses/>. */
  122216. #include <fpu_control.h>
  122217. #include <stdio.h>
  122218. diff -Nur uClibc-0.9.33.2/test/math/test-idouble.c uClibc-git/test/math/test-idouble.c
  122219. --- uClibc-0.9.33.2/test/math/test-idouble.c 2012-05-15 09:20:09.000000000 +0200
  122220. +++ uClibc-git/test/math/test-idouble.c 2014-06-02 17:40:35.270718936 +0200
  122221. @@ -13,9 +13,8 @@
  122222. Lesser General Public License for more details.
  122223. You should have received a copy of the GNU Lesser General Public
  122224. - License along with the GNU C Library; if not, write to the Free
  122225. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122226. - 02111-1307 USA. */
  122227. + License along with the GNU C Library; if not, see
  122228. + <http://www.gnu.org/licenses/>. */
  122229. #define FUNC(function) function
  122230. #define FLOAT double
  122231. diff -Nur uClibc-0.9.33.2/test/math/test-ifloat.c uClibc-git/test/math/test-ifloat.c
  122232. --- uClibc-0.9.33.2/test/math/test-ifloat.c 2012-05-15 09:20:09.000000000 +0200
  122233. +++ uClibc-git/test/math/test-ifloat.c 2014-06-02 17:40:35.270718936 +0200
  122234. @@ -13,9 +13,8 @@
  122235. Lesser General Public License for more details.
  122236. You should have received a copy of the GNU Lesser General Public
  122237. - License along with the GNU C Library; if not, write to the Free
  122238. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122239. - 02111-1307 USA. */
  122240. + License along with the GNU C Library; if not, see
  122241. + <http://www.gnu.org/licenses/>. */
  122242. #define FUNC(function) function ## f
  122243. #define FLOAT float
  122244. diff -Nur uClibc-0.9.33.2/test/math/test-ildoubl.c uClibc-git/test/math/test-ildoubl.c
  122245. --- uClibc-0.9.33.2/test/math/test-ildoubl.c 2012-05-15 09:20:09.000000000 +0200
  122246. +++ uClibc-git/test/math/test-ildoubl.c 2014-06-02 17:40:35.270718936 +0200
  122247. @@ -13,9 +13,8 @@
  122248. Lesser General Public License for more details.
  122249. You should have received a copy of the GNU Lesser General Public
  122250. - License along with the GNU C Library; if not, write to the Free
  122251. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122252. - 02111-1307 USA. */
  122253. + License along with the GNU C Library; if not, see
  122254. + <http://www.gnu.org/licenses/>. */
  122255. #define FUNC(function) function##l
  122256. #define FLOAT long double
  122257. diff -Nur uClibc-0.9.33.2/test/math/test-ldouble.c uClibc-git/test/math/test-ldouble.c
  122258. --- uClibc-0.9.33.2/test/math/test-ldouble.c 2012-05-15 09:20:09.000000000 +0200
  122259. +++ uClibc-git/test/math/test-ldouble.c 2014-06-02 17:40:35.270718936 +0200
  122260. @@ -13,9 +13,8 @@
  122261. Lesser General Public License for more details.
  122262. You should have received a copy of the GNU Lesser General Public
  122263. - License along with the GNU C Library; if not, write to the Free
  122264. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122265. - 02111-1307 USA. */
  122266. + License along with the GNU C Library; if not, see
  122267. + <http://www.gnu.org/licenses/>. */
  122268. #define FUNC(function) function##l
  122269. #define FLOAT long double
  122270. diff -Nur uClibc-0.9.33.2/test/math/tst-definitions.c uClibc-git/test/math/tst-definitions.c
  122271. --- uClibc-0.9.33.2/test/math/tst-definitions.c 2012-05-15 09:20:09.000000000 +0200
  122272. +++ uClibc-git/test/math/tst-definitions.c 2014-06-02 17:40:35.270718936 +0200
  122273. @@ -13,9 +13,8 @@
  122274. Lesser General Public License for more details.
  122275. You should have received a copy of the GNU Lesser General Public
  122276. - License along with the GNU C Library; if not, write to the Free
  122277. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122278. - 02111-1307 USA. */
  122279. + License along with the GNU C Library; if not, see
  122280. + <http://www.gnu.org/licenses/>. */
  122281. #include <limits.h>
  122282. #include <math.h>
  122283. diff -Nur uClibc-0.9.33.2/test/misc/bug-glob2.c uClibc-git/test/misc/bug-glob2.c
  122284. --- uClibc-0.9.33.2/test/misc/bug-glob2.c 2012-05-15 09:20:09.000000000 +0200
  122285. +++ uClibc-git/test/misc/bug-glob2.c 2014-06-02 17:40:35.270718936 +0200
  122286. @@ -14,9 +14,8 @@
  122287. Lesser General Public License for more details.
  122288. You should have received a copy of the GNU Lesser General Public
  122289. - License along with the GNU C Library; if not, write to the Free
  122290. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122291. - 02111-1307 USA. */
  122292. + License along with the GNU C Library; if not, see
  122293. + <http://www.gnu.org/licenses/>. */
  122294. #include <errno.h>
  122295. #include <error.h>
  122296. diff -Nur uClibc-0.9.33.2/test/misc/Makefile uClibc-git/test/misc/Makefile
  122297. --- uClibc-0.9.33.2/test/misc/Makefile 2012-05-15 09:20:09.000000000 +0200
  122298. +++ uClibc-git/test/misc/Makefile 2014-06-02 17:40:35.270718936 +0200
  122299. @@ -2,6 +2,7 @@
  122300. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  122301. top_builddir=../../
  122302. +top_srcdir=../../
  122303. include ../Rules.mak
  122304. -include Makefile.in
  122305. include ../Test.mak
  122306. diff -Nur uClibc-0.9.33.2/test/misc/Makefile.in uClibc-git/test/misc/Makefile.in
  122307. --- uClibc-0.9.33.2/test/misc/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  122308. +++ uClibc-git/test/misc/Makefile.in 2014-06-02 17:40:35.270718936 +0200
  122309. @@ -4,11 +4,18 @@
  122310. TESTS_DISABLED := outb tst-fnmatch bug-glob1 tst-gnuglob
  122311. ifeq ($(UCLIBC_HAS_LFS),)
  122312. TESTS_DISABLED += dirent64
  122313. +TESTS_DISABLED += tst-statfs # assuming host has LFS on
  122314. endif
  122315. CFLAGS_dirent64 := -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
  122316. DODIFF_dirent := 1
  122317. DODIFF_dirent64 := 1
  122318. +DODIFF_tst-statfs := 1
  122319. +DODIFF_tst-statvfs := 1
  122320. OPTS_bug-glob1 := $(PWD)
  122321. OPTS_tst-fnmatch := < tst-fnmatch.input
  122322. +
  122323. +MNTENTS = $(shell mount | while read dev on mp rest; do echo $$mp; done)
  122324. +OPTS_tst-statfs := $(MNTENTS)
  122325. +OPTS_tst-statvfs := $(MNTENTS)
  122326. diff -Nur uClibc-0.9.33.2/test/misc/opendir-tst1.c uClibc-git/test/misc/opendir-tst1.c
  122327. --- uClibc-0.9.33.2/test/misc/opendir-tst1.c 2012-05-15 09:20:09.000000000 +0200
  122328. +++ uClibc-git/test/misc/opendir-tst1.c 2014-06-02 17:40:35.274718958 +0200
  122329. @@ -13,9 +13,8 @@
  122330. Lesser General Public License for more details.
  122331. You should have received a copy of the GNU Lesser General Public
  122332. - License along with the GNU C Library; if not, write to the Free
  122333. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122334. - 02111-1307 USA. */
  122335. + License along with the GNU C Library; if not, see
  122336. + <http://www.gnu.org/licenses/>. */
  122337. #include <dirent.h>
  122338. #include <errno.h>
  122339. diff -Nur uClibc-0.9.33.2/test/misc/tst-fnmatch.c uClibc-git/test/misc/tst-fnmatch.c
  122340. --- uClibc-0.9.33.2/test/misc/tst-fnmatch.c 2012-05-15 09:20:09.000000000 +0200
  122341. +++ uClibc-git/test/misc/tst-fnmatch.c 2014-06-02 17:40:35.278718981 +0200
  122342. @@ -13,9 +13,8 @@
  122343. Lesser General Public License for more details.
  122344. You should have received a copy of the GNU Lesser General Public
  122345. - License along with the GNU C Library; if not, write to the Free
  122346. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122347. - 02111-1307 USA. */
  122348. + License along with the GNU C Library; if not, see
  122349. + <http://www.gnu.org/licenses/>. */
  122350. #include <errno.h>
  122351. #include <error.h>
  122352. diff -Nur uClibc-0.9.33.2/test/misc/tst-fnmatch.input uClibc-git/test/misc/tst-fnmatch.input
  122353. --- uClibc-0.9.33.2/test/misc/tst-fnmatch.input 2012-05-15 09:20:09.000000000 +0200
  122354. +++ uClibc-git/test/misc/tst-fnmatch.input 2014-06-02 17:40:35.286719024 +0200
  122355. @@ -15,9 +15,8 @@
  122356. # Lesser General Public License for more details.
  122357. # You should have received a copy of the GNU Lesser General Public
  122358. -# License along with the GNU C Library; if not, write to the Free
  122359. -# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122360. -# 02111-1307 USA.
  122361. +# License along with the GNU C Library; see the file COPYING.LIB. If
  122362. +# not, see <http://www.gnu.org/licenses/>.
  122363. # Derived from the IEEE 2003.2 text. The standard only contains some
  122364. diff -Nur uClibc-0.9.33.2/test/misc/tst-gnuglob.c uClibc-git/test/misc/tst-gnuglob.c
  122365. --- uClibc-0.9.33.2/test/misc/tst-gnuglob.c 2012-05-15 09:20:09.000000000 +0200
  122366. +++ uClibc-git/test/misc/tst-gnuglob.c 2014-06-02 17:40:35.286719024 +0200
  122367. @@ -15,9 +15,8 @@
  122368. Lesser General Public License for more details.
  122369. You should have received a copy of the GNU Lesser General Public
  122370. - License along with the GNU C Library; if not, write to the Free
  122371. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122372. - 02111-1307 USA. */
  122373. + License along with the GNU C Library; if not, see
  122374. + <http://www.gnu.org/licenses/>. */
  122375. #include <dirent.h>
  122376. #include <errno.h>
  122377. diff -Nur uClibc-0.9.33.2/test/misc/tst-inotify.c uClibc-git/test/misc/tst-inotify.c
  122378. --- uClibc-0.9.33.2/test/misc/tst-inotify.c 1970-01-01 01:00:00.000000000 +0100
  122379. +++ uClibc-git/test/misc/tst-inotify.c 2014-06-02 17:40:35.286719024 +0200
  122380. @@ -0,0 +1,66 @@
  122381. +/* vi: set sw=4 ts=4 sts=4: */
  122382. +/*
  122383. + * inotify test for uClibc
  122384. + * Copyright (C) 2012 by Kevin Cernekee <cernekee@gmail.com>
  122385. + *
  122386. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  122387. + */
  122388. +
  122389. +#include <stdio.h>
  122390. +#include <stdlib.h>
  122391. +#include <string.h>
  122392. +#include <unistd.h>
  122393. +#include <errno.h>
  122394. +#include <error.h>
  122395. +#include <inttypes.h>
  122396. +#include <sys/inotify.h>
  122397. +#include <sys/fcntl.h>
  122398. +
  122399. +static int
  122400. +do_test(void)
  122401. +{
  122402. + int ifd, fd, ret, result = 0;
  122403. + struct inotify_event e;
  122404. + char tfile[] = "/tmp/inotify.XXXXXX";
  122405. +
  122406. + fd = mkstemp(tfile);
  122407. + close(fd);
  122408. +
  122409. + ifd = inotify_init1(IN_NONBLOCK);
  122410. + if (ifd < 0) {
  122411. + perror("inotify_init1()");
  122412. + result = 1;
  122413. + }
  122414. + if (inotify_add_watch(ifd, tfile, IN_DELETE_SELF) < 0) {
  122415. + perror("inotify_add_watch()");
  122416. + result = 1;
  122417. + }
  122418. +
  122419. + /* nonblocking inotify should return immediately with no events */
  122420. + ret = read(ifd, &e, sizeof(e));
  122421. + if (ret != -1 || errno != EAGAIN) {
  122422. + error(0, 0, "first read() returned %d", ret);
  122423. + result = 1;
  122424. + }
  122425. +
  122426. + /* generate an event */
  122427. + unlink(tfile);
  122428. +
  122429. + /* now check whether our event was seen */
  122430. + ret = read(ifd, &e, sizeof(e));
  122431. + if (ret != sizeof(e)) {
  122432. + error(0, 0, "second read() returned %d", ret);
  122433. + result = 1;
  122434. + }
  122435. +
  122436. + if (!(e.mask & IN_DELETE_SELF)) {
  122437. + error(0, 0, "incorrect event mask: %" PRIx32, e.mask);
  122438. + result = 1;
  122439. + }
  122440. +
  122441. + return result;
  122442. +}
  122443. +
  122444. +#define TIMEOUT 5
  122445. +#define TEST_FUNCTION do_test ()
  122446. +#include "../test-skeleton.c"
  122447. diff -Nur uClibc-0.9.33.2/test/misc/tst-statfs.c uClibc-git/test/misc/tst-statfs.c
  122448. --- uClibc-0.9.33.2/test/misc/tst-statfs.c 1970-01-01 01:00:00.000000000 +0100
  122449. +++ uClibc-git/test/misc/tst-statfs.c 2014-06-02 17:40:35.286719024 +0200
  122450. @@ -0,0 +1,31 @@
  122451. +#include <sys/vfs.h>
  122452. +#include <errno.h>
  122453. +#include <stdio.h>
  122454. +#include <stdlib.h>
  122455. +#include <string.h>
  122456. +
  122457. +int
  122458. +main(int argc, char* argv[])
  122459. +{
  122460. + struct statfs s;
  122461. + int ret = 0, i;
  122462. +
  122463. + for (i = 1; i < argc; i++) {
  122464. + if (statfs(argv[i], &s) != 0) {
  122465. + fprintf(stderr, "%s: %s: statfs failed. %s\n",
  122466. + *argv, argv[i], strerror(errno));
  122467. + exit(EXIT_FAILURE);
  122468. + }
  122469. + ++ret;
  122470. + printf("statfs %s:\n\tblocks=%lld\n\tblkfree=%lld\n\tbsize=%d\n",
  122471. + argv[i], s.f_blocks, s.f_bfree, s.f_bsize);
  122472. +#ifdef _STATFS_F_FRSIZE
  122473. + printf("\tfrsize=%lld\n", s.f_frsize);
  122474. +#elif defined __mips__
  122475. + printf("\tfrsize=mips, unsupported?\n");
  122476. +#else
  122477. +# error no _STATFS_F_FRSIZE
  122478. +#endif
  122479. + }
  122480. + exit(ret ? EXIT_SUCCESS : EXIT_FAILURE);
  122481. +}
  122482. diff -Nur uClibc-0.9.33.2/test/misc/tst-statvfs.c uClibc-git/test/misc/tst-statvfs.c
  122483. --- uClibc-0.9.33.2/test/misc/tst-statvfs.c 1970-01-01 01:00:00.000000000 +0100
  122484. +++ uClibc-git/test/misc/tst-statvfs.c 2014-06-02 17:40:35.286719024 +0200
  122485. @@ -0,0 +1,26 @@
  122486. +#include <sys/statvfs.h>
  122487. +#include <errno.h>
  122488. +#include <stdio.h>
  122489. +#include <stdlib.h>
  122490. +#include <string.h>
  122491. +
  122492. +int
  122493. +main(int argc, char* argv[])
  122494. +{
  122495. + struct statvfs s;
  122496. + int i;
  122497. +
  122498. + for (i = 1; i < argc; i++) {
  122499. + if (statvfs(argv[i], &s) != 0) {
  122500. + fprintf(stderr, "%s: %s: statvfs failed. %s\n",
  122501. + *argv, argv[i], strerror(errno));
  122502. + exit(EXIT_FAILURE);
  122503. + }
  122504. + printf("statvfs %s:\n\tblocks=%lld\n\tblkfree=%lld\n\tbsize=%d\n",
  122505. + argv[i], s.f_blocks, s.f_bfree, s.f_bsize);
  122506. +#if 1 // def _STATFS_F_FRSIZE
  122507. + printf("\tfrsize=%lld\n", s.f_frsize);
  122508. +#endif
  122509. + }
  122510. + exit(EXIT_SUCCESS);
  122511. +}
  122512. diff -Nur uClibc-0.9.33.2/test/misc/tst-utmp.c uClibc-git/test/misc/tst-utmp.c
  122513. --- uClibc-0.9.33.2/test/misc/tst-utmp.c 2012-05-15 09:20:09.000000000 +0200
  122514. +++ uClibc-git/test/misc/tst-utmp.c 2014-06-02 17:40:35.286719024 +0200
  122515. @@ -14,9 +14,8 @@
  122516. Lesser General Public License for more details.
  122517. You should have received a copy of the GNU Lesser General Public
  122518. - License along with the GNU C Library; if not, write to the Free
  122519. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122520. - 02111-1307 USA. */
  122521. + License along with the GNU C Library; if not, see
  122522. + <http://www.gnu.org/licenses/>. */
  122523. #include <errno.h>
  122524. #include <error.h>
  122525. diff -Nur uClibc-0.9.33.2/test/mmap/Makefile uClibc-git/test/mmap/Makefile
  122526. --- uClibc-0.9.33.2/test/mmap/Makefile 2012-05-15 09:20:09.000000000 +0200
  122527. +++ uClibc-git/test/mmap/Makefile 2014-06-02 17:40:35.286719024 +0200
  122528. @@ -2,6 +2,7 @@
  122529. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  122530. top_builddir=../../
  122531. +top_srcdir=../../
  122532. include ../Rules.mak
  122533. -include Makefile.in
  122534. include ../Test.mak
  122535. diff -Nur uClibc-0.9.33.2/test/nptl/eintr.c uClibc-git/test/nptl/eintr.c
  122536. --- uClibc-0.9.33.2/test/nptl/eintr.c 2012-05-15 09:20:09.000000000 +0200
  122537. +++ uClibc-git/test/nptl/eintr.c 2014-06-02 17:40:35.290719047 +0200
  122538. @@ -13,9 +13,8 @@
  122539. Lesser General Public License for more details.
  122540. You should have received a copy of the GNU Lesser General Public
  122541. - License along with the GNU C Library; if not, write to the Free
  122542. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122543. - 02111-1307 USA. */
  122544. + License along with the GNU C Library; if not, see
  122545. + <http://www.gnu.org/licenses/>. */
  122546. #include <pthread.h>
  122547. #include <signal.h>
  122548. diff -Nur uClibc-0.9.33.2/test/nptl/Makefile.in uClibc-git/test/nptl/Makefile.in
  122549. --- uClibc-0.9.33.2/test/nptl/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  122550. +++ uClibc-git/test/nptl/Makefile.in 2014-06-02 17:40:35.290719047 +0200
  122551. @@ -73,21 +73,11 @@
  122552. GLIBC_TESTS_DISABLED += tst-tls3_glibc tst-tls4_glibc tst-tls5_glibc
  122553. endif
  122554. -PTDIR := $(top_builddir)libpthread/nptl
  122555. -SYSDEPS_DIR := $(top_srcdir)libc/sysdeps
  122556. -
  122557. EXTRA_CFLAGS := -DNOT_IN_libc=1 -D_LIBC -D__USE_GNU -std=gnu99 \
  122558. - -I$(SYSDEPS_DIR)/linux \
  122559. - -I$(SYSDEPS_DIR)/linux/$(TARGET_ARCH) \
  122560. - -I$(PTDIR) -I$(PTDIR)/sysdeps/unix/sysv/linux/$(TARGET_ARCH) \
  122561. - -I$(PTDIR)/sysdeps/$(TARGET_ARCH) \
  122562. - -I$(PTDIR)/sysdeps/unix/sysv/linux \
  122563. - -I$(PTDIR)/sysdeps/pthread \
  122564. - -I$(PTDIR)/sysdeps/pthread/bits \
  122565. - -I$(PTDIR)/sysdeps/generic \
  122566. - -I$(top_builddir)ldso/include \
  122567. - -I$(top_builddir)ldso/ldso/$(TARGET_ARCH) \
  122568. - -I$(top_builddir)include \
  122569. + $(PTINC) \
  122570. + -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH) \
  122571. + -I$(top_srcdir)libc/sysdeps/linux \
  122572. + -I$(top_builddir)include \
  122573. -include $(top_builddir)include/libc-symbols.h
  122574. ifeq ($(TARGET_ARCH),i386)
  122575. diff -Nur uClibc-0.9.33.2/test/nptl/tst-align2.c uClibc-git/test/nptl/tst-align2.c
  122576. --- uClibc-0.9.33.2/test/nptl/tst-align2.c 2012-05-15 09:20:09.000000000 +0200
  122577. +++ uClibc-git/test/nptl/tst-align2.c 2014-06-02 17:40:35.290719047 +0200
  122578. @@ -12,9 +12,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 <sched.h>
  122587. #include <stdbool.h>
  122588. diff -Nur uClibc-0.9.33.2/test/nptl/tst-align3.c uClibc-git/test/nptl/tst-align3.c
  122589. --- uClibc-0.9.33.2/test/nptl/tst-align3.c 2012-05-15 09:20:09.000000000 +0200
  122590. +++ uClibc-git/test/nptl/tst-align3.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 <stdbool.h>
  122601. diff -Nur uClibc-0.9.33.2/test/nptl/tst-align.c uClibc-git/test/nptl/tst-align.c
  122602. --- uClibc-0.9.33.2/test/nptl/tst-align.c 2012-05-15 09:20:09.000000000 +0200
  122603. +++ uClibc-git/test/nptl/tst-align.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 <pthread.h>
  122613. #include <stdbool.h>
  122614. diff -Nur uClibc-0.9.33.2/test/nptl/tst-atfork1.c uClibc-git/test/nptl/tst-atfork1.c
  122615. --- uClibc-0.9.33.2/test/nptl/tst-atfork1.c 2012-05-15 09:20:09.000000000 +0200
  122616. +++ uClibc-git/test/nptl/tst-atfork1.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-attr1.c uClibc-git/test/nptl/tst-attr1.c
  122628. --- uClibc-0.9.33.2/test/nptl/tst-attr1.c 2012-05-15 09:20:09.000000000 +0200
  122629. +++ uClibc-git/test/nptl/tst-attr1.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 <errno.h>
  122639. #include <pthread.h>
  122640. diff -Nur uClibc-0.9.33.2/test/nptl/tst-attr2.c uClibc-git/test/nptl/tst-attr2.c
  122641. --- uClibc-0.9.33.2/test/nptl/tst-attr2.c 2012-05-15 09:20:09.000000000 +0200
  122642. +++ uClibc-git/test/nptl/tst-attr2.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 <errno.h>
  122652. #include <pthread.h>
  122653. diff -Nur uClibc-0.9.33.2/test/nptl/tst-attr3.c uClibc-git/test/nptl/tst-attr3.c
  122654. --- uClibc-0.9.33.2/test/nptl/tst-attr3.c 2012-05-15 09:20:09.000000000 +0200
  122655. +++ uClibc-git/test/nptl/tst-attr3.c 2014-06-02 17:40:35.290719047 +0200
  122656. @@ -14,9 +14,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 <error.h>
  122666. diff -Nur uClibc-0.9.33.2/test/nptl/tst-barrier1.c uClibc-git/test/nptl/tst-barrier1.c
  122667. --- uClibc-0.9.33.2/test/nptl/tst-barrier1.c 2012-05-15 09:20:09.000000000 +0200
  122668. +++ uClibc-git/test/nptl/tst-barrier1.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-barrier2.c uClibc-git/test/nptl/tst-barrier2.c
  122680. --- uClibc-0.9.33.2/test/nptl/tst-barrier2.c 2012-05-15 09:20:09.000000000 +0200
  122681. +++ uClibc-git/test/nptl/tst-barrier2.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-barrier3.c uClibc-git/test/nptl/tst-barrier3.c
  122693. --- uClibc-0.9.33.2/test/nptl/tst-barrier3.c 2012-05-15 09:20:09.000000000 +0200
  122694. +++ uClibc-git/test/nptl/tst-barrier3.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. /* Test of POSIX barriers. */
  122704. diff -Nur uClibc-0.9.33.2/test/nptl/tst-barrier4.c uClibc-git/test/nptl/tst-barrier4.c
  122705. --- uClibc-0.9.33.2/test/nptl/tst-barrier4.c 2012-05-15 09:20:09.000000000 +0200
  122706. +++ uClibc-git/test/nptl/tst-barrier4.c 2014-06-02 17:40:35.290719047 +0200
  122707. @@ -13,9 +13,8 @@
  122708. Lesser General Public License for more details.
  122709. You should have received a copy of the GNU Lesser General Public
  122710. - License along with the GNU C Library; if not, write to the Free
  122711. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122712. - 02111-1307 USA. */
  122713. + License along with the GNU C Library; if not, see
  122714. + <http://www.gnu.org/licenses/>. */
  122715. /* This is a test for behavior not guaranteed by POSIX. */
  122716. #include <errno.h>
  122717. diff -Nur uClibc-0.9.33.2/test/nptl/tst-basic1.c uClibc-git/test/nptl/tst-basic1.c
  122718. --- uClibc-0.9.33.2/test/nptl/tst-basic1.c 2012-05-15 09:20:09.000000000 +0200
  122719. +++ uClibc-git/test/nptl/tst-basic1.c 2014-06-02 17:40:35.290719047 +0200
  122720. @@ -13,9 +13,8 @@
  122721. Lesser General Public License for more details.
  122722. You should have received a copy of the GNU Lesser General Public
  122723. - License along with the GNU C Library; if not, write to the Free
  122724. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122725. - 02111-1307 USA. */
  122726. + License along with the GNU C Library; if not, see
  122727. + <http://www.gnu.org/licenses/>. */
  122728. #include <pthread.h>
  122729. #include <stdio.h>
  122730. diff -Nur uClibc-0.9.33.2/test/nptl/tst-basic2.c uClibc-git/test/nptl/tst-basic2.c
  122731. --- uClibc-0.9.33.2/test/nptl/tst-basic2.c 2012-05-15 09:20:09.000000000 +0200
  122732. +++ uClibc-git/test/nptl/tst-basic2.c 2014-06-02 17:40:35.290719047 +0200
  122733. @@ -13,9 +13,8 @@
  122734. Lesser General Public License for more details.
  122735. You should have received a copy of the GNU Lesser General Public
  122736. - License along with the GNU C Library; if not, write to the Free
  122737. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122738. - 02111-1307 USA. */
  122739. + License along with the GNU C Library; if not, see
  122740. + <http://www.gnu.org/licenses/>. */
  122741. #include <pthread.h>
  122742. #include <stdio.h>
  122743. diff -Nur uClibc-0.9.33.2/test/nptl/tst-basic3.c uClibc-git/test/nptl/tst-basic3.c
  122744. --- uClibc-0.9.33.2/test/nptl/tst-basic3.c 2012-05-15 09:20:09.000000000 +0200
  122745. +++ uClibc-git/test/nptl/tst-basic3.c 2014-06-02 17:40:35.290719047 +0200
  122746. @@ -13,9 +13,8 @@
  122747. Lesser General Public License for more details.
  122748. You should have received a copy of the GNU Lesser General Public
  122749. - License along with the GNU C Library; if not, write to the Free
  122750. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122751. - 02111-1307 USA. */
  122752. + License along with the GNU C Library; if not, see
  122753. + <http://www.gnu.org/licenses/>. */
  122754. #include <pthread.h>
  122755. #include <signal.h>
  122756. diff -Nur uClibc-0.9.33.2/test/nptl/tst-basic4.c uClibc-git/test/nptl/tst-basic4.c
  122757. --- uClibc-0.9.33.2/test/nptl/tst-basic4.c 2012-05-15 09:20:09.000000000 +0200
  122758. +++ uClibc-git/test/nptl/tst-basic4.c 2014-06-02 17:40:35.290719047 +0200
  122759. @@ -13,9 +13,8 @@
  122760. Lesser General Public License for more details.
  122761. You should have received a copy of the GNU Lesser General Public
  122762. - License along with the GNU C Library; if not, write to the Free
  122763. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122764. - 02111-1307 USA. */
  122765. + License along with the GNU C Library; if not, see
  122766. + <http://www.gnu.org/licenses/>. */
  122767. #include <errno.h>
  122768. #include <pthread.h>
  122769. diff -Nur uClibc-0.9.33.2/test/nptl/tst-basic5.c uClibc-git/test/nptl/tst-basic5.c
  122770. --- uClibc-0.9.33.2/test/nptl/tst-basic5.c 2012-05-15 09:20:09.000000000 +0200
  122771. +++ uClibc-git/test/nptl/tst-basic5.c 2014-06-02 17:40:35.290719047 +0200
  122772. @@ -13,9 +13,8 @@
  122773. Lesser General Public License for more details.
  122774. You should have received a copy of the GNU Lesser General Public
  122775. - License along with the GNU C Library; if not, write to the Free
  122776. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122777. - 02111-1307 USA. */
  122778. + License along with the GNU C Library; if not, see
  122779. + <http://www.gnu.org/licenses/>. */
  122780. #include <errno.h>
  122781. #include <pthread.h>
  122782. diff -Nur uClibc-0.9.33.2/test/nptl/tst-basic6.c uClibc-git/test/nptl/tst-basic6.c
  122783. --- uClibc-0.9.33.2/test/nptl/tst-basic6.c 2012-05-15 09:20:09.000000000 +0200
  122784. +++ uClibc-git/test/nptl/tst-basic6.c 2014-06-02 17:40:35.290719047 +0200
  122785. @@ -13,9 +13,8 @@
  122786. Lesser General Public License for more details.
  122787. You should have received a copy of the GNU Lesser General Public
  122788. - License along with the GNU C Library; if not, write to the Free
  122789. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122790. - 02111-1307 USA. */
  122791. + License along with the GNU C Library; if not, see
  122792. + <http://www.gnu.org/licenses/>. */
  122793. #include <pthread.h>
  122794. #include <stdio.h>
  122795. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel10.c uClibc-git/test/nptl/tst-cancel10.c
  122796. --- uClibc-0.9.33.2/test/nptl/tst-cancel10.c 2012-05-15 09:20:09.000000000 +0200
  122797. +++ uClibc-git/test/nptl/tst-cancel10.c 2014-06-02 17:40:35.290719047 +0200
  122798. @@ -13,9 +13,8 @@
  122799. Lesser General Public License for more details.
  122800. You should have received a copy of the GNU Lesser General Public
  122801. - License along with the GNU C Library; if not, write to the Free
  122802. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122803. - 02111-1307 USA. */
  122804. + License along with the GNU C Library; if not, see
  122805. + <http://www.gnu.org/licenses/>. */
  122806. #include <pthread.h>
  122807. #include <stdio.h>
  122808. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel11.c uClibc-git/test/nptl/tst-cancel11.c
  122809. --- uClibc-0.9.33.2/test/nptl/tst-cancel11.c 2012-05-15 09:20:09.000000000 +0200
  122810. +++ uClibc-git/test/nptl/tst-cancel11.c 2014-06-02 17:40:35.290719047 +0200
  122811. @@ -13,9 +13,8 @@
  122812. Lesser General Public License for more details.
  122813. You should have received a copy of the GNU Lesser General Public
  122814. - License along with the GNU C Library; if not, write to the Free
  122815. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122816. - 02111-1307 USA. */
  122817. + License along with the GNU C Library; if not, see
  122818. + <http://www.gnu.org/licenses/>. */
  122819. #include <errno.h>
  122820. #include <pthread.h>
  122821. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel12.c uClibc-git/test/nptl/tst-cancel12.c
  122822. --- uClibc-0.9.33.2/test/nptl/tst-cancel12.c 2012-05-15 09:20:09.000000000 +0200
  122823. +++ uClibc-git/test/nptl/tst-cancel12.c 2014-06-02 17:40:35.290719047 +0200
  122824. @@ -13,9 +13,8 @@
  122825. Lesser General Public License for more details.
  122826. You should have received a copy of the GNU Lesser General Public
  122827. - License along with the GNU C Library; if not, write to the Free
  122828. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122829. - 02111-1307 USA. */
  122830. + License along with the GNU C Library; if not, see
  122831. + <http://www.gnu.org/licenses/>. */
  122832. #include <errno.h>
  122833. #include <pthread.h>
  122834. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel13.c uClibc-git/test/nptl/tst-cancel13.c
  122835. --- uClibc-0.9.33.2/test/nptl/tst-cancel13.c 2012-05-15 09:20:09.000000000 +0200
  122836. +++ uClibc-git/test/nptl/tst-cancel13.c 2014-06-02 17:40:35.290719047 +0200
  122837. @@ -13,9 +13,8 @@
  122838. Lesser General Public License for more details.
  122839. You should have received a copy of the GNU Lesser General Public
  122840. - License along with the GNU C Library; if not, write to the Free
  122841. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122842. - 02111-1307 USA. */
  122843. + License along with the GNU C Library; if not, see
  122844. + <http://www.gnu.org/licenses/>. */
  122845. #include <errno.h>
  122846. #include <pthread.h>
  122847. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel14.c uClibc-git/test/nptl/tst-cancel14.c
  122848. --- uClibc-0.9.33.2/test/nptl/tst-cancel14.c 2012-05-15 09:20:09.000000000 +0200
  122849. +++ uClibc-git/test/nptl/tst-cancel14.c 2014-06-02 17:40:35.290719047 +0200
  122850. @@ -13,9 +13,8 @@
  122851. Lesser General Public License for more details.
  122852. You should have received a copy of the GNU Lesser General Public
  122853. - License along with the GNU C Library; if not, write to the Free
  122854. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122855. - 02111-1307 USA. */
  122856. + License along with the GNU C Library; if not, see
  122857. + <http://www.gnu.org/licenses/>. */
  122858. #include <errno.h>
  122859. #include <pthread.h>
  122860. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel15.c uClibc-git/test/nptl/tst-cancel15.c
  122861. --- uClibc-0.9.33.2/test/nptl/tst-cancel15.c 2012-05-15 09:20:09.000000000 +0200
  122862. +++ uClibc-git/test/nptl/tst-cancel15.c 2014-06-02 17:40:35.290719047 +0200
  122863. @@ -13,9 +13,8 @@
  122864. Lesser General Public License for more details.
  122865. You should have received a copy of the GNU Lesser General Public
  122866. - License along with the GNU C Library; if not, write to the Free
  122867. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122868. - 02111-1307 USA. */
  122869. + License along with the GNU C Library; if not, see
  122870. + <http://www.gnu.org/licenses/>. */
  122871. #include <errno.h>
  122872. #include <pthread.h>
  122873. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel16.c uClibc-git/test/nptl/tst-cancel16.c
  122874. --- uClibc-0.9.33.2/test/nptl/tst-cancel16.c 2012-05-15 09:20:09.000000000 +0200
  122875. +++ uClibc-git/test/nptl/tst-cancel16.c 2014-06-02 17:40:35.290719047 +0200
  122876. @@ -13,9 +13,8 @@
  122877. Lesser General Public License for more details.
  122878. You should have received a copy of the GNU Lesser General Public
  122879. - License along with the GNU C Library; if not, write to the Free
  122880. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122881. - 02111-1307 USA. */
  122882. + License along with the GNU C Library; if not, see
  122883. + <http://www.gnu.org/licenses/>. */
  122884. #include <errno.h>
  122885. #include <pthread.h>
  122886. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel18.c uClibc-git/test/nptl/tst-cancel18.c
  122887. --- uClibc-0.9.33.2/test/nptl/tst-cancel18.c 2012-05-15 09:20:09.000000000 +0200
  122888. +++ uClibc-git/test/nptl/tst-cancel18.c 2014-06-02 17:40:35.290719047 +0200
  122889. @@ -13,9 +13,8 @@
  122890. Lesser General Public License for more details.
  122891. You should have received a copy of the GNU Lesser General Public
  122892. - License along with the GNU C Library; if not, write to the Free
  122893. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122894. - 02111-1307 USA. */
  122895. + License along with the GNU C Library; if not, see
  122896. + <http://www.gnu.org/licenses/>. */
  122897. #include <errno.h>
  122898. #include <pthread.h>
  122899. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel19.c uClibc-git/test/nptl/tst-cancel19.c
  122900. --- uClibc-0.9.33.2/test/nptl/tst-cancel19.c 2012-05-15 09:20:09.000000000 +0200
  122901. +++ uClibc-git/test/nptl/tst-cancel19.c 2014-06-02 17:40:35.290719047 +0200
  122902. @@ -13,9 +13,8 @@
  122903. Lesser General Public License for more details.
  122904. You should have received a copy of the GNU Lesser General Public
  122905. - License along with the GNU C Library; if not, write to the Free
  122906. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122907. - 02111-1307 USA. */
  122908. + License along with the GNU C Library; if not, see
  122909. + <http://www.gnu.org/licenses/>. */
  122910. #include <errno.h>
  122911. #include <error.h>
  122912. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel1.c uClibc-git/test/nptl/tst-cancel1.c
  122913. --- uClibc-0.9.33.2/test/nptl/tst-cancel1.c 2012-05-15 09:20:09.000000000 +0200
  122914. +++ uClibc-git/test/nptl/tst-cancel1.c 2014-06-02 17:40:35.290719047 +0200
  122915. @@ -13,9 +13,8 @@
  122916. Lesser General Public License for more details.
  122917. You should have received a copy of the GNU Lesser General Public
  122918. - License along with the GNU C Library; if not, write to the Free
  122919. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122920. - 02111-1307 USA. */
  122921. + License along with the GNU C Library; if not, see
  122922. + <http://www.gnu.org/licenses/>. */
  122923. #include <pthread.h>
  122924. #include <signal.h>
  122925. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel20.c uClibc-git/test/nptl/tst-cancel20.c
  122926. --- uClibc-0.9.33.2/test/nptl/tst-cancel20.c 2012-05-15 09:20:09.000000000 +0200
  122927. +++ uClibc-git/test/nptl/tst-cancel20.c 2014-06-02 17:40:35.290719047 +0200
  122928. @@ -13,9 +13,8 @@
  122929. Lesser General Public License for more details.
  122930. You should have received a copy of the GNU Lesser General Public
  122931. - License along with the GNU C Library; if not, write to the Free
  122932. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122933. - 02111-1307 USA. */
  122934. + License along with the GNU C Library; if not, see
  122935. + <http://www.gnu.org/licenses/>. */
  122936. #include <errno.h>
  122937. #include <pthread.h>
  122938. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel21.c uClibc-git/test/nptl/tst-cancel21.c
  122939. --- uClibc-0.9.33.2/test/nptl/tst-cancel21.c 2012-05-15 09:20:09.000000000 +0200
  122940. +++ uClibc-git/test/nptl/tst-cancel21.c 2014-06-02 17:40:35.290719047 +0200
  122941. @@ -13,9 +13,8 @@
  122942. Lesser General Public License for more details.
  122943. You should have received a copy of the GNU Lesser General Public
  122944. - License along with the GNU C Library; if not, write to the Free
  122945. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122946. - 02111-1307 USA. */
  122947. + License along with the GNU C Library; if not, see
  122948. + <http://www.gnu.org/licenses/>. */
  122949. #include <errno.h>
  122950. #include <pthread.h>
  122951. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel22.c uClibc-git/test/nptl/tst-cancel22.c
  122952. --- uClibc-0.9.33.2/test/nptl/tst-cancel22.c 2012-05-15 09:20:09.000000000 +0200
  122953. +++ uClibc-git/test/nptl/tst-cancel22.c 2014-06-02 17:40:35.290719047 +0200
  122954. @@ -13,9 +13,8 @@
  122955. Lesser General Public License for more details.
  122956. You should have received a copy of the GNU Lesser General Public
  122957. - License along with the GNU C Library; if not, write to the Free
  122958. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122959. - 02111-1307 USA. */
  122960. + License along with the GNU C Library; if not, see
  122961. + <http://www.gnu.org/licenses/>. */
  122962. #include <errno.h>
  122963. #include <pthread.h>
  122964. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel2.c uClibc-git/test/nptl/tst-cancel2.c
  122965. --- uClibc-0.9.33.2/test/nptl/tst-cancel2.c 2012-05-15 09:20:09.000000000 +0200
  122966. +++ uClibc-git/test/nptl/tst-cancel2.c 2014-06-02 17:40:35.290719047 +0200
  122967. @@ -13,9 +13,8 @@
  122968. Lesser General Public License for more details.
  122969. You should have received a copy of the GNU Lesser General Public
  122970. - License along with the GNU C Library; if not, write to the Free
  122971. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122972. - 02111-1307 USA. */
  122973. + License along with the GNU C Library; if not, see
  122974. + <http://www.gnu.org/licenses/>. */
  122975. #include <pthread.h>
  122976. #include <signal.h>
  122977. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel3.c uClibc-git/test/nptl/tst-cancel3.c
  122978. --- uClibc-0.9.33.2/test/nptl/tst-cancel3.c 2012-05-15 09:20:09.000000000 +0200
  122979. +++ uClibc-git/test/nptl/tst-cancel3.c 2014-06-02 17:40:35.290719047 +0200
  122980. @@ -13,9 +13,8 @@
  122981. Lesser General Public License for more details.
  122982. You should have received a copy of the GNU Lesser General Public
  122983. - License along with the GNU C Library; if not, write to the Free
  122984. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122985. - 02111-1307 USA. */
  122986. + License along with the GNU C Library; if not, see
  122987. + <http://www.gnu.org/licenses/>. */
  122988. #include <pthread.h>
  122989. #include <signal.h>
  122990. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel4.c uClibc-git/test/nptl/tst-cancel4.c
  122991. --- uClibc-0.9.33.2/test/nptl/tst-cancel4.c 2012-05-15 09:20:09.000000000 +0200
  122992. +++ uClibc-git/test/nptl/tst-cancel4.c 2014-06-02 17:40:35.290719047 +0200
  122993. @@ -13,9 +13,8 @@
  122994. Lesser General Public License for more details.
  122995. You should have received a copy of the GNU Lesser General Public
  122996. - License along with the GNU C Library; if not, write to the Free
  122997. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122998. - 02111-1307 USA. */
  122999. + License along with the GNU C Library; if not, see
  123000. + <http://www.gnu.org/licenses/>. */
  123001. /* NOTE: this tests functionality beyond POSIX. POSIX does not allow
  123002. exit to be called more than once. */
  123003. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel6.c uClibc-git/test/nptl/tst-cancel6.c
  123004. --- uClibc-0.9.33.2/test/nptl/tst-cancel6.c 2012-05-15 09:20:09.000000000 +0200
  123005. +++ uClibc-git/test/nptl/tst-cancel6.c 2014-06-02 17:40:35.290719047 +0200
  123006. @@ -13,9 +13,8 @@
  123007. Lesser General Public License for more details.
  123008. You should have received a copy of the GNU Lesser General Public
  123009. - License along with the GNU C Library; if not, write to the Free
  123010. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123011. - 02111-1307 USA. */
  123012. + License along with the GNU C Library; if not, see
  123013. + <http://www.gnu.org/licenses/>. */
  123014. #include <pthread.h>
  123015. #include <stdio.h>
  123016. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel7.c uClibc-git/test/nptl/tst-cancel7.c
  123017. --- uClibc-0.9.33.2/test/nptl/tst-cancel7.c 2012-05-15 09:20:09.000000000 +0200
  123018. +++ uClibc-git/test/nptl/tst-cancel7.c 2014-06-02 17:40:35.290719047 +0200
  123019. @@ -13,9 +13,8 @@
  123020. Lesser General Public License for more details.
  123021. You should have received a copy of the GNU Lesser General Public
  123022. - License along with the GNU C Library; if not, write to the Free
  123023. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123024. - 02111-1307 USA. */
  123025. + License along with the GNU C Library; if not, see
  123026. + <http://www.gnu.org/licenses/>. */
  123027. #include <errno.h>
  123028. #include <fcntl.h>
  123029. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel8.c uClibc-git/test/nptl/tst-cancel8.c
  123030. --- uClibc-0.9.33.2/test/nptl/tst-cancel8.c 2012-05-15 09:20:09.000000000 +0200
  123031. +++ uClibc-git/test/nptl/tst-cancel8.c 2014-06-02 17:40:35.290719047 +0200
  123032. @@ -13,9 +13,8 @@
  123033. Lesser General Public License for more details.
  123034. You should have received a copy of the GNU Lesser General Public
  123035. - License along with the GNU C Library; if not, write to the Free
  123036. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123037. - 02111-1307 USA. */
  123038. + License along with the GNU C Library; if not, see
  123039. + <http://www.gnu.org/licenses/>. */
  123040. #include <pthread.h>
  123041. #include <stdio.h>
  123042. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel9.c uClibc-git/test/nptl/tst-cancel9.c
  123043. --- uClibc-0.9.33.2/test/nptl/tst-cancel9.c 2012-05-15 09:20:09.000000000 +0200
  123044. +++ uClibc-git/test/nptl/tst-cancel9.c 2014-06-02 17:40:35.290719047 +0200
  123045. @@ -13,9 +13,8 @@
  123046. Lesser General Public License for more details.
  123047. You should have received a copy of the GNU Lesser General Public
  123048. - License along with the GNU C Library; if not, write to the Free
  123049. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123050. - 02111-1307 USA. */
  123051. + License along with the GNU C Library; if not, see
  123052. + <http://www.gnu.org/licenses/>. */
  123053. #include <fcntl.h>
  123054. #include <pthread.h>
  123055. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cleanup0.c uClibc-git/test/nptl/tst-cleanup0.c
  123056. --- uClibc-0.9.33.2/test/nptl/tst-cleanup0.c 2012-05-15 09:20:09.000000000 +0200
  123057. +++ uClibc-git/test/nptl/tst-cleanup0.c 2014-06-02 17:40:35.294719069 +0200
  123058. @@ -13,9 +13,8 @@
  123059. Lesser General Public License for more details.
  123060. You should have received a copy of the GNU Lesser General Public
  123061. - License along with the GNU C Library; if not, write to the Free
  123062. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123063. - 02111-1307 USA. */
  123064. + License along with the GNU C Library; if not, see
  123065. + <http://www.gnu.org/licenses/>. */
  123066. #include <pthread.h>
  123067. #include <stdio.h>
  123068. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cleanup1.c uClibc-git/test/nptl/tst-cleanup1.c
  123069. --- uClibc-0.9.33.2/test/nptl/tst-cleanup1.c 2012-05-15 09:20:09.000000000 +0200
  123070. +++ uClibc-git/test/nptl/tst-cleanup1.c 2014-06-02 17:40:35.294719069 +0200
  123071. @@ -13,9 +13,8 @@
  123072. Lesser General Public License for more details.
  123073. You should have received a copy of the GNU Lesser General Public
  123074. - License along with the GNU C Library; if not, write to the Free
  123075. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123076. - 02111-1307 USA. */
  123077. + License along with the GNU C Library; if not, see
  123078. + <http://www.gnu.org/licenses/>. */
  123079. #include <pthread.h>
  123080. #include <stdio.h>
  123081. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cleanup2.c uClibc-git/test/nptl/tst-cleanup2.c
  123082. --- uClibc-0.9.33.2/test/nptl/tst-cleanup2.c 2012-05-15 09:20:09.000000000 +0200
  123083. +++ uClibc-git/test/nptl/tst-cleanup2.c 2014-06-02 17:40:35.294719069 +0200
  123084. @@ -13,9 +13,8 @@
  123085. Lesser General Public License for more details.
  123086. You should have received a copy of the GNU Lesser General Public
  123087. - License along with the GNU C Library; if not, write to the Free
  123088. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123089. - 02111-1307 USA. */
  123090. + License along with the GNU C Library; if not, see
  123091. + <http://www.gnu.org/licenses/>. */
  123092. #include <setjmp.h>
  123093. #include <signal.h>
  123094. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cleanup3.c uClibc-git/test/nptl/tst-cleanup3.c
  123095. --- uClibc-0.9.33.2/test/nptl/tst-cleanup3.c 2012-05-15 09:20:09.000000000 +0200
  123096. +++ uClibc-git/test/nptl/tst-cleanup3.c 2014-06-02 17:40:35.294719069 +0200
  123097. @@ -13,9 +13,8 @@
  123098. Lesser General Public License for more details.
  123099. You should have received a copy of the GNU Lesser General Public
  123100. - License along with the GNU C Library; if not, write to the Free
  123101. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123102. - 02111-1307 USA. */
  123103. + License along with the GNU C Library; if not, see
  123104. + <http://www.gnu.org/licenses/>. */
  123105. #include <pthread.h>
  123106. #include <stdio.h>
  123107. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cleanup4aux.c uClibc-git/test/nptl/tst-cleanup4aux.c
  123108. --- uClibc-0.9.33.2/test/nptl/tst-cleanup4aux.c 2012-05-15 09:20:09.000000000 +0200
  123109. +++ uClibc-git/test/nptl/tst-cleanup4aux.c 2014-06-02 17:40:35.294719069 +0200
  123110. @@ -13,9 +13,8 @@
  123111. Lesser General Public License for more details.
  123112. You should have received a copy of the GNU Lesser General Public
  123113. - License along with the GNU C Library; if not, write to the Free
  123114. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123115. - 02111-1307 USA. */
  123116. + License along with the GNU C Library; if not, see
  123117. + <http://www.gnu.org/licenses/>. */
  123118. #include <pthread.h>
  123119. #include <stdio.h>
  123120. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cleanup4.c uClibc-git/test/nptl/tst-cleanup4.c
  123121. --- uClibc-0.9.33.2/test/nptl/tst-cleanup4.c 2012-05-15 09:20:09.000000000 +0200
  123122. +++ uClibc-git/test/nptl/tst-cleanup4.c 2014-06-02 17:40:35.294719069 +0200
  123123. @@ -13,9 +13,8 @@
  123124. Lesser General Public License for more details.
  123125. You should have received a copy of the GNU Lesser General Public
  123126. - License along with the GNU C Library; if not, write to the Free
  123127. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123128. - 02111-1307 USA. */
  123129. + License along with the GNU C Library; if not, see
  123130. + <http://www.gnu.org/licenses/>. */
  123131. #include <pthread.h>
  123132. #include <stdio.h>
  123133. diff -Nur uClibc-0.9.33.2/test/nptl/tst-clock1.c uClibc-git/test/nptl/tst-clock1.c
  123134. --- uClibc-0.9.33.2/test/nptl/tst-clock1.c 2012-05-15 09:20:09.000000000 +0200
  123135. +++ uClibc-git/test/nptl/tst-clock1.c 2014-06-02 17:40:35.294719069 +0200
  123136. @@ -13,9 +13,8 @@
  123137. Lesser General Public License for more details.
  123138. You should have received a copy of the GNU Lesser General Public
  123139. - License along with the GNU C Library; if not, write to the Free
  123140. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123141. - 02111-1307 USA. */
  123142. + License along with the GNU C Library; if not, see
  123143. + <http://www.gnu.org/licenses/>. */
  123144. #include <pthread.h>
  123145. #include <stdio.h>
  123146. diff -Nur uClibc-0.9.33.2/test/nptl/tst-clock2.c uClibc-git/test/nptl/tst-clock2.c
  123147. --- uClibc-0.9.33.2/test/nptl/tst-clock2.c 2012-05-15 09:20:09.000000000 +0200
  123148. +++ uClibc-git/test/nptl/tst-clock2.c 2014-06-02 17:40:35.294719069 +0200
  123149. @@ -13,9 +13,8 @@
  123150. Lesser General Public License for more details.
  123151. You should have received a copy of the GNU Lesser General Public
  123152. - License along with the GNU C Library; if not, write to the Free
  123153. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123154. - 02111-1307 USA. */
  123155. + License along with the GNU C Library; if not, see
  123156. + <http://www.gnu.org/licenses/>. */
  123157. #include <errno.h>
  123158. #include <pthread.h>
  123159. diff -Nur uClibc-0.9.33.2/test/nptl/tst-clock.c uClibc-git/test/nptl/tst-clock.c
  123160. --- uClibc-0.9.33.2/test/nptl/tst-clock.c 2012-05-15 09:20:09.000000000 +0200
  123161. +++ uClibc-git/test/nptl/tst-clock.c 2014-06-02 17:40:35.294719069 +0200
  123162. @@ -14,9 +14,8 @@
  123163. Lesser General Public License for more details.
  123164. You should have received a copy of the GNU Lesser General Public
  123165. - License along with the GNU C Library; if not, write to the Free
  123166. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123167. - 02111-1307 USA. */
  123168. + License along with the GNU C Library; if not, see
  123169. + <http://www.gnu.org/licenses/>. */
  123170. #include <stdio.h>
  123171. #include <string.h>
  123172. diff -Nur uClibc-0.9.33.2/test/nptl/tst-clock_nanosleep.c uClibc-git/test/nptl/tst-clock_nanosleep.c
  123173. --- uClibc-0.9.33.2/test/nptl/tst-clock_nanosleep.c 2012-05-15 09:20:09.000000000 +0200
  123174. +++ uClibc-git/test/nptl/tst-clock_nanosleep.c 2014-06-02 17:40:35.294719069 +0200
  123175. @@ -12,9 +12,8 @@
  123176. Lesser General Public License for more details.
  123177. You should have received a copy of the GNU Lesser General Public
  123178. - License along with the GNU C Library; if not, write to the Free
  123179. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123180. - 02111-1307 USA. */
  123181. + License along with the GNU C Library; if not, see
  123182. + <http://www.gnu.org/licenses/>. */
  123183. #include <errno.h>
  123184. #include <stdio.h>
  123185. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond10.c uClibc-git/test/nptl/tst-cond10.c
  123186. --- uClibc-0.9.33.2/test/nptl/tst-cond10.c 2012-05-15 09:20:09.000000000 +0200
  123187. +++ uClibc-git/test/nptl/tst-cond10.c 2014-06-02 17:40:35.294719069 +0200
  123188. @@ -13,9 +13,8 @@
  123189. Lesser General Public License for more details.
  123190. You should have received a copy of the GNU Lesser General Public
  123191. - License along with the GNU C Library; if not, write to the Free
  123192. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123193. - 02111-1307 USA. */
  123194. + License along with the GNU C Library; if not, see
  123195. + <http://www.gnu.org/licenses/>. */
  123196. #include <error.h>
  123197. #include <pthread.h>
  123198. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond11.c uClibc-git/test/nptl/tst-cond11.c
  123199. --- uClibc-0.9.33.2/test/nptl/tst-cond11.c 2012-05-15 09:20:09.000000000 +0200
  123200. +++ uClibc-git/test/nptl/tst-cond11.c 2014-06-02 17:40:35.294719069 +0200
  123201. @@ -13,9 +13,8 @@
  123202. Lesser General Public License for more details.
  123203. You should have received a copy of the GNU Lesser General Public
  123204. - License along with the GNU C Library; if not, write to the Free
  123205. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123206. - 02111-1307 USA. */
  123207. + License along with the GNU C Library; if not, see
  123208. + <http://www.gnu.org/licenses/>. */
  123209. #include <errno.h>
  123210. #include <pthread.h>
  123211. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond12.c uClibc-git/test/nptl/tst-cond12.c
  123212. --- uClibc-0.9.33.2/test/nptl/tst-cond12.c 2012-05-15 09:20:09.000000000 +0200
  123213. +++ uClibc-git/test/nptl/tst-cond12.c 2014-06-02 17:40:35.294719069 +0200
  123214. @@ -13,9 +13,8 @@
  123215. Lesser General Public License for more details.
  123216. You should have received a copy of the GNU Lesser General Public
  123217. - License along with the GNU C Library; if not, write to the Free
  123218. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123219. - 02111-1307 USA. */
  123220. + License along with the GNU C Library; if not, see
  123221. + <http://www.gnu.org/licenses/>. */
  123222. #include <errno.h>
  123223. #include <pthread.h>
  123224. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond14.c uClibc-git/test/nptl/tst-cond14.c
  123225. --- uClibc-0.9.33.2/test/nptl/tst-cond14.c 2012-05-15 09:20:09.000000000 +0200
  123226. +++ uClibc-git/test/nptl/tst-cond14.c 2014-06-02 17:40:35.294719069 +0200
  123227. @@ -13,9 +13,8 @@
  123228. Lesser General Public License for more details.
  123229. You should have received a copy of the GNU Lesser General Public
  123230. - License along with the GNU C Library; if not, write to the Free
  123231. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123232. - 02111-1307 USA. */
  123233. + License along with the GNU C Library; if not, see
  123234. + <http://www.gnu.org/licenses/>. */
  123235. #include <pthread.h>
  123236. #include <stdio.h>
  123237. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond15.c uClibc-git/test/nptl/tst-cond15.c
  123238. --- uClibc-0.9.33.2/test/nptl/tst-cond15.c 2012-05-15 09:20:09.000000000 +0200
  123239. +++ uClibc-git/test/nptl/tst-cond15.c 2014-06-02 17:40:35.294719069 +0200
  123240. @@ -13,9 +13,8 @@
  123241. Lesser General Public License for more details.
  123242. You should have received a copy of the GNU Lesser General Public
  123243. - License along with the GNU C Library; if not, write to the Free
  123244. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123245. - 02111-1307 USA. */
  123246. + License along with the GNU C Library; if not, see
  123247. + <http://www.gnu.org/licenses/>. */
  123248. #include <errno.h>
  123249. #include <pthread.h>
  123250. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond16.c uClibc-git/test/nptl/tst-cond16.c
  123251. --- uClibc-0.9.33.2/test/nptl/tst-cond16.c 2012-05-15 09:20:09.000000000 +0200
  123252. +++ uClibc-git/test/nptl/tst-cond16.c 2014-06-02 17:40:35.294719069 +0200
  123253. @@ -13,9 +13,8 @@
  123254. Lesser General Public License for more details.
  123255. You should have received a copy of the GNU Lesser General Public
  123256. - License along with the GNU C Library; if not, write to the Free
  123257. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123258. - 02111-1307 USA. */
  123259. + License along with the GNU C Library; if not, see
  123260. + <http://www.gnu.org/licenses/>. */
  123261. #include <errno.h>
  123262. #include <pthread.h>
  123263. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond18.c uClibc-git/test/nptl/tst-cond18.c
  123264. --- uClibc-0.9.33.2/test/nptl/tst-cond18.c 2012-05-15 09:20:09.000000000 +0200
  123265. +++ uClibc-git/test/nptl/tst-cond18.c 2014-06-02 17:40:35.294719069 +0200
  123266. @@ -13,9 +13,8 @@
  123267. Lesser General Public License for more details.
  123268. You should have received a copy of the GNU Lesser General Public
  123269. - License along with the GNU C Library; if not, write to the Free
  123270. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123271. - 02111-1307 USA. */
  123272. + License along with the GNU C Library; if not, see
  123273. + <http://www.gnu.org/licenses/>. */
  123274. #include <errno.h>
  123275. #include <fcntl.h>
  123276. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond19.c uClibc-git/test/nptl/tst-cond19.c
  123277. --- uClibc-0.9.33.2/test/nptl/tst-cond19.c 2012-05-15 09:20:09.000000000 +0200
  123278. +++ uClibc-git/test/nptl/tst-cond19.c 2014-06-02 17:40:35.294719069 +0200
  123279. @@ -13,9 +13,8 @@
  123280. Lesser General Public License for more details.
  123281. You should have received a copy of the GNU Lesser General Public
  123282. - License along with the GNU C Library; if not, write to the Free
  123283. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123284. - 02111-1307 USA. */
  123285. + License along with the GNU C Library; if not, see
  123286. + <http://www.gnu.org/licenses/>. */
  123287. #include <errno.h>
  123288. #include <pthread.h>
  123289. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond1.c uClibc-git/test/nptl/tst-cond1.c
  123290. --- uClibc-0.9.33.2/test/nptl/tst-cond1.c 2012-05-15 09:20:09.000000000 +0200
  123291. +++ uClibc-git/test/nptl/tst-cond1.c 2014-06-02 17:40:35.294719069 +0200
  123292. @@ -13,9 +13,8 @@
  123293. Lesser General Public License for more details.
  123294. You should have received a copy of the GNU Lesser General Public
  123295. - License along with the GNU C Library; if not, write to the Free
  123296. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123297. - 02111-1307 USA. */
  123298. + License along with the GNU C Library; if not, see
  123299. + <http://www.gnu.org/licenses/>. */
  123300. #include <error.h>
  123301. #include <pthread.h>
  123302. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond20.c uClibc-git/test/nptl/tst-cond20.c
  123303. --- uClibc-0.9.33.2/test/nptl/tst-cond20.c 2012-05-15 09:20:09.000000000 +0200
  123304. +++ uClibc-git/test/nptl/tst-cond20.c 2014-06-02 17:40:35.294719069 +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-cond23.c uClibc-git/test/nptl/tst-cond23.c
  123316. --- uClibc-0.9.33.2/test/nptl/tst-cond23.c 2012-05-15 09:20:09.000000000 +0200
  123317. +++ uClibc-git/test/nptl/tst-cond23.c 2014-06-02 17:40:35.294719069 +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-cond2.c uClibc-git/test/nptl/tst-cond2.c
  123329. --- uClibc-0.9.33.2/test/nptl/tst-cond2.c 2012-05-15 09:20:09.000000000 +0200
  123330. +++ uClibc-git/test/nptl/tst-cond2.c 2014-06-02 17:40:35.294719069 +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 <error.h>
  123340. #include <pthread.h>
  123341. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond3.c uClibc-git/test/nptl/tst-cond3.c
  123342. --- uClibc-0.9.33.2/test/nptl/tst-cond3.c 2012-05-15 09:20:09.000000000 +0200
  123343. +++ uClibc-git/test/nptl/tst-cond3.c 2014-06-02 17:40:35.294719069 +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 <pthread.h>
  123353. #include <stdio.h>
  123354. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond4.c uClibc-git/test/nptl/tst-cond4.c
  123355. --- uClibc-0.9.33.2/test/nptl/tst-cond4.c 2012-05-15 09:20:09.000000000 +0200
  123356. +++ uClibc-git/test/nptl/tst-cond4.c 2014-06-02 17:40:35.294719069 +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-cond5.c uClibc-git/test/nptl/tst-cond5.c
  123368. --- uClibc-0.9.33.2/test/nptl/tst-cond5.c 2012-05-15 09:20:09.000000000 +0200
  123369. +++ uClibc-git/test/nptl/tst-cond5.c 2014-06-02 17:40:35.294719069 +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-cond6.c uClibc-git/test/nptl/tst-cond6.c
  123381. --- uClibc-0.9.33.2/test/nptl/tst-cond6.c 2012-05-15 09:20:09.000000000 +0200
  123382. +++ uClibc-git/test/nptl/tst-cond6.c 2014-06-02 17:40:35.294719069 +0200
  123383. @@ -13,9 +13,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 <pthread.h>
  123393. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond7.c uClibc-git/test/nptl/tst-cond7.c
  123394. --- uClibc-0.9.33.2/test/nptl/tst-cond7.c 2012-05-15 09:20:09.000000000 +0200
  123395. +++ uClibc-git/test/nptl/tst-cond7.c 2014-06-02 17:40:35.294719069 +0200
  123396. @@ -13,9 +13,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 <pthread.h>
  123406. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond8.c uClibc-git/test/nptl/tst-cond8.c
  123407. --- uClibc-0.9.33.2/test/nptl/tst-cond8.c 2012-05-15 09:20:09.000000000 +0200
  123408. +++ uClibc-git/test/nptl/tst-cond8.c 2014-06-02 17:40:35.294719069 +0200
  123409. @@ -13,9 +13,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 <errno.h>
  123418. #include <pthread.h>
  123419. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond9.c uClibc-git/test/nptl/tst-cond9.c
  123420. --- uClibc-0.9.33.2/test/nptl/tst-cond9.c 2012-05-15 09:20:09.000000000 +0200
  123421. +++ uClibc-git/test/nptl/tst-cond9.c 2014-06-02 17:40:35.294719069 +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. #include <errno.h>
  123431. #include <pthread.h>
  123432. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cpuclock1.c uClibc-git/test/nptl/tst-cpuclock1.c
  123433. --- uClibc-0.9.33.2/test/nptl/tst-cpuclock1.c 2012-05-15 09:20:09.000000000 +0200
  123434. +++ uClibc-git/test/nptl/tst-cpuclock1.c 2014-06-02 17:40:35.294719069 +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 <stdio.h>
  123444. #include <stdlib.h>
  123445. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cpuclock2.c uClibc-git/test/nptl/tst-cpuclock2.c
  123446. --- uClibc-0.9.33.2/test/nptl/tst-cpuclock2.c 2012-05-15 09:20:09.000000000 +0200
  123447. +++ uClibc-git/test/nptl/tst-cpuclock2.c 2014-06-02 17:40:35.294719069 +0200
  123448. @@ -13,9 +13,8 @@
  123449. Lesser General Public License for more details.
  123450. You should have received a copy of the GNU Lesser General Public
  123451. - License along with the GNU C Library; if not, write to the Free
  123452. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123453. - 02111-1307 USA. */
  123454. + License along with the GNU C Library; if not, see
  123455. + <http://www.gnu.org/licenses/>. */
  123456. #include <unistd.h>
  123457. diff -Nur uClibc-0.9.33.2/test/nptl/tst-detach1.c uClibc-git/test/nptl/tst-detach1.c
  123458. --- uClibc-0.9.33.2/test/nptl/tst-detach1.c 2012-05-15 09:20:09.000000000 +0200
  123459. +++ uClibc-git/test/nptl/tst-detach1.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-eintr1.c uClibc-git/test/nptl/tst-eintr1.c
  123471. --- uClibc-0.9.33.2/test/nptl/tst-eintr1.c 2012-05-15 09:20:09.000000000 +0200
  123472. +++ uClibc-git/test/nptl/tst-eintr1.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-eintr2.c uClibc-git/test/nptl/tst-eintr2.c
  123484. --- uClibc-0.9.33.2/test/nptl/tst-eintr2.c 2012-05-15 09:20:09.000000000 +0200
  123485. +++ uClibc-git/test/nptl/tst-eintr2.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-eintr3.c uClibc-git/test/nptl/tst-eintr3.c
  123497. --- uClibc-0.9.33.2/test/nptl/tst-eintr3.c 2012-05-15 09:20:09.000000000 +0200
  123498. +++ uClibc-git/test/nptl/tst-eintr3.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-eintr4.c uClibc-git/test/nptl/tst-eintr4.c
  123510. --- uClibc-0.9.33.2/test/nptl/tst-eintr4.c 2012-05-15 09:20:09.000000000 +0200
  123511. +++ uClibc-git/test/nptl/tst-eintr4.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-eintr5.c uClibc-git/test/nptl/tst-eintr5.c
  123523. --- uClibc-0.9.33.2/test/nptl/tst-eintr5.c 2012-05-15 09:20:09.000000000 +0200
  123524. +++ uClibc-git/test/nptl/tst-eintr5.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-exec2.c uClibc-git/test/nptl/tst-exec2.c
  123536. --- uClibc-0.9.33.2/test/nptl/tst-exec2.c 2012-05-15 09:20:09.000000000 +0200
  123537. +++ uClibc-git/test/nptl/tst-exec2.c 2014-06-02 17:40:35.298719091 +0200
  123538. @@ -14,9 +14,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 <errno.h>
  123547. #include <paths.h>
  123548. diff -Nur uClibc-0.9.33.2/test/nptl/tst-exec3.c uClibc-git/test/nptl/tst-exec3.c
  123549. --- uClibc-0.9.33.2/test/nptl/tst-exec3.c 2012-05-15 09:20:09.000000000 +0200
  123550. +++ uClibc-git/test/nptl/tst-exec3.c 2014-06-02 17:40:35.298719091 +0200
  123551. @@ -14,9 +14,8 @@
  123552. Lesser General Public License for more details.
  123553. You should have received a copy of the GNU Lesser General Public
  123554. - License along with the GNU C Library; if not, write to the Free
  123555. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123556. - 02111-1307 USA. */
  123557. + License along with the GNU C Library; if not, see
  123558. + <http://www.gnu.org/licenses/>. */
  123559. #include <errno.h>
  123560. #include <paths.h>
  123561. diff -Nur uClibc-0.9.33.2/test/nptl/tst-exec4.c uClibc-git/test/nptl/tst-exec4.c
  123562. --- uClibc-0.9.33.2/test/nptl/tst-exec4.c 2012-05-15 09:20:09.000000000 +0200
  123563. +++ uClibc-git/test/nptl/tst-exec4.c 2014-06-02 17:40:35.298719091 +0200
  123564. @@ -14,9 +14,8 @@
  123565. Lesser General Public License for more details.
  123566. You should have received a copy of the GNU Lesser General Public
  123567. - License along with the GNU C Library; if not, write to the Free
  123568. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123569. - 02111-1307 USA. */
  123570. + License along with the GNU C Library; if not, see
  123571. + <http://www.gnu.org/licenses/>. */
  123572. #include <pthread.h>
  123573. #include <signal.h>
  123574. diff -Nur uClibc-0.9.33.2/test/nptl/tst-exit1.c uClibc-git/test/nptl/tst-exit1.c
  123575. --- uClibc-0.9.33.2/test/nptl/tst-exit1.c 2012-05-15 09:20:09.000000000 +0200
  123576. +++ uClibc-git/test/nptl/tst-exit1.c 2014-06-02 17:40:35.298719091 +0200
  123577. @@ -13,9 +13,8 @@
  123578. Lesser General Public License for more details.
  123579. You should have received a copy of the GNU Lesser General Public
  123580. - License along with the GNU C Library; if not, write to the Free
  123581. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123582. - 02111-1307 USA. */
  123583. + License along with the GNU C Library; if not, see
  123584. + <http://www.gnu.org/licenses/>. */
  123585. /* NOTE: this tests functionality beyond POSIX. POSIX does not allow
  123586. exit to be called more than once. */
  123587. diff -Nur uClibc-0.9.33.2/test/nptl/tst-fini1.c uClibc-git/test/nptl/tst-fini1.c
  123588. --- uClibc-0.9.33.2/test/nptl/tst-fini1.c 2012-05-15 09:20:09.000000000 +0200
  123589. +++ uClibc-git/test/nptl/tst-fini1.c 2014-06-02 17:40:35.298719091 +0200
  123590. @@ -13,9 +13,8 @@
  123591. Lesser General Public License for more details.
  123592. You should have received a copy of the GNU Lesser General Public
  123593. - License along with the GNU C Library; if not, write to the Free
  123594. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123595. - 02111-1307 USA. */
  123596. + License along with the GNU C Library; if not, see
  123597. + <http://www.gnu.org/licenses/>. */
  123598. #include <unistd.h>
  123599. diff -Nur uClibc-0.9.33.2/test/nptl/tst-fini1mod.c uClibc-git/test/nptl/tst-fini1mod.c
  123600. --- uClibc-0.9.33.2/test/nptl/tst-fini1mod.c 2012-05-15 09:20:09.000000000 +0200
  123601. +++ uClibc-git/test/nptl/tst-fini1mod.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 <pthread.h>
  123611. #include <stdio.h>
  123612. diff -Nur uClibc-0.9.33.2/test/nptl/tst-flock1.c uClibc-git/test/nptl/tst-flock1.c
  123613. --- uClibc-0.9.33.2/test/nptl/tst-flock1.c 2012-05-15 09:20:09.000000000 +0200
  123614. +++ uClibc-git/test/nptl/tst-flock1.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 <pthread.h>
  123624. #include <stdio.h>
  123625. diff -Nur uClibc-0.9.33.2/test/nptl/tst-flock2.c uClibc-git/test/nptl/tst-flock2.c
  123626. --- uClibc-0.9.33.2/test/nptl/tst-flock2.c 2012-05-15 09:20:09.000000000 +0200
  123627. +++ uClibc-git/test/nptl/tst-flock2.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 <errno.h>
  123637. #include <pthread.h>
  123638. diff -Nur uClibc-0.9.33.2/test/nptl/tst-fork1.c uClibc-git/test/nptl/tst-fork1.c
  123639. --- uClibc-0.9.33.2/test/nptl/tst-fork1.c 2012-05-15 09:20:09.000000000 +0200
  123640. +++ uClibc-git/test/nptl/tst-fork1.c 2014-06-02 17:40:35.298719091 +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 <errno.h>
  123650. #include <pthread.h>
  123651. diff -Nur uClibc-0.9.33.2/test/nptl/tst-fork2.c uClibc-git/test/nptl/tst-fork2.c
  123652. --- uClibc-0.9.33.2/test/nptl/tst-fork2.c 2012-05-15 09:20:09.000000000 +0200
  123653. +++ uClibc-git/test/nptl/tst-fork2.c 2014-06-02 17:40:35.298719091 +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 <errno.h>
  123663. #include <pthread.h>
  123664. diff -Nur uClibc-0.9.33.2/test/nptl/tst-fork3.c uClibc-git/test/nptl/tst-fork3.c
  123665. --- uClibc-0.9.33.2/test/nptl/tst-fork3.c 2012-05-15 09:20:09.000000000 +0200
  123666. +++ uClibc-git/test/nptl/tst-fork3.c 2014-06-02 17:40:35.298719091 +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 <errno.h>
  123676. #include <pthread.h>
  123677. diff -Nur uClibc-0.9.33.2/test/nptl/tst-fork4.c uClibc-git/test/nptl/tst-fork4.c
  123678. --- uClibc-0.9.33.2/test/nptl/tst-fork4.c 2012-05-15 09:20:09.000000000 +0200
  123679. +++ uClibc-git/test/nptl/tst-fork4.c 2014-06-02 17:40:35.298719091 +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-initializers1.c uClibc-git/test/nptl/tst-initializers1.c
  123691. --- uClibc-0.9.33.2/test/nptl/tst-initializers1.c 2012-05-15 09:20:09.000000000 +0200
  123692. +++ uClibc-git/test/nptl/tst-initializers1.c 2014-06-02 17:40:35.298719091 +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 <pthread.h>
  123702. diff -Nur uClibc-0.9.33.2/test/nptl/tst-join1.c uClibc-git/test/nptl/tst-join1.c
  123703. --- uClibc-0.9.33.2/test/nptl/tst-join1.c 2012-05-15 09:20:09.000000000 +0200
  123704. +++ uClibc-git/test/nptl/tst-join1.c 2014-06-02 17:40:35.298719091 +0200
  123705. @@ -13,9 +13,8 @@
  123706. Lesser General Public License for more details.
  123707. You should have received a copy of the GNU Lesser General Public
  123708. - License along with the GNU C Library; if not, write to the Free
  123709. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123710. - 02111-1307 USA. */
  123711. + License along with the GNU C Library; if not, see
  123712. + <http://www.gnu.org/licenses/>. */
  123713. #include <pthread.h>
  123714. #include <stdio.h>
  123715. diff -Nur uClibc-0.9.33.2/test/nptl/tst-join2.c uClibc-git/test/nptl/tst-join2.c
  123716. --- uClibc-0.9.33.2/test/nptl/tst-join2.c 2012-05-15 09:20:09.000000000 +0200
  123717. +++ uClibc-git/test/nptl/tst-join2.c 2014-06-02 17:40:35.298719091 +0200
  123718. @@ -13,9 +13,8 @@
  123719. Lesser General Public License for more details.
  123720. You should have received a copy of the GNU Lesser General Public
  123721. - License along with the GNU C Library; if not, write to the Free
  123722. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123723. - 02111-1307 USA. */
  123724. + License along with the GNU C Library; if not, see
  123725. + <http://www.gnu.org/licenses/>. */
  123726. #include <errno.h>
  123727. #include <pthread.h>
  123728. diff -Nur uClibc-0.9.33.2/test/nptl/tst-join3.c uClibc-git/test/nptl/tst-join3.c
  123729. --- uClibc-0.9.33.2/test/nptl/tst-join3.c 2012-05-15 09:20:09.000000000 +0200
  123730. +++ uClibc-git/test/nptl/tst-join3.c 2014-06-02 17:40:35.298719091 +0200
  123731. @@ -13,9 +13,8 @@
  123732. Lesser General Public License for more details.
  123733. You should have received a copy of the GNU Lesser General Public
  123734. - License along with the GNU C Library; if not, write to the Free
  123735. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123736. - 02111-1307 USA. */
  123737. + License along with the GNU C Library; if not, see
  123738. + <http://www.gnu.org/licenses/>. */
  123739. #include <errno.h>
  123740. #include <pthread.h>
  123741. diff -Nur uClibc-0.9.33.2/test/nptl/tst-join4.c uClibc-git/test/nptl/tst-join4.c
  123742. --- uClibc-0.9.33.2/test/nptl/tst-join4.c 2012-05-15 09:20:09.000000000 +0200
  123743. +++ uClibc-git/test/nptl/tst-join4.c 2014-06-02 17:40:35.298719091 +0200
  123744. @@ -13,9 +13,8 @@
  123745. Lesser General Public License for more details.
  123746. You should have received a copy of the GNU Lesser General Public
  123747. - License along with the GNU C Library; if not, write to the Free
  123748. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123749. - 02111-1307 USA. */
  123750. + License along with the GNU C Library; if not, see
  123751. + <http://www.gnu.org/licenses/>. */
  123752. #include <errno.h>
  123753. #include <pthread.h>
  123754. diff -Nur uClibc-0.9.33.2/test/nptl/tst-join5.c uClibc-git/test/nptl/tst-join5.c
  123755. --- uClibc-0.9.33.2/test/nptl/tst-join5.c 2012-05-15 09:20:09.000000000 +0200
  123756. +++ uClibc-git/test/nptl/tst-join5.c 2014-06-02 17:40:35.298719091 +0200
  123757. @@ -13,9 +13,8 @@
  123758. Lesser General Public License for more details.
  123759. You should have received a copy of the GNU Lesser General Public
  123760. - License along with the GNU C Library; if not, write to the Free
  123761. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123762. - 02111-1307 USA. */
  123763. + License along with the GNU C Library; if not, see
  123764. + <http://www.gnu.org/licenses/>. */
  123765. #include <errno.h>
  123766. #include <pthread.h>
  123767. diff -Nur uClibc-0.9.33.2/test/nptl/tst-key1.c uClibc-git/test/nptl/tst-key1.c
  123768. --- uClibc-0.9.33.2/test/nptl/tst-key1.c 2012-05-15 09:20:09.000000000 +0200
  123769. +++ uClibc-git/test/nptl/tst-key1.c 2014-06-02 17:40:35.298719091 +0200
  123770. @@ -13,9 +13,8 @@
  123771. Lesser General Public License for more details.
  123772. You should have received a copy of the GNU Lesser General Public
  123773. - License along with the GNU C Library; if not, write to the Free
  123774. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123775. - 02111-1307 USA. */
  123776. + License along with the GNU C Library; if not, see
  123777. + <http://www.gnu.org/licenses/>. */
  123778. #include <limits.h>
  123779. #include <pthread.h>
  123780. diff -Nur uClibc-0.9.33.2/test/nptl/tst-key2.c uClibc-git/test/nptl/tst-key2.c
  123781. --- uClibc-0.9.33.2/test/nptl/tst-key2.c 2012-05-15 09:20:09.000000000 +0200
  123782. +++ uClibc-git/test/nptl/tst-key2.c 2014-06-02 17:40:35.298719091 +0200
  123783. @@ -13,9 +13,8 @@
  123784. Lesser General Public License for more details.
  123785. You should have received a copy of the GNU Lesser General Public
  123786. - License along with the GNU C Library; if not, write to the Free
  123787. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123788. - 02111-1307 USA. */
  123789. + License along with the GNU C Library; if not, see
  123790. + <http://www.gnu.org/licenses/>. */
  123791. #include <pthread.h>
  123792. #include <stdio.h>
  123793. diff -Nur uClibc-0.9.33.2/test/nptl/tst-key3.c uClibc-git/test/nptl/tst-key3.c
  123794. --- uClibc-0.9.33.2/test/nptl/tst-key3.c 2012-05-15 09:20:09.000000000 +0200
  123795. +++ uClibc-git/test/nptl/tst-key3.c 2014-06-02 17:40:35.302719114 +0200
  123796. @@ -13,9 +13,8 @@
  123797. Lesser General Public License for more details.
  123798. You should have received a copy of the GNU Lesser General Public
  123799. - License along with the GNU C Library; if not, write to the Free
  123800. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123801. - 02111-1307 USA. */
  123802. + License along with the GNU C Library; if not, see
  123803. + <http://www.gnu.org/licenses/>. */
  123804. #include <pthread.h>
  123805. #include <stdio.h>
  123806. diff -Nur uClibc-0.9.33.2/test/nptl/tst-key4.c uClibc-git/test/nptl/tst-key4.c
  123807. --- uClibc-0.9.33.2/test/nptl/tst-key4.c 2012-05-15 09:20:09.000000000 +0200
  123808. +++ uClibc-git/test/nptl/tst-key4.c 2014-06-02 17:40:35.302719114 +0200
  123809. @@ -13,9 +13,8 @@
  123810. Lesser General Public License for more details.
  123811. You should have received a copy of the GNU Lesser General Public
  123812. - License along with the GNU C Library; if not, write to the Free
  123813. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123814. - 02111-1307 USA. */
  123815. + License along with the GNU C Library; if not, see
  123816. + <http://www.gnu.org/licenses/>. */
  123817. #include <limits.h>
  123818. #include <pthread.h>
  123819. diff -Nur uClibc-0.9.33.2/test/nptl/tst-kill1.c uClibc-git/test/nptl/tst-kill1.c
  123820. --- uClibc-0.9.33.2/test/nptl/tst-kill1.c 2012-05-15 09:20:09.000000000 +0200
  123821. +++ uClibc-git/test/nptl/tst-kill1.c 2014-06-02 17:40:35.302719114 +0200
  123822. @@ -13,9 +13,8 @@
  123823. Lesser General Public License for more details.
  123824. You should have received a copy of the GNU Lesser General Public
  123825. - License along with the GNU C Library; if not, write to the Free
  123826. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123827. - 02111-1307 USA. */
  123828. + License along with the GNU C Library; if not, see
  123829. + <http://www.gnu.org/licenses/>. */
  123830. #include <pthread.h>
  123831. #include <signal.h>
  123832. diff -Nur uClibc-0.9.33.2/test/nptl/tst-kill2.c uClibc-git/test/nptl/tst-kill2.c
  123833. --- uClibc-0.9.33.2/test/nptl/tst-kill2.c 2012-05-15 09:20:09.000000000 +0200
  123834. +++ uClibc-git/test/nptl/tst-kill2.c 2014-06-02 17:40:35.302719114 +0200
  123835. @@ -13,9 +13,8 @@
  123836. Lesser General Public License for more details.
  123837. You should have received a copy of the GNU Lesser General Public
  123838. - License along with the GNU C Library; if not, write to the Free
  123839. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123840. - 02111-1307 USA. */
  123841. + License along with the GNU C Library; if not, see
  123842. + <http://www.gnu.org/licenses/>. */
  123843. #include <errno.h>
  123844. #include <pthread.h>
  123845. diff -Nur uClibc-0.9.33.2/test/nptl/tst-kill3.c uClibc-git/test/nptl/tst-kill3.c
  123846. --- uClibc-0.9.33.2/test/nptl/tst-kill3.c 2012-05-15 09:20:09.000000000 +0200
  123847. +++ uClibc-git/test/nptl/tst-kill3.c 2014-06-02 17:40:35.302719114 +0200
  123848. @@ -13,9 +13,8 @@
  123849. Lesser General Public License for more details.
  123850. You should have received a copy of the GNU Lesser General Public
  123851. - License along with the GNU C Library; if not, write to the Free
  123852. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123853. - 02111-1307 USA. */
  123854. + License along with the GNU C Library; if not, see
  123855. + <http://www.gnu.org/licenses/>. */
  123856. #include <errno.h>
  123857. #include <pthread.h>
  123858. diff -Nur uClibc-0.9.33.2/test/nptl/tst-kill4.c uClibc-git/test/nptl/tst-kill4.c
  123859. --- uClibc-0.9.33.2/test/nptl/tst-kill4.c 2012-05-15 09:20:09.000000000 +0200
  123860. +++ uClibc-git/test/nptl/tst-kill4.c 2014-06-02 17:40:35.302719114 +0200
  123861. @@ -13,9 +13,8 @@
  123862. Lesser General Public License for more details.
  123863. You should have received a copy of the GNU Lesser General Public
  123864. - License along with the GNU C Library; if not, write to the Free
  123865. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123866. - 02111-1307 USA. */
  123867. + License along with the GNU C Library; if not, see
  123868. + <http://www.gnu.org/licenses/>. */
  123869. #include <errno.h>
  123870. #include <pthread.h>
  123871. diff -Nur uClibc-0.9.33.2/test/nptl/tst-kill5.c uClibc-git/test/nptl/tst-kill5.c
  123872. --- uClibc-0.9.33.2/test/nptl/tst-kill5.c 2012-05-15 09:20:09.000000000 +0200
  123873. +++ uClibc-git/test/nptl/tst-kill5.c 2014-06-02 17:40:35.302719114 +0200
  123874. @@ -13,9 +13,8 @@
  123875. Lesser General Public License for more details.
  123876. You should have received a copy of the GNU Lesser General Public
  123877. - License along with the GNU C Library; if not, write to the Free
  123878. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123879. - 02111-1307 USA. */
  123880. + License along with the GNU C Library; if not, see
  123881. + <http://www.gnu.org/licenses/>. */
  123882. #include <errno.h>
  123883. #include <pthread.h>
  123884. diff -Nur uClibc-0.9.33.2/test/nptl/tst-kill6.c uClibc-git/test/nptl/tst-kill6.c
  123885. --- uClibc-0.9.33.2/test/nptl/tst-kill6.c 2012-05-15 09:20:09.000000000 +0200
  123886. +++ uClibc-git/test/nptl/tst-kill6.c 2014-06-02 17:40:35.302719114 +0200
  123887. @@ -13,9 +13,8 @@
  123888. Lesser General Public License for more details.
  123889. You should have received a copy of the GNU Lesser General Public
  123890. - License along with the GNU C Library; if not, write to the Free
  123891. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123892. - 02111-1307 USA. */
  123893. + License along with the GNU C Library; if not, see
  123894. + <http://www.gnu.org/licenses/>. */
  123895. #include <errno.h>
  123896. #include <pthread.h>
  123897. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue1.c uClibc-git/test/nptl/tst-mqueue1.c
  123898. --- uClibc-0.9.33.2/test/nptl/tst-mqueue1.c 2012-05-15 09:20:09.000000000 +0200
  123899. +++ uClibc-git/test/nptl/tst-mqueue1.c 2014-06-02 17:40:35.302719114 +0200
  123900. @@ -14,9 +14,8 @@
  123901. Lesser General Public License for more details.
  123902. You should have received a copy of the GNU Lesser General Public
  123903. - License along with the GNU C Library; if not, write to the Free
  123904. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123905. - 02111-1307 USA. */
  123906. + License along with the GNU C Library; if not, see
  123907. + <http://www.gnu.org/licenses/>. */
  123908. #include <errno.h>
  123909. #include <fcntl.h>
  123910. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue2.c uClibc-git/test/nptl/tst-mqueue2.c
  123911. --- uClibc-0.9.33.2/test/nptl/tst-mqueue2.c 2012-05-15 09:20:09.000000000 +0200
  123912. +++ uClibc-git/test/nptl/tst-mqueue2.c 2014-06-02 17:40:35.302719114 +0200
  123913. @@ -14,9 +14,8 @@
  123914. Lesser General Public License for more details.
  123915. You should have received a copy of the GNU Lesser General Public
  123916. - License along with the GNU C Library; if not, write to the Free
  123917. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123918. - 02111-1307 USA. */
  123919. + License along with the GNU C Library; if not, see
  123920. + <http://www.gnu.org/licenses/>. */
  123921. #include <errno.h>
  123922. #include <fcntl.h>
  123923. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue3.c uClibc-git/test/nptl/tst-mqueue3.c
  123924. --- uClibc-0.9.33.2/test/nptl/tst-mqueue3.c 2012-05-15 09:20:09.000000000 +0200
  123925. +++ uClibc-git/test/nptl/tst-mqueue3.c 2014-06-02 17:40:35.302719114 +0200
  123926. @@ -14,9 +14,8 @@
  123927. Lesser General Public License for more details.
  123928. You should have received a copy of the GNU Lesser General Public
  123929. - License along with the GNU C Library; if not, write to the Free
  123930. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123931. - 02111-1307 USA. */
  123932. + License along with the GNU C Library; if not, see
  123933. + <http://www.gnu.org/licenses/>. */
  123934. #include <errno.h>
  123935. #include <mqueue.h>
  123936. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue4.c uClibc-git/test/nptl/tst-mqueue4.c
  123937. --- uClibc-0.9.33.2/test/nptl/tst-mqueue4.c 2012-05-15 09:20:09.000000000 +0200
  123938. +++ uClibc-git/test/nptl/tst-mqueue4.c 2014-06-02 17:40:35.302719114 +0200
  123939. @@ -14,9 +14,8 @@
  123940. Lesser General Public License for more details.
  123941. You should have received a copy of the GNU Lesser General Public
  123942. - License along with the GNU C Library; if not, write to the Free
  123943. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123944. - 02111-1307 USA. */
  123945. + License along with the GNU C Library; if not, see
  123946. + <http://www.gnu.org/licenses/>. */
  123947. #include <errno.h>
  123948. #include <fcntl.h>
  123949. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue5.c uClibc-git/test/nptl/tst-mqueue5.c
  123950. --- uClibc-0.9.33.2/test/nptl/tst-mqueue5.c 2012-05-15 09:20:09.000000000 +0200
  123951. +++ uClibc-git/test/nptl/tst-mqueue5.c 2014-06-02 17:40:35.302719114 +0200
  123952. @@ -14,9 +14,8 @@
  123953. Lesser General Public License for more details.
  123954. You should have received a copy of the GNU Lesser General Public
  123955. - License along with the GNU C Library; if not, write to the Free
  123956. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123957. - 02111-1307 USA. */
  123958. + License along with the GNU C Library; if not, see
  123959. + <http://www.gnu.org/licenses/>. */
  123960. #include <errno.h>
  123961. #include <fcntl.h>
  123962. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue6.c uClibc-git/test/nptl/tst-mqueue6.c
  123963. --- uClibc-0.9.33.2/test/nptl/tst-mqueue6.c 2012-05-15 09:20:09.000000000 +0200
  123964. +++ uClibc-git/test/nptl/tst-mqueue6.c 2014-06-02 17:40:35.302719114 +0200
  123965. @@ -14,9 +14,8 @@
  123966. Lesser General Public License for more details.
  123967. You should have received a copy of the GNU Lesser General Public
  123968. - License along with the GNU C Library; if not, write to the Free
  123969. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123970. - 02111-1307 USA. */
  123971. + License along with the GNU C Library; if not, see
  123972. + <http://www.gnu.org/licenses/>. */
  123973. #include <errno.h>
  123974. #include <fcntl.h>
  123975. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue7.c uClibc-git/test/nptl/tst-mqueue7.c
  123976. --- uClibc-0.9.33.2/test/nptl/tst-mqueue7.c 2012-05-15 09:20:09.000000000 +0200
  123977. +++ uClibc-git/test/nptl/tst-mqueue7.c 2014-06-02 17:40:35.302719114 +0200
  123978. @@ -14,9 +14,8 @@
  123979. Lesser General Public License for more details.
  123980. You should have received a copy of the GNU Lesser General Public
  123981. - License along with the GNU C Library; if not, write to the Free
  123982. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123983. - 02111-1307 USA. */
  123984. + License along with the GNU C Library; if not, see
  123985. + <http://www.gnu.org/licenses/>. */
  123986. #include <errno.h>
  123987. #include <fcntl.h>
  123988. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue8.c uClibc-git/test/nptl/tst-mqueue8.c
  123989. --- uClibc-0.9.33.2/test/nptl/tst-mqueue8.c 2012-05-15 09:20:09.000000000 +0200
  123990. +++ uClibc-git/test/nptl/tst-mqueue8.c 2014-06-02 17:40:35.302719114 +0200
  123991. @@ -13,9 +13,8 @@
  123992. Lesser General Public License for more details.
  123993. You should have received a copy of the GNU Lesser General Public
  123994. - License along with the GNU C Library; if not, write to the Free
  123995. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123996. - 02111-1307 USA. */
  123997. + License along with the GNU C Library; if not, see
  123998. + <http://www.gnu.org/licenses/>. */
  123999. #include <errno.h>
  124000. #include <mqueue.h>
  124001. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue9.c uClibc-git/test/nptl/tst-mqueue9.c
  124002. --- uClibc-0.9.33.2/test/nptl/tst-mqueue9.c 2012-05-15 09:20:09.000000000 +0200
  124003. +++ uClibc-git/test/nptl/tst-mqueue9.c 2014-06-02 17:40:35.302719114 +0200
  124004. @@ -13,9 +13,8 @@
  124005. Lesser General Public License for more details.
  124006. You should have received a copy of the GNU Lesser General Public
  124007. - License along with the GNU C Library; if not, write to the Free
  124008. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124009. - 02111-1307 USA. */
  124010. + License along with the GNU C Library; if not, see
  124011. + <http://www.gnu.org/licenses/>. */
  124012. #include <errno.h>
  124013. #include <mqueue.h>
  124014. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue.h uClibc-git/test/nptl/tst-mqueue.h
  124015. --- uClibc-0.9.33.2/test/nptl/tst-mqueue.h 2012-05-15 09:20:09.000000000 +0200
  124016. +++ uClibc-git/test/nptl/tst-mqueue.h 2014-06-02 17:40:35.302719114 +0200
  124017. @@ -14,9 +14,8 @@
  124018. Lesser General Public License for more details.
  124019. You should have received a copy of the GNU Lesser General Public
  124020. - License along with the GNU C Library; if not, write to the Free
  124021. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124022. - 02111-1307 USA. */
  124023. + License along with the GNU C Library; if not, see
  124024. + <http://www.gnu.org/licenses/>. */
  124025. #include <mqueue.h>
  124026. #include <search.h>
  124027. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex1.c uClibc-git/test/nptl/tst-mutex1.c
  124028. --- uClibc-0.9.33.2/test/nptl/tst-mutex1.c 2012-05-15 09:20:09.000000000 +0200
  124029. +++ uClibc-git/test/nptl/tst-mutex1.c 2014-06-02 17:40:35.302719114 +0200
  124030. @@ -13,9 +13,8 @@
  124031. Lesser General Public License for more details.
  124032. You should have received a copy of the GNU Lesser General Public
  124033. - License along with the GNU C Library; if not, write to the Free
  124034. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124035. - 02111-1307 USA. */
  124036. + License along with the GNU C Library; if not, see
  124037. + <http://www.gnu.org/licenses/>. */
  124038. #include <pthread.h>
  124039. #include <stdio.h>
  124040. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex2.c uClibc-git/test/nptl/tst-mutex2.c
  124041. --- uClibc-0.9.33.2/test/nptl/tst-mutex2.c 2012-05-15 09:20:09.000000000 +0200
  124042. +++ uClibc-git/test/nptl/tst-mutex2.c 2014-06-02 17:40:35.302719114 +0200
  124043. @@ -13,9 +13,8 @@
  124044. Lesser General Public License for more details.
  124045. You should have received a copy of the GNU Lesser General Public
  124046. - License along with the GNU C Library; if not, write to the Free
  124047. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124048. - 02111-1307 USA. */
  124049. + License along with the GNU C Library; if not, see
  124050. + <http://www.gnu.org/licenses/>. */
  124051. #include <errno.h>
  124052. #include <pthread.h>
  124053. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex3.c uClibc-git/test/nptl/tst-mutex3.c
  124054. --- uClibc-0.9.33.2/test/nptl/tst-mutex3.c 2012-05-15 09:20:09.000000000 +0200
  124055. +++ uClibc-git/test/nptl/tst-mutex3.c 2014-06-02 17:40:35.302719114 +0200
  124056. @@ -13,9 +13,8 @@
  124057. Lesser General Public License for more details.
  124058. You should have received a copy of the GNU Lesser General Public
  124059. - License along with the GNU C Library; if not, write to the Free
  124060. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124061. - 02111-1307 USA. */
  124062. + License along with the GNU C Library; if not, see
  124063. + <http://www.gnu.org/licenses/>. */
  124064. #include <errno.h>
  124065. #include <pthread.h>
  124066. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex4.c uClibc-git/test/nptl/tst-mutex4.c
  124067. --- uClibc-0.9.33.2/test/nptl/tst-mutex4.c 2012-05-15 09:20:09.000000000 +0200
  124068. +++ uClibc-git/test/nptl/tst-mutex4.c 2014-06-02 17:40:35.302719114 +0200
  124069. @@ -13,9 +13,8 @@
  124070. Lesser General Public License for more details.
  124071. You should have received a copy of the GNU Lesser General Public
  124072. - License along with the GNU C Library; if not, write to the Free
  124073. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124074. - 02111-1307 USA. */
  124075. + License along with the GNU C Library; if not, see
  124076. + <http://www.gnu.org/licenses/>. */
  124077. #include <errno.h>
  124078. #include <pthread.h>
  124079. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex5.c uClibc-git/test/nptl/tst-mutex5.c
  124080. --- uClibc-0.9.33.2/test/nptl/tst-mutex5.c 2012-05-15 09:20:09.000000000 +0200
  124081. +++ uClibc-git/test/nptl/tst-mutex5.c 2014-06-02 17:40:35.302719114 +0200
  124082. @@ -13,9 +13,8 @@
  124083. Lesser General Public License for more details.
  124084. You should have received a copy of the GNU Lesser General Public
  124085. - License along with the GNU C Library; if not, write to the Free
  124086. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124087. - 02111-1307 USA. */
  124088. + License along with the GNU C Library; if not, see
  124089. + <http://www.gnu.org/licenses/>. */
  124090. #include <errno.h>
  124091. #include <pthread.h>
  124092. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex6.c uClibc-git/test/nptl/tst-mutex6.c
  124093. --- uClibc-0.9.33.2/test/nptl/tst-mutex6.c 2012-05-15 09:20:09.000000000 +0200
  124094. +++ uClibc-git/test/nptl/tst-mutex6.c 2014-06-02 17:40:35.302719114 +0200
  124095. @@ -13,9 +13,8 @@
  124096. Lesser General Public License for more details.
  124097. You should have received a copy of the GNU Lesser General Public
  124098. - License along with the GNU C Library; if not, write to the Free
  124099. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124100. - 02111-1307 USA. */
  124101. + License along with the GNU C Library; if not, see
  124102. + <http://www.gnu.org/licenses/>. */
  124103. #include <pthread.h>
  124104. #include <signal.h>
  124105. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex7.c uClibc-git/test/nptl/tst-mutex7.c
  124106. --- uClibc-0.9.33.2/test/nptl/tst-mutex7.c 2012-05-15 09:20:09.000000000 +0200
  124107. +++ uClibc-git/test/nptl/tst-mutex7.c 2014-06-02 17:40:35.302719114 +0200
  124108. @@ -13,9 +13,8 @@
  124109. Lesser General Public License for more details.
  124110. You should have received a copy of the GNU Lesser General Public
  124111. - License along with the GNU C Library; if not, write to the Free
  124112. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124113. - 02111-1307 USA. */
  124114. + License along with the GNU C Library; if not, see
  124115. + <http://www.gnu.org/licenses/>. */
  124116. #include <pthread.h>
  124117. #include <stdio.h>
  124118. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex8.c uClibc-git/test/nptl/tst-mutex8.c
  124119. --- uClibc-0.9.33.2/test/nptl/tst-mutex8.c 2012-05-15 09:20:09.000000000 +0200
  124120. +++ uClibc-git/test/nptl/tst-mutex8.c 2014-06-02 17:40:35.302719114 +0200
  124121. @@ -13,9 +13,8 @@
  124122. Lesser General Public License for more details.
  124123. You should have received a copy of the GNU Lesser General Public
  124124. - License along with the GNU C Library; if not, write to the Free
  124125. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124126. - 02111-1307 USA. */
  124127. + License along with the GNU C Library; if not, see
  124128. + <http://www.gnu.org/licenses/>. */
  124129. /* This test checks behavior not required by POSIX. */
  124130. #include <errno.h>
  124131. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex9.c uClibc-git/test/nptl/tst-mutex9.c
  124132. --- uClibc-0.9.33.2/test/nptl/tst-mutex9.c 2012-05-15 09:20:09.000000000 +0200
  124133. +++ uClibc-git/test/nptl/tst-mutex9.c 2014-06-02 17:40:35.302719114 +0200
  124134. @@ -13,9 +13,8 @@
  124135. Lesser General Public License for more details.
  124136. You should have received a copy of the GNU Lesser General Public
  124137. - License along with the GNU C Library; if not, write to the Free
  124138. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124139. - 02111-1307 USA. */
  124140. + License along with the GNU C Library; if not, see
  124141. + <http://www.gnu.org/licenses/>. */
  124142. #include <errno.h>
  124143. #include <pthread.h>
  124144. diff -Nur uClibc-0.9.33.2/test/nptl/tst-once1.c uClibc-git/test/nptl/tst-once1.c
  124145. --- uClibc-0.9.33.2/test/nptl/tst-once1.c 2012-05-15 09:20:09.000000000 +0200
  124146. +++ uClibc-git/test/nptl/tst-once1.c 2014-06-02 17:40:35.302719114 +0200
  124147. @@ -13,9 +13,8 @@
  124148. Lesser General Public License for more details.
  124149. You should have received a copy of the GNU Lesser General Public
  124150. - License along with the GNU C Library; if not, write to the Free
  124151. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124152. - 02111-1307 USA. */
  124153. + License along with the GNU C Library; if not, see
  124154. + <http://www.gnu.org/licenses/>. */
  124155. #include <pthread.h>
  124156. #include <stdio.h>
  124157. diff -Nur uClibc-0.9.33.2/test/nptl/tst-once2.c uClibc-git/test/nptl/tst-once2.c
  124158. --- uClibc-0.9.33.2/test/nptl/tst-once2.c 2012-05-15 09:20:09.000000000 +0200
  124159. +++ uClibc-git/test/nptl/tst-once2.c 2014-06-02 17:40:35.302719114 +0200
  124160. @@ -13,9 +13,8 @@
  124161. Lesser General Public License for more details.
  124162. You should have received a copy of the GNU Lesser General Public
  124163. - License along with the GNU C Library; if not, write to the Free
  124164. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124165. - 02111-1307 USA. */
  124166. + License along with the GNU C Library; if not, see
  124167. + <http://www.gnu.org/licenses/>. */
  124168. #include <pthread.h>
  124169. #include <stdio.h>
  124170. diff -Nur uClibc-0.9.33.2/test/nptl/tst-once3.c uClibc-git/test/nptl/tst-once3.c
  124171. --- uClibc-0.9.33.2/test/nptl/tst-once3.c 2012-05-15 09:20:09.000000000 +0200
  124172. +++ uClibc-git/test/nptl/tst-once3.c 2014-06-02 17:40:35.302719114 +0200
  124173. @@ -13,9 +13,8 @@
  124174. Lesser General Public License for more details.
  124175. You should have received a copy of the GNU Lesser General Public
  124176. - License along with the GNU C Library; if not, write to the Free
  124177. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124178. - 02111-1307 USA. */
  124179. + License along with the GNU C Library; if not, see
  124180. + <http://www.gnu.org/licenses/>. */
  124181. #include <pthread.h>
  124182. #include <stdio.h>
  124183. diff -Nur uClibc-0.9.33.2/test/nptl/tst-once4.c uClibc-git/test/nptl/tst-once4.c
  124184. --- uClibc-0.9.33.2/test/nptl/tst-once4.c 2012-05-15 09:20:09.000000000 +0200
  124185. +++ uClibc-git/test/nptl/tst-once4.c 2014-06-02 17:40:35.302719114 +0200
  124186. @@ -13,9 +13,8 @@
  124187. Lesser General Public License for more details.
  124188. You should have received a copy of the GNU Lesser General Public
  124189. - License along with the GNU C Library; if not, write to the Free
  124190. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124191. - 02111-1307 USA. */
  124192. + License along with the GNU C Library; if not, see
  124193. + <http://www.gnu.org/licenses/>. */
  124194. #include <pthread.h>
  124195. #include <stdio.h>
  124196. diff -Nur uClibc-0.9.33.2/test/nptl/tst-popen1.c uClibc-git/test/nptl/tst-popen1.c
  124197. --- uClibc-0.9.33.2/test/nptl/tst-popen1.c 2012-05-15 09:20:09.000000000 +0200
  124198. +++ uClibc-git/test/nptl/tst-popen1.c 2014-06-02 17:40:35.302719114 +0200
  124199. @@ -13,9 +13,8 @@
  124200. Lesser General Public License for more details.
  124201. You should have received a copy of the GNU Lesser General Public
  124202. - License along with the GNU C Library; if not, write to the Free
  124203. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124204. - 02111-1307 USA. */
  124205. + License along with the GNU C Library; if not, see
  124206. + <http://www.gnu.org/licenses/>. */
  124207. #include <errno.h>
  124208. #include <error.h>
  124209. diff -Nur uClibc-0.9.33.2/test/nptl/tst-raise1.c uClibc-git/test/nptl/tst-raise1.c
  124210. --- uClibc-0.9.33.2/test/nptl/tst-raise1.c 2012-05-15 09:20:09.000000000 +0200
  124211. +++ uClibc-git/test/nptl/tst-raise1.c 2014-06-02 17:40:35.302719114 +0200
  124212. @@ -13,9 +13,8 @@
  124213. Lesser General Public License for more details.
  124214. You should have received a copy of the GNU Lesser General Public
  124215. - License along with the GNU C Library; if not, write to the Free
  124216. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124217. - 02111-1307 USA. */
  124218. + License along with the GNU C Library; if not, see
  124219. + <http://www.gnu.org/licenses/>. */
  124220. #include <errno.h>
  124221. #include <error.h>
  124222. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock10.c uClibc-git/test/nptl/tst-rwlock10.c
  124223. --- uClibc-0.9.33.2/test/nptl/tst-rwlock10.c 2012-05-15 09:20:09.000000000 +0200
  124224. +++ uClibc-git/test/nptl/tst-rwlock10.c 2014-06-02 17:40:35.302719114 +0200
  124225. @@ -13,9 +13,8 @@
  124226. Lesser General Public License for more details.
  124227. You should have received a copy of the GNU Lesser General Public
  124228. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  124229. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  124230. - Boston, MA 02111-1307, USA. */
  124231. + License along with the GNU C Library; see the file COPYING.LIB. If
  124232. + not, see <http://www.gnu.org/licenses/>. */
  124233. #define INIT PTHREAD_RWLOCK_INITIALIZER
  124234. #include "tst-rwlock8.c"
  124235. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock11.c uClibc-git/test/nptl/tst-rwlock11.c
  124236. --- uClibc-0.9.33.2/test/nptl/tst-rwlock11.c 2012-05-15 09:20:09.000000000 +0200
  124237. +++ uClibc-git/test/nptl/tst-rwlock11.c 2014-06-02 17:40:35.302719114 +0200
  124238. @@ -13,9 +13,8 @@
  124239. Lesser General Public License for more details.
  124240. You should have received a copy of the GNU Lesser General Public
  124241. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  124242. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  124243. - Boston, MA 02111-1307, USA. */
  124244. + License along with the GNU C Library; see the file COPYING.LIB. If
  124245. + not, see <http://www.gnu.org/licenses/>. */
  124246. #define INIT PTHREAD_RWLOCK_INITIALIZER
  124247. #include "tst-rwlock9.c"
  124248. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock12.c uClibc-git/test/nptl/tst-rwlock12.c
  124249. --- uClibc-0.9.33.2/test/nptl/tst-rwlock12.c 2012-05-15 09:20:09.000000000 +0200
  124250. +++ uClibc-git/test/nptl/tst-rwlock12.c 2014-06-02 17:40:35.302719114 +0200
  124251. @@ -13,9 +13,8 @@
  124252. Lesser General Public License for more details.
  124253. You should have received a copy of the GNU Lesser General Public
  124254. - License along with the GNU C Library; if not, write to the Free
  124255. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124256. - 02111-1307 USA. */
  124257. + License along with the GNU C Library; if not, see
  124258. + <http://www.gnu.org/licenses/>. */
  124259. #include <errno.h>
  124260. #include <pthread.h>
  124261. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock13.c uClibc-git/test/nptl/tst-rwlock13.c
  124262. --- uClibc-0.9.33.2/test/nptl/tst-rwlock13.c 2012-05-15 09:20:09.000000000 +0200
  124263. +++ uClibc-git/test/nptl/tst-rwlock13.c 2014-06-02 17:40:35.302719114 +0200
  124264. @@ -12,9 +12,8 @@
  124265. Lesser General Public License for more details.
  124266. You should have received a copy of the GNU Lesser General Public
  124267. - License along with the GNU C Library; if not, write to the Free
  124268. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124269. - 02111-1307 USA. */
  124270. + License along with the GNU C Library; if not, see
  124271. + <http://www.gnu.org/licenses/>. */
  124272. #include <pthread.h>
  124273. #include <stdio.h>
  124274. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock14.c uClibc-git/test/nptl/tst-rwlock14.c
  124275. --- uClibc-0.9.33.2/test/nptl/tst-rwlock14.c 2012-05-15 09:20:09.000000000 +0200
  124276. +++ uClibc-git/test/nptl/tst-rwlock14.c 2014-06-02 17:40:35.302719114 +0200
  124277. @@ -13,9 +13,8 @@
  124278. Lesser General Public License for more details.
  124279. You should have received a copy of the GNU Lesser General Public
  124280. - License along with the GNU C Library; if not, write to the Free
  124281. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124282. - 02111-1307 USA. */
  124283. + License along with the GNU C Library; if not, see
  124284. + <http://www.gnu.org/licenses/>. */
  124285. #include <errno.h>
  124286. #include <pthread.h>
  124287. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock1.c uClibc-git/test/nptl/tst-rwlock1.c
  124288. --- uClibc-0.9.33.2/test/nptl/tst-rwlock1.c 2012-05-15 09:20:09.000000000 +0200
  124289. +++ uClibc-git/test/nptl/tst-rwlock1.c 2014-06-02 17:40:35.302719114 +0200
  124290. @@ -13,9 +13,8 @@
  124291. Lesser General Public License for more details.
  124292. You should have received a copy of the GNU Lesser General Public
  124293. - License along with the GNU C Library; if not, write to the Free
  124294. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124295. - 02111-1307 USA. */
  124296. + License along with the GNU C Library; if not, see
  124297. + <http://www.gnu.org/licenses/>. */
  124298. #include <pthread.h>
  124299. #include <stdio.h>
  124300. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock2.c uClibc-git/test/nptl/tst-rwlock2.c
  124301. --- uClibc-0.9.33.2/test/nptl/tst-rwlock2.c 2012-05-15 09:20:09.000000000 +0200
  124302. +++ uClibc-git/test/nptl/tst-rwlock2.c 2014-06-02 17:40:35.302719114 +0200
  124303. @@ -13,9 +13,8 @@
  124304. Lesser General Public License for more details.
  124305. You should have received a copy of the GNU Lesser General Public
  124306. - License along with the GNU C Library; if not, write to the Free
  124307. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124308. - 02111-1307 USA. */
  124309. + License along with the GNU C Library; if not, see
  124310. + <http://www.gnu.org/licenses/>. */
  124311. #include <errno.h>
  124312. #include <pthread.h>
  124313. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock3.c uClibc-git/test/nptl/tst-rwlock3.c
  124314. --- uClibc-0.9.33.2/test/nptl/tst-rwlock3.c 2012-05-15 09:20:09.000000000 +0200
  124315. +++ uClibc-git/test/nptl/tst-rwlock3.c 2014-06-02 17:40:35.302719114 +0200
  124316. @@ -13,9 +13,8 @@
  124317. Lesser General Public License for more details.
  124318. You should have received a copy of the GNU Lesser General Public
  124319. - License along with the GNU C Library; if not, write to the Free
  124320. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124321. - 02111-1307 USA. */
  124322. + License along with the GNU C Library; if not, see
  124323. + <http://www.gnu.org/licenses/>. */
  124324. /* This test case checks more than standard compliance. An
  124325. implementation may provide this service but it is not required to
  124326. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock4.c uClibc-git/test/nptl/tst-rwlock4.c
  124327. --- uClibc-0.9.33.2/test/nptl/tst-rwlock4.c 2012-05-15 09:20:09.000000000 +0200
  124328. +++ uClibc-git/test/nptl/tst-rwlock4.c 2014-06-02 17:40:35.302719114 +0200
  124329. @@ -13,9 +13,8 @@
  124330. Lesser General Public License for more details.
  124331. You should have received a copy of the GNU Lesser General Public
  124332. - License along with the GNU C Library; if not, write to the Free
  124333. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124334. - 02111-1307 USA. */
  124335. + License along with the GNU C Library; if not, see
  124336. + <http://www.gnu.org/licenses/>. */
  124337. #include <errno.h>
  124338. #include <pthread.h>
  124339. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock5.c uClibc-git/test/nptl/tst-rwlock5.c
  124340. --- uClibc-0.9.33.2/test/nptl/tst-rwlock5.c 2012-05-15 09:20:09.000000000 +0200
  124341. +++ uClibc-git/test/nptl/tst-rwlock5.c 2014-06-02 17:40:35.302719114 +0200
  124342. @@ -13,9 +13,8 @@
  124343. Lesser General Public License for more details.
  124344. You should have received a copy of the GNU Lesser General Public
  124345. - License along with the GNU C Library; if not, write to the Free
  124346. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124347. - 02111-1307 USA. */
  124348. + License along with the GNU C Library; if not, see
  124349. + <http://www.gnu.org/licenses/>. */
  124350. #include <pthread.h>
  124351. #include <signal.h>
  124352. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock6.c uClibc-git/test/nptl/tst-rwlock6.c
  124353. --- uClibc-0.9.33.2/test/nptl/tst-rwlock6.c 2012-05-15 09:20:09.000000000 +0200
  124354. +++ uClibc-git/test/nptl/tst-rwlock6.c 2014-06-02 17:40:35.302719114 +0200
  124355. @@ -13,9 +13,8 @@
  124356. Lesser General Public License for more details.
  124357. You should have received a copy of the GNU Lesser General Public
  124358. - License along with the GNU C Library; if not, write to the Free
  124359. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124360. - 02111-1307 USA. */
  124361. + License along with the GNU C Library; if not, see
  124362. + <http://www.gnu.org/licenses/>. */
  124363. #include <errno.h>
  124364. #include <pthread.h>
  124365. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock7.c uClibc-git/test/nptl/tst-rwlock7.c
  124366. --- uClibc-0.9.33.2/test/nptl/tst-rwlock7.c 2012-05-15 09:20:09.000000000 +0200
  124367. +++ uClibc-git/test/nptl/tst-rwlock7.c 2014-06-02 17:40:35.302719114 +0200
  124368. @@ -13,9 +13,8 @@
  124369. Lesser General Public License for more details.
  124370. You should have received a copy of the GNU Lesser General Public
  124371. - License along with the GNU C Library; if not, write to the Free
  124372. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124373. - 02111-1307 USA. */
  124374. + License along with the GNU C Library; if not, see
  124375. + <http://www.gnu.org/licenses/>. */
  124376. #include <errno.h>
  124377. #include <pthread.h>
  124378. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock8.c uClibc-git/test/nptl/tst-rwlock8.c
  124379. --- uClibc-0.9.33.2/test/nptl/tst-rwlock8.c 2012-05-15 09:20:09.000000000 +0200
  124380. +++ uClibc-git/test/nptl/tst-rwlock8.c 2014-06-02 17:40:35.302719114 +0200
  124381. @@ -13,9 +13,8 @@
  124382. Lesser General Public License for more details.
  124383. You should have received a copy of the GNU Lesser General Public
  124384. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  124385. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  124386. - Boston, MA 02111-1307, USA. */
  124387. + License along with the GNU C Library; see the file COPYING.LIB. If
  124388. + not, see <http://www.gnu.org/licenses/>. */
  124389. #include <errno.h>
  124390. #include <error.h>
  124391. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock9.c uClibc-git/test/nptl/tst-rwlock9.c
  124392. --- uClibc-0.9.33.2/test/nptl/tst-rwlock9.c 2012-05-15 09:20:09.000000000 +0200
  124393. +++ uClibc-git/test/nptl/tst-rwlock9.c 2014-06-02 17:40:35.302719114 +0200
  124394. @@ -13,9 +13,8 @@
  124395. Lesser General Public License for more details.
  124396. You should have received a copy of the GNU Lesser General Public
  124397. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  124398. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  124399. - Boston, MA 02111-1307, USA. */
  124400. + License along with the GNU C Library; see the file COPYING.LIB. If
  124401. + not, see <http://www.gnu.org/licenses/>. */
  124402. #include <errno.h>
  124403. #include <error.h>
  124404. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sched1.c uClibc-git/test/nptl/tst-sched1.c
  124405. --- uClibc-0.9.33.2/test/nptl/tst-sched1.c 2012-05-15 09:20:09.000000000 +0200
  124406. +++ uClibc-git/test/nptl/tst-sched1.c 2014-06-02 17:40:35.302719114 +0200
  124407. @@ -13,9 +13,8 @@
  124408. Lesser General Public License for more details.
  124409. You should have received a copy of the GNU Lesser General Public
  124410. - License along with the GNU C Library; if not, write to the Free
  124411. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124412. - 02111-1307 USA. */
  124413. + License along with the GNU C Library; if not, see
  124414. + <http://www.gnu.org/licenses/>. */
  124415. #include <pthread.h>
  124416. #include <stdio.h>
  124417. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem10.c uClibc-git/test/nptl/tst-sem10.c
  124418. --- uClibc-0.9.33.2/test/nptl/tst-sem10.c 2012-05-15 09:20:09.000000000 +0200
  124419. +++ uClibc-git/test/nptl/tst-sem10.c 2014-06-02 17:40:35.302719114 +0200
  124420. @@ -13,9 +13,8 @@
  124421. Lesser General Public License for more details.
  124422. You should have received a copy of the GNU Lesser General Public
  124423. - License along with the GNU C Library; if not, write to the Free
  124424. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124425. - 02111-1307 USA. */
  124426. + License along with the GNU C Library; if not, see
  124427. + <http://www.gnu.org/licenses/>. */
  124428. #include <errno.h>
  124429. #include <pthread.h>
  124430. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem1.c uClibc-git/test/nptl/tst-sem1.c
  124431. --- uClibc-0.9.33.2/test/nptl/tst-sem1.c 2012-05-15 09:20:09.000000000 +0200
  124432. +++ uClibc-git/test/nptl/tst-sem1.c 2014-06-02 17:40:35.302719114 +0200
  124433. @@ -13,9 +13,8 @@
  124434. Lesser General Public License for more details.
  124435. You should have received a copy of the GNU Lesser General Public
  124436. - License along with the GNU C Library; if not, write to the Free
  124437. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124438. - 02111-1307 USA. */
  124439. + License along with the GNU C Library; if not, see
  124440. + <http://www.gnu.org/licenses/>. */
  124441. #include <errno.h>
  124442. #include <semaphore.h>
  124443. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem2.c uClibc-git/test/nptl/tst-sem2.c
  124444. --- uClibc-0.9.33.2/test/nptl/tst-sem2.c 2012-05-15 09:20:09.000000000 +0200
  124445. +++ uClibc-git/test/nptl/tst-sem2.c 2014-06-02 17:40:35.306719136 +0200
  124446. @@ -13,9 +13,8 @@
  124447. Lesser General Public License for more details.
  124448. You should have received a copy of the GNU Lesser General Public
  124449. - License along with the GNU C Library; if not, write to the Free
  124450. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124451. - 02111-1307 USA. */
  124452. + License along with the GNU C Library; if not, see
  124453. + <http://www.gnu.org/licenses/>. */
  124454. #include <errno.h>
  124455. #include <semaphore.h>
  124456. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem3.c uClibc-git/test/nptl/tst-sem3.c
  124457. --- uClibc-0.9.33.2/test/nptl/tst-sem3.c 2012-05-15 09:20:09.000000000 +0200
  124458. +++ uClibc-git/test/nptl/tst-sem3.c 2014-06-02 17:40:35.306719136 +0200
  124459. @@ -13,9 +13,8 @@
  124460. Lesser General Public License for more details.
  124461. You should have received a copy of the GNU Lesser General Public
  124462. - License along with the GNU C Library; if not, write to the Free
  124463. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124464. - 02111-1307 USA. */
  124465. + License along with the GNU C Library; if not, see
  124466. + <http://www.gnu.org/licenses/>. */
  124467. #include <errno.h>
  124468. #include <semaphore.h>
  124469. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem4.c uClibc-git/test/nptl/tst-sem4.c
  124470. --- uClibc-0.9.33.2/test/nptl/tst-sem4.c 2012-05-15 09:20:09.000000000 +0200
  124471. +++ uClibc-git/test/nptl/tst-sem4.c 2014-06-02 17:40:35.306719136 +0200
  124472. @@ -13,9 +13,8 @@
  124473. Lesser General Public License for more details.
  124474. You should have received a copy of the GNU Lesser General Public
  124475. - License along with the GNU C Library; if not, write to the Free
  124476. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124477. - 02111-1307 USA. */
  124478. + License along with the GNU C Library; if not, see
  124479. + <http://www.gnu.org/licenses/>. */
  124480. #include <errno.h>
  124481. #include <fcntl.h>
  124482. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem5.c uClibc-git/test/nptl/tst-sem5.c
  124483. --- uClibc-0.9.33.2/test/nptl/tst-sem5.c 2012-05-15 09:20:09.000000000 +0200
  124484. +++ uClibc-git/test/nptl/tst-sem5.c 2014-06-02 17:40:35.306719136 +0200
  124485. @@ -13,9 +13,8 @@
  124486. Lesser General Public License for more details.
  124487. You should have received a copy of the GNU Lesser General Public
  124488. - License along with the GNU C Library; if not, write to the Free
  124489. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124490. - 02111-1307 USA. */
  124491. + License along with the GNU C Library; if not, see
  124492. + <http://www.gnu.org/licenses/>. */
  124493. #include <errno.h>
  124494. #include <semaphore.h>
  124495. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem6.c uClibc-git/test/nptl/tst-sem6.c
  124496. --- uClibc-0.9.33.2/test/nptl/tst-sem6.c 2012-05-15 09:20:09.000000000 +0200
  124497. +++ uClibc-git/test/nptl/tst-sem6.c 2014-06-02 17:40:35.306719136 +0200
  124498. @@ -13,9 +13,8 @@
  124499. Lesser General Public License for more details.
  124500. You should have received a copy of the GNU Lesser General Public
  124501. - License along with the GNU C Library; if not, write to the Free
  124502. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124503. - 02111-1307 USA. */
  124504. + License along with the GNU C Library; if not, see
  124505. + <http://www.gnu.org/licenses/>. */
  124506. #include <errno.h>
  124507. #include <semaphore.h>
  124508. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem7.c uClibc-git/test/nptl/tst-sem7.c
  124509. --- uClibc-0.9.33.2/test/nptl/tst-sem7.c 2012-05-15 09:20:09.000000000 +0200
  124510. +++ uClibc-git/test/nptl/tst-sem7.c 2014-06-02 17:40:35.306719136 +0200
  124511. @@ -13,9 +13,8 @@
  124512. Lesser General Public License for more details.
  124513. You should have received a copy of the GNU Lesser General Public
  124514. - License along with the GNU C Library; if not, write to the Free
  124515. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124516. - 02111-1307 USA. */
  124517. + License along with the GNU C Library; if not, see
  124518. + <http://www.gnu.org/licenses/>. */
  124519. #include <errno.h>
  124520. #include <fcntl.h>
  124521. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem8.c uClibc-git/test/nptl/tst-sem8.c
  124522. --- uClibc-0.9.33.2/test/nptl/tst-sem8.c 2012-05-15 09:20:09.000000000 +0200
  124523. +++ uClibc-git/test/nptl/tst-sem8.c 2014-06-02 17:40:35.306719136 +0200
  124524. @@ -13,9 +13,8 @@
  124525. Lesser General Public License for more details.
  124526. You should have received a copy of the GNU Lesser General Public
  124527. - License along with the GNU C Library; if not, write to the Free
  124528. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124529. - 02111-1307 USA. */
  124530. + License along with the GNU C Library; if not, see
  124531. + <http://www.gnu.org/licenses/>. */
  124532. #include <errno.h>
  124533. #include <fcntl.h>
  124534. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem9.c uClibc-git/test/nptl/tst-sem9.c
  124535. --- uClibc-0.9.33.2/test/nptl/tst-sem9.c 2012-05-15 09:20:09.000000000 +0200
  124536. +++ uClibc-git/test/nptl/tst-sem9.c 2014-06-02 17:40:35.306719136 +0200
  124537. @@ -13,9 +13,8 @@
  124538. Lesser General Public License for more details.
  124539. You should have received a copy of the GNU Lesser General Public
  124540. - License along with the GNU C Library; if not, write to the Free
  124541. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124542. - 02111-1307 USA. */
  124543. + License along with the GNU C Library; if not, see
  124544. + <http://www.gnu.org/licenses/>. */
  124545. #include <errno.h>
  124546. #include <fcntl.h>
  124547. diff -Nur uClibc-0.9.33.2/test/nptl/tst-signal1.c uClibc-git/test/nptl/tst-signal1.c
  124548. --- uClibc-0.9.33.2/test/nptl/tst-signal1.c 2012-05-15 09:20:09.000000000 +0200
  124549. +++ uClibc-git/test/nptl/tst-signal1.c 2014-06-02 17:40:35.306719136 +0200
  124550. @@ -13,9 +13,8 @@
  124551. Lesser General Public License for more details.
  124552. You should have received a copy of the GNU Lesser General Public
  124553. - License along with the GNU C Library; if not, write to the Free
  124554. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124555. - 02111-1307 USA. */
  124556. + License along with the GNU C Library; if not, see
  124557. + <http://www.gnu.org/licenses/>. */
  124558. #include <errno.h>
  124559. #include <pthread.h>
  124560. diff -Nur uClibc-0.9.33.2/test/nptl/tst-signal2.c uClibc-git/test/nptl/tst-signal2.c
  124561. --- uClibc-0.9.33.2/test/nptl/tst-signal2.c 2012-05-15 09:20:09.000000000 +0200
  124562. +++ uClibc-git/test/nptl/tst-signal2.c 2014-06-02 17:40:35.306719136 +0200
  124563. @@ -13,9 +13,8 @@
  124564. Lesser General Public License for more details.
  124565. You should have received a copy of the GNU Lesser General Public
  124566. - License along with the GNU C Library; if not, write to the Free
  124567. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124568. - 02111-1307 USA. */
  124569. + License along with the GNU C Library; if not, see
  124570. + <http://www.gnu.org/licenses/>. */
  124571. #include <errno.h>
  124572. #include <pthread.h>
  124573. diff -Nur uClibc-0.9.33.2/test/nptl/tst-signal3.c uClibc-git/test/nptl/tst-signal3.c
  124574. --- uClibc-0.9.33.2/test/nptl/tst-signal3.c 2012-05-15 09:20:09.000000000 +0200
  124575. +++ uClibc-git/test/nptl/tst-signal3.c 2014-06-02 17:40:35.306719136 +0200
  124576. @@ -13,9 +13,8 @@
  124577. Lesser General Public License for more details.
  124578. You should have received a copy of the GNU Lesser General Public
  124579. - License along with the GNU C Library; if not, write to the Free
  124580. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124581. - 02111-1307 USA. */
  124582. + License along with the GNU C Library; if not, see
  124583. + <http://www.gnu.org/licenses/>. */
  124584. #include <errno.h>
  124585. #include <pthread.h>
  124586. diff -Nur uClibc-0.9.33.2/test/nptl/tst-signal4.c uClibc-git/test/nptl/tst-signal4.c
  124587. --- uClibc-0.9.33.2/test/nptl/tst-signal4.c 2012-05-15 09:20:09.000000000 +0200
  124588. +++ uClibc-git/test/nptl/tst-signal4.c 2014-06-02 17:40:35.306719136 +0200
  124589. @@ -13,9 +13,8 @@
  124590. Lesser General Public License for more details.
  124591. You should have received a copy of the GNU Lesser General Public
  124592. - License along with the GNU C Library; if not, write to the Free
  124593. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124594. - 02111-1307 USA. */
  124595. + License along with the GNU C Library; if not, see
  124596. + <http://www.gnu.org/licenses/>. */
  124597. #include <errno.h>
  124598. #include <pthread.h>
  124599. diff -Nur uClibc-0.9.33.2/test/nptl/tst-signal5.c uClibc-git/test/nptl/tst-signal5.c
  124600. --- uClibc-0.9.33.2/test/nptl/tst-signal5.c 2012-05-15 09:20:09.000000000 +0200
  124601. +++ uClibc-git/test/nptl/tst-signal5.c 2014-06-02 17:40:35.306719136 +0200
  124602. @@ -13,9 +13,8 @@
  124603. Lesser General Public License for more details.
  124604. You should have received a copy of the GNU Lesser General Public
  124605. - License along with the GNU C Library; if not, write to the Free
  124606. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124607. - 02111-1307 USA. */
  124608. + License along with the GNU C Library; if not, see
  124609. + <http://www.gnu.org/licenses/>. */
  124610. #include <errno.h>
  124611. #include <pthread.h>
  124612. diff -Nur uClibc-0.9.33.2/test/nptl/tst-signal6.c uClibc-git/test/nptl/tst-signal6.c
  124613. --- uClibc-0.9.33.2/test/nptl/tst-signal6.c 2012-05-15 09:20:09.000000000 +0200
  124614. +++ uClibc-git/test/nptl/tst-signal6.c 2014-06-02 17:40:35.306719136 +0200
  124615. @@ -13,9 +13,8 @@
  124616. Lesser General Public License for more details.
  124617. You should have received a copy of the GNU Lesser General Public
  124618. - License along with the GNU C Library; if not, write to the Free
  124619. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124620. - 02111-1307 USA. */
  124621. + License along with the GNU C Library; if not, see
  124622. + <http://www.gnu.org/licenses/>. */
  124623. #include <pthread.h>
  124624. #include <signal.h>
  124625. diff -Nur uClibc-0.9.33.2/test/nptl/tst-signal7.c uClibc-git/test/nptl/tst-signal7.c
  124626. --- uClibc-0.9.33.2/test/nptl/tst-signal7.c 2012-05-15 09:20:09.000000000 +0200
  124627. +++ uClibc-git/test/nptl/tst-signal7.c 2014-06-02 17:40:35.306719136 +0200
  124628. @@ -13,9 +13,8 @@
  124629. Lesser General Public License for more details.
  124630. You should have received a copy of the GNU Lesser General Public
  124631. - License along with the GNU C Library; if not, write to the Free
  124632. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124633. - 02111-1307 USA. */
  124634. + License along with the GNU C Library; if not, see
  124635. + <http://www.gnu.org/licenses/>. */
  124636. #include <errno.h>
  124637. #include <pthreadP.h>
  124638. diff -Nur uClibc-0.9.33.2/test/nptl/tst-spin1.c uClibc-git/test/nptl/tst-spin1.c
  124639. --- uClibc-0.9.33.2/test/nptl/tst-spin1.c 2012-05-15 09:20:09.000000000 +0200
  124640. +++ uClibc-git/test/nptl/tst-spin1.c 2014-06-02 17:40:35.306719136 +0200
  124641. @@ -13,9 +13,8 @@
  124642. Lesser General Public License for more details.
  124643. You should have received a copy of the GNU Lesser General Public
  124644. - License along with the GNU C Library; if not, write to the Free
  124645. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124646. - 02111-1307 USA. */
  124647. + License along with the GNU C Library; if not, see
  124648. + <http://www.gnu.org/licenses/>. */
  124649. #include <pthread.h>
  124650. #include <stdio.h>
  124651. diff -Nur uClibc-0.9.33.2/test/nptl/tst-spin2.c uClibc-git/test/nptl/tst-spin2.c
  124652. --- uClibc-0.9.33.2/test/nptl/tst-spin2.c 2012-05-15 09:20:09.000000000 +0200
  124653. +++ uClibc-git/test/nptl/tst-spin2.c 2014-06-02 17:40:35.306719136 +0200
  124654. @@ -13,9 +13,8 @@
  124655. Lesser General Public License for more details.
  124656. You should have received a copy of the GNU Lesser General Public
  124657. - License along with the GNU C Library; if not, write to the Free
  124658. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124659. - 02111-1307 USA. */
  124660. + License along with the GNU C Library; if not, see
  124661. + <http://www.gnu.org/licenses/>. */
  124662. #include <errno.h>
  124663. #include <pthread.h>
  124664. diff -Nur uClibc-0.9.33.2/test/nptl/tst-spin3.c uClibc-git/test/nptl/tst-spin3.c
  124665. --- uClibc-0.9.33.2/test/nptl/tst-spin3.c 2012-05-15 09:20:09.000000000 +0200
  124666. +++ uClibc-git/test/nptl/tst-spin3.c 2014-06-02 17:40:35.306719136 +0200
  124667. @@ -13,9 +13,8 @@
  124668. Lesser General Public License for more details.
  124669. You should have received a copy of the GNU Lesser General Public
  124670. - License along with the GNU C Library; if not, write to the Free
  124671. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124672. - 02111-1307 USA. */
  124673. + License along with the GNU C Library; if not, see
  124674. + <http://www.gnu.org/licenses/>. */
  124675. #include <pthread.h>
  124676. #include <signal.h>
  124677. diff -Nur uClibc-0.9.33.2/test/nptl/tst-stack1.c uClibc-git/test/nptl/tst-stack1.c
  124678. --- uClibc-0.9.33.2/test/nptl/tst-stack1.c 2012-05-15 09:20:09.000000000 +0200
  124679. +++ uClibc-git/test/nptl/tst-stack1.c 2014-06-02 17:40:35.306719136 +0200
  124680. @@ -13,9 +13,8 @@
  124681. Lesser General Public License for more details.
  124682. You should have received a copy of the GNU Lesser General Public
  124683. - License along with the GNU C Library; if not, write to the Free
  124684. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124685. - 02111-1307 USA. */
  124686. + License along with the GNU C Library; if not, see
  124687. + <http://www.gnu.org/licenses/>. */
  124688. #include <limits.h>
  124689. #include <pthread.h>
  124690. diff -Nur uClibc-0.9.33.2/test/nptl/tst-stack2.c uClibc-git/test/nptl/tst-stack2.c
  124691. --- uClibc-0.9.33.2/test/nptl/tst-stack2.c 2012-05-15 09:20:09.000000000 +0200
  124692. +++ uClibc-git/test/nptl/tst-stack2.c 2014-06-02 17:40:35.306719136 +0200
  124693. @@ -13,9 +13,8 @@
  124694. Lesser General Public License for more details.
  124695. You should have received a copy of the GNU Lesser General Public
  124696. - License along with the GNU C Library; if not, write to the Free
  124697. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124698. - 02111-1307 USA. */
  124699. + License along with the GNU C Library; if not, see
  124700. + <http://www.gnu.org/licenses/>. */
  124701. /* Test whether it is possible to create a thread with PTHREAD_STACK_MIN
  124702. stack size. */
  124703. diff -Nur uClibc-0.9.33.2/test/nptl/tst-stack-align.h uClibc-git/test/nptl/tst-stack-align.h
  124704. --- uClibc-0.9.33.2/test/nptl/tst-stack-align.h 2012-05-15 09:20:09.000000000 +0200
  124705. +++ uClibc-git/test/nptl/tst-stack-align.h 2014-06-02 17:40:35.306719136 +0200
  124706. @@ -12,9 +12,8 @@
  124707. Lesser General Public License for more details.
  124708. You should have received a copy of the GNU Lesser General Public
  124709. - License along with the GNU C Library; if not, write to the Free
  124710. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124711. - 02111-1307 USA. */
  124712. + License along with the GNU C Library; if not, see
  124713. + <http://www.gnu.org/licenses/>. */
  124714. #include <stdio.h>
  124715. #include <stdint.h>
  124716. diff -Nur uClibc-0.9.33.2/test/nptl/tst-stdio1.c uClibc-git/test/nptl/tst-stdio1.c
  124717. --- uClibc-0.9.33.2/test/nptl/tst-stdio1.c 2012-05-15 09:20:09.000000000 +0200
  124718. +++ uClibc-git/test/nptl/tst-stdio1.c 2014-06-02 17:40:35.306719136 +0200
  124719. @@ -13,9 +13,8 @@
  124720. Lesser General Public License for more details.
  124721. You should have received a copy of the GNU Lesser General Public
  124722. - License along with the GNU C Library; if not, write to the Free
  124723. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124724. - 02111-1307 USA. */
  124725. + License along with the GNU C Library; if not, see
  124726. + <http://www.gnu.org/licenses/>. */
  124727. #include <pthread.h>
  124728. #include <signal.h>
  124729. diff -Nur uClibc-0.9.33.2/test/nptl/tst-stdio2.c uClibc-git/test/nptl/tst-stdio2.c
  124730. --- uClibc-0.9.33.2/test/nptl/tst-stdio2.c 2012-05-15 09:20:09.000000000 +0200
  124731. +++ uClibc-git/test/nptl/tst-stdio2.c 2014-06-02 17:40:35.306719136 +0200
  124732. @@ -13,9 +13,8 @@
  124733. Lesser General Public License for more details.
  124734. You should have received a copy of the GNU Lesser General Public
  124735. - License along with the GNU C Library; if not, write to the Free
  124736. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124737. - 02111-1307 USA. */
  124738. + License along with the GNU C Library; if not, see
  124739. + <http://www.gnu.org/licenses/>. */
  124740. #include <pthread.h>
  124741. #include <signal.h>
  124742. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sysconf.c uClibc-git/test/nptl/tst-sysconf.c
  124743. --- uClibc-0.9.33.2/test/nptl/tst-sysconf.c 2012-05-15 09:20:09.000000000 +0200
  124744. +++ uClibc-git/test/nptl/tst-sysconf.c 2014-06-02 17:40:35.306719136 +0200
  124745. @@ -13,9 +13,8 @@
  124746. Lesser General Public License for more details.
  124747. You should have received a copy of the GNU Lesser General Public
  124748. - License along with the GNU C Library; if not, write to the Free
  124749. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124750. - 02111-1307 USA. */
  124751. + License along with the GNU C Library; if not, see
  124752. + <http://www.gnu.org/licenses/>. */
  124753. #include <pthread.h>
  124754. #include <stdio.h>
  124755. diff -Nur uClibc-0.9.33.2/test/nptl/tst-timer4.c uClibc-git/test/nptl/tst-timer4.c
  124756. --- uClibc-0.9.33.2/test/nptl/tst-timer4.c 2012-05-15 09:20:09.000000000 +0200
  124757. +++ uClibc-git/test/nptl/tst-timer4.c 2014-06-02 17:40:35.306719136 +0200
  124758. @@ -14,9 +14,8 @@
  124759. Lesser General Public License for more details.
  124760. You should have received a copy of the GNU Lesser General Public
  124761. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  124762. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  124763. - Boston, MA 02111-1307, USA. */
  124764. + License along with the GNU C Library; see the file COPYING.LIB. If
  124765. + not, see <http://www.gnu.org/licenses/>. */
  124766. #include <errno.h>
  124767. #include <signal.h>
  124768. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls1.c uClibc-git/test/nptl/tst-tls1.c
  124769. --- uClibc-0.9.33.2/test/nptl/tst-tls1.c 2012-05-15 09:20:09.000000000 +0200
  124770. +++ uClibc-git/test/nptl/tst-tls1.c 2014-06-02 17:40:35.306719136 +0200
  124771. @@ -13,9 +13,8 @@
  124772. Lesser General Public License for more details.
  124773. You should have received a copy of the GNU Lesser General Public
  124774. - License along with the GNU C Library; if not, write to the Free
  124775. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124776. - 02111-1307 USA. */
  124777. + License along with the GNU C Library; if not, see
  124778. + <http://www.gnu.org/licenses/>. */
  124779. #include <pthread.h>
  124780. #include <stdio.h>
  124781. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls2.c uClibc-git/test/nptl/tst-tls2.c
  124782. --- uClibc-0.9.33.2/test/nptl/tst-tls2.c 2012-05-15 09:20:09.000000000 +0200
  124783. +++ uClibc-git/test/nptl/tst-tls2.c 2014-06-02 17:40:35.306719136 +0200
  124784. @@ -13,9 +13,8 @@
  124785. Lesser General Public License for more details.
  124786. You should have received a copy of the GNU Lesser General Public
  124787. - License along with the GNU C Library; if not, write to the Free
  124788. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124789. - 02111-1307 USA. */
  124790. + License along with the GNU C Library; if not, see
  124791. + <http://www.gnu.org/licenses/>. */
  124792. #include <errno.h>
  124793. #include <pthread.h>
  124794. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls3.c uClibc-git/test/nptl/tst-tls3.c
  124795. --- uClibc-0.9.33.2/test/nptl/tst-tls3.c 2012-05-15 09:20:09.000000000 +0200
  124796. +++ uClibc-git/test/nptl/tst-tls3.c 2014-06-02 17:40:35.306719136 +0200
  124797. @@ -13,9 +13,8 @@
  124798. Lesser General Public License for more details.
  124799. You should have received a copy of the GNU Lesser General Public
  124800. - License along with the GNU C Library; if not, write to the Free
  124801. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124802. - 02111-1307 USA. */
  124803. + License along with the GNU C Library; if not, see
  124804. + <http://www.gnu.org/licenses/>. */
  124805. #include <dlfcn.h>
  124806. #include <errno.h>
  124807. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls3mod.c uClibc-git/test/nptl/tst-tls3mod.c
  124808. --- uClibc-0.9.33.2/test/nptl/tst-tls3mod.c 2012-05-15 09:20:09.000000000 +0200
  124809. +++ uClibc-git/test/nptl/tst-tls3mod.c 2014-06-02 17:40:35.306719136 +0200
  124810. @@ -13,9 +13,8 @@
  124811. Lesser General Public License for more details.
  124812. You should have received a copy of the GNU Lesser General Public
  124813. - License along with the GNU C Library; if not, write to the Free
  124814. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124815. - 02111-1307 USA. */
  124816. + License along with the GNU C Library; if not, see
  124817. + <http://www.gnu.org/licenses/>. */
  124818. #include <pthread.h>
  124819. #include <semaphore.h>
  124820. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls4.c uClibc-git/test/nptl/tst-tls4.c
  124821. --- uClibc-0.9.33.2/test/nptl/tst-tls4.c 2012-05-15 09:20:09.000000000 +0200
  124822. +++ uClibc-git/test/nptl/tst-tls4.c 2014-06-02 17:40:35.306719136 +0200
  124823. @@ -13,9 +13,8 @@
  124824. Lesser General Public License for more details.
  124825. You should have received a copy of the GNU Lesser General Public
  124826. - License along with the GNU C Library; if not, write to the Free
  124827. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124828. - 02111-1307 USA. */
  124829. + License along with the GNU C Library; if not, see
  124830. + <http://www.gnu.org/licenses/>. */
  124831. #include <dlfcn.h>
  124832. #include <errno.h>
  124833. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls4moda.c uClibc-git/test/nptl/tst-tls4moda.c
  124834. --- uClibc-0.9.33.2/test/nptl/tst-tls4moda.c 2012-05-15 09:20:09.000000000 +0200
  124835. +++ uClibc-git/test/nptl/tst-tls4moda.c 2014-06-02 17:40:35.306719136 +0200
  124836. @@ -13,9 +13,8 @@
  124837. Lesser General Public License for more details.
  124838. You should have received a copy of the GNU Lesser General Public
  124839. - License along with the GNU C Library; if not, write to the Free
  124840. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124841. - 02111-1307 USA. */
  124842. + License along with the GNU C Library; if not, see
  124843. + <http://www.gnu.org/licenses/>. */
  124844. #include <stdio.h>
  124845. #include <stdlib.h>
  124846. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls4modb.c uClibc-git/test/nptl/tst-tls4modb.c
  124847. --- uClibc-0.9.33.2/test/nptl/tst-tls4modb.c 2012-05-15 09:20:09.000000000 +0200
  124848. +++ uClibc-git/test/nptl/tst-tls4modb.c 2014-06-02 17:40:35.306719136 +0200
  124849. @@ -13,9 +13,8 @@
  124850. Lesser General Public License for more details.
  124851. You should have received a copy of the GNU Lesser General Public
  124852. - License along with the GNU C Library; if not, write to the Free
  124853. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124854. - 02111-1307 USA. */
  124855. + License along with the GNU C Library; if not, see
  124856. + <http://www.gnu.org/licenses/>. */
  124857. #include <stdio.h>
  124858. #include <stdlib.h>
  124859. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls5.c uClibc-git/test/nptl/tst-tls5.c
  124860. --- uClibc-0.9.33.2/test/nptl/tst-tls5.c 2012-05-15 09:20:09.000000000 +0200
  124861. +++ uClibc-git/test/nptl/tst-tls5.c 2014-06-02 17:40:35.306719136 +0200
  124862. @@ -13,9 +13,8 @@
  124863. Lesser General Public License for more details.
  124864. You should have received a copy of the GNU Lesser General Public
  124865. - License along with the GNU C Library; if not, write to the Free
  124866. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124867. - 02111-1307 USA. */
  124868. + License along with the GNU C Library; if not, see
  124869. + <http://www.gnu.org/licenses/>. */
  124870. /* Check alignment, overlapping and layout of TLS variables. */
  124871. #include <stdint.h>
  124872. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tsd1.c uClibc-git/test/nptl/tst-tsd1.c
  124873. --- uClibc-0.9.33.2/test/nptl/tst-tsd1.c 2012-05-15 09:20:09.000000000 +0200
  124874. +++ uClibc-git/test/nptl/tst-tsd1.c 2014-06-02 17:40:35.306719136 +0200
  124875. @@ -13,9 +13,8 @@
  124876. Lesser General Public License for more details.
  124877. You should have received a copy of the GNU Lesser General Public
  124878. - License along with the GNU C Library; if not, write to the Free
  124879. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124880. - 02111-1307 USA. */
  124881. + License along with the GNU C Library; if not, see
  124882. + <http://www.gnu.org/licenses/>. */
  124883. #include <pthread.h>
  124884. #include <stdio.h>
  124885. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tsd2.c uClibc-git/test/nptl/tst-tsd2.c
  124886. --- uClibc-0.9.33.2/test/nptl/tst-tsd2.c 2012-05-15 09:20:09.000000000 +0200
  124887. +++ uClibc-git/test/nptl/tst-tsd2.c 2014-06-02 17:40:35.306719136 +0200
  124888. @@ -13,9 +13,8 @@
  124889. Lesser General Public License for more details.
  124890. You should have received a copy of the GNU Lesser General Public
  124891. - License along with the GNU C Library; if not, write to the Free
  124892. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124893. - 02111-1307 USA. */
  124894. + License along with the GNU C Library; if not, see
  124895. + <http://www.gnu.org/licenses/>. */
  124896. #include <pthread.h>
  124897. #include <stdio.h>
  124898. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tsd3.c uClibc-git/test/nptl/tst-tsd3.c
  124899. --- uClibc-0.9.33.2/test/nptl/tst-tsd3.c 2012-05-15 09:20:09.000000000 +0200
  124900. +++ uClibc-git/test/nptl/tst-tsd3.c 2014-06-02 17:40:35.306719136 +0200
  124901. @@ -13,9 +13,8 @@
  124902. Lesser General Public License for more details.
  124903. You should have received a copy of the GNU Lesser General Public
  124904. - License along with the GNU C Library; if not, write to the Free
  124905. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124906. - 02111-1307 USA. */
  124907. + License along with the GNU C Library; if not, see
  124908. + <http://www.gnu.org/licenses/>. */
  124909. #include <limits.h>
  124910. #include <pthread.h>
  124911. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tsd4.c uClibc-git/test/nptl/tst-tsd4.c
  124912. --- uClibc-0.9.33.2/test/nptl/tst-tsd4.c 2012-05-15 09:20:09.000000000 +0200
  124913. +++ uClibc-git/test/nptl/tst-tsd4.c 2014-06-02 17:40:35.306719136 +0200
  124914. @@ -13,9 +13,8 @@
  124915. Lesser General Public License for more details.
  124916. You should have received a copy of the GNU Lesser General Public
  124917. - License along with the GNU C Library; if not, write to the Free
  124918. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124919. - 02111-1307 USA. */
  124920. + License along with the GNU C Library; if not, see
  124921. + <http://www.gnu.org/licenses/>. */
  124922. #include <limits.h>
  124923. #include <pthread.h>
  124924. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tsd5.c uClibc-git/test/nptl/tst-tsd5.c
  124925. --- uClibc-0.9.33.2/test/nptl/tst-tsd5.c 2012-05-15 09:20:09.000000000 +0200
  124926. +++ uClibc-git/test/nptl/tst-tsd5.c 2014-06-02 17:40:35.306719136 +0200
  124927. @@ -13,9 +13,8 @@
  124928. Lesser General Public License for more details.
  124929. You should have received a copy of the GNU Lesser General Public
  124930. - License along with the GNU C Library; if not, write to the Free
  124931. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124932. - 02111-1307 USA. */
  124933. + License along with the GNU C Library; if not, see
  124934. + <http://www.gnu.org/licenses/>. */
  124935. #include <pthread.h>
  124936. #include <stdio.h>
  124937. diff -Nur uClibc-0.9.33.2/test/nptl/tst-typesizes.c uClibc-git/test/nptl/tst-typesizes.c
  124938. --- uClibc-0.9.33.2/test/nptl/tst-typesizes.c 2012-05-15 09:20:09.000000000 +0200
  124939. +++ uClibc-git/test/nptl/tst-typesizes.c 2014-06-02 17:40:35.306719136 +0200
  124940. @@ -13,9 +13,8 @@
  124941. Lesser General Public License for more details.
  124942. You should have received a copy of the GNU Lesser General Public
  124943. - License along with the GNU C Library; if not, write to the Free
  124944. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124945. - 02111-1307 USA. */
  124946. + License along with the GNU C Library; if not, see
  124947. + <http://www.gnu.org/licenses/>. */
  124948. #include <stdio.h>
  124949. #include <pthreadP.h>
  124950. diff -Nur uClibc-0.9.33.2/test/nptl/tst-umask1.c uClibc-git/test/nptl/tst-umask1.c
  124951. --- uClibc-0.9.33.2/test/nptl/tst-umask1.c 2012-05-15 09:20:09.000000000 +0200
  124952. +++ uClibc-git/test/nptl/tst-umask1.c 2014-06-02 17:40:35.306719136 +0200
  124953. @@ -13,9 +13,8 @@
  124954. Lesser General Public License for more details.
  124955. You should have received a copy of the GNU Lesser General Public
  124956. - License along with the GNU C Library; if not, write to the Free
  124957. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124958. - 02111-1307 USA. */
  124959. + License along with the GNU C Library; if not, see
  124960. + <http://www.gnu.org/licenses/>. */
  124961. #include <fcntl.h>
  124962. #include <pthread.h>
  124963. diff -Nur uClibc-0.9.33.2/test/nptl/tst-unload.c uClibc-git/test/nptl/tst-unload.c
  124964. --- uClibc-0.9.33.2/test/nptl/tst-unload.c 2012-05-15 09:20:09.000000000 +0200
  124965. +++ uClibc-git/test/nptl/tst-unload.c 2014-06-02 17:40:35.306719136 +0200
  124966. @@ -13,9 +13,8 @@
  124967. Lesser General Public License for more details.
  124968. You should have received a copy of the GNU Lesser General Public
  124969. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  124970. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  124971. - Boston, MA 02111-1307, USA. */
  124972. + License along with the GNU C Library; see the file COPYING.LIB. If
  124973. + not, see <http://www.gnu.org/licenses/>. */
  124974. #include <dlfcn.h>
  124975. #include <stdio.h>
  124976. diff -Nur uClibc-0.9.33.2/test/nptl/tst-vfork1.c uClibc-git/test/nptl/tst-vfork1.c
  124977. --- uClibc-0.9.33.2/test/nptl/tst-vfork1.c 2012-05-15 09:20:09.000000000 +0200
  124978. +++ uClibc-git/test/nptl/tst-vfork1.c 2014-06-02 17:40:35.306719136 +0200
  124979. @@ -14,9 +14,8 @@
  124980. Lesser General Public License for more details.
  124981. You should have received a copy of the GNU Lesser General Public
  124982. - License along with the GNU C Library; if not, write to the Free
  124983. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124984. - 02111-1307 USA. */
  124985. + License along with the GNU C Library; if not, see
  124986. + <http://www.gnu.org/licenses/>. */
  124987. #include <errno.h>
  124988. #include <stdio.h>
  124989. diff -Nur uClibc-0.9.33.2/test/nptl/tst-vfork1x.c uClibc-git/test/nptl/tst-vfork1x.c
  124990. --- uClibc-0.9.33.2/test/nptl/tst-vfork1x.c 2012-05-15 09:20:09.000000000 +0200
  124991. +++ uClibc-git/test/nptl/tst-vfork1x.c 2014-06-02 17:40:35.306719136 +0200
  124992. @@ -14,9 +14,8 @@
  124993. Lesser General Public License for more details.
  124994. You should have received a copy of the GNU Lesser General Public
  124995. - License along with the GNU C Library; if not, write to the Free
  124996. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124997. - 02111-1307 USA. */
  124998. + License along with the GNU C Library; if not, see
  124999. + <http://www.gnu.org/licenses/>. */
  125000. #include <errno.h>
  125001. #include <stdio.h>
  125002. diff -Nur uClibc-0.9.33.2/test/nptl/tst-vfork2.c uClibc-git/test/nptl/tst-vfork2.c
  125003. --- uClibc-0.9.33.2/test/nptl/tst-vfork2.c 2012-05-15 09:20:09.000000000 +0200
  125004. +++ uClibc-git/test/nptl/tst-vfork2.c 2014-06-02 17:40:35.306719136 +0200
  125005. @@ -14,9 +14,8 @@
  125006. Lesser General Public License for more details.
  125007. You should have received a copy of the GNU Lesser General Public
  125008. - License along with the GNU C Library; if not, write to the Free
  125009. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125010. - 02111-1307 USA. */
  125011. + License along with the GNU C Library; if not, see
  125012. + <http://www.gnu.org/licenses/>. */
  125013. #include <errno.h>
  125014. #include <signal.h>
  125015. diff -Nur uClibc-0.9.33.2/test/nptl/tst-vfork2x.c uClibc-git/test/nptl/tst-vfork2x.c
  125016. --- uClibc-0.9.33.2/test/nptl/tst-vfork2x.c 2012-05-15 09:20:09.000000000 +0200
  125017. +++ uClibc-git/test/nptl/tst-vfork2x.c 2014-06-02 17:40:35.306719136 +0200
  125018. @@ -14,9 +14,8 @@
  125019. Lesser General Public License for more details.
  125020. You should have received a copy of the GNU Lesser General Public
  125021. - License along with the GNU C Library; if not, write to the Free
  125022. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125023. - 02111-1307 USA. */
  125024. + License along with the GNU C Library; if not, see
  125025. + <http://www.gnu.org/licenses/>. */
  125026. #include <errno.h>
  125027. #include <signal.h>
  125028. diff -Nur uClibc-0.9.33.2/test/pthread/Makefile uClibc-git/test/pthread/Makefile
  125029. --- uClibc-0.9.33.2/test/pthread/Makefile 2012-05-15 09:20:09.000000000 +0200
  125030. +++ uClibc-git/test/pthread/Makefile 2014-06-02 17:40:35.310719157 +0200
  125031. @@ -2,6 +2,7 @@
  125032. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125033. top_builddir=../../
  125034. +top_srcdir=../../
  125035. include ../Rules.mak
  125036. -include Makefile.in
  125037. include ../Test.mak
  125038. diff -Nur uClibc-0.9.33.2/test/pwd_grp/Makefile uClibc-git/test/pwd_grp/Makefile
  125039. --- uClibc-0.9.33.2/test/pwd_grp/Makefile 2012-05-15 09:20:09.000000000 +0200
  125040. +++ uClibc-git/test/pwd_grp/Makefile 2014-06-02 17:40:35.310719157 +0200
  125041. @@ -2,6 +2,7 @@
  125042. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125043. top_builddir=../../
  125044. +top_srcdir=../../
  125045. include ../Rules.mak
  125046. -include Makefile.in
  125047. include ../Test.mak
  125048. diff -Nur uClibc-0.9.33.2/test/regex/Makefile uClibc-git/test/regex/Makefile
  125049. --- uClibc-0.9.33.2/test/regex/Makefile 2012-05-15 09:20:09.000000000 +0200
  125050. +++ uClibc-git/test/regex/Makefile 2014-06-02 17:40:35.310719157 +0200
  125051. @@ -2,6 +2,7 @@
  125052. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125053. top_builddir=../../
  125054. +top_srcdir=../../
  125055. include ../Rules.mak
  125056. -include Makefile.in
  125057. include ../Test.mak
  125058. diff -Nur uClibc-0.9.33.2/test/regex/tst-regexloc.c uClibc-git/test/regex/tst-regexloc.c
  125059. --- uClibc-0.9.33.2/test/regex/tst-regexloc.c 2012-05-15 09:20:09.000000000 +0200
  125060. +++ uClibc-git/test/regex/tst-regexloc.c 2014-06-02 17:40:35.310719157 +0200
  125061. @@ -12,9 +12,8 @@
  125062. Lesser General Public License for more details.
  125063. You should have received a copy of the GNU Lesser General Public
  125064. - License along with the GNU C Library; if not, write to the Free
  125065. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125066. - 02111-1307 USA. */
  125067. + License along with the GNU C Library; if not, see
  125068. + <http://www.gnu.org/licenses/>. */
  125069. #include <sys/types.h>
  125070. #include <regex.h>
  125071. diff -Nur uClibc-0.9.33.2/test/rpc/Makefile uClibc-git/test/rpc/Makefile
  125072. --- uClibc-0.9.33.2/test/rpc/Makefile 2012-05-15 09:20:09.000000000 +0200
  125073. +++ uClibc-git/test/rpc/Makefile 2014-06-02 17:40:35.310719157 +0200
  125074. @@ -2,6 +2,7 @@
  125075. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125076. top_builddir=../../
  125077. +top_srcdir=../../
  125078. include ../Rules.mak
  125079. -include Makefile.in
  125080. include ../Test.mak
  125081. diff -Nur uClibc-0.9.33.2/test/Rules.mak uClibc-git/test/Rules.mak
  125082. --- uClibc-0.9.33.2/test/Rules.mak 2012-05-15 09:20:09.000000000 +0200
  125083. +++ uClibc-git/test/Rules.mak 2014-06-02 17:40:35.206718582 +0200
  125084. @@ -8,18 +8,34 @@
  125085. .SUFFIXES:
  125086. top_builddir ?= ../
  125087. +abs_top_builddir ?= $(shell cd $(top_builddir); pwd)/
  125088. TESTDIR=$(top_builddir)test/
  125089. -include $(top_builddir)/Rules.mak
  125090. -ifndef TEST_INSTALLED_UCLIBC
  125091. +include $(top_srcdir)Rules.mak
  125092. +ifeq ($(filter $(clean_targets) CLEAN_%,$(MAKECMDGOALS)),)
  125093. +ifeq ($(HAVE_DOT_CONFIG),)
  125094. +$(error no HAVE_DOT_CONFIG, failed to read .config)
  125095. +endif
  125096. +endif
  125097. +
  125098. ifdef UCLIBC_LDSO
  125099. ifeq (,$(findstring /,$(UCLIBC_LDSO)))
  125100. -UCLIBC_LDSO := $(top_builddir)lib/$(UCLIBC_LDSO)
  125101. +UCLIBC_LDSO := $(UCLIBC_LDSO)
  125102. +else
  125103. +UCLIBC_LDSO := $(notdir $(UCLIBC_LDSO))
  125104. endif
  125105. else
  125106. -UCLIBC_LDSO := $(firstword $(wildcard $(top_builddir)lib/ld*))
  125107. +UCLIBC_LDSO := $(notdir $(firstword $(wildcard $(top_builddir)lib/ld*)))
  125108. endif
  125109. +ifndef TEST_INSTALLED_UCLIBC
  125110. +ifeq ($(LDSO_SAFE_RUNPATH),y)
  125111. +UCLIBC_PATH := $(abs_top_builddir)lib
  125112. +else
  125113. +UCLIBC_PATH := $(top_builddir)lib
  125114. +endif
  125115. +else
  125116. +UCLIBC_PATH := $(RUNTIME_PREFIX)$(MULTILIB_DIR)
  125117. endif
  125118. #--------------------------------------------------------
  125119. # Ensure consistent sort order, 'gcc -print-search-dirs' behavior, etc.
  125120. @@ -81,15 +97,14 @@
  125121. LDFLAGS += -Wl,-static -static-libgcc
  125122. endif
  125123. -LDFLAGS += -B$(top_builddir)lib -Wl,-rpath,$(top_builddir)lib -Wl,-rpath-link,$(top_builddir)lib
  125124. -UCLIBC_LDSO_ABSPATH=$(shell pwd)
  125125. -ifdef TEST_INSTALLED_UCLIBC
  125126. -LDFLAGS += -Wl,-rpath,./
  125127. -UCLIBC_LDSO_ABSPATH=$(RUNTIME_PREFIX)$(MULTILIB_DIR)
  125128. +ifndef TEST_INSTALLED_UCLIBC
  125129. +LDFLAGS += -B$(UCLIBC_PATH) -Wl,-rpath,$(UCLIBC_PATH):$(shell pwd) -Wl,-rpath-link,$(UCLIBC_PATH):$(shell pwd)
  125130. +else
  125131. +LDFLAGS += -Wl,-rpath,$(shell pwd)
  125132. endif
  125133. ifeq ($(findstring -static,$(LDFLAGS)),)
  125134. -LDFLAGS += -Wl,--dynamic-linker,$(UCLIBC_LDSO_ABSPATH)/$(UCLIBC_LDSO)
  125135. +LDFLAGS += -Wl,--dynamic-linker,$(UCLIBC_PATH)/$(UCLIBC_LDSO)
  125136. endif
  125137. ifeq ($(LDSO_GNU_HASH_SUPPORT),y)
  125138. diff -Nur uClibc-0.9.33.2/test/setjmp/bug269-setjmp.c uClibc-git/test/setjmp/bug269-setjmp.c
  125139. --- uClibc-0.9.33.2/test/setjmp/bug269-setjmp.c 2012-05-15 09:20:09.000000000 +0200
  125140. +++ uClibc-git/test/setjmp/bug269-setjmp.c 2014-06-02 17:40:35.322719224 +0200
  125141. @@ -12,9 +12,8 @@
  125142. Lesser General Public License for more details.
  125143. You should have received a copy of the GNU Lesser General Public
  125144. - License along with the GNU C Library; if not, write to the Free
  125145. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125146. - 02111-1307 USA. */ ;
  125147. + License along with the GNU C Library; If not, see
  125148. + <http://www.gnu.org/licenses/>. */
  125149. /* Test case for Bugzilla # 269 */
  125150. diff -Nur uClibc-0.9.33.2/test/setjmp/Makefile uClibc-git/test/setjmp/Makefile
  125151. --- uClibc-0.9.33.2/test/setjmp/Makefile 2012-05-15 09:20:09.000000000 +0200
  125152. +++ uClibc-git/test/setjmp/Makefile 2014-06-02 17:40:35.314719180 +0200
  125153. @@ -2,6 +2,7 @@
  125154. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125155. top_builddir=../../
  125156. +top_srcdir=../../
  125157. include ../Rules.mak
  125158. -include Makefile.in
  125159. include ../Test.mak
  125160. diff -Nur uClibc-0.9.33.2/test/setjmp/tst-setjmp.c uClibc-git/test/setjmp/tst-setjmp.c
  125161. --- uClibc-0.9.33.2/test/setjmp/tst-setjmp.c 2012-05-15 09:20:09.000000000 +0200
  125162. +++ uClibc-git/test/setjmp/tst-setjmp.c 2014-06-02 17:40:35.322719224 +0200
  125163. @@ -12,9 +12,8 @@
  125164. Lesser General Public License for more details.
  125165. You should have received a copy of the GNU Lesser General Public
  125166. - License along with the GNU C Library; if not, write to the Free
  125167. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125168. - 02111-1307 USA. */
  125169. + License along with the GNU C Library; if not, see
  125170. + <http://www.gnu.org/licenses/>. */
  125171. #include <stdio.h>
  125172. #include <setjmp.h>
  125173. diff -Nur uClibc-0.9.33.2/test/signal/Makefile uClibc-git/test/signal/Makefile
  125174. --- uClibc-0.9.33.2/test/signal/Makefile 2012-05-15 09:20:09.000000000 +0200
  125175. +++ uClibc-git/test/signal/Makefile 2014-06-02 17:40:35.322719224 +0200
  125176. @@ -2,6 +2,7 @@
  125177. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125178. top_builddir=../../
  125179. +top_srcdir=../../
  125180. include ../Rules.mak
  125181. -include Makefile.in
  125182. include ../Test.mak
  125183. diff -Nur uClibc-0.9.33.2/test/signal/tst-raise.c uClibc-git/test/signal/tst-raise.c
  125184. --- uClibc-0.9.33.2/test/signal/tst-raise.c 2012-05-15 09:20:09.000000000 +0200
  125185. +++ uClibc-git/test/signal/tst-raise.c 2014-06-02 17:40:35.322719224 +0200
  125186. @@ -13,9 +13,8 @@
  125187. Lesser General Public License for more details.
  125188. You should have received a copy of the GNU Lesser General Public
  125189. - License along with the GNU C Library; if not, write to the Free
  125190. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125191. - 02111-1307 USA. */
  125192. + License along with the GNU C Library; if not, see
  125193. + <http://www.gnu.org/licenses/>. */
  125194. #include <errno.h>
  125195. #include <string.h>
  125196. diff -Nur uClibc-0.9.33.2/test/signal/tst-signalfd.c uClibc-git/test/signal/tst-signalfd.c
  125197. --- uClibc-0.9.33.2/test/signal/tst-signalfd.c 1970-01-01 01:00:00.000000000 +0100
  125198. +++ uClibc-git/test/signal/tst-signalfd.c 2014-06-02 17:40:35.350719379 +0200
  125199. @@ -0,0 +1,63 @@
  125200. +/* vi: set sw=4 ts=4 sts=4: */
  125201. +/*
  125202. + * signalfd test for uClibc
  125203. + * Copyright (C) 2012 by Kevin Cernekee <cernekee@gmail.com>
  125204. + *
  125205. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125206. + */
  125207. +
  125208. +#include <stdio.h>
  125209. +#include <stdlib.h>
  125210. +#include <string.h>
  125211. +#include <unistd.h>
  125212. +#include <errno.h>
  125213. +#include <error.h>
  125214. +#include <signal.h>
  125215. +#include <sys/signalfd.h>
  125216. +#include <sys/fcntl.h>
  125217. +
  125218. +static int
  125219. +do_test(void)
  125220. +{
  125221. + int fd, ret, result = 0;
  125222. + struct signalfd_siginfo ssi;
  125223. + sigset_t mask;
  125224. +
  125225. + sigemptyset(&mask);
  125226. + sigaddset(&mask, SIGUSR1);
  125227. + sigprocmask(SIG_BLOCK, &mask, NULL);
  125228. +
  125229. + fd = signalfd(-1, &mask, SFD_NONBLOCK);
  125230. + if (fd < 0) {
  125231. + printf("signalfd() failed: %s\n", strerror(errno));
  125232. + result = 1;
  125233. + }
  125234. +
  125235. + /* this should return immediately with EAGAIN due to SFD_NONBLOCK */
  125236. + memset(&ssi, 0, sizeof(ssi));
  125237. + ret = read(fd, &ssi, sizeof(ssi));
  125238. + if (ret != -1 || errno != EAGAIN) {
  125239. + error(0, 0, "first read() returned %d", ret);
  125240. + result = 1;
  125241. + }
  125242. +
  125243. + kill(getpid(), SIGUSR1);
  125244. +
  125245. + /* this should return a struct ssi indicating receipt of SIGUSR1 */
  125246. + ret = read(fd, &ssi, sizeof(ssi));
  125247. + if (ret != sizeof(ssi)) {
  125248. + error(0, 0, "second read() returned %d", ret);
  125249. + result = 1;
  125250. + }
  125251. +
  125252. + if (ssi.ssi_signo != SIGUSR1) {
  125253. + error(0, 0, "ssi contains bogus signo");
  125254. + result = 1;
  125255. + }
  125256. +
  125257. + return result;
  125258. +}
  125259. +
  125260. +#define TIMEOUT 5
  125261. +#define TEST_FUNCTION do_test ()
  125262. +#include "../test-skeleton.c"
  125263. diff -Nur uClibc-0.9.33.2/test/signal/tst-sigsimple.c uClibc-git/test/signal/tst-sigsimple.c
  125264. --- uClibc-0.9.33.2/test/signal/tst-sigsimple.c 2012-05-15 09:20:09.000000000 +0200
  125265. +++ uClibc-git/test/signal/tst-sigsimple.c 2014-06-02 17:40:35.350719379 +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 <errno.h>
  125275. #include <signal.h>
  125276. diff -Nur uClibc-0.9.33.2/test/silly/Makefile uClibc-git/test/silly/Makefile
  125277. --- uClibc-0.9.33.2/test/silly/Makefile 2012-05-15 09:20:09.000000000 +0200
  125278. +++ uClibc-git/test/silly/Makefile 2014-06-02 17:40:35.350719379 +0200
  125279. @@ -2,6 +2,7 @@
  125280. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125281. top_builddir=../../
  125282. +top_srcdir=../../
  125283. include ../Rules.mak
  125284. -include Makefile.in
  125285. include ../Test.mak
  125286. diff -Nur uClibc-0.9.33.2/test/stat/Makefile uClibc-git/test/stat/Makefile
  125287. --- uClibc-0.9.33.2/test/stat/Makefile 2012-05-15 09:20:09.000000000 +0200
  125288. +++ uClibc-git/test/stat/Makefile 2014-06-02 17:40:35.354719401 +0200
  125289. @@ -2,6 +2,7 @@
  125290. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125291. top_builddir=../../
  125292. +top_srcdir=../../
  125293. include ../Rules.mak
  125294. -include Makefile.in
  125295. include ../Test.mak
  125296. diff -Nur uClibc-0.9.33.2/test/stdio/Makefile uClibc-git/test/stdio/Makefile
  125297. --- uClibc-0.9.33.2/test/stdio/Makefile 2012-05-15 09:20:09.000000000 +0200
  125298. +++ uClibc-git/test/stdio/Makefile 2014-06-02 17:40:35.354719401 +0200
  125299. @@ -2,6 +2,7 @@
  125300. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125301. top_builddir=../../
  125302. +top_srcdir=../../
  125303. include ../Rules.mak
  125304. -include Makefile.in
  125305. include ../Test.mak
  125306. diff -Nur uClibc-0.9.33.2/test/stdlib/Makefile uClibc-git/test/stdlib/Makefile
  125307. --- uClibc-0.9.33.2/test/stdlib/Makefile 2012-05-15 09:20:09.000000000 +0200
  125308. +++ uClibc-git/test/stdlib/Makefile 2014-06-02 17:40:35.354719401 +0200
  125309. @@ -2,6 +2,7 @@
  125310. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125311. top_builddir=../../
  125312. +top_srcdir=../../
  125313. include ../Rules.mak
  125314. -include Makefile.in
  125315. include ../Test.mak
  125316. diff -Nur uClibc-0.9.33.2/test/stdlib/testarc4random.c uClibc-git/test/stdlib/testarc4random.c
  125317. --- uClibc-0.9.33.2/test/stdlib/testarc4random.c 1970-01-01 01:00:00.000000000 +0100
  125318. +++ uClibc-git/test/stdlib/testarc4random.c 2014-06-02 17:40:35.354719401 +0200
  125319. @@ -0,0 +1,12 @@
  125320. +#include <stdlib.h>
  125321. +#include <stdio.h>
  125322. +
  125323. +int main(void)
  125324. +{
  125325. +#ifdef __UCLIBC_HAS_ARC4RANDOM__
  125326. + int random_number;
  125327. + random_number = arc4random() % 65536;
  125328. + printf("%d\n", random_number);
  125329. +#endif
  125330. + return 0;
  125331. +}
  125332. diff -Nur uClibc-0.9.33.2/test/stdlib/test-canon2.c uClibc-git/test/stdlib/test-canon2.c
  125333. --- uClibc-0.9.33.2/test/stdlib/test-canon2.c 2012-05-15 09:20:09.000000000 +0200
  125334. +++ uClibc-git/test/stdlib/test-canon2.c 2014-06-02 17:40:35.354719401 +0200
  125335. @@ -14,9 +14,8 @@
  125336. Lesser General Public License for more details.
  125337. You should have received a copy of the GNU Lesser General Public
  125338. - License along with the GNU C Library; if not, write to the Free
  125339. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125340. - 02111-1307 USA. */
  125341. + License along with the GNU C Library; if not, see
  125342. + <http://www.gnu.org/licenses/>. */
  125343. #include <errno.h>
  125344. #include <string.h>
  125345. diff -Nur uClibc-0.9.33.2/test/stdlib/test-canon.c uClibc-git/test/stdlib/test-canon.c
  125346. --- uClibc-0.9.33.2/test/stdlib/test-canon.c 2012-05-15 09:20:09.000000000 +0200
  125347. +++ uClibc-git/test/stdlib/test-canon.c 2014-06-02 17:40:35.354719401 +0200
  125348. @@ -15,9 +15,8 @@
  125349. Lesser General Public License for more details.
  125350. You should have received a copy of the GNU Lesser General Public
  125351. - License along with the GNU C Library; if not, write to the Free
  125352. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125353. - 02111-1307 USA. */
  125354. + License along with the GNU C Library; if not, see
  125355. + <http://www.gnu.org/licenses/>. */
  125356. /* This file must be run from within a directory called "stdlib". */
  125357. diff -Nur uClibc-0.9.33.2/test/string/Makefile uClibc-git/test/string/Makefile
  125358. --- uClibc-0.9.33.2/test/string/Makefile 2012-05-15 09:20:09.000000000 +0200
  125359. +++ uClibc-git/test/string/Makefile 2014-06-02 17:40:35.354719401 +0200
  125360. @@ -2,6 +2,7 @@
  125361. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125362. top_builddir=../../
  125363. +top_srcdir=../../
  125364. include ../Rules.mak
  125365. -include Makefile.in
  125366. include ../Test.mak
  125367. diff -Nur uClibc-0.9.33.2/test/string/stratcliff.c uClibc-git/test/string/stratcliff.c
  125368. --- uClibc-0.9.33.2/test/string/stratcliff.c 2012-05-15 09:20:09.000000000 +0200
  125369. +++ uClibc-git/test/string/stratcliff.c 2014-06-02 17:40:35.354719401 +0200
  125370. @@ -14,9 +14,8 @@
  125371. Lesser General Public License for more details.
  125372. You should have received a copy of the GNU Lesser General Public
  125373. - License along with the GNU C Library; if not, write to the Free
  125374. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125375. - 02111-1307 USA. */
  125376. + License along with the GNU C Library; if not, see
  125377. + <http://www.gnu.org/licenses/>. */
  125378. #define _GNU_SOURCE 1
  125379. diff -Nur uClibc-0.9.33.2/test/string/testcopy.c uClibc-git/test/string/testcopy.c
  125380. --- uClibc-0.9.33.2/test/string/testcopy.c 2012-05-15 09:20:09.000000000 +0200
  125381. +++ uClibc-git/test/string/testcopy.c 2014-06-02 17:40:35.354719401 +0200
  125382. @@ -13,9 +13,8 @@
  125383. Lesser General Public License for more details.
  125384. You should have received a copy of the GNU Lesser General Public
  125385. - License along with the GNU C Library; if not, write to the Free
  125386. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125387. - 02111-1307 USA. */
  125388. + License along with the GNU C Library; if not, see
  125389. + <http://www.gnu.org/licenses/>. */
  125390. #include <stdlib.h>
  125391. #include <stdio.h>
  125392. diff -Nur uClibc-0.9.33.2/test/string/tester.c uClibc-git/test/string/tester.c
  125393. --- uClibc-0.9.33.2/test/string/tester.c 2012-05-15 09:20:09.000000000 +0200
  125394. +++ uClibc-git/test/string/tester.c 2014-06-02 17:40:35.354719401 +0200
  125395. @@ -13,9 +13,8 @@
  125396. Lesser General Public License for more details.
  125397. You should have received a copy of the GNU Lesser General Public
  125398. - License along with the GNU C Library; if not, write to the Free
  125399. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125400. - 02111-1307 USA. */
  125401. + License along with the GNU C Library; if not, see
  125402. + <http://www.gnu.org/licenses/>. */
  125403. #ifndef _GNU_SOURCE
  125404. #define _GNU_SOURCE
  125405. diff -Nur uClibc-0.9.33.2/test/string/test-ffs.c uClibc-git/test/string/test-ffs.c
  125406. --- uClibc-0.9.33.2/test/string/test-ffs.c 2012-05-15 09:20:09.000000000 +0200
  125407. +++ uClibc-git/test/string/test-ffs.c 2014-06-02 17:40:35.354719401 +0200
  125408. @@ -14,9 +14,8 @@
  125409. Lesser General Public License for more details.
  125410. You should have received a copy of the GNU Lesser General Public
  125411. - License along with the GNU C Library; if not, write to the Free
  125412. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125413. - 02111-1307 USA. */
  125414. + License along with the GNU C Library; if not, see
  125415. + <http://www.gnu.org/licenses/>. */
  125416. #include <stdlib.h>
  125417. #include <stdio.h>
  125418. diff -Nur uClibc-0.9.33.2/test/string/tst-bswap.c uClibc-git/test/string/tst-bswap.c
  125419. --- uClibc-0.9.33.2/test/string/tst-bswap.c 2012-05-15 09:20:09.000000000 +0200
  125420. +++ uClibc-git/test/string/tst-bswap.c 2014-06-02 17:40:35.354719401 +0200
  125421. @@ -13,9 +13,8 @@
  125422. Lesser General Public License for more details.
  125423. You should have received a copy of the GNU Lesser General Public
  125424. - License along with the GNU C Library; if not, write to the Free
  125425. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125426. - 02111-1307 USA. */
  125427. + License along with the GNU C Library; if not, see
  125428. + <http://www.gnu.org/licenses/>. */
  125429. #include <byteswap.h>
  125430. #include <stdio.h>
  125431. diff -Nur uClibc-0.9.33.2/test/string/tst-inlcall.c uClibc-git/test/string/tst-inlcall.c
  125432. --- uClibc-0.9.33.2/test/string/tst-inlcall.c 2012-05-15 09:20:09.000000000 +0200
  125433. +++ uClibc-git/test/string/tst-inlcall.c 2014-06-02 17:40:35.354719401 +0200
  125434. @@ -13,9 +13,8 @@
  125435. Lesser General Public License for more details.
  125436. You should have received a copy of the GNU Lesser General Public
  125437. - License along with the GNU C Library; if not, write to the Free
  125438. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125439. - 02111-1307 USA. */
  125440. + License along with the GNU C Library; if not, see
  125441. + <http://www.gnu.org/licenses/>. */
  125442. #ifndef _GNU_SOURCE
  125443. #define _GNU_SOURCE
  125444. diff -Nur uClibc-0.9.33.2/test/termios/Makefile uClibc-git/test/termios/Makefile
  125445. --- uClibc-0.9.33.2/test/termios/Makefile 2012-05-15 09:20:09.000000000 +0200
  125446. +++ uClibc-git/test/termios/Makefile 2014-06-02 17:40:35.354719401 +0200
  125447. @@ -2,6 +2,7 @@
  125448. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125449. top_builddir=../../
  125450. +top_srcdir=../../
  125451. include ../Rules.mak
  125452. -include Makefile.in
  125453. include ../Test.mak
  125454. diff -Nur uClibc-0.9.33.2/test/Test.mak uClibc-git/test/Test.mak
  125455. --- uClibc-0.9.33.2/test/Test.mak 2012-05-15 09:20:09.000000000 +0200
  125456. +++ uClibc-git/test/Test.mak 2014-06-02 17:40:35.206718582 +0200
  125457. @@ -35,7 +35,9 @@
  125458. CLEAN_TARGETS := $(U_TARGETS) $(G_TARGETS)
  125459. CLEAN_TARGETS += $(TESTS_DISABLED) $(addsuffix _glibc,$(TESTS_DISABLED)) $(GLIBC_TESTS_DISABLED)
  125460. COMPILE_TARGETS := $(TARGETS)
  125461. -RUN_TARGETS := $(addsuffix .exe,$(TARGETS))
  125462. +# We sort the targets so uClibc and host-libc tests are run adjacent
  125463. +RUN_TARGETS := $(sort $(addsuffix .exe,$(TARGETS)))
  125464. +COMPILE_TARGETS := $(sort $(COMPILE_TARGETS))
  125465. # provide build rules even for disabled tests:
  125466. U_TARGETS += $(TESTS_DISABLED)
  125467. G_TARGETS += $(addsuffix _glibc,$(TESTS_DISABLED)) $(GLIBC_TESTS_DISABLED)
  125468. @@ -99,13 +101,15 @@
  125469. $(U_TARGETS): $(U_TARGET_SRCS) $(MAKE_SRCS)
  125470. $(showlink)
  125471. - $(Q)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$(notdir $(CURDIR))) $(CFLAGS_$@) -c $@.c -o $@.o
  125472. + $(Q)$(CC) $(filter-out $(CFLAGS-OMIT-$@),$(CFLAGS)) $(EXTRA_CFLAGS) $(CFLAGS_$(notdir $(CURDIR))) $(CFLAGS_$@) -c $@.c -o $@.o
  125473. $(Q)$(CC) $(LDFLAGS) $@.o -o $@ $(EXTRA_LDFLAGS) $(LDFLAGS_$@)
  125474. $(G_TARGETS): $(U_TARGET_SRCS) $(MAKE_SRCS)
  125475. $(showlink)
  125476. - $(Q)$(HOSTCC) $(HOST_CFLAGS) $(CFLAGS_$(notdir $(CURDIR))) $(CFLAGS_$(patsubst %_glibc,%,$@)) -c $(patsubst %_glibc,%,$@).c -o $@.o
  125477. - $(Q)$(HOSTCC) $(HOST_LDFLAGS) $@.o -o $@ $(EXTRA_LDFLAGS) $(LDFLAGS_$(patsubst %_glibc,%,$@))
  125478. + $(Q)$(HOSTCC) $(filter-out $(HOST_CFLAGS-OMIT-$(patsubst %_glibc,%,$@)),$(HOST_CFLAGS)) \
  125479. + $(CFLAGS_$(notdir $(CURDIR))) $(CFLAGS_$(patsubst %_glibc,%,$@)) \
  125480. + -c $(patsubst %_glibc,%,$@).c -o $@.o
  125481. + $(Q)$(HOSTCC) $(HOST_LDFLAGS) $@.o -o $@ $(EXTRA_LDFLAGS) $(LDFLAGS_$(patsubst %_glibc,%,$@)) $(LDFLAGS_$@)
  125482. shell_%:
  125483. @@ -117,9 +121,11 @@
  125484. %.so: %.c
  125485. $(showlink)
  125486. $(Q)$(CC) \
  125487. - $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$(patsubst %_glibc,%,$@)) \
  125488. + $(filter-out $(CFLAGS-OMIT-$<),$(CFLAGS)) $(EXTRA_CFLAGS) \
  125489. + $(CFLAGS_$(patsubst %_glibc,%,$@)) \
  125490. -fPIC -shared $< -o $@ -Wl,-soname,$@ \
  125491. - $(LDFLAGS) $(EXTRA_LIBS) $(LDFLAGS_$(patsubst %_glibc,%,$@))
  125492. + $(filter-out $(LDFLAGS-OMIT-$<),$(LDFLAGS)) $(EXTRA_LIBS) \
  125493. + $(LDFLAGS_$(patsubst %_glibc,%,$@))
  125494. clean:
  125495. $(showclean)
  125496. diff -Nur uClibc-0.9.33.2/test/test-skeleton.c uClibc-git/test/test-skeleton.c
  125497. --- uClibc-0.9.33.2/test/test-skeleton.c 2012-05-15 09:20:09.000000000 +0200
  125498. +++ uClibc-git/test/test-skeleton.c 2014-06-02 17:40:35.354719401 +0200
  125499. @@ -14,9 +14,8 @@
  125500. Lesser General Public License for more details.
  125501. You should have received a copy of the GNU Lesser General Public
  125502. - License along with the GNU C Library; if not, write to the Free
  125503. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125504. - 02111-1307 USA. */
  125505. + License along with the GNU C Library; if not, see
  125506. + <http://www.gnu.org/licenses/>. */
  125507. #include <errno.h>
  125508. #include <getopt.h>
  125509. @@ -104,7 +103,7 @@
  125510. create_temp_file (const char *base, char **filename)
  125511. {
  125512. char *fname;
  125513. - int fd;
  125514. + int _fd;
  125515. fname = (char *) malloc (strlen (test_dir) + 1 + strlen (base)
  125516. + sizeof ("XXXXXX"));
  125517. @@ -115,8 +114,8 @@
  125518. }
  125519. strcpy (stpcpy (stpcpy (stpcpy (fname, test_dir), "/"), base), "XXXXXX");
  125520. - fd = mkstemp (fname);
  125521. - if (fd == -1)
  125522. + _fd = mkstemp (fname);
  125523. + if (_fd == -1)
  125524. {
  125525. printf ("cannot open temporary file '%s': %s\n", fname, strerror(errno));
  125526. free (fname);
  125527. @@ -127,13 +126,13 @@
  125528. if (filename != NULL)
  125529. *filename = fname;
  125530. - return fd;
  125531. + return _fd;
  125532. }
  125533. /* Timeout handler. We kill the child and exit with an error. */
  125534. static void
  125535. __attribute__ ((noreturn))
  125536. -timeout_handler (int sig __attribute__ ((unused)))
  125537. +signal_handler (int sig __attribute__ ((unused)))
  125538. {
  125539. int killed = 0;
  125540. int status;
  125541. @@ -168,6 +167,12 @@
  125542. CLEANUP_HANDLER;
  125543. #endif
  125544. + if (sig == SIGINT)
  125545. + {
  125546. + signal (sig, SIG_DFL);
  125547. + raise (sig);
  125548. + }
  125549. +
  125550. /* If we expected this signal: good! */
  125551. #ifdef EXPECTED_SIGNAL
  125552. if (EXPECTED_SIGNAL == SIGALRM)
  125553. @@ -190,6 +195,7 @@
  125554. exit (1);
  125555. }
  125556. +#ifdef __XXX_HANDLE_CTRL_C
  125557. static void
  125558. __attribute__ ((noreturn))
  125559. handler_killpid(int sig)
  125560. @@ -199,6 +205,7 @@
  125561. raise(sig); /* kill ourself */
  125562. _exit(128 + sig); /* paranoia */
  125563. }
  125564. +#endif
  125565. /* We provide the entry point here. */
  125566. int
  125567. @@ -345,18 +352,23 @@
  125568. exit (1);
  125569. }
  125570. +#ifdef __XXX_HANDLE_CTRL_C
  125571. signal (SIGTERM, handler_killpid);
  125572. signal (SIGINT, handler_killpid);
  125573. signal (SIGQUIT, handler_killpid);
  125574. +#endif
  125575. /* Set timeout. */
  125576. #ifndef TIMEOUT
  125577. /* Default timeout is two seconds. */
  125578. # define TIMEOUT 2
  125579. #endif
  125580. - signal (SIGALRM, timeout_handler);
  125581. + signal (SIGALRM, signal_handler);
  125582. alarm (TIMEOUT * timeoutfactor);
  125583. + /* Make sure we clean up if the wrapper gets interrupted. */
  125584. + signal (SIGINT, signal_handler);
  125585. +
  125586. /* Wait for the regular termination. */
  125587. termpid = TEMP_FAILURE_RETRY (waitpid (pid, &status, 0));
  125588. if (termpid == -1)
  125589. diff -Nur uClibc-0.9.33.2/test/testsuite.h uClibc-git/test/testsuite.h
  125590. --- uClibc-0.9.33.2/test/testsuite.h 2012-05-15 09:20:09.000000000 +0200
  125591. +++ uClibc-git/test/testsuite.h 2014-06-02 17:40:35.354719401 +0200
  125592. @@ -27,11 +27,12 @@
  125593. {
  125594. failures++;
  125595. - printf("\nFAILED TEST %lu: \n\t%s\n", (unsigned long)test_number, command);
  125596. + printf("\nFAILED TEST %lu: \n\t%s\nResult: %d",
  125597. + (unsigned long)test_number, command, result);
  125598. printf("AT LINE: %d, FILE: %s\n\n", line, file);
  125599. }
  125600. -void success_msg(int result, const char* command)
  125601. +void success_msg(int result __attribute__((unused)), const char* command __attribute__((unused)))
  125602. {
  125603. #if 0
  125604. printf("passed test: %s == 0\n", command);
  125605. diff -Nur uClibc-0.9.33.2/test/time/Makefile uClibc-git/test/time/Makefile
  125606. --- uClibc-0.9.33.2/test/time/Makefile 2012-05-15 09:20:09.000000000 +0200
  125607. +++ uClibc-git/test/time/Makefile 2014-06-02 17:40:35.390719601 +0200
  125608. @@ -2,6 +2,7 @@
  125609. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125610. top_builddir=../../
  125611. +top_srcdir=../../
  125612. include ../Rules.mak
  125613. -include Makefile.in
  125614. include ../Test.mak
  125615. diff -Nur uClibc-0.9.33.2/test/time/test_time.c uClibc-git/test/time/test_time.c
  125616. --- uClibc-0.9.33.2/test/time/test_time.c 2012-05-15 09:20:09.000000000 +0200
  125617. +++ uClibc-git/test/time/test_time.c 2014-06-02 17:40:35.390719601 +0200
  125618. @@ -12,9 +12,8 @@
  125619. Lesser General Public License for more details.
  125620. You should have received a copy of the GNU Lesser General Public
  125621. - License along with the GNU C Library; if not, write to the Free
  125622. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125623. - 02111-1307 USA. */
  125624. + License along with the GNU C Library; if not, see
  125625. + <http://www.gnu.org/licenses/>. */
  125626. #include <stdio.h>
  125627. #include <stdlib.h>
  125628. diff -Nur uClibc-0.9.33.2/test/time/tst-strptime.c uClibc-git/test/time/tst-strptime.c
  125629. --- uClibc-0.9.33.2/test/time/tst-strptime.c 2012-05-15 09:20:09.000000000 +0200
  125630. +++ uClibc-git/test/time/tst-strptime.c 2014-06-02 17:40:35.418719755 +0200
  125631. @@ -14,9 +14,8 @@
  125632. Lesser General Public License for more details.
  125633. You should have received a copy of the GNU Lesser General Public
  125634. - License along with the GNU C Library; if not, write to the Free
  125635. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125636. - 02111-1307 USA. */
  125637. + License along with the GNU C Library; if not, see
  125638. + <http://www.gnu.org/licenses/>. */
  125639. #include <locale.h>
  125640. #include <stdio.h>
  125641. diff -Nur uClibc-0.9.33.2/test/time/tst-timerfd.c uClibc-git/test/time/tst-timerfd.c
  125642. --- uClibc-0.9.33.2/test/time/tst-timerfd.c 1970-01-01 01:00:00.000000000 +0100
  125643. +++ uClibc-git/test/time/tst-timerfd.c 2014-06-02 17:40:35.418719755 +0200
  125644. @@ -0,0 +1,71 @@
  125645. +/* vi: set sw=4 ts=4 sts=4: */
  125646. +/*
  125647. + * timerfd test for uClibc
  125648. + * Copyright (C) 2012 by Kevin Cernekee <cernekee@gmail.com>
  125649. + *
  125650. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125651. + */
  125652. +
  125653. +#include <stdio.h>
  125654. +#include <stdlib.h>
  125655. +#include <string.h>
  125656. +#include <unistd.h>
  125657. +#include <errno.h>
  125658. +#include <error.h>
  125659. +#include <signal.h>
  125660. +#include <stdint.h>
  125661. +#include <inttypes.h>
  125662. +#include <time.h>
  125663. +#include <sys/timerfd.h>
  125664. +#include <sys/fcntl.h>
  125665. +
  125666. +static int
  125667. +do_test(void)
  125668. +{
  125669. + int fd, ret, result = 0;
  125670. + struct itimerspec s;
  125671. + uint64_t val;
  125672. + time_t start, now;
  125673. +
  125674. + fd = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK);
  125675. + if (fd < 0) {
  125676. + perror("timerfd() failed");
  125677. + result = 1;
  125678. + }
  125679. + s.it_value.tv_sec = 1;
  125680. + s.it_value.tv_nsec = 0;
  125681. + s.it_interval.tv_sec = 0;
  125682. + s.it_interval.tv_nsec = 0;
  125683. + timerfd_settime(fd, 0, &s, NULL);
  125684. + start = time(NULL);
  125685. +
  125686. + /* this should return immediately with EAGAIN due to TFD_NONBLOCK */
  125687. + ret = read(fd, &val, sizeof(val));
  125688. + if (ret != -1 || errno != EAGAIN) {
  125689. + error(0, 0, "first read() returned %d", ret);
  125690. + result = 1;
  125691. + }
  125692. +
  125693. + /* let the timer expire, then check it again */
  125694. + do {
  125695. + now = time(NULL);
  125696. + } while (now - start < 2);
  125697. +
  125698. + ret = read(fd, &val, sizeof(val));
  125699. + if (ret != sizeof(val)) {
  125700. + error(0, 0, "second read() returned %d", ret);
  125701. + result = 1;
  125702. + }
  125703. +
  125704. + /* we are expecting a single expiration, since it_interval is 0 */
  125705. + if (val != 1) {
  125706. + error(0, 0, "wrong number of expirations: %" PRIx64, val);
  125707. + result = 1;
  125708. + }
  125709. +
  125710. + return result;
  125711. +}
  125712. +
  125713. +#define TIMEOUT 5
  125714. +#define TEST_FUNCTION do_test ()
  125715. +#include "../test-skeleton.c"
  125716. diff -Nur uClibc-0.9.33.2/test/time/tst-timezone.c uClibc-git/test/time/tst-timezone.c
  125717. --- uClibc-0.9.33.2/test/time/tst-timezone.c 2012-05-15 09:20:09.000000000 +0200
  125718. +++ uClibc-git/test/time/tst-timezone.c 2014-06-02 17:40:35.418719755 +0200
  125719. @@ -13,9 +13,8 @@
  125720. Lesser General Public License for more details.
  125721. You should have received a copy of the GNU Lesser General Public
  125722. - License along with the GNU C Library; if not, write to the Free
  125723. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125724. - 02111-1307 USA. */
  125725. + License along with the GNU C Library; if not, see
  125726. + <http://www.gnu.org/licenses/>. */
  125727. #include <time.h>
  125728. #include <stdio.h>
  125729. diff -Nur uClibc-0.9.33.2/test/tls/Makefile.in uClibc-git/test/tls/Makefile.in
  125730. --- uClibc-0.9.33.2/test/tls/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  125731. +++ uClibc-git/test/tls/Makefile.in 2014-06-02 17:40:35.430719822 +0200
  125732. @@ -102,9 +102,9 @@
  125733. LDFLAGS_tst-tls7 := -ldl
  125734. LDFLAGS_tst-tls8 := -ldl
  125735. LDFLAGS_tst-tls9 := -ldl
  125736. -LDFLAGS_tst-tls10 := -Wl,-rpath-link=. tst-tlsmod8.so
  125737. -LDFLAGS_tst-tls11 := -Wl,-rpath-link=. tst-tlsmod10.so
  125738. -LDFLAGS_tst-tls12 := -Wl,-rpath-link=. tst-tlsmod12.so
  125739. +LDFLAGS_tst-tls10 := -Wl,-rpath-link=. tst-tlsmod8.so tst-tlsmod7.so
  125740. +LDFLAGS_tst-tls11 := -Wl,-rpath-link=. tst-tlsmod9.so tst-tlsmod10.so
  125741. +LDFLAGS_tst-tls12 := -Wl,-rpath-link=. tst-tlsmod11.so tst-tlsmod12.so
  125742. LDFLAGS_tst-tls13 := -ldl -Wl,-rpath-link=.
  125743. LDFLAGS_tst-tls14 := -ldl -Wl,-rpath-link=. tst-tlsmod14a.so
  125744. LDFLAGS_tst-tls15 := -ldl -Wl,-rpath-link=.
  125745. diff -Nur uClibc-0.9.33.2/test/tls/tst-tls6.c uClibc-git/test/tls/tst-tls6.c
  125746. --- uClibc-0.9.33.2/test/tls/tst-tls6.c 2012-05-15 09:20:09.000000000 +0200
  125747. +++ uClibc-git/test/tls/tst-tls6.c 2014-06-02 17:40:35.430719822 +0200
  125748. @@ -38,13 +38,12 @@
  125749. time. The value of the first round is used. */
  125750. #ifdef __UCLIBC__
  125751. if (modid == -1)
  125752. - modid = ((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid;
  125753. - else if (((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid
  125754. - != (size_t) modid)
  125755. + modid = ((struct dyn_elf *) h)->dyn->l_tls_modid;
  125756. + else if (((struct dyn_elf *)h)->dyn->l_tls_modid != (size_t) modid)
  125757. {
  125758. printf ("round %d: modid now %zu, initially %d\n",
  125759. i,
  125760. - ((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid,
  125761. + ((struct dyn_elf *)h)->dyn->l_tls_modid,
  125762. modid);
  125763. result = 1;
  125764. }
  125765. diff -Nur uClibc-0.9.33.2/test/tls/tst-tls7.c uClibc-git/test/tls/tst-tls7.c
  125766. --- uClibc-0.9.33.2/test/tls/tst-tls7.c 2012-05-15 09:20:09.000000000 +0200
  125767. +++ uClibc-git/test/tls/tst-tls7.c 2014-06-02 17:40:35.430719822 +0200
  125768. @@ -36,13 +36,12 @@
  125769. time. The value of the first round is used. */
  125770. #ifdef __UCLIBC__
  125771. if (modid == -1)
  125772. - modid = ((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid;
  125773. - else if (((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid
  125774. - != (size_t) modid)
  125775. + modid = ((struct dyn_elf *) h)->dyn->l_tls_modid;
  125776. + else if (((struct dyn_elf *)h)->dyn->l_tls_modid != (size_t) modid)
  125777. {
  125778. printf ("round %d: modid now %zu, initially %d\n",
  125779. i,
  125780. - ((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid,
  125781. + ((struct dyn_elf *)h)->dyn->l_tls_modid,
  125782. modid);
  125783. result = 1;
  125784. }
  125785. diff -Nur uClibc-0.9.33.2/test/tls/tst-tls8.c uClibc-git/test/tls/tst-tls8.c
  125786. --- uClibc-0.9.33.2/test/tls/tst-tls8.c 2012-05-15 09:20:09.000000000 +0200
  125787. +++ uClibc-git/test/tls/tst-tls8.c 2014-06-02 17:40:35.430719822 +0200
  125788. @@ -41,13 +41,12 @@
  125789. time. The value of the first round is used. */
  125790. #ifdef __UCLIBC__
  125791. if (modid1 == (size_t) -1)
  125792. - modid1 = ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid;
  125793. - else if (((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid
  125794. - != (size_t) modid1)
  125795. + modid1 = ((struct dyn_elf *) h1)->dyn->l_tls_modid;
  125796. + else if (((struct dyn_elf *)h1)->dyn->l_tls_modid != (size_t) modid1)
  125797. {
  125798. printf ("round %d: modid now %zd, initially %zd\n",
  125799. i,
  125800. - ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid,
  125801. + ((struct dyn_elf *)h1)->dyn->l_tls_modid,
  125802. modid1);
  125803. result = 1;
  125804. }
  125805. @@ -85,23 +84,23 @@
  125806. time. The value of the first round is used. */
  125807. #ifdef __UCLIBC__
  125808. if (modid2 == (size_t) -1)
  125809. - modid2 = ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid;
  125810. - else if (((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid
  125811. + modid2 = ((struct dyn_elf *)h2)->dyn->l_tls_modid;
  125812. + else if (((struct dyn_elf *)h2)->dyn->l_tls_modid
  125813. != (size_t) modid2)
  125814. {
  125815. printf ("round %d: modid now %zd, initially %zd\n",
  125816. i,
  125817. - ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid,
  125818. + ((struct dyn_elf *)h2)->dyn->l_tls_modid,
  125819. modid2);
  125820. result = 1;
  125821. }
  125822. #else
  125823. if (modid2 == (size_t) -1)
  125824. - modid2 = ((struct link_map *) h1)->l_tls_modid;
  125825. - else if (((struct link_map *) h1)->l_tls_modid != modid2)
  125826. + modid2 = ((struct link_map *) h2)->l_tls_modid;
  125827. + else if (((struct link_map *) h2)->l_tls_modid != modid2)
  125828. {
  125829. printf ("round %d: modid now %zd, initially %zd\n",
  125830. - i, ((struct link_map *) h1)->l_tls_modid, modid2);
  125831. + i, ((struct link_map *) h2)->l_tls_modid, modid2);
  125832. result = 1;
  125833. }
  125834. #endif
  125835. @@ -139,12 +138,12 @@
  125836. We make sure that the module gets assigned the same ID every
  125837. time. The value of the first round is used. */
  125838. #ifdef __UCLIBC__
  125839. - if (((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid
  125840. + if (((struct dyn_elf *)h1)->dyn->l_tls_modid
  125841. != modid1)
  125842. {
  125843. printf ("round %d: modid now %zd, initially %zd\n",
  125844. i,
  125845. - ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid,
  125846. + ((struct dyn_elf *)h1)->dyn->l_tls_modid,
  125847. modid1);
  125848. result = 1;
  125849. }
  125850. @@ -179,20 +178,20 @@
  125851. We make sure that the module gets assigned the same ID every
  125852. time. The value of the first round is used. */
  125853. #ifdef __UCLIBC__
  125854. - if (((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid
  125855. + if (((struct dyn_elf *)h2)->dyn->l_tls_modid
  125856. != modid2)
  125857. {
  125858. printf ("round %d: modid now %zd, initially %zd\n",
  125859. i,
  125860. - ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid,
  125861. + ((struct dyn_elf *)h2)->dyn->l_tls_modid,
  125862. modid2);
  125863. result = 1;
  125864. }
  125865. #else
  125866. - if (((struct link_map *) h1)->l_tls_modid != modid2)
  125867. + if (((struct link_map *) h2)->l_tls_modid != modid2)
  125868. {
  125869. printf ("round %d: modid now %zd, initially %zd\n",
  125870. - i, ((struct link_map *) h1)->l_tls_modid, modid2);
  125871. + i, ((struct link_map *) h2)->l_tls_modid, modid2);
  125872. result = 1;
  125873. }
  125874. #endif
  125875. diff -Nur uClibc-0.9.33.2/test/unistd/Makefile uClibc-git/test/unistd/Makefile
  125876. --- uClibc-0.9.33.2/test/unistd/Makefile 2012-05-15 09:20:09.000000000 +0200
  125877. +++ uClibc-git/test/unistd/Makefile 2014-06-02 17:40:35.430719822 +0200
  125878. @@ -2,6 +2,7 @@
  125879. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125880. top_builddir=../../
  125881. +top_srcdir=../../
  125882. include ../Rules.mak
  125883. -include Makefile.in
  125884. include ../Test.mak
  125885. diff -Nur uClibc-0.9.33.2/test/unistd/Makefile.in uClibc-git/test/unistd/Makefile.in
  125886. --- uClibc-0.9.33.2/test/unistd/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  125887. +++ uClibc-git/test/unistd/Makefile.in 2014-06-02 17:40:35.430719822 +0200
  125888. @@ -2,7 +2,10 @@
  125889. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125890. ifeq ($(UCLIBC_HAS_LFS),)
  125891. -TESTS_DISABLED := tst-preadwrite64
  125892. +TESTS_DISABLED := tst-preadwrite64 tst-posix_fallocate64
  125893. +endif
  125894. +ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),)
  125895. +TESTS_DISABLED += tst-posix_fallocate
  125896. endif
  125897. OPTS_getopt := -abcXXX -9
  125898. OPTS_getopt_long := --add XXX --delete YYY --verbose
  125899. diff -Nur uClibc-0.9.33.2/test/unistd/tst-posix_fallocate64.c uClibc-git/test/unistd/tst-posix_fallocate64.c
  125900. --- uClibc-0.9.33.2/test/unistd/tst-posix_fallocate64.c 1970-01-01 01:00:00.000000000 +0100
  125901. +++ uClibc-git/test/unistd/tst-posix_fallocate64.c 2014-06-02 17:40:35.434719844 +0200
  125902. @@ -0,0 +1,2 @@
  125903. +#define TST_POSIX_FALLOCATE64
  125904. +#include "tst-posix_fallocate.c"
  125905. diff -Nur uClibc-0.9.33.2/test/unistd/tst-posix_fallocate.c uClibc-git/test/unistd/tst-posix_fallocate.c
  125906. --- uClibc-0.9.33.2/test/unistd/tst-posix_fallocate.c 1970-01-01 01:00:00.000000000 +0100
  125907. +++ uClibc-git/test/unistd/tst-posix_fallocate.c 2014-06-02 17:40:35.434719844 +0200
  125908. @@ -0,0 +1,127 @@
  125909. +#include <fcntl.h>
  125910. +#include <sys/stat.h>
  125911. +
  125912. +#ifndef TST_POSIX_FALLOCATE64
  125913. +# define stat64 stat
  125914. +# define fstat64 fstat
  125915. +# else
  125916. +# ifndef O_LARGEFILE
  125917. +# error no O_LARGEFILE but you want to test with LFS enabled
  125918. +# endif
  125919. +#endif
  125920. +
  125921. +static void do_prepare (void);
  125922. +#define PREPARE(argc, argv) do_prepare ()
  125923. +static int do_test (void);
  125924. +#define TEST_FUNCTION do_test ()
  125925. +#include <test-skeleton.c>
  125926. +
  125927. +static int fd;
  125928. +static void
  125929. +do_prepare (void)
  125930. +{
  125931. + fd = create_temp_file ("tst-posix_fallocate.", NULL);
  125932. + if (fd == -1)
  125933. + {
  125934. + printf ("cannot create temporary file: %m\n");
  125935. + exit (1);
  125936. + }
  125937. +}
  125938. +
  125939. +
  125940. +static int
  125941. +do_test (void)
  125942. +{
  125943. + struct stat64 st;
  125944. +
  125945. + if (fstat64 (fd, &st) != 0)
  125946. + {
  125947. + puts ("1st fstat failed");
  125948. + return 1;
  125949. + }
  125950. +
  125951. + if (st.st_size != 0)
  125952. + {
  125953. + puts ("file not created with size 0");
  125954. + return 1;
  125955. + }
  125956. +
  125957. + if (posix_fallocate (fd, 512, 768) != 0)
  125958. + {
  125959. + puts ("1st posix_fallocate call failed");
  125960. + return 1;
  125961. + }
  125962. +
  125963. + if (fstat64 (fd, &st) != 0)
  125964. + {
  125965. + puts ("2nd fstat failed");
  125966. + return 1;
  125967. + }
  125968. +
  125969. + if (st.st_size != 512 + 768)
  125970. + {
  125971. + printf ("file size after 1st posix_fallocate call is %llu, expected %u\n",
  125972. + (unsigned long long int) st.st_size, 512u + 768u);
  125973. + return 1;
  125974. + }
  125975. +
  125976. + if (posix_fallocate (fd, 0, 1024) != 0)
  125977. + {
  125978. + puts ("2nd posix_fallocate call failed");
  125979. + return 1;
  125980. + }
  125981. +
  125982. + if (fstat64 (fd, &st) != 0)
  125983. + {
  125984. + puts ("3rd fstat failed");
  125985. + return 1;
  125986. + }
  125987. +
  125988. + if (st.st_size != 512 + 768)
  125989. + {
  125990. + puts ("file size changed in 2nd posix_fallocate");
  125991. + return 1;
  125992. + }
  125993. +
  125994. + if (posix_fallocate (fd, 2048, 64) != 0)
  125995. + {
  125996. + puts ("3rd posix_fallocate call failed");
  125997. + return 1;
  125998. + }
  125999. +
  126000. + if (fstat64 (fd, &st) != 0)
  126001. + {
  126002. + puts ("4th fstat failed");
  126003. + return 1;
  126004. + }
  126005. +
  126006. + if (st.st_size != 2048 + 64)
  126007. + {
  126008. + printf ("file size after 3rd posix_fallocate call is %llu, expected %u\n",
  126009. + (unsigned long long int) st.st_size, 2048u + 64u);
  126010. + return 1;
  126011. + }
  126012. +#ifdef TST_POSIX_FALLOCATE64
  126013. + if (posix_fallocate64 (fd, 4097ULL, 4294967295ULL + 2ULL) != 0)
  126014. + {
  126015. + puts ("4th posix_fallocate call failed");
  126016. + return 1;
  126017. + }
  126018. +
  126019. + if (fstat64 (fd, &st) != 0)
  126020. + {
  126021. + puts ("5th fstat failed");
  126022. + return 1;
  126023. + }
  126024. +
  126025. + if (st.st_size != 4097ULL + 4294967295ULL + 2ULL)
  126026. + {
  126027. + printf ("file size after 4th posix_fallocate call is %llu, expected %llu\n",
  126028. + (unsigned long long int) st.st_size, 4097ULL + 4294967295ULL + 2ULL);
  126029. + return 1;
  126030. + }
  126031. +#endif
  126032. + close (fd);
  126033. +
  126034. + return 0;
  126035. +}
  126036. diff -Nur uClibc-0.9.33.2/test/unistd/tst-preadwrite64.c uClibc-git/test/unistd/tst-preadwrite64.c
  126037. --- uClibc-0.9.33.2/test/unistd/tst-preadwrite64.c 2012-05-15 09:20:09.000000000 +0200
  126038. +++ uClibc-git/test/unistd/tst-preadwrite64.c 2014-06-02 17:40:35.434719844 +0200
  126039. @@ -14,9 +14,8 @@
  126040. Lesser General Public License for more details.
  126041. You should have received a copy of the GNU Lesser General Public
  126042. - License along with the GNU C Library; if not, write to the Free
  126043. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  126044. - 02111-1307 USA. */
  126045. + License along with the GNU C Library; if not, see
  126046. + <http://www.gnu.org/licenses/>. */
  126047. #define PREAD pread64
  126048. #define PWRITE pwrite64
  126049. diff -Nur uClibc-0.9.33.2/test/unistd/tst-preadwrite.c uClibc-git/test/unistd/tst-preadwrite.c
  126050. --- uClibc-0.9.33.2/test/unistd/tst-preadwrite.c 2012-05-15 09:20:09.000000000 +0200
  126051. +++ uClibc-git/test/unistd/tst-preadwrite.c 2014-06-02 17:40:35.434719844 +0200
  126052. @@ -14,9 +14,8 @@
  126053. Lesser General Public License for more details.
  126054. You should have received a copy of the GNU Lesser General Public
  126055. - License along with the GNU C Library; if not, write to the Free
  126056. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  126057. - 02111-1307 USA. */
  126058. + License along with the GNU C Library; if not, see
  126059. + <http://www.gnu.org/licenses/>. */
  126060. #include <errno.h>
  126061. #include <error.h>
  126062. diff -Nur uClibc-0.9.33.2/TODO uClibc-git/TODO
  126063. --- uClibc-0.9.33.2/TODO 2012-05-15 09:20:09.000000000 +0200
  126064. +++ uClibc-git/TODO 2014-06-02 17:40:33.670710081 +0200
  126065. @@ -88,6 +88,11 @@
  126066. *) Cleanup/scrub all the Makefile copyright junk
  126067. *) Fix dlopen, for both static and dynamic cases, and make it
  126068. fully comply with SuSv3
  126069. + *) check if sched_getcpu is only pulled in where it should be
  126070. + *) remove HANDLE_OLDER_RLIMIT, NEW_GETRLIMIT (conditionalize on
  126071. + ugetrlimit, it seems, else use the modern variant)
  126072. + *) simplify exec*() in the light of execvpe (perhaps single internal
  126073. + impl); USE_GNU for execvpe (and other GNU extensions, see psm).
  126074. TODO list for AFTER the uClibc 1.0.0 release:
  126075. @@ -180,3 +185,4 @@
  126076. b) Write a space-efficient gettext substitute, to avoid storing large amounts
  126077. of redundant data.
  126078. +
  126079. diff -Nur uClibc-0.9.33.2/utils/chroot_realpath.c uClibc-git/utils/chroot_realpath.c
  126080. --- uClibc-0.9.33.2/utils/chroot_realpath.c 2012-05-15 09:20:09.000000000 +0200
  126081. +++ uClibc-git/utils/chroot_realpath.c 2014-06-02 17:40:35.434719844 +0200
  126082. @@ -14,8 +14,7 @@
  126083. *
  126084. * You should have received a copy of the GNU Lesser General Public
  126085. * License along with this library; see the file COPYING.LIB. If not,
  126086. - * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  126087. - * Boston, MA 02111-1307, USA.
  126088. + * see <http://www.gnu.org/licenses/>.
  126089. *
  126090. * 2005/09/12: Dan Howell (modified from realpath.c to emulate chroot)
  126091. */
  126092. diff -Nur uClibc-0.9.33.2/utils/getconf.c uClibc-git/utils/getconf.c
  126093. --- uClibc-0.9.33.2/utils/getconf.c 2012-05-15 09:20:09.000000000 +0200
  126094. +++ uClibc-git/utils/getconf.c 2014-06-02 17:40:35.434719844 +0200
  126095. @@ -12,10 +12,10 @@
  126096. GNU General Public License for more details.
  126097. You should have received a copy of the GNU General Public License
  126098. - along with this program; if not, write to the Free Software Foundation,
  126099. - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  126100. + along with this program; if not, see <http://www.gnu.org/licenses/>. */
  126101. #define _GNU_SOURCE 1
  126102. +#include "porting.h"
  126103. #include <unistd.h>
  126104. #include <errno.h>
  126105. #include <string.h>
  126106. @@ -1052,13 +1052,11 @@
  126107. };
  126108. static const int nspecs = sizeof (specs) / sizeof (specs[0]);
  126109. -#ifdef __UCLIBC_HAS___PROGNAME__
  126110. -extern const char *__progname;
  126111. -#else
  126112. -#define __progname "foo"
  126113. +#ifndef __UCLIBC_HAS___PROGNAME__
  126114. +static const char *__progname = "getconf";
  126115. #endif
  126116. -static void
  126117. +static attribute_noreturn void
  126118. usage (void)
  126119. {
  126120. fprintf (stderr,
  126121. @@ -1070,7 +1068,7 @@
  126122. }
  126123. -static void
  126124. +static attribute_noreturn void
  126125. print_all (const char *path)
  126126. {
  126127. register const struct conf *c;
  126128. diff -Nur uClibc-0.9.33.2/utils/iconv.c uClibc-git/utils/iconv.c
  126129. --- uClibc-0.9.33.2/utils/iconv.c 2012-05-15 09:20:09.000000000 +0200
  126130. +++ uClibc-git/utils/iconv.c 2014-06-02 17:40:35.434719844 +0200
  126131. @@ -12,8 +12,8 @@
  126132. * Library General Public License for more details.
  126133. *
  126134. * You should have received a copy of the GNU Library General Public
  126135. - * License along with this library; if not, write to the Free
  126136. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  126137. + * License along with this library; if not, see
  126138. + * <http://www.gnu.org/licenses/>.
  126139. */
  126140. /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
  126141. @@ -98,15 +98,22 @@
  126142. * Manuel
  126143. */
  126144. +/* keep libgen before string.h - and porting.h to use the
  126145. + * XPG version of basename */
  126146. +#include <libgen.h>
  126147. #include "porting.h"
  126148. #include <string.h>
  126149. #include <iconv.h>
  126150. #include <stdarg.h>
  126151. -#include <libgen.h>
  126152. #include <wchar.h>
  126153. #include "wchar.c" /* for _UC_iconv_t and __iconv_codesets */
  126154. -extern const unsigned char __iconv_codesets[];
  126155. +#ifdef L_iconv_main
  126156. +static
  126157. +#else
  126158. +extern
  126159. +#endif
  126160. +const unsigned char __iconv_codesets[];
  126161. #define IBUF BUFSIZ
  126162. #define OBUF BUFSIZ
  126163. diff -Nur uClibc-0.9.33.2/utils/ldconfig.c uClibc-git/utils/ldconfig.c
  126164. --- uClibc-0.9.33.2/utils/ldconfig.c 2012-05-15 09:20:09.000000000 +0200
  126165. +++ uClibc-git/utils/ldconfig.c 2014-06-02 17:40:35.434719844 +0200
  126166. @@ -57,8 +57,6 @@
  126167. /* Code indicating core file. */
  126168. #define CMAGIC 0421
  126169. -char *___strtok = NULL;
  126170. -
  126171. char *prog = NULL;
  126172. int debug = 0; /* debug mode */
  126173. int verbose = 0; /* verbose mode */
  126174. @@ -96,6 +94,7 @@
  126175. extern char *chroot_realpath(const char *chroot, const char *path,
  126176. char resolved_path[]);
  126177. +#if defined __UCLIBC_STATIC_LDCONFIG__ || !defined __UCLIBC_HAS_BSD_ERR__
  126178. /* These two are used internally -- you shouldn't need to use them */
  126179. static void verror_msg(const char *s, va_list p)
  126180. {
  126181. @@ -114,8 +113,7 @@
  126182. fprintf(stderr, "\n");
  126183. }
  126184. -static void err(int errnum, const char *s, ...) attribute_noreturn;
  126185. -static void err(int errnum, const char *s, ...)
  126186. +static attribute_noreturn void err(int errnum, const char *s, ...)
  126187. {
  126188. va_list p;
  126189. @@ -146,6 +144,9 @@
  126190. vperror_msg(s, p);
  126191. va_end(p);
  126192. }
  126193. +#else
  126194. +# include <err.h>
  126195. +#endif
  126196. static void *xmalloc(size_t size)
  126197. {
  126198. @@ -257,10 +258,10 @@
  126199. && N_MAGIC_SWAP(exec) != QMAGIC) {
  126200. elf_hdr = (ElfW(Ehdr) *) & exec;
  126201. if (elf_hdr->e_ident[0] != 0x7f ||
  126202. - strncmp((char *)elf_hdr->e_ident + 1, "ELF", 3) != 0)
  126203. + strncmp((const char *)elf_hdr->e_ident + 1, "ELF", 3) != 0)
  126204. {
  126205. /* silently ignore linker scripts */
  126206. - if (strncmp((char *)&exec, "/* GNU ld", 9) != 0)
  126207. + if (strncmp((const char *)&exec, "/* GNU ld", 9) != 0)
  126208. warnx("%s is not a shared library, skipping", buff);
  126209. } else {
  126210. /* always call readsoname to update type */
  126211. @@ -282,7 +283,7 @@
  126212. /* if the soname does not match the filename,
  126213. issue a warning, but only in debug mode. */
  126214. int len = strlen(good);
  126215. - if (debug && (strncmp(good, name, len) != 0
  126216. + if (debug && (strncmp((const char *)good, name, len) != 0
  126217. || (name[len] != '\0' && name[len] != '.')))
  126218. warnx("%s has inconsistent soname (%s)", buff, good);
  126219. }
  126220. @@ -784,8 +785,7 @@
  126221. }
  126222. #endif
  126223. -static void usage(void) attribute_noreturn;
  126224. -static void usage(void)
  126225. +static attribute_noreturn void usage(void)
  126226. {
  126227. fprintf(stderr,
  126228. #ifdef __LDSO_CACHE_SUPPORT__
  126229. diff -Nur uClibc-0.9.33.2/utils/ldd.c uClibc-git/utils/ldd.c
  126230. --- uClibc-0.9.33.2/utils/ldd.c 2012-05-15 09:20:09.000000000 +0200
  126231. +++ uClibc-git/utils/ldd.c 2014-06-02 17:40:35.434719844 +0200
  126232. @@ -20,6 +20,11 @@
  126233. #define ELFCLASSM ELFCLASS64
  126234. #endif
  126235. +#if defined(__arc__)
  126236. +#define MATCH_MACHINE(x) (x == EM_ARCOMPACT)
  126237. +#define ELFCLASSM ELFCLASS32
  126238. +#endif
  126239. +
  126240. #if defined(__arm__) || defined(__thumb__)
  126241. #define MATCH_MACHINE(x) (x == EM_ARM)
  126242. #define ELFCLASSM ELFCLASS32
  126243. @@ -63,6 +68,11 @@
  126244. #define ELFCLASSM ELFCLASS32
  126245. #endif
  126246. +#if defined(__metag__)
  126247. +#define MATCH_MACHINE(x) (x == EM_METAG)
  126248. +#define ELFCLASSM ELFCLASS32
  126249. +#endif
  126250. +
  126251. #if defined(__mips__)
  126252. #define MATCH_MACHINE(x) (x == EM_MIPS || x == EM_MIPS_RS3_LE)
  126253. #define ELFCLASSM ELFCLASS32
  126254. @@ -106,6 +116,11 @@
  126255. #define ELFCLASSM ELFCLASS32
  126256. #endif
  126257. +#if defined(__xtensa__)
  126258. +#define MATCH_MACHINE(x) (x == EM_XTENSA)
  126259. +#define ELFCLASSM ELFCLASS32
  126260. +#endif
  126261. +
  126262. #ifndef MATCH_MACHINE
  126263. # ifdef __linux__
  126264. # include <asm/elf.h>
  126265. @@ -127,7 +142,6 @@
  126266. #define ELFDATAM ELFDATA2MSB
  126267. #endif
  126268. -#define ARRAY_SIZE(v) (sizeof(v) / sizeof(*v))
  126269. #define TRUSTED_LDSO UCLIBC_RUNTIME_PREFIX "lib/" UCLIBC_LDSO
  126270. struct library {
  126271. @@ -145,7 +159,7 @@
  126272. static __inline__ uint32_t byteswap32_to_host(uint32_t value)
  126273. {
  126274. - if (byteswap == 1) {
  126275. + if (byteswap) {
  126276. return (bswap_32(value));
  126277. } else {
  126278. return (value);
  126279. @@ -153,7 +167,7 @@
  126280. }
  126281. static __inline__ uint64_t byteswap64_to_host(uint64_t value)
  126282. {
  126283. - if (byteswap == 1) {
  126284. + if (byteswap) {
  126285. return (bswap_64(value));
  126286. } else {
  126287. return (value);
  126288. @@ -232,14 +246,7 @@
  126289. }
  126290. /* Check if the target endianness matches the host's endianness */
  126291. - byteswap = 0;
  126292. - if (UCLIBC_ENDIAN_HOST == UCLIBC_ENDIAN_LITTLE) {
  126293. - if (ehdr->e_ident[5] == ELFDATA2MSB)
  126294. - byteswap = 1;
  126295. - } else if (UCLIBC_ENDIAN_HOST == UCLIBC_ENDIAN_BIG) {
  126296. - if (ehdr->e_ident[5] == ELFDATA2LSB)
  126297. - byteswap = 1;
  126298. - }
  126299. + byteswap = !(ehdr->e_ident[5] == ELFDATAM);
  126300. /* Be very lazy, and only byteswap the stuff we use */
  126301. if (byteswap) {
  126302. @@ -707,6 +714,7 @@
  126303. };
  126304. # ifdef __LDSO_STANDALONE_SUPPORT__
  126305. char * lib_path = getenv("LD_LIBRARY_PATH");
  126306. +
  126307. /* The 'extended' environment inclusing the LD_LIBRARY_PATH */
  126308. static char *ext_environment[ARRAY_SIZE(environment) + 1];
  126309. char **envp = (char **) environment;
  126310. diff -Nur uClibc-0.9.33.2/utils/Makefile.in uClibc-git/utils/Makefile.in
  126311. --- uClibc-0.9.33.2/utils/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  126312. +++ uClibc-git/utils/Makefile.in 2014-06-02 17:40:35.434719844 +0200
  126313. @@ -10,6 +10,7 @@
  126314. CFLAGS-utils := \
  126315. $(SSP_ALL_CFLAGS) \
  126316. + -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) \
  126317. -I$(top_srcdir)ldso/include \
  126318. -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \
  126319. -DUCLIBC_LDSO=\"$(UCLIBC_LDSO)\" \
  126320. @@ -36,8 +37,7 @@
  126321. # Need CFLAGS-utils explicitly, because the source file is not located in utils
  126322. CFLAGS-iconv := $(CFLAGS-utils) \
  126323. $(CFLAGS-utils-shared) \
  126324. - -I$(top_srcdir)libc/misc/wchar \
  126325. - -DL_iconv_main \
  126326. + -I$(top_srcdir)libc/misc/wchar
  126327. CFLAGS-locale := $(CFLAGS-utils)
  126328. CFLAGS-getconf :=$(CFLAGS-utils) \
  126329. @@ -56,9 +56,11 @@
  126330. $(UTILS_CONFIG_FLAGS-y)
  126331. BUILD_CFLAGS-ldconfig.host := \
  126332. -DBUILDING_LINKAGE \
  126333. + -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) \
  126334. -I$(top_srcdir)ldso/include
  126335. BUILD_CFLAGS-ldd.host := \
  126336. -DBUILDING_LINKAGE \
  126337. + -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) \
  126338. -I$(top_srcdir)ldso/include \
  126339. -include $(top_srcdir)include/elf.h
  126340. BUILD_CFLAGS-locale.host := \